<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-30819994</id><updated>2012-01-25T15:45:20.167-05:00</updated><category term='Personal'/><category term='Study Notes'/><category term='Research'/><category term='Computer Science'/><category term='Fun'/><category term='Mnemonics'/><category term='Programming'/><title type='text'>Niketan Pansare's blog</title><subtitle type='html'>Some goals are so worthy that it's glorious even to fail.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>80</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30819994.post-5926691192534230084</id><published>2012-01-17T18:24:00.000-05:00</published><updated>2012-01-18T22:43:40.828-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Iris - siri like software</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Recently I have started a pet project &lt;u&gt;Iris&lt;/u&gt;&lt;sup&gt;1&lt;/sup&gt;&amp;nbsp;while doing background study for my recent paper.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Voice commands/response:&lt;/b&gt;&lt;br /&gt;Like &lt;a href="http://www.youtube.com/watch?v=rNsrl86inpo"&gt;Siri&lt;/a&gt;, it takes user commands and can respond using either Voice or Text.&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/MiwRIJDkjW4" width="420"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Portable:&lt;/b&gt;&lt;br /&gt;Since it is written in Java, it can run on most OS, including Mac, Windows and Linux. I have only tested it on Mac Lion, so I welcome any beta testers using other OS. For now, some of the features like play itunes, open email, etc are only available on Mac. I plan to add these features on other OS as well.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configurable:&lt;/b&gt;&lt;br /&gt;Most of the features such as use of VOICE or TEXT as feedback mechanism, as well as feedback message are configurable through the configuration file ''user_scripts/iris.config". You can also modify any of the predefined apple scripts (for eg: playSong.scpt) in that folder which will be called by Iris on the voice cammand. Also, for advance users, there are ten function commands that he/she can use to perform user-specific tasks.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Easy to install and use:&lt;/b&gt;&lt;br /&gt;All you need to do is download and extract the &lt;a href="http://code.google.com/p/iris-super-pet/downloads/list"&gt;binary file&lt;/a&gt; and run following command:&lt;br /&gt;&lt;pre class="brush: html"&gt; &lt;br /&gt;java -Xmx200m -jar bin/Iris.jar&lt;br /&gt;&lt;/pre&gt;The above command asks Java to run the program Iris.jar (in bin folder) and also specifies that it should not use more than 200 MB of memory.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lightweight:&lt;/b&gt;&lt;br /&gt;The whole setup takes about 20MB.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Client-side:&lt;/b&gt;&lt;br /&gt;The speech-to-text is done on your laptop/desktop and not on some remote server. This means you can use it even if have no internet connection. This also means that there is no possibility of some big brother monitoring your voice commands.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Open source:&lt;/b&gt;&lt;br /&gt;You are free to download and modify the &lt;a href="http://code.google.com/p/iris-super-pet/source/checkout"&gt;source&lt;/a&gt;. As I am working towards a paper deadline, I am looking for collaborators that would help me with following features:&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;User-friendly: Improving voice commands&lt;/li&gt;&lt;li&gt;More accuracy: Expanding dictionary to include more words and also to add different 'user accents' for a given word.&lt;/li&gt;&lt;li&gt;Expanding grammar to include&amp;nbsp;arbitrary&amp;nbsp;spoken words.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Apple scripts to accessing contacts and recognizing contact names to assist users with various functionality.&lt;/li&gt;&lt;li&gt;Adding GUI interface rather than command line. Since all the responses go through OutputUtility.java, this is going to be easy.&lt;/li&gt;&lt;li&gt;New features: Support for RSS, Top News, &lt;a href="http://developer.yahoo.com/weather/"&gt;Weather&lt;/a&gt;, Popular city names, Dictionary/Theasurus, Web/Wikipedia search, Dictation (to text/messages/events/&lt;a href="http://www.toodledo.com/info/api_doc.php"&gt;todo item&lt;/a&gt;/alarm/reminders), Jokes, Motivational quotes, More Personalization.&lt;/li&gt;&lt;/ol&gt;If you have suggestions for improvement or want to collaborate with me, email me at 'NiketanPansare AT GMail'.&lt;br /&gt;&lt;br /&gt;Iris uses CMU's &lt;a href="http://cmusphinx.sourceforge.net/sphinx4/"&gt;Sphinx4&lt;/a&gt; for recognizing speech and &lt;a href="http://freetts.sourceforge.net/docs/index.php"&gt;FreeTTS&lt;/a&gt; for text-to-speech conversion.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;References:&lt;/b&gt;&lt;br /&gt;&lt;sup&gt;1&lt;/sup&gt; Iris is name of my friend's dog (well, no pun intended when I use the term 'pet project'). It is also the anagram of the word 'Siri' (a popular Apple's software for IPhone 4s).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-5926691192534230084?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/5926691192534230084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=5926691192534230084' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/5926691192534230084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/5926691192534230084'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2012/01/iris-siri-like-software.html' title='Iris - siri like software'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/MiwRIJDkjW4/default.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-3842376498003458417</id><published>2012-01-02T00:02:00.001-05:00</published><updated>2012-01-02T14:47:00.503-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>C++ workflow</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Recently I had a memory bug that took me 2 days to figure out. &lt;a href="http://valgrind.org/"&gt;Valgrind&lt;/a&gt; gave no error message (well, to be honest, it did give out a warning that got lost in my log messages). &lt;a href="http://www.gnu.org/software/gdb/"&gt;gdb&lt;/a&gt; pointed to completely random place that led me to believe STL's &lt;a href="http://www.cplusplus.com/reference/iostream/stringstream/"&gt;stringstream&lt;/a&gt; was the culprit.&amp;nbsp;Since there was no way I could have definitively say it's not the cause, I couldn't rule out that possibility.&lt;br /&gt;&lt;br /&gt;My impatience got the best of me and I foolishly rewrote that part of code using a less elegant solution using arrays. Now gdb started pointing to STL's &lt;a href="http://www.cplusplus.com/reference/stl/vector/clear/"&gt;vector.clear()&lt;/a&gt; method and believe it or not I was using &lt;a href="http://www.cplusplus.com/reference/string/string/"&gt;std::string&lt;/a&gt; to store in it, not some user defined class …. I had it … there is no way in the world I am going to believe that gdb was right (thanks to my confidence in &lt;a href="http://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876"&gt;Effective C++&lt;/a&gt; and std::vector &amp;lt; str::string &amp;gt;).&amp;nbsp;But, not knowing the bug in a 'single threaded' 'command-line based' C++ code with access to gdb and pretty printing was driving me crazy. My &lt;a href="http://niketanblog.blogspot.com/2008/04/random-c-tricks-gdb-valgrind-and.html"&gt;previous blogpost&lt;/a&gt; didn't help either :(&lt;br /&gt;&lt;br /&gt;So, on the same evening, armed with my music player and hot cup of tea,  I decided to ignore the bug and beautify my code with better comments … geek alert !!!That's when it hit me, due to my recent modification, I was writing past the array bounds in a for loop. The funny thing is it is one of the few &lt;a href="http://valgrind.org/docs/manual/quick-start.html"&gt;memory bugs&lt;/a&gt; that valgrind does not report in its final assessment and my best guess is that I was writing over vector's header location (and vector only complains about that during its next operation (in my case was clear()) ... which for all intensive purposes is random).&lt;br /&gt;&lt;br /&gt;Embarrassed by this stupid mistake that wasted my two days, I felt humbled to revisit my C++ work-flow.&lt;br /&gt; &lt;br /&gt;So, here is a sample workflow: &lt;br /&gt;- &lt;b&gt; svn update&lt;/b&gt; &lt;br /&gt;- Code using your favorite editor (Make sure you configure it to conform to your style rules). &lt;br /&gt;- Set DEBUGFLAGS in your makefile that does static analysis (&lt;b&gt;make my_proj&lt;/b&gt;). &lt;br /&gt; - Test it on local machines using '&lt;b&gt;make my_test&lt;/b&gt;' &lt;br /&gt;- Run valgrind if necessary and check against below given valgrind checklist &lt;br /&gt;- &lt;b&gt;make style&lt;/b&gt; &lt;br /&gt;- &lt;b&gt;make doc&lt;/b&gt; &lt;br /&gt;- &lt;b&gt;svn update&lt;/b&gt; &lt;br /&gt;- &lt;b&gt;svn commit -m "some meaningful message"&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;The key principle is:&lt;h2&gt;Automate whenever possible (with emphasis on reusability)&lt;/h2&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Never ever start coding without an &lt;a href="http://en.wikipedia.org/wiki/Apache_Subversion"&gt;SVN&lt;/a&gt; (or cvs or git, etc.). It will save you lot of headaches if your machine crashes or if you want to revert back to a previous version.&lt;br /&gt;If the project has multiple coders/testers/collaborators, it helps if you have some kind of project-management tool like &lt;a href="http://niketanblog.blogspot.com/2009/10/how-to-set-up-trac-svn-on-ubuntu.html"&gt;trac&lt;/a&gt;&amp;nbsp;or &lt;a href="http://www.atlassian.com/software/jira/overview"&gt;jira&lt;/a&gt;.&amp;nbsp;Also, if you are going to release your code to public, you might want to consider project hosting sites like &lt;a href="http://en.wikipedia.org/wiki/Google_Code"&gt;Google Code&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/SourceForge"&gt;source forge&lt;/a&gt;. &lt;br /&gt;Though this might seem obvious, don't host the svn server on personal machine or at least make sure to take regular backups if you do.&lt;/li&gt;&lt;li&gt;Use a Makefile that takes care of all necessary tasks (compilation, cleaning, data generation, document generation, code beautification, etc) and a user-friendly README file. (Advance coders can consider &lt;a href="http://www.gnu.org/software/automake/"&gt;automate&lt;/a&gt;). Here is a sample Makefile of my current project:&lt;pre class="brush: html"&gt; &lt;br /&gt;CC = g++&lt;br /&gt;DEBUGFLAGS = -g -Wall -Wextra&lt;br /&gt;MINUITFLAGS = `root-config --cflags` `root-config --libs` -lMinuit2 -fopenmp&lt;br /&gt;LIBS = -lgsl -lgslcblas -lm -lstdc++&lt;br /&gt;&lt;br /&gt;HEADER = Helper.h MathHelper.h LDA.h Configuration.h&lt;br /&gt;SRC = main.cpp MathHelper.cpp Helper.cpp LDA.cpp&lt;br /&gt;OUTPUT = spoken_web&lt;br /&gt;&lt;br /&gt;spoken_web:     $(SRC) $(HEADER)&lt;br /&gt;        $(CC) $(SRC) -o $(OUTPUT) $(DEBUGFLAGS) $(LIBS)&lt;br /&gt;&lt;br /&gt;doc:    $(HEADER) spokenweb_doxygen_configuration&lt;br /&gt;        doxygen spokenweb_doxygen_configuration &lt;br /&gt;&lt;br /&gt;r_data: GenerateData.R&lt;br /&gt;        R --slave &amp;lt; GenerateData.R&lt;br /&gt;&lt;br /&gt;style: $(SRC) $(HEADER)&lt;br /&gt;        astyle --options=spokenweb_astyle_rules $(SRC) $(HEADER)&lt;br /&gt;&lt;br /&gt;clean:&lt;br /&gt;        rm -f *.o $(OUTPUT) *~ *.data parameters.txt metaFile.txt *.data&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Use a document generator like &lt;a href="http://www.stack.nl/~dimitri/doxygen/"&gt;doxygen&lt;/a&gt;. It forces you to write much cleaner documentation and more importantly cleaner interface. Trust me it will help if you had to reuse your code in future. &lt;pre class="brush: html"&gt;make doc&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Use code beautifier like &lt;a href="http://astyle.sourceforge.net/"&gt;astyle&lt;/a&gt;&amp;nbsp;that not only shields you against inelegant colleague/coder, but also personalizes the code if you like to do '&lt;a href="http://www.amazon.com/Code-Reading-Open-Source-Perspective/dp/0201799405"&gt;Code Reading&lt;/a&gt;' (Don't you clean gym equipment after workout, well, why not do the same with your code). Here is sample style rules that I love:&lt;pre class="brush: html"&gt; &lt;br /&gt;--style=java&lt;br /&gt;--indent=spaces=2&lt;br /&gt;--indent-classes&lt;br /&gt;--indent-switches&lt;br /&gt;--indent-preprocessor&lt;br /&gt;--indent-col1-comments&lt;br /&gt;--min-conditional-indent=0&lt;br /&gt;--max-instatement-indent=80&lt;br /&gt;--unpad-paren&lt;br /&gt;--break-closing-brackets&lt;br /&gt;--add-brackets&lt;br /&gt;--keep-one-line-blocks&lt;br /&gt;--keep-one-line-statements&lt;br /&gt;--convert-tabs&lt;br /&gt;--align-pointer=type&lt;br /&gt;--align-reference=type&lt;br /&gt;--lineend=linux&lt;br /&gt;--suffix=none&lt;br /&gt;&lt;/pre&gt;If your company follows other style guidelines or if you don't want to change existing formatting, remove '--suffix=none' from the style rules and once you are done, you can restore the original unformatted files (*.orig).&lt;pre class="brush: html"&gt;make style&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Familiarize yourself with program analyzers and debugging tools, and have scripts that automate them in your coding process:&lt;ul style="text-align: left;"&gt;&lt;li&gt;g++'s flags (See DEBUGFLAGS in my makefile)&lt;/li&gt;&lt;li&gt;Static analysis tools like cppcheck (For more cases, I am satisfied with the above g++'s flags)&lt;/li&gt;&lt;li&gt;Runtime memory analyzer tool like &lt;a href="http://valgrind.org/"&gt;valgrind&lt;/a&gt;.&amp;nbsp;(Please see below given Valgrind checklist, and also my &lt;a href="http://niketanblog.blogspot.com/2008/04/random-c-tricks-gdb-valgrind-and.html"&gt;previous blogpost&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;gdb: For stepping through the code for more comprehensive debugging&lt;/li&gt;&lt;/ul&gt;There are several paid tools that do much better job of analyzing your code that those mentioned above. There are&amp;nbsp;&lt;/li&gt;&lt;li&gt;I like to follow standard directory structure:&lt;br /&gt;./ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Makefile and configure scripts&lt;br /&gt;./src &amp;nbsp; &amp;nbsp; &amp;nbsp; cc , h files (Use subdirectories and namespaces if necessary)&lt;br /&gt;./bin &amp;nbsp; &amp;nbsp; &amp;nbsp;build directory &lt;br /&gt;./data &amp;nbsp; &amp;nbsp;data required for testing/running the code &lt;br /&gt;./test &amp;nbsp; &amp;nbsp; &amp;nbsp;test drivers &lt;br /&gt;./doc &amp;nbsp; &amp;nbsp; documentation generated by doxygen&lt;/li&gt;&lt;li&gt;Maintain a list of code snippets (stored in Evernote or a personal notebook) or helper classes that you might have to use again. Note that the helper classes should have good interface and must be well documented (and robust). For example, I use &lt;a href="http://www.gnu.org/software/gsl/"&gt;GSL&lt;/a&gt; for writing sampling functions for bayesian programs, which has very ugly interface and requires some amount of book-keeping. So, I have coded a wrapper class that gives an R like interface which makes my code extremely readable, less error prone and I don't need to worry about any book-keeping or other numerical issues while calling them. &lt;pre class="brush: c++"&gt; &lt;br /&gt;/// \defgroup StatDistribution R-like API for family of probability distributions&lt;br /&gt;/// Naming convention:&lt;br /&gt;/// I have followed the naming conventions of R programming language. &lt;br /&gt;/// Please see its documentation for further details&lt;br /&gt;///&lt;br /&gt;/// Here is a brief intro:&lt;br /&gt;/// Every distribution that R handles has four functions. There is a root name, &lt;br /&gt;/// for example, the root name for the normal distribution is norm. &lt;br /&gt;/// This root is prefixed by one of the letters&lt;br /&gt;///   - d for "density", the density function&lt;br /&gt;///   - r for "random", a random variable having the specified distribution&lt;br /&gt;/// Example: For the normal distribution, these functions are dnorm, and rnorm.&lt;br /&gt;///&lt;br /&gt;/// Important note: Since most bayesian calculation is done in log space, (almost) &lt;br /&gt;/// every density function is capable of outputing 'numerically robust' logarithmic value. &lt;br /&gt;/// Hence, use dnorm(x, mean, sd, true) in your code rather than log(dnorm(x, mean, sd))&lt;br /&gt;///&lt;br /&gt;/// Suported continuous distribution:&lt;br /&gt;/// - Uniform (unif - r,d)&lt;br /&gt;/// - Univariate Normal (norm - r, d); Truncated normal (tnorm - r,d);&lt;br /&gt;/// - Multivariate Normal (mnorm - r, d, conditional_r, conditional_rt) (--&amp;gt; Only m = 2, 3 supported)&lt;br /&gt;/// - Beta (beta - r,d)&lt;br /&gt;/// - Inverse Gamma (invgamma - r,d)&lt;br /&gt;///&lt;br /&gt;/// Suported discrete distribution:&lt;br /&gt;/// - Discrete Uniform (dunif - r,d)&lt;br /&gt;/// - Dirichlet (dirichlet - r,d)&lt;br /&gt;/// - Multinomial (multinom - r,d)&lt;br /&gt;/// - Poisson (pois - r,d)&lt;br /&gt;/// @{&lt;br /&gt;&lt;br /&gt;/// @name Continuous Uniform Distribution&lt;br /&gt;///@{&lt;br /&gt;/// Returns uniform variable [min, max)&lt;br /&gt;double runif(double min, double max);&lt;br /&gt;double dunif(double x, double min, double max, bool returnLog = false);&lt;br /&gt;///@}&lt;br /&gt;&lt;br /&gt;/// @name Discrete Uniform Distribution&lt;br /&gt;///@{&lt;br /&gt;/// Returns uniform variable [min, max) --&amp;gt; i.e. [min, max-1]&lt;br /&gt;int rdunif(int min, int max);&lt;br /&gt;double ddunif(int x, int min, int max, bool returnLog = false);&lt;br /&gt;///@}&lt;br /&gt;&lt;br /&gt;/// @name Univariate Normal Distribution&lt;br /&gt;///@{&lt;br /&gt;double rnorm(double mean, double sd);&lt;br /&gt;double dnorm(double x, double mean, double sd, bool returnLog = false);&lt;br /&gt;///@}&lt;br /&gt;&lt;br /&gt;/// @name Multinomial distribution&lt;br /&gt;/// Both prob and retVal should be of length sizeOfProb&lt;br /&gt;/// size, say N, specifying the total number of objects that are put into &lt;br /&gt;/// K (or sizeOfProb) boxes in the typical multinomial experiment.&lt;br /&gt;/// If the array prob is not normalized then its entries will be treated as &lt;br /&gt;/// weights and normalized appropriately. Furthermore, this function also allows &lt;br /&gt;/// you to provide log probabilities (in which case, you need to set isProbInLogSpace to true)&lt;br /&gt;/// Eg: double prob[3] = {0.1, 0.2, 0.7}; double retVal[3]; rmultinom(1, 3, prob, retVal, false);&lt;br /&gt;///@{&lt;br /&gt;void rmultinom(int size, int sizeOfProb, double* prob, unsigned int* retVal, bool isProbInLogSpace = false);&lt;br /&gt;double dmultinom(int sizeOfProb, double* prob, unsigned int* x, bool isProbInLogSpace = false, bool returnLog = false);&lt;br /&gt;///@}&lt;br /&gt;&lt;/pre&gt;So to sample N(10,2), instead of having code like:&lt;pre class="brush: c++"&gt; &lt;br /&gt;gsl_rng* rng_obj = gsl_rng_alloc(gsl_rng_mt19937);&lt;br /&gt;double sampledVal = gsl_ran_gaussian(rng_obj, 2) + 10;&lt;br /&gt;gsl_rng_free(rng_obj);&lt;br /&gt;&lt;/pre&gt;I have to use following code (which if you have coded in R is more readable):&lt;pre class="brush: c++"&gt; &lt;br /&gt;StatisticsHelper myStatHelper;&lt;br /&gt;double sampledVal = myStatHelper.rnorm(10, 2);&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol style="text-align: left;"&gt;&lt;/ol&gt;&lt;h2&gt;Valgrind checklist:&lt;/h2&gt;First run valgrind's memcheck tool (&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;valgrind --tool=memcheck program_name&lt;/span&gt;) and check:&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;The heap summary (only returns memory leaks, not memory corruption errors) Eg:&lt;pre class="brush: c++"&gt; &lt;br /&gt;==19691== HEAP SUMMARY:&lt;br /&gt;==19691==     in use at exit: 0 bytes in 0 blocks&lt;br /&gt;==19691==   total heap usage: 12,126 allocs, 12,126 frees, 938,522 bytes allocated&lt;br /&gt;==19691== &lt;br /&gt;==19691== All heap blocks were freed -- no leaks are possible&lt;br /&gt;&lt;/pre&gt;If number of allocs and the number of frees will differ in o/p, the try &lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;valgrind --tool=memcheck --leak-check=yes --show-reachable=yes program_name&lt;/span&gt; &lt;br /&gt; &lt;br /&gt;Steps to avoid memory leaks: &lt;br /&gt;- If you are assigning pointers to other pointers, be very explicit as to who is responsible for the deletion of the memory.&lt;br /&gt;- Delete every object created by new (especially in case of exceptions).&lt;/li&gt;&lt;li&gt;Intermediate warning/error messages irrespective of the heap summary. Eg:&lt;pre class="brush: c++"&gt; &lt;br /&gt;==15633== Invalid write of size 4&lt;br /&gt;==15633==    at 0x4163F3: LDAGibbsSampler::FillInSpeechToTextOutputs() (LDA.cpp:206)&lt;br /&gt;==15633==    by 0x41565A: LDAGibbsSampler::LDAGibbsSampler(int, int, double, double, std::string, double, double, int) (LDA.cpp:28)&lt;br /&gt;==15633==    by 0x402E26: main (main.cpp:34)&lt;br /&gt;&lt;/pre&gt;Note, sometime one error can propagate and throw error messages at different places, so don't panic. &lt;br /&gt; &lt;br /&gt;The intermediate error messages can detect:&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Illegal read / Illegal write errors&lt;/b&gt; (like the message '&lt;i&gt;Invalid read of size 4&lt;/i&gt;' above): It can mean any of the memory corruptions given below.If the error message is not informative, run valgrind again with '--read-var-info=yes' flag. &lt;br /&gt;Common memory corruption bugs like these are: &lt;br /&gt;- Writing/Accessing out of bounds memory (either directly or by array oriented functions like strcpy) &lt;br /&gt;- Using an unallocated object&lt;br /&gt;&lt;pre class="brush: c++"&gt; &lt;br /&gt;my_class* obj_ptr;&lt;br /&gt;obj_ptr -&amp;gt; var1 = val; // or val = obj_ptr -&amp;gt; var1;&lt;br /&gt;&lt;/pre&gt;- Using a freed object &lt;br /&gt;Note: &lt;a href="http://valgrind.org/docs/manual/mc-manual.html"&gt;Memcheck&lt;/a&gt; (tool of valgrind) does not perform bounds checking for stack or global arrays, so even if you don't get this error/warning message, it does not mean that there is no memory corruption errors.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Use of uninitialised values&lt;/b&gt; (either on stack or heap) in &lt;b&gt;user function&lt;/b&gt;: Message looks like '&lt;i&gt;Conditional jump or move depends on uninitialised value(s)&lt;/i&gt;'. To see information on the sources of uninitialised data in your program, use the '--track-origins=yes' option.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Use of uninitialised values&lt;/b&gt;&amp;nbsp;in&amp;nbsp;&lt;b&gt;system calls&lt;/b&gt;: Message looks like '&lt;i&gt;Syscall param write(buf) points to uninitialised byte(s)&lt;/i&gt;'.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Illegal free/deletions:&lt;/b&gt; (&lt;i&gt;Invalid free()&lt;/i&gt;) &lt;br /&gt;- Calling free() (or delete) on the object that is already freed (or deleted). &lt;br /&gt;- Deleting object that is created on stack.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Mismatched operators&lt;/b&gt;: (&lt;i&gt;Mismatched free() / delete / delete []&lt;/i&gt;) &lt;br /&gt;- Calling free() on the object that is created by new operator. &lt;br /&gt;- Calling delete on the object that is created by malloc(). &lt;br /&gt;- Calling delete[] on the object that is created by the new operator. &lt;br /&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;Overlapping source and destination blocks&lt;/b&gt;: (Source and destination overlap in ...) &lt;br /&gt;- Look out functions like memcpy, strcpy, strncpy, strcat and strncat.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;References:&lt;br /&gt;- http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml &lt;br /&gt;- http://www.yolinux.com/TUTORIALS/C++MemoryCorruptionAndMemoryLeaks.html &lt;br /&gt;- http://www.cprogramming.com/tutorial/memory_debugging_parallel_inspector.html &lt;br /&gt;&lt;script type="text/javascript"&gt;     SyntaxHighlighter.all()&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-3842376498003458417?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/3842376498003458417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=3842376498003458417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3842376498003458417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3842376498003458417'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2012/01/c-workflow.html' title='C++ workflow'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-4664336218147768849</id><published>2011-10-11T14:59:00.001-04:00</published><updated>2011-10-11T20:54:34.685-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study Notes'/><category scheme='http://www.blogger.com/atom/ns#' term='Research'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>How to analyze algorithms ?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h2&gt;Important assumptions:&lt;/h2&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&amp;nbsp;This process of analysis should be independent of programming language and machine architecture. So you can't just write your algorithm in C++ and compare it using running time of some other algorithm written in Java.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Also, since each algorithm can take as an input arbitrary data structure (eg: graph, array, binary object, tree, ...), there has to be some standard way to specify it. For sake of our analysis, we use input size (n) as the measure for our analysis. For eg: length of array, number of vertices or edges of the graph, number of nodes of a tree etc. &lt;/li&gt;&lt;/ul&gt;The detailed explanations of these two points is given in&lt;a href="http://www.amazon.com/Introduction-Algorithms-Thomas-H-Cormen/dp/0262033844/ref=dp_ob_title_bk"&gt; Introduction to Algorithms by Cormen, Leiserson, Rivest&lt;/a&gt;, .. (CLR) &lt;br /&gt;&lt;h2&gt;Setup:&lt;/h2&gt;Input of size n ==&amp;gt; Algorithm that takes T(n) steps ==&amp;gt; some output &lt;br /&gt; &lt;br /&gt;The number of steps in the algorithm often depends on factors other than the input size. For eg: the number of steps for quicksort for the input [1, 2, 3, 4, 5] is different than as compared to the input [5, 4, 3, 2, 1]; even though both have same input size (and in this case same elements).&lt;br /&gt;Hence, we will try to find 3 functions (upper bound, lower bound and Theta bound) that can capture the effects of these factors:$$ g_1(n), g_2(n) \text{ and } g_3(n) \text{ such that } $$  $$ T(n) \in O(g_1(n)),  T(n) \in \Omega(g_2(n)) \text{ and } T(n) \in \Theta(g_3(n))$$Many authors also write above equations as:$$ T(n) = O(g_1(n)),  T(n) = \Omega(g_2(n)) \text{ and } T(n) = \Theta(g_3(n))$$&lt;h2&gt; Big-O notations:&lt;/h2&gt;Now, let's understand definition of above notations:\begin{align}\text{To prove that } &amp; g_1(n) \text{ is upper bound of T(n), i.e.} T(n) \in O(g_1(n)) \\\text{ find two constants } &amp; c, n_0 \text{ such that } \\&amp; \forall n \geq n_0, T(n) \leq c g_1(n)\end{align}For lower bound, change  &amp;#8804; sign to &amp;#8805; sign and for theta bound find both lower and upper bound:$$ T(n) \in \Theta(g_3(n)) \text{ iff } T(n) \in O(g_3(n)) \text{ and } T(n) \in \Omega(g_3(n))$$&lt;br /&gt; To understand these in more details, I suggest you solve problems from CLR chapter 3. Here are some example you can start with:\begin{align}2n^2 \in O(n^3) &amp; \text{ with } c=1 \text{ and } n_0 = 2 \\\sqrt{n} \in \Omega(lg n) &amp; \text{ with } c=1 \text{ and } n_0 = 16 \\\frac{n^2}{2} - 2n \in \Theta(n^2) &amp; \text{ with } c_1=\frac{1}{4}, c_2=\frac{1}{2} \text{ and } n_0 = 8 \\\end{align}(Note: theoretically very large functions such as infinity^n or n^infinity can always be lower bounds. So, it is necessary to supply as tight bound as possible for any given algorithm. Mathematically, the notations for tight upper bound is &lt;a href="http://en.wikipedia.org/wiki/Big_O_notation#Little-o_notation"&gt;small o&lt;/a&gt; and for tight lower bound is small omega, but we will ignore them for sake of this discussion) &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Common measures for algorithms:&lt;/h2&gt;Above three notations are often replaced by the terms 'worst case', 'best case' and 'average case' complexity. But, more precise definitions are as follows:\begin{align}\text{Worst case}&amp; T(n) = max \{ T(x) | \text{ x is an instance of size n} \} \\\text{Best case}&amp; T(n) = min \{ T(x) | \text{x is an instance of size n} \} \\\text{Average case}&amp; T(n) = \sum_{\text{input }x} Prob(x) T(x)\end{align}This means, to find average case complexity of algorithm, you need to find probability of a given input and use it to find &lt;a href="http://en.wikipedia.org/wiki/Expected_value"&gt;expectation&lt;/a&gt; of T(n). &lt;br /&gt; &lt;br /&gt;&lt;h2&gt;Pseudo code to Big-O:&lt;/h2&gt;Now, let's address the key question: given a pseudo code, how do we find its lower bound (or upper bound or ...). Here is one possible way to find those bounds:&lt;ul style="text-align: left;"&gt;&lt;li&gt; First, express the algorithm in recursive form  &lt;/li&gt;&lt;li&gt; Determine appropriate metric for input size 'n' &lt;/li&gt;&lt;li&gt; Then, find recurrence relation for the algorithm &lt;/li&gt;&lt;li&gt; Solve the recurrence relation using either Substitution method, recursion tree method or the master theorem &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;For example, the recurrence relations for popular algorithms are:\begin{align}\text{Binary search: } &amp; T(n) &amp; = T(\frac{n}{2}) + O(1) \\\text{Sequential search: } &amp; T(n) &amp; = T(n-1) + O(1) \\\text{Tree traversal: } &amp; T(n) &amp; = 2T(\frac{n}{2}) + O(1) \\\text{Selection sort: } &amp; T(n) &amp; = T(n-1) + O(n) \\\text{Merge sort: } &amp; T(n) &amp; = 2T(\frac{n}{2}) + O(n)\end{align}Try writing the pseudo code for any of the above algorithm and verify the recurrence relations. &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Master theorem:&lt;/h2&gt;Master theorem can only solve the recurrence relation of the form: &lt;b&gt;T(n) = a T(n/b) + f(n)&lt;/b&gt;. Here is my modus operandi for master theorem:\begin{align}\text{If } f(n)=n^{log_{b}a}lg^{k+1}n, &amp; \text{ then } T(n) = \Theta(n^{log_{b}a} lg^{k+1}n) \\\text{Else if } n^{log_{b}a} \text{ is polynomially greater than } f(n), &amp; \text{ then } T(n) = \Theta(n^{log_{b}a}) \\\text{Else if } f(n)  \text{ is polynomially greater than } n^{log_{b}a}, &amp; \text{ then } T(n) = \Theta(f(n)) \\\text{Else use Substitution method}&amp;\end{align}&lt;br /&gt;Here are solutions to two important recurrence relations, that cannot be solved using Master theorem:\begin{align}\text{Recurrence relation} &amp; &amp; \text{Complexity} \\T(n) = T(n-1) + b n^k &amp; =&gt; &amp; O(n^{k+1})\\T(n) = cT(n-1) + b n^k &amp; =&gt; &amp; O(c^n)\end{align}&lt;br /&gt;For recurrence relation of other forms, refer to CLR for substitution and recursion tree method. &lt;br /&gt;(In short, for substitution method, you guess the solution and use induction to find the constants and to prove that the guessed solution is correct. &lt;br /&gt;Recursion tree method are often used to find the guess for the substitution method)&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Some useful approximations:&lt;/h2&gt;For non-negative real b,c,d: &lt;br /&gt;\begin{align}\text{Polynomial growth rate:}&amp;\sum_{i=1}^n i^c &amp;= \Theta(n^{c+1}) \\\text{Logarithmic growth rate:}&amp;\sum_{i=1}^n \dfrac{1}{i} &amp;= \Theta(log(n)) \\\text{Exponential growth rate:}&amp;\sum_{i=1}^n c^i &amp;= \Theta(c^n) \\\text{n-Log(n) growth rate:}&amp;\sum_{i=1}^n log(i)^c &amp;= \Theta(n log(n)^c) \\\text{Combination of above:}&amp;\sum_{i=1}^n log(i)^c i^{d} &amp;= \Theta(n^{d+1} log(n)^c) \\&amp;\sum_{i=1}^n log(i)^c i^d b^{i} &amp;= \Theta(n^{d+1} log(n)^c b^{n}) \\\text{Stirling's approximation:}&amp;n! &amp;= \sqrt(2 \pi n) (\frac{n}{e})^n (1 + \Theta(\frac{1}{n}))\end{align}&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-4664336218147768849?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/4664336218147768849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=4664336218147768849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4664336218147768849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4664336218147768849'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2011/10/how-to-analyze-algorithms.html' title='How to analyze algorithms ?'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6307907320686532858</id><published>2011-09-29T23:26:00.003-04:00</published><updated>2011-10-11T17:31:56.519-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Research'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Presentation on Online Aggregation for Large MapReduce Jobs</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This post has two purposes:  &lt;br /&gt;1. Give information about my Comp 600 presentation at Rice University &lt;br /&gt;2. Enumerate the lesson's learnt while preparing and giving the presentation.&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="300" src="http://player.vimeo.com/video/29806431?title=0&amp;amp;byline=0&amp;amp;portrait=0" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;(If the above videos does not work, click on: &lt;a href="http://www.dailymotion.com/video/xle1r8_online-aggregation-for-large-mapreduce-jobs_tech"&gt;Dailymotion&lt;/a&gt; or &lt;a href="http://vimeo.com/29806431"&gt;Vimeo&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Also, if you have time, go through my slides or better still read my paper :)&lt;br /&gt;&lt;a href="http://prezi.com/4u9xyqzhc7qy/online-aggregation-for-large-mapreduce-jobs/"&gt;- Slides &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cs.rice.edu/%7Enp6/Papers/OnlineAggregationForLargeMapReduceJobs.pdf"&gt;- Paper&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h2&gt;FAQs during the presentation at VLDB: &lt;/h2&gt;&lt;br /&gt;1. What if the blocks are equally sized and spread across uniformly ?&lt;br /&gt;- We used exactly that configuration. The input blocks of wikipedia logs are approximately of same size and HDFS does good job of spreading the data across uniformly. Still, we found biased results in the beginning.&lt;br /&gt;&lt;br /&gt;2. Does your system replace general database ?&lt;br /&gt;- Nope. As of now, it only performs single table aggregation with group-by. For a general online database, see &lt;a href="http://dl.acm.org/citation.cfm?id=1412335"&gt;DBO paper&lt;/a&gt; by our group.&lt;br /&gt;&lt;br /&gt;3. Will you release your code ?&lt;br /&gt;- Yes, we intend to release our code as open-source. For current version, see http://code.google.com/p/hyracks-online-aggregation/&lt;br /&gt;&lt;br /&gt;4. Who do you see as potential user of the system ?&lt;br /&gt;- Any company that has massive data stored in HDFS (logically as single table) and want to perform aggregation in online fashion or only till certain accuracy. Note, that the table containing the data need not be pre-randomized.&lt;br /&gt;&lt;br /&gt;5. What does user of the system needs to know ?&lt;br /&gt;- Just how to write and run a hadoop job ... All he/she has to do is write a hadoop mapper and set appropriate parameters in job configuration. For details see appendix of our paper.&lt;br /&gt;&lt;br /&gt;6. You didn't explain too much statistics in the talk ... I want to know more &lt;br /&gt;- Yes, you are absolutely right. Infact, that was intentional :) ... If I have to give one-line summary of statistics here is it: Sample from a Multi-variate normal on value, processing time and scheduling time (which have correlation factor associated with between each of them) which takes in account the 'lower bound' information of processing time of the blocks that are currently been processed ... rather than simply sampling from the distribution over data.&lt;br /&gt;&lt;br /&gt;7. You don't talk about performance ... Isn't randomized scheduling policy bad for performance ?&lt;br /&gt;- We didnt talk about the performance, mainly because we didnot provide any comparative study for performance in our paper. Note that, our policy is not same as a strict randomized policy. We expect the master to maintain a randomize queue and start the timer when a worker asks for the block. If for some reason (say locality), worker doesnot want that block or master has some internal (locality-based) scheduling algorithm, he can leave the timer ON and go for next block in the randomized queue. This is necessary machinery for sampling theory. This will yield performance that is similar to locality-based scheduling. However, in our current implementation, we have not used this mechanism. We intend to do the performance study in our future work.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h2&gt;Presentation tips: &lt;/h2&gt;Clearly my presentation has lot of room for improvement, for example: need to talk slower, more uniform layout of the slides, more interaction with audience etc. However, I have learnt a great deal while preparing and giving this presentation. I will summarize few points that I (and probably lot of graduate students) need to be careful about. For more detailed analysis of these points, I suggest you read &lt;a href="http://www.amazon.com/Presentation-Zen-Simple-Design-Delivery/dp/0321525655"&gt;Presentation Zen&lt;/a&gt;, &lt;a href="http://www.amazon.com/slide-ology-Science-Creating-Presentations/dp/0596522347/ref=pd_bxgy_b_text_b"&gt;Slide:ology&lt;/a&gt; and &lt;a href="http://www.amazon.com/When-Scientist-Presents-Audio-Science/dp/9812839208/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1317502367&amp;amp;sr=1-1"&gt;When the scientist present&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Step 1: Planning your presentation&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;1. Create a relaxing environment&lt;br /&gt;- Go to a library, coffee place, garden (place where no one will disturb you)&lt;br /&gt;- Take time to relax and forget about daily chores.&lt;br /&gt;- Don't bring your laptop. In this step, you will create rough sketch of the presentation on paper (not slideware)&lt;br /&gt;- Lot of the time, changing locations helps you to be more creative.&lt;br /&gt;&lt;br /&gt;2. Make sure you understand the big picture of your presentation.&lt;br /&gt;Can you find 30-45 seconds answer to following questions:&lt;br /&gt;- What is the single most important "key" point that I want my audience to remember&lt;br /&gt;- Why should that point matter to the audience&lt;br /&gt;&lt;br /&gt;Also, make sure that your presentation title has keywords that highlights the big picture (as many people (if not all) will come to your talk either reading just the title (and abstract) or your name). This does not mean the title has to be too long; in fact shorter and thought-provoking title are preferred.&lt;br /&gt;&lt;br /&gt;3. Now, create a sketch of the presentation. This involves enumerating key ideas you will be presenting and also organising/ordering them. You can use either or all of the following tools:&lt;br /&gt;- Mindmap on whiteboard or paper&lt;br /&gt;- Post-it (use sharpie to make sure you don't misuse post-it)&lt;br /&gt;- Brainstorm the list of ideas + Grouping them&lt;br /&gt;- Sketching or drawing&amp;nbsp; &lt;br /&gt;Nancy Duarte says most effective presentations involves telling a story that audience can connect and relate to, rather than just present the information/data. Also, best professors are good story-tellers. They just don't go through the material in the book, but put their own personality, character and experience into the material in form of a narrative, which is illuminating, engaging and memorable.&lt;br /&gt;&lt;br /&gt;The most useful point I have learnt from Presentation Zen is that the presentation consists of three parts:&lt;br /&gt;- &lt;b&gt;Slides&lt;/b&gt; the audience will see (which you will create in Step 2)&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;- &lt;b&gt;Notes&lt;/b&gt; only you will see (which you have created in this Step)&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;- &lt;b&gt;Handouts&lt;/b&gt; that audience can take away (so that they don't have to jot down key definition or formula). This in worst case could simply be a copy of your paper.&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This essentially means that the slides are not telepromptor, that you read aloud throughout your presentation.&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Step 2: Design the slides&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;To succeed as a presenter, you need to think as a designer (from slide:logy).&lt;br /&gt;&lt;br /&gt;1. First few slides are very very important !!! &lt;br /&gt;- I like to give use them to tell the audience the big picture of the presentation.&lt;br /&gt;- It is also necessary that this has to be catch their attention, as we all know the attention-span of audience decreases exponentially after first few minutes. Don't use the first few minutes reading through the 'Outline' slide.&lt;br /&gt;- Use following principle: Tell them what you are going to present, present it, then tell them again what you presented :)&lt;br /&gt;&lt;br /&gt;2. Slides should be as simple as possible.&lt;br /&gt;- Don't use fancy, distracting background images. I prefer sticking to simple white background slide.&lt;br /&gt;- Good design has plenty of empty spaces.&lt;br /&gt;- Avoid typical bullet point presentations. They are boring and they do more harm than good.&lt;br /&gt;- Don't use 3D figures when 2D figures can suffice&lt;br /&gt;- Never ever clutter the slides with useless data, words, figures, images, etc&lt;br /&gt;&lt;br /&gt;3. 1 message per slide ... not more !!&lt;br /&gt;- Do you understand that message ?&lt;br /&gt;- Does your slide reflect that message ? You don't have to write down the message into your slide&lt;br /&gt;- Can I make this slide simpler and still make sure that the message is conveyed. In most cases, this is done by replace bunch of text either with an appropriate image or animation.&lt;br /&gt;- A lot of the time, entire message can be conveyed just by a quote from a reliable or important person. &lt;br /&gt;&lt;br /&gt;4. Try to find a good figure or animation to convey a complex idea, algorithm or system. Here are some tips on creating animation:&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;- Using same slide background, create many slides (by copy operation). Change only 1 detail per slide. When you keep moving from one slide to next, it would give an effect of animation, something like flip-book. However, this process creates a lot of slides (which is problematic in many cases). So, if you want to fit everything into 1 slide, you can create a flash object, gif file or avi file and embed it into the slide. Most people use Adobe tools to create professional looking flash files, but here is poor man's solution:&lt;br /&gt;- Use flip-book style slide transition technique and desktop recorder (eg: recordmydesktop) to create a movie. It usually creates movie in ogv file format. &lt;br /&gt;- Also, lot of time you need to create animation using statistical distribution. In that case, use animation library of R and create ogv movie using desktop recorder. (This library also allows you store the animation in gif, but I am having some problems with it).&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;# R code for animation&lt;br /&gt;library(animation)&lt;br /&gt;ani.options(interval = 1, nmax = 20)&lt;br /&gt;sd1 &amp;lt;- 41&lt;br /&gt;for (i in 1:ani.options("nmax")) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x=seq(900, 1100,length=200)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; y=dnorm(x,mean=1000,sd=sd1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; plot(x,y,type="l",lwd=2,col="red")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ani.pause() ## pause for a while ('interval')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sd1 &amp;lt;- sd1 - 2&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size: x-small;"&gt;a. Convert OGV to AVI:&lt;br /&gt;mencoder input.ogv -ovc xvid -oac mp3lame -xvidencopts pass=1 -speed 0.5 -o output.avi&lt;br /&gt;b. Convert OGV to GIF (or swf):&lt;br /&gt;ffmpeg -i input.ogv -loop_output 0 -pix_fmt rgb24 -r 10 -s 320x240 output.gif&lt;br /&gt;"-loop_output 0" means loop forever.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. Is the content tailored to meet audience' expectation:&lt;br /&gt;- Employers/future collaborators will try to evaluate you rather than the topic.&lt;br /&gt;- Students (undergrad/first year grads/ ..) or people from different area want to understand the problem and intuition behind the solution. Hence, they are more interested in motivation section.&lt;br /&gt;- Co-author will look for recognition.&lt;br /&gt;- Sponsor will look for acknowledgement.&lt;br /&gt;- People who work in same area will try to see if how your system/solution compares to theirs (i.e. related work) or may be are there to look for a new problem (i.e. your future work). &lt;br /&gt;&lt;br /&gt;6. Other design tips:&lt;br /&gt;- Use contrast (using font type, font color, font size, shape, color, images) accentuate the difference. (If it is different, make it very different - Garr Reynolds). It helps audience to identify the message of the slide quickly.&lt;br /&gt;- Repetition: Use same image (or anchor) to represent the same concept throughout the presentation.&lt;br /&gt;- Alignment: Use grids, invisible lines. Audience needs to know the order in which to process the information.&lt;br /&gt;- Proximity&lt;br /&gt;- Hierarchy, Unity&lt;br /&gt;- Use high quality graphics. There are websites that create and sell them like &lt;a href="http://www.istockphoto.com/"&gt;www.istockphoto.com&lt;/a&gt;; or even give them for free like &lt;a href="http://www.flickr.com/creativecommons"&gt;http://www.flickr.com/creativecommons&lt;/a&gt;, etc.&lt;br /&gt;- Nothing distracts the audience more than a cluttered slide.&lt;br /&gt;- Make sure your font size is greater than 24 point (so that audience can read it from the projector)&lt;br /&gt;- Use comics ... it not only conveys the information efficiently, but also makes the presentation playful. Though many of my colleagues disagree with this, I believe most audience wants to have fun even if it is a research presentation .. so lighten the mood, be creative and "artsy" with your slides :)&lt;br /&gt;&lt;br /&gt;"The more strikingly visual your presentation is, the more people will remember it. And more importantly they will remember you" - Paul Arden.&lt;br /&gt;Here are some slides that are well designed:&lt;br /&gt;&lt;a href="http://www.slideshare.net/jbrenman"&gt;http://www.slideshare.net/jbrenman&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/chrislandry"&gt;http://www.slideshare.net/chrislandry&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/gkawasaki"&gt;http://www.slideshare.net/gkawasaki&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/garr"&gt;http://www.slideshare.net/garr&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Step 3: Rehearse and re-rehearse&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;- Use both notes and slides.&lt;br /&gt;- Rehearse until you can remember and are comfortable with them. Imagine the worst case scenario that you lost your laptop, slides and all your notes ... and you have to give your presentation !!! ... If you can do that, you are ready :)&lt;br /&gt;- Here you also do the job of editing, if you feel certain slides are just fillers and can be removed ... be brutal and delete them.&lt;br /&gt;- Listen to &lt;a href="http://www.ted.com/talks"&gt;http://www.ted.com/talks&lt;/a&gt; for motivation on how to present.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Step 4: Delivery&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;- Go to the presentation room 15 min before the scheduled time and make sure your slides are compatible, projector works, ... Also, bring a bottle of water, just in case.&lt;br /&gt;- Leave the lights on and face the audience. People are there to see you, not read through the slides. Use wireless presenter so that you don't need to hide behind the podium/monitor.&lt;br /&gt;- Slides are not telepromptor ... so don't keep staring at the monitor ... connect with the audience.&lt;br /&gt;&lt;br /&gt;Remember these two quotes:&lt;br /&gt;- Every presentation has potential to be great; every presentation is high stakes; and every audience deserves the absolute best - Nancy Duarte.&lt;br /&gt;- You are presenting yourself rather than the topic. So, negative impact of poor presentation far exceeds failure of getting your point across ... Jean-Luc Lebrun&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6307907320686532858?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6307907320686532858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6307907320686532858' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6307907320686532858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6307907320686532858'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2011/09/presentation-on-online-aggregation-for.html' title='Presentation on Online Aggregation for Large MapReduce Jobs'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-4914125320991694104</id><published>2011-08-15T01:18:00.002-04:00</published><updated>2011-08-15T01:24:00.852-04:00</updated><title type='text'>Thinking in Probability</title><content type='html'>&lt;div&gt;This blogpost is based on a lecture I gave at Jacob Sir's classes yesterday. The intent of my lecture was to urge student to ask questions and read "stuff" beyond the textbook. To get the interest of the students, I started with 2 examples, which explained the dependent and independent events and also the need to stick to mathematical rigor rather than intuition.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First example was classic Monte Hall problem, which suprisingly none of my students had heard about. This was fortunate because this meant everyone would have to think about it on their own, rather than provide a prepared answer (thought-through by someone else). So, here is the problem: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are three doors D1, D2 and D3; behind two of them there is a goat and behind the other is a car. The objective of the game is to win a car. So, you have to guess which door to chose ... Does it make difference whether you chose D1, D2 or D3 ? ... The consensus was NO, because the Prob(win)=0.33 for each of the door. To make the problem interesting the game show host (who know which door has car and which doors has goats), opens one of the remaining door that has goat. He now asks you based on this information whether you would like to switch your earlier choice. For example, earlier you chose D1 and the game show host opens D2 and shows that it has goat. Now you can either stick to D1 or switch to D3. The real question we are interested in is:&lt;/div&gt;&lt;div&gt;Does switching the door make more sense or staying with the same door ? or It does not matter whether you chose D1 or D3.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Interesting but incorrect answers:&lt;/div&gt;&lt;div&gt;1. It does not matter whether you chose D1 or D3, because Prob(win) for each door is now 0.5&lt;/div&gt;&lt;div&gt;2. Staying with the door makes more sense, since we have increased the Prob(win) from 0.3 to 0.5&lt;/div&gt;&lt;div&gt;3. We really don't have plausible reason to switch, hence stay with the same door; especially since the game show host may want to trick us.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The correct answer is switching doubles the Prob(win), hence it makes more sense.&lt;/div&gt;&lt;div&gt;Consider the case where you don't switch:&lt;/div&gt;&lt;div&gt;Prob(win) = Prob(D1 = car) = 0.33 (The probability does not change because of an event outside its scope)&lt;/div&gt;&lt;div&gt;Now consider the case where you switch:&lt;/div&gt;&lt;div&gt;Prob(win) = Prob(D1 = goat) = 0.66&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The other way to understand the problem is by enumerating&lt;/div&gt;&lt;div&gt;D1  : C G G&lt;/div&gt;&lt;div&gt;D2  : G C G&lt;/div&gt;&lt;div&gt;D3  : G G C&lt;/div&gt;&lt;div&gt;Swap: G C C =&amp;gt; Prob(car) = 0.66&lt;/div&gt;&lt;div&gt;Stay: C G G =&amp;gt; Prob(car) = 0.33&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For people who chose the third incorrect answer, I asked them not to use information not provided in the problem and show as much restrain as possible to use intuition over logic. Deductive thinking says go from Step 2 to Step 3 only if there is a valid theorem, axiom, or logical reason (not intuition).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's move to the second problem: &lt;/div&gt;&lt;div&gt;Say I have a fair coin. I toss the coin four times and I get {Head, Head, Head, Head}, what will you bet on ?&lt;/div&gt;&lt;div&gt;Some students earlier based their answer on gambler's fallacy, stating that Tail is more likely since they have seen four consecutive heads. I then asked them to sit in circle and discuss with each other and then answer my question again. Through this exercise, I wanted them to learn the idea of collaboration to get an answer. And vola ... they came with the correct answer ... It doesnot matter whether we bet on head or tail, since the events are INDEPENDENT and hence each outcome is equally likely =&amp;gt; Prob(T5 | H1, H2, H3, H4) = Prob(T5) = 0.5&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, I gave them two different explanation of probability:&lt;/div&gt;&lt;div&gt;1. Deterministic view for probability (explained in &lt;a href="http://niketanblog.blogspot.com/2009/11/god-does-not-play-dice.html"&gt;my earlier blogpost&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;2. &lt;a href="http://en.wikipedia.org/wiki/Measure_(mathematics)"&gt;Measure theoretic approach&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After explaining the deterministic view, I emphasized the importance of probability while solving real life problem. For example, in coin tossing experiment, you are able to make some rational predictions, even though you don't know (hidden) parameters like initial angle of coin, weight and density of coin, shape of the coin, velocity of the coin, resistance due to air, characteristics of surface where it lands, etc ... Similarly, you can build simpler probabilistic model for complex scenarios like weather forecasting, stock prediction, traffic congestion, ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reference:&lt;/div&gt;&lt;div&gt;1. http://niketanblog.blogspot.com/2009/11/god-does-not-play-dice.html&lt;/div&gt;&lt;div&gt;2. http://en.wikipedia.org/wiki/Monty_Hall_problem&lt;/div&gt;&lt;div&gt;3. http://en.wikipedia.org/wiki/Gambler's_fallacy&lt;/div&gt;&lt;div&gt;4. http://en.wikipedia.org/wiki/Measure_(mathematics)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-4914125320991694104?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/4914125320991694104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=4914125320991694104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4914125320991694104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4914125320991694104'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2011/08/thinking-in-probability.html' title='Thinking in Probability'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-1211159570870053931</id><published>2011-03-15T17:31:00.003-04:00</published><updated>2011-03-15T20:20:56.555-04:00</updated><title type='text'>Nice post about Sachin Tendular after India-SA match</title><content type='html'>Remember when you failed an examination. How many people recall that, your class, friends, relatives? You failed to make it to the IITs or IIMs. Who remembers. How many times have you had the feeling of being the best in your class, school , university, state….., you failed to get a visa stamped this quarter…, you missed a promotion this year…, how did it feel when you dad told you in your early twenties that you are good for nothing…..and now your boss tell you the same...&lt;br /&gt;&lt;br /&gt;You keep introspecting and go into a shell when people most of whom don’t matter a dime in your life criticize you, back bite you, make fun of you. You are left sad and shattered and you cry when your own kin scoffs at you. You say I am feeling low today. It takes a lot from us to come out of these everyday situations and move on. A lot??? really?&lt;br /&gt;&lt;br /&gt;Now here’s a man standing on the third man boundary in the last over of a world cup match. The bowler just has to bowl sensibly to win this game. What the man at the boundary sees is 4 rank bad bowls bowled without any sense of focus, planning or regret. India loses, yet again in those circumstances when he has done just about everything right.&lt;br /&gt;He does not cry. Does not show any emotion. Just keeps his head down and leaves the field. He has seen these failures for 22 years now. And not just his class, relatives, friends but the whole world has seen these failures. We are too immature to even imagine what goes on in that mind and heart of his. That’s why I would never want to be Sachin.&lt;br /&gt;&lt;br /&gt;True, he has single handedly lifted to moods of this entire nation umpteen number of times. He has been an inspiration to rise above our mediocrity. Nobody who has ever lifted the willow even comes close to this man’s genius. His dedication and metal strength is unparallel. This is specially for those people who would have made fun of him again last night when India lost. They are people who are mediocre in their own lives. Who just scoff at others to create cheap fun. Who have lived in a small hole throughout their lives and thought they have seen the oceans.&lt;br /&gt;&lt;br /&gt;Think about the man himself. He is 37 years of age. He has been playing almost non stop for 22 years. The way he was running and diving around the field last night would have put 22 year olds to shame. The way he played the best opening quickies in the world was breathtaking. He just keeps getting better which is by the way humanly impossible. Its not for nothing that people call him GOD.&lt;br /&gt;But still I don’t want to be in those shoes. We struggle in keeping our monotonous lives straight, lives which affect a limited number of people. Imagine what would be the magnitude of the inner struggle for him, pain both mental and physical, tears that have frozen with time, knees and ankles and every other joint in the body that is either bandaged or needs to be attended to every night, eyes that don’t sleep before a big game, bats that have scored 99 international tons and still see expectations from a billion people.&lt;br /&gt;&lt;br /&gt;And he just converts those expectations into reality. We watch in awe, feel privileged.&lt;br /&gt;Well I think its time that his team realizes that enough is enough. They have an obligation, not towards their country alone but towards sachin. They need to win this one for him. Stay assured that he himself will still deliver and leave no stone unturned to make sure India wins this cup.&lt;br /&gt;This is not just a game, and he is not just a sportsman. Its much more than this. Words fail here.....&lt;br /&gt;&lt;br /&gt;-- Anonymous&lt;br /&gt;&lt;br /&gt;(This post is not written by Harsha Bhogle even though the source page said it was)&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-1211159570870053931?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/1211159570870053931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=1211159570870053931' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1211159570870053931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1211159570870053931'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2011/03/harsha-bhogles-note-after-ind-sa-match.html' title='Nice post about Sachin Tendular after India-SA match'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-8975167219025645657</id><published>2011-02-24T16:37:00.001-05:00</published><updated>2011-02-24T16:42:41.376-05:00</updated><title type='text'>Setting and running Hadoop 0.20.2</title><content type='html'>Step 1: Download and extract hadoop code&lt;br /&gt;wget http://mirror.cloudera.com/apache/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz&lt;br /&gt;Extract the files and go into that directory&lt;br /&gt;&lt;br /&gt;Step 2: Configure Hadoop&lt;br /&gt;vim ~/.bash_profile&lt;br /&gt;export JAVA_HOME=/usr/local/java/vms/java&lt;br /&gt;export HADOOP_HOME=/home/oa/hadoop-asterix/hadoop-0.20.2&lt;br /&gt;&lt;br /&gt;vim ${HADOOP_HOME}/conf/masters&lt;br /&gt;asterix-master&lt;br /&gt;&lt;br /&gt;vim ${HADOOP_HOME}/conf/slaves&lt;br /&gt;asterix-001&lt;br /&gt;asterix-002&lt;br /&gt;asterix-003&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim ${HADOOP_HOME}/conf/core-site.xml&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;fs.default.name&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;hdfs://10.122.198.195:54310&amp;lt;/value&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;The name of the default file system.  A URI whose&lt;br /&gt;  scheme and authority determine the FileSystem implementation.  The&lt;br /&gt;  uri's scheme determines the config property (fs.SCHEME.impl) naming&lt;br /&gt;  the FileSystem implementation class.  The uri's authority is used to&lt;br /&gt;  determine the host, port, etc. for a filesystem.&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim ${HADOOP_HOME}/conf/mapred-site.xml&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;mapred.job.tracker&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;10.122.198.195:54311&amp;lt;/value&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;The host and port that the MapReduce job tracker runs&lt;br /&gt;  at.  If &amp;quot;local&amp;quot;, then jobs are run in-process as a single map&lt;br /&gt;  and reduce task.&lt;br /&gt;  &amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim ${HADOOP_HOME}/conf/hdfs-site.xml&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;dfs.replication&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;2&amp;lt;/value&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;Default block replication.&lt;br /&gt;  The actual number of replications can be specified when the file is created.&lt;br /&gt;  The default is used if replication is not specified in create time.&lt;br /&gt;  &amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;dfs.name.dir&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;/mnt/hdfs/name_dir/&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;dfs.data.dir&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;/mnt/hdfs/data_dir/&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;dfs.datanode.address&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;0.0.0.0:54325&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;dfs.datanode.http.address&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;0.0.0.0:54326&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vim ${HADOOP_HOME}/conf/hadoop-env.sh&lt;br /&gt;export JAVA_HOME=/usr/local/java/vms/java&lt;br /&gt;&lt;br /&gt;Make sure the name and data directory are properly setup using following script. This also confirms that you can do passwordless ssh from master to slave machines.&lt;br /&gt;vim ${HADOOP_HOME}/commands.sh&lt;br /&gt;cd /mnt&lt;br /&gt;sudo mkdir hdfs&lt;br /&gt;cd hdfs/&lt;br /&gt;sudo mkdir name_dir&lt;br /&gt;sudo mkdir data_dir&lt;br /&gt;sudo chmod 777 -R /mnt/hdfs&lt;br /&gt;&lt;br /&gt;# Sync this file&lt;br /&gt;parallel-rsync  -p 6 -r -h ${HADOOP_HOME}/conf/slaves ${HADOOP_HOME} ${HADOOP_HOME}&lt;br /&gt;&lt;br /&gt;Then, run the above command.sh for every slave&lt;br /&gt;user_name=&amp;quot;ubuntu&amp;quot;&lt;br /&gt;command=&amp;quot;sh ${HADOOP_HOME}/commands.sh&amp;quot;&lt;br /&gt;for slaves_ip in $(cat ${HADOOP_HOME}/conf/slaves) &lt;br /&gt;do &lt;br /&gt;ssh ${user_name}@${slaves_ip} ${command}&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 3: Compile hadoop and sync slaves&lt;br /&gt;# Compile source code&lt;br /&gt;${ANT_HOME}/bin/ant&lt;br /&gt;${ANT_HOME}/bin/ant jar&lt;br /&gt;${ANT_HOME}/bin/ant examples&lt;br /&gt;&lt;br /&gt;# Sync slaves (see EC2 point 3 for installing parallel ssh)&lt;br /&gt;parallel-rsync  -p 6 -r -h ${HADOOP_HOME}/conf/slaves ${HADOOP_HOME} ${HADOOP_HOME}&lt;br /&gt;&lt;br /&gt;Step 4: Run hadoop&lt;br /&gt;${HADOOP_HOME}/bin/hadoop namenode -format&lt;br /&gt;${HADOOP_HOME}/bin/stop-all.sh&lt;br /&gt;${HADOOP_HOME}/bin/start-all.sh&lt;br /&gt;&lt;br /&gt;Check logs/ datanode namenode. Also see if the nodes are up, by using (any normal browser or) links http://master-ip:50070&lt;br /&gt;If you get &amp;quot;incompatible namespace error&amp;quot; in datanodes log, let me try deleting hdfs dir and restarting hdfs&lt;br /&gt;&lt;br /&gt;Step 4: Loading the HDFS&lt;br /&gt;If you are loading from:&lt;br /&gt;1. Local filesystem of master, use: either copyFromLocal or put&lt;br /&gt;bin/hadoop dfs -copyFromLocal /mnt/wikipedia_input/wikistats/pagecounts/pagecounts*  wikipedia_input&lt;br /&gt;&lt;br /&gt;2. Some other hdfs, use put&lt;br /&gt;&lt;br /&gt;3. Files on some other machine accessible via scp&lt;br /&gt;# Configure following variables. Keep space between parenthesis of array and each item (no comma).&lt;br /&gt;# If this script gives error like '4: Syntax error: &amp;quot;(&amp;quot; unexpected', try bash &amp;lt;script-name&amp;gt;&lt;br /&gt;# If that gives permission denied error, put name of directories instead of ${directories1[@]}&lt;br /&gt;user_name=&amp;quot;ubuntu&amp;quot;&lt;br /&gt;machine_name=&amp;quot;my_machine_name_or_ip&amp;quot;&lt;br /&gt;file_prefix=&amp;quot;pagecounts*&amp;quot;&lt;br /&gt;hdfs_dir=&amp;quot;wikipedia_input&amp;quot;&lt;br /&gt;directories1=( &amp;quot;/mnt/data/sdb/space/oa/wikidata/dammit.lt/wikistats/archive/2010/09&amp;quot; &amp;quot;/mnt/data/sdc/space/oa/wikidata/dammit.lt/wikistats/archive/2010/10&amp;quot; &amp;quot;/mnt/data/sdd/space/oa/wikidata/dammit.lt/wikistats/archive/2010/11&amp;quot; )&lt;br /&gt;for dir1 in ${directories1[@]}&lt;br /&gt;do&lt;br /&gt;        echo &amp;quot;--------------------------------------------&amp;quot;     &lt;br /&gt;        cmd=&amp;quot;ssh ${user_name}@${machine_name} 'ls ${dir1}/$file_prefix'&amp;quot;&lt;br /&gt;        echo &amp;quot;Reading files using: &amp;quot; $cmd&lt;br /&gt;        for file1 in `eval $cmd`&lt;br /&gt;        do&lt;br /&gt;                file_name1=${file1##*/}&lt;br /&gt;                echo -n $file_name1 &amp;quot; &amp;quot;&lt;br /&gt;                scp oa@asterix-001:$file1 .&lt;br /&gt;                bin/hadoop dfs -copyFromLocal $file_name1 $hdfs_dir&lt;br /&gt;                rm $file_name1&lt;br /&gt;        done&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;Step 5: Run your mapreduce program&lt;br /&gt;${HADOOP_HOME}/bin/hadoop jar ${HADOOP_HOME}/build/hadoop-hop-0.2-examples.jar wordcount tpch_input tpch_output&lt;br /&gt;&lt;br /&gt;Some tips for amazon EC2:&lt;br /&gt;1. Lot of times due to resource allocation policies, EC2 shutdowns your virtual machine (hence the assigned network) and master/slaves/namenodes/datanodes goes into fault tolerance mode and restart the jobs. You can set infinite time for heartbeat to tackle this error (This works because EC2 restarts you virtual machine after some time and there is no &amp;quot;real&amp;quot; failure, just temporary lags) by setting following into ${HADOOP_HOME}/conf/hdfs-site.xml&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;dfs.heartbeat.interval&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;6000&amp;lt;/value&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;Determines datanode heartbeat interval in seconds.&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt; &amp;lt;name&amp;gt;dfs.heartbeat.recheck.interval&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;lt;value&amp;gt;6000&amp;lt;/value&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;Determines datanode heartbeat interval in seconds.&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt; &amp;lt;name&amp;gt;heartbeat.recheck.interval&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;lt;value&amp;gt;6000&amp;lt;/value&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;If dfs... doesnot work&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt; &amp;lt;name&amp;gt;dfs.socket.timeout&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;lt;value&amp;gt;180000&amp;lt;/value&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;dfs socket timeout&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;2. Login into EC2 machine:&lt;br /&gt;EC2_KEYPAIR_DIR=&amp;quot;/home/np6/EC2&amp;quot;&lt;br /&gt;echo &amp;quot;\nEnter Public DNS of Master&amp;quot;&lt;br /&gt;read AMAZON_PUBLIC_DNS&lt;br /&gt;echo &amp;quot;If this doesnot work try, (exec ssh-agent bash) and then this command again&amp;quot;&lt;br /&gt;ssh-agent&lt;br /&gt;ssh-add ${EC2_KEYPAIR_DIR}/ec2-keypair.pem&lt;br /&gt;ssh ubuntu@$AMAZON_PUBLIC_DNS&lt;br /&gt;&lt;br /&gt;3. Setting up java and other programs on slaves from master&lt;br /&gt;# First install parallel ssh&lt;br /&gt;user_name=&amp;quot;ubuntu&amp;quot;&lt;br /&gt;command=&amp;quot;sudo apt-get install pssh&amp;quot;&lt;br /&gt;for slaves_ip in $(cat ${HADOOP_HOME}/conf/slaves) &lt;br /&gt;do &lt;br /&gt;ssh ${user_name}@${slaves_ip} ${command}&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;# Then install java (if you dont prefer openjdk)&lt;br /&gt;vim ${HADOOP_HOME}/commands.sh&lt;br /&gt;sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install sun-java6-jdk &lt;br /&gt;sudo update-java-alternatives -s java-6-sun&lt;br /&gt;echo &amp;quot;export JAVA_HOME=/usr/lib/jvm/java-6-sun&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;echo &amp;quot;export HADOOP_HOME=/home/ubuntu/hadoop&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;source ~/.bashrc&lt;br /&gt;echo &amp;quot;Check if the version of java is correct:&amp;quot;&lt;br /&gt;java -version&lt;br /&gt;&lt;br /&gt;# Sync this file&lt;br /&gt;parallel-rsync  -p 6 -r -h ${HADOOP_HOME}/conf/slaves ${HADOOP_HOME} ${HADOOP_HOME}&lt;br /&gt;&lt;br /&gt;Then, run the above command.sh for every slave&lt;br /&gt;user_name=&amp;quot;ubuntu&amp;quot;&lt;br /&gt;command=&amp;quot;sh ${HADOOP_HOME}/commands.sh&amp;quot;&lt;br /&gt;for slaves_ip in $(cat ${HADOOP_HOME}/conf/slaves) &lt;br /&gt;do &lt;br /&gt;ssh ${user_name}@${slaves_ip} ${command}&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;4. Setting up hadoop master and slaves for lazy person (I would recommend you follow above steps instead)&lt;br /&gt;cd ${HADOOP_HOME}/conf&lt;br /&gt;echo &amp;quot;\nEnter Public DNS of Master&amp;quot;&lt;br /&gt;read AMAZON_PUBLIC_DNS&lt;br /&gt;sed -e &amp;quot;s/&amp;lt;name&amp;gt;mapred.job.tracker&amp;lt;\/name&amp;gt; &amp;lt;value&amp;gt;[-[:graph:]./]\{1,\}&amp;lt;\/value&amp;gt;/&amp;lt;name&amp;gt;mapred.job.tracker&amp;lt;\/name&amp;gt; &amp;lt;value&amp;gt;${AMAZON_PUBLIC_DNS}&amp;lt;\/value&amp;gt;/&amp;quot; hadoop-site.xml &amp;gt; a1.txt&lt;br /&gt;sed -e &amp;quot;s/&amp;lt;name&amp;gt;fs.default.name&amp;lt;\/name&amp;gt; &amp;lt;value&amp;gt;[-[:graph:]./]\{1,\}&amp;lt;\/value&amp;gt;/&amp;lt;name&amp;gt;fs.default.name&amp;lt;\/name&amp;gt; &amp;lt;value&amp;gt;hdfs:\/\/${AMAZON_PUBLIC_DNS}:9001&amp;lt;\/value&amp;gt;/&amp;quot; a1.txt &amp;gt; hadoop-site.xml&lt;br /&gt;echo ${AMAZON_PUBLIC_DNS} &amp;gt; masters&lt;br /&gt;echo &amp;quot;\nEnter Slave string seperated with space (eg: domU-12-31-39-09-A0-84.compute-1.internal domU-12-31-39-0F-7E-61.compute-1.internal)&amp;quot;&lt;br /&gt;read SLAVE_STR&lt;br /&gt;echo $SLAVE_STR | sed -e &amp;quot;s/ /\n/&amp;quot;  &amp;gt; slaves&lt;br /&gt;&lt;br /&gt;Some other neat tricks:&lt;br /&gt;1. Replace default java temp directory:&lt;br /&gt;export JAVA_OPTS=&amp;quot;-Djava.io.tmpdir=/mnt/java_tmp&amp;quot;&lt;br /&gt;&lt;br /&gt;2. Setting number of open file limit to 99999&lt;br /&gt;sudo vi /etc/security/limits.conf&lt;br /&gt;ubuntu  soft    nofile  99999&lt;br /&gt;ubuntu  hard    nofile  99999&lt;br /&gt;*       soft    nofile  99999&lt;br /&gt;*       hard    nofile  99999&lt;br /&gt;sudo sysctl -p&lt;br /&gt;ulimit -Hn&lt;br /&gt;&lt;br /&gt;3. Checking the machines on the network&lt;br /&gt;cat /etc/hosts&lt;br /&gt;&lt;br /&gt;or naming machines as masters and slaves: vim /etc/hosts&lt;br /&gt;10.1.0.1        asterix-master&lt;br /&gt;127.0.0.1       localhost&lt;br /&gt;10.0.0.1        asterix-001&lt;br /&gt;10.0.0.2        asterix-002&lt;br /&gt;&lt;br /&gt;Checking machines ip address&lt;br /&gt;/sbin/ifconfig&lt;br /&gt;&lt;br /&gt;4. Configuring password-less ssh of master to slaves&lt;br /&gt;slave_user_name=&amp;quot;ubuntu&amp;quot;&lt;br /&gt;for slaves_ip in $(cat ${HADOOP_HOME}/conf/slaves) &lt;br /&gt;do &lt;br /&gt;ssh-copy-id -i $HOME/.ssh/id_rsa.pub ${slave_user_name}@${slaves_ip}&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;For more detailed step by step example, see &lt;br /&gt;http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-8975167219025645657?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/8975167219025645657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=8975167219025645657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8975167219025645657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8975167219025645657'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2011/02/setting-and-running-hadoop-0202.html' title='Setting and running Hadoop 0.20.2'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-1371978753813925657</id><published>2011-01-29T00:18:00.001-05:00</published><updated>2011-01-29T00:19:30.854-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Life's wonderful and unexpected moments (in no particular order)</title><content type='html'>1. Life changing speech from Dad or anyone you respect.&lt;br /&gt;2. Laughing so hard your face hurts.&lt;br /&gt;3. Helping someone when they need you the most.&lt;br /&gt;4. Falling in love.&lt;br /&gt;5. Hearing your favorite song on radio while driving and singing it unmelodiously.&lt;br /&gt;6. Lying in bed listening to the rain outside, sometimes even waking up to see it with hot cup of coffee.&lt;br /&gt;7. Mom's hot tea, birda, chicken, ... well almost anything she makes.&lt;br /&gt;8. A good conversation.&lt;br /&gt;9. Watching sunset/sunrise on the beach.&lt;br /&gt;10. Laughing at yourself.&lt;br /&gt;11. Laughing for absolutely no reason at all.&lt;br /&gt;12. Laughing at an inside joke.&lt;br /&gt;13. Being sincerely happy for someone.&lt;br /&gt;14. Midnight phone calls that last for hours.&lt;br /&gt;15. Having someone tell you that you're handsome/sexy/intelligent.&lt;br /&gt;16. Accidentally overhearing someone say something nice about you.&lt;br /&gt;17. Waking up and realizing you still have a few hours left to sleep.&lt;br /&gt;18. Your first kiss.&lt;br /&gt;19. Making new friends or spending time with old ones.&lt;br /&gt;20. Playing with a new puppy.&lt;br /&gt;21. Acting like teens once in a while.&lt;br /&gt;22. Having someone play with your hair.&lt;br /&gt;23. Having a wonderful dream.&lt;br /&gt;24. Road trips with friends.&lt;br /&gt;25. Nice swedish massage.&lt;br /&gt;26. Watching a really good movie cuddled up on a couch.&lt;br /&gt;27. Going to a really good concert.&lt;br /&gt;28. Going to a (football/cricket) game and shouting/dancing/cheering the whole time.&lt;br /&gt;29. Getting butterflies in your stomach every time you see that one person.&lt;br /&gt;30. Making eye contact with a cute stranger.&lt;br /&gt;31. Winning a really competitive game.&lt;br /&gt;32. Running into an old friend and realizing that some things (good or bad) never change.&lt;br /&gt;33. A long distance phone call.&lt;br /&gt;34. Taking a drive on a pretty road.&lt;br /&gt;35. Feeling that you get just before you think you are going to get into trouble and especially the one after you escaped it narrowly.&lt;br /&gt;36. Playing "pretend games" with kids.&lt;br /&gt;37. Visiting a temple/church/mosque or any place of worship.&lt;br /&gt;38. Hugging the person you love.&lt;br /&gt;39. Getting a creative idea which keeps you awake all night.&lt;br /&gt;40. Boating/Kayaking/Canoeing&lt;br /&gt;41. Camping/Trekking in nature park/beach.&lt;br /&gt;42. Having sex.&lt;br /&gt;43. Laying on grass and watching sky through leaves.&lt;br /&gt;44. Laying on beach and trying to count the stars.&lt;br /&gt;45. Watersports: Para-sailing, snorkelling, jet-skiing, scuba-diving.&lt;br /&gt;46. Swimming in the sea or lake (especially if you are not a good swimmer).&lt;br /&gt;47. Browsing through books in library or bookstores especially the fields other than your research/work.&lt;br /&gt;48. Reading a thought-provoking quote/paragraph.&lt;br /&gt;49. Learning and appreciating a new word.&lt;br /&gt;50. Learning a new language.&lt;br /&gt;51. Trying something for the first time.&lt;br /&gt;52. Going through the pain barrier in the gym.&lt;br /&gt;53. A hot shower.&lt;br /&gt;54. Trying new food/restaurants.&lt;br /&gt;55. Travelling to new places.&lt;br /&gt;56. Getting drunk or handling a drunk friend.&lt;br /&gt;57. Donating your blood/time/food/money/organ.&lt;br /&gt;58. Pursue any one topic till you attain excellence in it.&lt;br /&gt;59. Doing something against rationality and totally from the guts, especially people around don't believe in you.&lt;br /&gt;60. Teach a child something new.&lt;br /&gt;61. Forgiving someone.&lt;br /&gt;62. Buying something you always wanted for several years.&lt;br /&gt;63. Dancing senselessly in a party/marriage/procession.&lt;br /&gt;64. Realizing you are being loved and respected by few very important people in your life.&lt;br /&gt;65. Jogging outdoors while listening to your favorite music in a nice weather.&lt;br /&gt;66. Playing with colors during Holi.&lt;br /&gt;67. Be a part of human pyramid during Dahi-Handi.&lt;br /&gt;68. Burning fire-crackers during Diwali.&lt;br /&gt;69. Sitting/Standing by the door in the train.&lt;br /&gt;70. Riding a horse.&lt;br /&gt;71. Learning to play a musical instruments.&lt;br /&gt;72. Being thanked for a nice gesture.&lt;br /&gt;73. Being heartbroken.&lt;br /&gt;74. Running through sprinklers or walking in the rain.&lt;br /&gt;75. Playing with the snow.&lt;br /&gt;76. Feeling of calm in solitude or while meditating.&lt;br /&gt;77. Blood-rush to the brain while doing yoga.&lt;br /&gt;78. Dressing funny for a costume party.&lt;br /&gt;79. Feeling of levitation while jumping or catching a frishbee.&lt;br /&gt;80. Take-off and landing of an airplane.&lt;br /&gt;81. Sitting in the cockpit of Boeing 777.&lt;br /&gt;82. Buying your first car/house.&lt;br /&gt;83. Sailing on a yatch.&lt;br /&gt;84. Being married to an amazing person.&lt;br /&gt;85. Attending a major sporting event: the World Cup (Cricket/Soccer), Super Bowl, the Olympics, the U.S. Open.&lt;br /&gt;86. Throwing a huge party and inviting every one of your friends.&lt;br /&gt;87. Going to Disneyland/Seaworld and other them parks.&lt;br /&gt;88. Skydiving/Bungee jumping.&lt;br /&gt;89. Having your portrait/caricature painted.&lt;br /&gt;90. Watching the launch of the space shuttle.&lt;br /&gt;91. Spending a whole day eating junk food without feeling guilty.&lt;br /&gt;92. Performing in front of large crowd.&lt;br /&gt;93. Telling someone the story of your life, sparing no details.&lt;br /&gt;94. Rollerblading/Skating/Ice-skating/Paintball/shooting-range/go-karting&lt;br /&gt;95. Fishing in the sea.&lt;br /&gt;96. Being someone's mentor.&lt;br /&gt;97. Shower in a waterfall.&lt;br /&gt;98. Painting the walls of your own house.&lt;br /&gt;99. Being proud of someone else's achievement.&lt;br /&gt;100. Getting a lapdance from the cutest girl you have seen.&lt;br /&gt;101. Having an uncontrollable giggling fit at the worst possible moment.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-1371978753813925657?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/1371978753813925657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=1371978753813925657' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1371978753813925657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1371978753813925657'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2011/01/lifes-wonderful-and-unexpected-moments.html' title='Life&apos;s wonderful and unexpected moments (in no particular order)'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-8029857748786901885</id><published>2010-12-16T15:39:00.002-05:00</published><updated>2010-12-16T15:42:05.489-05:00</updated><title type='text'>Video on remembering periodic table</title><content type='html'>&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/644GvxmXj8s?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/644GvxmXj8s?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="385" width="640"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The intent of above video is to demonstrate the power of mnemonics.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more details: see &lt;a href="http://niketanblog.blogspot.com/2006/07/remembering-periodic-table.html"&gt;http://niketanblog.blogspot.com/2006/07/remembering-periodic-table.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-8029857748786901885?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/8029857748786901885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=8029857748786901885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8029857748786901885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8029857748786901885'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2010/12/video-on-remembering-periodic-table.html' title='Video on remembering periodic table'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-8268532516633298168</id><published>2010-12-07T18:53:00.001-05:00</published><updated>2010-12-07T18:58:45.969-05:00</updated><title type='text'>Moshe Vardi's talk on P v/s NP</title><content type='html'>Just attended a very interesting talk by Moshe Vardi on P v/s NP. Thought of summarizing it:&lt;br /&gt;- He introduced the concept &lt;a href="http://en.wikipedia.org/wiki/P_%28complexity%29"&gt;P (solvable in polynomial time)&lt;/a&gt; v/s &lt;a href="http://en.wikipedia.org/wiki/NP_%28complexity%29"&gt;NP (verifiable in polynomial time)&lt;/a&gt; and then compared them to "discovering v/s checking" a proof and which is easier. Say for some reason, P = NP, it would be as easy to discover the proof for a given problem than to read/check the proof given in textbook (as said by &lt;a href="http://scottaaronson.com/blog/?p=122"&gt;Scott Aaronson&lt;/a&gt;, everyone would be Gauss). Also gave some examples of P v/s &lt;a href="http://en.wikipedia.org/wiki/List_of_NP-complete_problems"&gt;NP problems&lt;/a&gt; (&lt;a href="http://en.wikipedia.org/wiki/Hamiltonian_path_problem"&gt;hamiltonian&lt;/a&gt;/&lt;a href="http://en.wikipedia.org/wiki/Eulerian_path"&gt;eulerian cycles&lt;/a&gt;) and some history.&lt;br /&gt;- Then introduced some basic concepts of finite-model theory, first order logic and k-SAT problem. Then discussed nomenclature of &lt;a href="http://michaelnielsen.org/polymath1/index.php?title=Deolalikar%27s_P%21%3DNP_paper#Issues_with_phase_transitions"&gt;'phase transition' wrt statistical physics&lt;/a&gt;, random k-SAT and XOR-objection on Deolalikar's paper.&lt;br /&gt;- If you don't intend to read Deolalikar's paper, here is what he is trying to say: "9-SAT cannot be in P" (in which he uses Immerman's theorem and random k-SAT), which clearly is not the case if we replace disjunction by XORs (which can be solved by Gauss elimination ... still have to think about this).  For more details read &lt;a href="http://rjlipton.wordpress.com/2010/08/12/fatal-flaws-in-deolalikars-proof/"&gt;Lipton's blog&lt;/a&gt;.&lt;br /&gt;- Then Vardi discusses the importance of P v/s NP:&lt;br /&gt;1. If we prove P = NP, still there can be problems of size (10n)^10000 which are in P but take way too long to solve.&lt;br /&gt;2. If we prove P != NP, again there can be NP problems of size n^(log log log n), which then becomes a way faster solution.&lt;br /&gt;- On his closing note, Vardi cites the industry SAT solvers. Though the industry SAT solvers are capable to solve SAT instances with million variables, there are some SAT instances with few hundred variables which are extremely difficult to solve. According to Vardi, identifying those difficult cases is way more important than proving SAT is P (or not in P).&lt;br /&gt;&lt;br /&gt;Now, let me quote few of his comments:&lt;br /&gt;=&gt; The argument is using induction to prove set of natural numbers is finite ... set of zero elements is finite, add a natural number to it and it will be finite, then add another and so on ... hence QED.&lt;br /&gt;=&gt; Are they same in theory and practice, well it depends ... in theory they are same, but in practice they are different.&lt;br /&gt;=&gt; Finite model theory ... number of variables ... arbitrary long, but STILL finite.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-8268532516633298168?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/8268532516633298168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=8268532516633298168' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8268532516633298168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8268532516633298168'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2010/12/moshe-vardis-talk-on-p-vs-np.html' title='Moshe Vardi&apos;s talk on P v/s NP'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-8733762045614109105</id><published>2010-11-03T18:58:00.003-04:00</published><updated>2010-11-03T22:01:25.972-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study Notes'/><category scheme='http://www.blogger.com/atom/ns#' term='Research'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>An Attempt to understand Machine Learning (Part 1)</title><content type='html'>I still remember the excitement when I took "Theory of Automata" course in my undergrad and was introduced to Turing machine. Few days after digging a little, I read Church-Turing thesis which stated "Every algorithms can be expressed in terms of Turing machine". This was like saying  ... well you have framework for understand everything you will eventually learn in your Masters or PhD. However, mapping everything to Turing machine kept on becoming difficult as I started doing research and particularly when I took Machine Learning course. Most people come up with different perception when they take Machine Learning or Artificial Intelligence course.&lt;br /&gt;&lt;br /&gt;Before I begin let me make you aware that Machine "Learning" is not same as human "learning". Humans learn something is a way that is not fully understood by scientific community. Let's say two persons X and Y see a mango tree. X has never seen a mango tree before so he will create a mental picture of it as a medium sized tree with green leaves. Y on other hand will create a mental image of tree and associate it with a mental image of mango or may be even with other senses like "it taste like mango shake". Any further discussion between X and Y will be based on their mental images and not reality. Note: information in mental images is less than information in reality and the reasons for this information loss are:&lt;br /&gt;- We cannot store or process all the information in the world (due to lack of 'infinite' focus)&lt;br /&gt;- Everyone filters information from reality according to their past experiences or beliefs.&lt;br /&gt;&lt;br /&gt;Hence, since it is virtually impossible to have two person with exactly same experiences, it is impossible to have two people with exactly same mental images or information. If we treat the mental image as an output or even intermediate variable that we use to spit out an output, there is no "common" theory/algorithm that will generate a common output for all humans for same problem. Hence, this huge diversity (which makes life interesting) makes humans difficult to understand.&lt;br /&gt;&lt;br /&gt;Most scientists (at least the neurologist/psychiatrist/psychologist) use abstraction (i.e. weed out details and rely on central theme i.e. "tree") to specify a theory/algorithm that applies to all. Yet there is another problem with human learning, humans don't learn or process with objects but with patterns. Furthermore, humans use association (and not exhaustive search through all the patterns) to interpret a situation. This process of association is somewhat random or at least extremely diverse (i.e. every person associates object A to object B using different sets of patterns and these patterns change over a period of time). Hence, it is extremely difficult to play around with such diversity using a single unifying theory. So, machine learning is not about building a machine that will always pass the "Turing test" for all the humans and in all the situations (though that is the ultimate goal of Machine Learning). (Btw, if you don't know about Turing test, read http://en.wikipedia.org/wiki/Turing_test.)&lt;br /&gt;&lt;br /&gt;Having said that, it is also very important not to be too humble while defining what Machine Learning is, especially if you compare every machine learning situation to Turing machine. Remember, assumptions for Turing machine are (that are not necessarily applicable to all Machine Learning problems):&lt;br /&gt;- Entire input is available at the beginning of computation.&lt;br /&gt;- No state is maintained between execution of two (same or different) programs.&lt;br /&gt;Especially interesting case where it is very difficult to define the problem in terms of Turing machine is Reinforcement Learning that we will study later. Also paper by Leeuwen and Wiedermann that discusses Turing machine in comparison to contemporary computing would be a nice read.&lt;br /&gt;&lt;br /&gt;By now I made two key points (or mental images :)):&lt;br /&gt;1. Machine Learning != Human Learning&lt;br /&gt;2. Machine Learning != Turing machine&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;1. The Turing Machine Paradigm in Contemporary Computing - Leeuwen and Wiedermann.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-8733762045614109105?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/8733762045614109105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=8733762045614109105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8733762045614109105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8733762045614109105'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2010/11/attempt-to-understand-machine-learning.html' title='An Attempt to understand Machine Learning (Part 1)'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-1192725380267371465</id><published>2010-07-22T12:20:00.003-04:00</published><updated>2010-07-22T12:24:59.658-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>The Last Lecture</title><content type='html'>Carnegie Mellon Professor Randy Pausch (Oct. 23, 1960 - July 25, 2008)  gave his last lecture at the university Sept. 18, 2007, before a packed  McConomy Auditorium. In his moving presentation, "Really Achieving Your  Childhood Dreams," Pausch talked about his lessons learned and gave  advice to students on how to achieve their own career and personal  goals.&lt;br /&gt;&lt;br /&gt;If you haven't seen the video, I highly recommend it: http://www.youtube.com/watch?v=ji5_MqicxSo&lt;br /&gt;&lt;br /&gt;These are some of the points that I found enlightening:&lt;br /&gt;- We don't beat the reaper by living longer, but by living well, and living fully — for the reaper will come for all of us. The question is: what do we do between the time we're born and the time he shows up.&lt;br /&gt;- It is not the things we do in life that we regret on our death bed. It is the things we do not. Find your passion and follow it.&lt;br /&gt;- The brick walls are there for a reason. The brick walls are not there to keep us out; the brick walls are there to give us a chance to show how badly we want something.&lt;br /&gt;- Experience is what you get when you didn't get what you wanted.&lt;br /&gt;- When you see yourself doing something badly and nobody's bothering to tell you anymore, that's a very bad place to be. Your critics are the ones telling you they still love you and care.&lt;br /&gt;- When you are pissed off at somebody, and you're angry at them, you just haven't given them enough time. Just give them a little more time — and they'll almost always impress you.&lt;br /&gt;- Never lose the child-like wonder. It's just too important. It's what drives us.&lt;br /&gt;- Don't complain; just work harder.&lt;br /&gt;- Show gratitude.&lt;br /&gt;- It's not about how to achieve your dreams. It's about how to lead your life. If you lead your life the right way, the karma will take care of itself. The dreams will come to you.&lt;br /&gt;- If I could only give three words of advice, they would be, "tell the truth." If I got three more words, I'd add: "All the time."&lt;br /&gt;- Do not tell people how to live their lives. Just tell them stories. And they will figure out how those stories apply to them.&lt;br /&gt;&lt;br /&gt;May GOD rest his soul and bless his family.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-1192725380267371465?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/1192725380267371465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=1192725380267371465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1192725380267371465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1192725380267371465'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2010/07/last-lecture.html' title='The Last Lecture'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6814040604719193591</id><published>2010-07-21T14:42:00.002-04:00</published><updated>2010-07-21T15:31:12.273-04:00</updated><title type='text'>Preparing a new Windows machine</title><content type='html'>I am writing this mail to serve as backup in case I have to create a fresh installation.&lt;br /&gt;&lt;br /&gt;I recently purchased a new laptop: Lenovo U350 for following reasons:&lt;br /&gt;cheap ($600 + tax because of a coupon), extremely light (around 4 pound), no CD/DVD drive (which makes it light. Also, I have rarely used it on my previous laptops and it seemed to be dead weight), 13" laptop (another reason why it's light, also 13" is almost about the right size between netbook and 15" laptop), 8 cell battery (with netbook like power-saving circuit, which makes the battery last "really" long), core 2 duo + 320 GB HDD + 4GB RAM (for my programming needs), VGA output (to connect to projector for presentations), other useful accessories (HDMI (to connect to my home TV), 3USB slots, kensington lock slot, webcam, mic/headphone slot, card reader)&lt;br /&gt;&lt;br /&gt;I have an iPhone 3Gs + a ubuntu machine (another reason I did not want a CD/DVD drive on my laptop) in office. So, I have installed following "free" softwares on new Windows 7 machine:&lt;br /&gt;1. Java: JDK, Netbeans, Eclipse&lt;br /&gt;2. Reader / Writer: Openoffice (for doc), Latex (Miktex, Texnicenter), Adobe Reader (for reading pdfs),  PDF X-Change Viewer (for marking/highlighting pdfs), CutePDF (for creating PDF), GSView (for PS), DJVU Viewer&lt;br /&gt;3. Educational: Mendeley (for maintaining my bibliography), Sciplore (for mindmaps -&gt; Using PDF X-Change I can create a printable version of my mindmap)&lt;br /&gt;4. Synchronization: Evernote (for notes), Dropbox + TortoiseSVN (for documents), Firefox + Xmarks (for bookmarks)&lt;br /&gt;5. Fun: VLC, Divx, Real player, Adobe Flash, iTunes&lt;br /&gt;6. Communication: GTalk, Zimbra (for managing my Personal + Rice mails)  ... Since I don't chat much I didnot install Yahoo Messenger and Skype.&lt;br /&gt;7. Protection: AVG Antivirus, Zone Alarm Firewall, Also created a restore point using Lenovo's once click software&lt;br /&gt;8. Others: R, WinSCP, Putty (Also will install Magic Disc in case I have to work with CD/DVD image)&lt;br /&gt;&lt;br /&gt;I also use Toodledo (for my TODO list) and Eternity (for time logging) on my iPhone.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6814040604719193591?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6814040604719193591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6814040604719193591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6814040604719193591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6814040604719193591'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2010/07/preparing-new-windows-machine.html' title='Preparing a new Windows machine'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-3565688393367966557</id><published>2010-06-12T13:49:00.003-04:00</published><updated>2010-06-12T20:36:23.618-04:00</updated><title type='text'>Long term research goals</title><content type='html'>&lt;a href="http://niketanblog.blogspot.com/2009/09/meta-phd.html"&gt;My previous post&lt;/a&gt; discussed why I decided to do PhD ? This post discusses what I want to do after my PhD. During Sigmod, I was thinking about a question that was troubling me last year: "Whether to apply for faculty position or industry job"&lt;br /&gt;&lt;br /&gt;Somehow "academia" seems more sense for me. So, I started asking people what are skills required to get a faculty position. Here is a summarized version of collective advices from my advisor and colleagues.&lt;br /&gt;&lt;br /&gt;I had a discussion with one of my friend in which I made a really important point. If you want to understand any major events (political, personal, social, ...), ask yourself a simple question: "How does this relate to money ?". This principle applies in academic hiring position as well. Whether or not you will be hired as a faculty or not will solely be decided by one fundamental question: "&lt;span style="font-weight: bold;"&gt;Can you get funding during and after your tenure ?&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;If the answer is "may be", then and then only the hiring committee will look into teaching skills and managerial/mentoring skills.&lt;br /&gt;&lt;br /&gt;Let's revisit the funding question. Your chances of funding will be significantly decided by three questions:&lt;br /&gt;1. Is your research worth funding ?&lt;br /&gt;2. How well can you present your research ?&lt;br /&gt;3. How many people know about you and your research ?&lt;br /&gt;&lt;br /&gt;The people who are involved in your hiring process will try to extrapolate the answers to these questions based on following indicators:&lt;br /&gt;a. They already know you or your advisor or have at least heard about you.&lt;br /&gt;b. You can give an &lt;span style="font-style: italic;"&gt;interesting&lt;/span&gt; 1 hour presentation on your &lt;span style="font-style: italic;"&gt;central research idea&lt;/span&gt;.&lt;br /&gt;c. You have good number of first author papers.&lt;br /&gt;d. You have recommendation letters from well known researchers from your field.&lt;br /&gt;&lt;br /&gt;Here is list of things I believe a PhD student can to to improve these indicators.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Find as soon as possible the topic you want to expertise in and publish as many &lt;span style="font-weight: bold;"&gt;first author&lt;/span&gt; papers as possible in that field.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Give as many (paper, poster, demo) &lt;span style="font-weight: bold;"&gt;presentation&lt;/span&gt;s as possible in well known conferences.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Collaborate and also go for research internship. Your mentors will be the ones who will write you the recommendations. It is necessary to have strong &lt;span style="font-weight: bold;"&gt;recommendation letters&lt;/span&gt; from people other than your advisor.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Be a (dummy) reviewer for conferences and also learn skills necessary for &lt;span style="font-weight: bold;"&gt;writing&lt;/span&gt; proposals.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Work &lt;/span&gt;as&lt;span style="font-weight: bold;"&gt; hard&lt;/span&gt; as you can and think about your research all the time.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;The corollary to above points are:&lt;br /&gt;1. Number of first author papers are more important than publication count.&lt;br /&gt;2. Bad papers may haunt you during hiring process.&lt;br /&gt;3. Know the list of current hot topics --&gt; also what "good" researchers are working on (Indexing)&lt;br /&gt;4. Nobody cares about your GPA, courses you took or your extra-curricular activities.&lt;br /&gt;5. You can give an interesting 1 hour presentation only if you have one research theme rather than papers scattered all over the field.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of course there are exceptions to all above rules. So, don't be hard on yourself :)&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-3565688393367966557?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/3565688393367966557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=3565688393367966557' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3565688393367966557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3565688393367966557'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2010/06/long-term-research-goals.html' title='Long term research goals'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-4224272843022098770</id><published>2010-03-27T01:41:00.001-04:00</published><updated>2010-03-27T01:41:47.691-04:00</updated><title type='text'>Pragmatism to Perspective</title><content type='html'>Work hard(???) at what others are doing&lt;br /&gt;Then tried to do it better&lt;br /&gt;Then tried to do something that many ppl were not doing&lt;br /&gt;However, road less travelled doesnot always make a difference.&lt;br /&gt;&lt;br /&gt;Doing something different might also not work&lt;br /&gt;Invested or may be wasted time on pointless, but different things&lt;br /&gt;Convinced myself that what I am doing is what I really want&lt;br /&gt;Then realized I didnot know what I really want.&lt;br /&gt;&lt;br /&gt;Dreams turned out to be too ambitious&lt;br /&gt;Or may be reality turned out to be too harsh&lt;br /&gt;Running away from truth seemed simpler choice&lt;br /&gt;Since rationality has hit a road-block.&lt;br /&gt;&lt;br /&gt;Answer hopefully is mixture of all:&lt;br /&gt;Cup of pragmatism and hardwork,&lt;br /&gt;a spoon of perspective and a entire jar of passion&lt;br /&gt;Also, bulk load of unknown spices from life.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-4224272843022098770?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/4224272843022098770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=4224272843022098770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4224272843022098770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4224272843022098770'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2010/03/pragmatism-to-perspective.html' title='Pragmatism to Perspective'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6817637861066499209</id><published>2010-01-29T20:37:00.003-05:00</published><updated>2010-01-29T20:44:25.109-05:00</updated><title type='text'>GTD Workflow</title><content type='html'>My updated GTD Workflow for academic research in pdf format for printing can be found at &lt;a href="http://datapath.cise.ufl.edu/projects/NiketanProject/browser/Notes/MySystem"&gt;my trac&lt;/a&gt;&lt;a href="http://datapath.cise.ufl.edu/projects/NiketanProject/browser/Notes/MySystem"&gt; repository&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is the jpeg version of the same:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_42Aregpjvg8/S2OOrrk8AbI/AAAAAAAADHA/HUQJOgKY-1c/s1600-h/GTDWorkflow.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 243px; height: 320px;" src="http://4.bp.blogspot.com/_42Aregpjvg8/S2OOrrk8AbI/AAAAAAAADHA/HUQJOgKY-1c/s320/GTDWorkflow.jpg" alt="" id="BLOGGER_PHOTO_ID_5432342456622121394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;1. Most GTD systems have feedback loop for Delegated tasks. I do not maintain that because most of my tasks (research/coursework) do not involve lot of people interactions / delegations.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6817637861066499209?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6817637861066499209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6817637861066499209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6817637861066499209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6817637861066499209'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2010/01/gtd-workflow.html' title='GTD Workflow'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_42Aregpjvg8/S2OOrrk8AbI/AAAAAAAADHA/HUQJOgKY-1c/s72-c/GTDWorkflow.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6910118183741473156</id><published>2009-11-19T02:43:00.002-05:00</published><updated>2009-11-19T03:11:11.427-05:00</updated><title type='text'>God does not play dice</title><content type='html'>The title of this blog post is a famous quote by Einstein. This post is not on GOD or religion, but on the concept of probability. This post is also based on the concept of &lt;a href="http://en.wikipedia.org/wiki/Determinism"&gt;determinism&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Hidden_variable"&gt;hidden variable theory&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;First let's differentiate between an experiment and an event. An event simply occurs, whereas in experiment, we observe the event. Let's call this process of observing to note the outcome of the event as information retrieval process i.e we are trying to get information about the event when it occurs. Some of the information retrieval processes are seeing, hearing, or using any other sensory organs, taking a picture, video/audio recording, etc.&lt;br /&gt;&lt;br /&gt;Note that information retrieval process may in someway disturb the event itself. See &lt;a href="http://en.wikipedia.org/wiki/Heisenberg_Uncertainty_Principle"&gt;Heisenberg uncertainty principle&lt;/a&gt;. But for sake of this thought experiment, imagine we have some special information retrieval process that gets information about the event or experiment, without in any way disturbing the experiment. (Note, quantum mechanics says this is not possible. But I say this is not possible with currently available information retrieval mechanism. May be in future we may have sophisticated information retrieval mechanism where it might be possible).&lt;br /&gt;&lt;br /&gt;Consider a experiment of rolling a dice. Do you think it is deterministic or probabilistic/stochastic ?&lt;br /&gt;&lt;br /&gt;The deterministic point of view says that if we knew weight of dice,  envirnomental factors (wind direction/strength, humidity), surface friction, density of dice, exact hand movements (angle of release, force during release), and many many other factors, then we can predict the exact outcome of the dice.&lt;br /&gt;&lt;br /&gt;Since we don't know many of this factors (i.e hidden variables), we cannot predict the exact outcome of the dice. To model these variables, so that we can &lt;span style="font-weight: bold;"&gt;get very close&lt;/span&gt; to the outcome and in some way make the experiment useful, we use the concept of probability.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6910118183741473156?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6910118183741473156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6910118183741473156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6910118183741473156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6910118183741473156'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/11/god-does-not-play-dice.html' title='God does not play dice'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6307779846894250765</id><published>2009-11-10T12:18:00.002-05:00</published><updated>2009-11-10T12:35:10.868-05:00</updated><title type='text'>Presentation on Map Reduce Merge</title><content type='html'>I gave a presentation yesterday (here is the &lt;a href="http://niketanpansare.googlepages.com/Map-Reduce-Merge.pptx"&gt;powerpoint slides&lt;/a&gt;) and I am writing this blog to just jot down things I have learnt.:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I need to improve my grammar. The best thing to do is give a practice talk before your presentation.&lt;/li&gt;&lt;li&gt;It is very important to add all the references in your presentation.&lt;/li&gt;&lt;li&gt;If the paper is about a system, always add big picture describing the modules and their interactions.&lt;/li&gt;&lt;li&gt;If possible try to prepare for a demo to get people excited about the topic.&lt;/li&gt;&lt;li&gt;Always be sure of what you tell in the presentation. If you don't know something, say that "I don't know or I am not sure of it".&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;In the flow of talk, I said "As a database researcher" when I meant to say "As a database person". It seemed pompous at that time and somehow I preferred not to correct it at that time. But in retrospective as I think about it, I am a database researcher, may be not a good one and definitely not an established one. But still, I spent considerable time of my daily time doing research and I believe that qualifies me to be a "researcher".&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6307779846894250765?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6307779846894250765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6307779846894250765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6307779846894250765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6307779846894250765'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/11/presentation-on-map-reduce-merge.html' title='Presentation on Map Reduce Merge'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-86496654793073269</id><published>2009-11-05T15:59:00.004-05:00</published><updated>2009-11-05T16:16:37.280-05:00</updated><title type='text'>SACHIN TENDULKAR - The Greatest (Video Collection)</title><content type='html'>What is your motivation ?&lt;br /&gt;Its the passion. I care about playing for India. Its being a dream and I am absolutely honored to do that for last 20 years. - Sachin Tendulkar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;First some of his great innings:&lt;/span&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LI1JnNkZmkc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/LI1JnNkZmkc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QXRkHervQJc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/QXRkHervQJc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FTUqBqU4f_E&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/FTUqBqU4f_E&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/33jG0DLRGfE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/33jG0DLRGfE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/k5p16t3c1MA&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/k5p16t3c1MA&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Second, his interviews:&lt;/span&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kh9LRUU8KTw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/kh9LRUU8KTw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cLoL0qgL4rs&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/cLoL0qgL4rs&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Third, Documentaries:&lt;/span&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Ra4veAS_r_I&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Ra4veAS_r_I&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ABgzgHyAzyc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/ABgzgHyAzyc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/N4MSsfvGBOs&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/N4MSsfvGBOs&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wQgK5cg2JvI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/wQgK5cg2JvI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kh9LRUU8KTw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/kh9LRUU8KTw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/k-7jL7o8kYs&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/k-7jL7o8kYs&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0s6x3EczrGg&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/0s6x3EczrGg&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Fourth, Best Quotes on Sachin:&lt;/span&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QXRkHervQJc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/QXRkHervQJc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;And lastly, his bowling:&lt;/span&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/i4W97QZ_IYE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/i4W97QZ_IYE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-86496654793073269?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/86496654793073269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=86496654793073269' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/86496654793073269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/86496654793073269'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/11/sachin-tendulkar-greatest-video.html' title='SACHIN TENDULKAR - The Greatest (Video Collection)'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-5302695963022426516</id><published>2009-10-02T16:55:00.002-04:00</published><updated>2009-10-02T16:57:22.106-04:00</updated><title type='text'>How to set up Trac + SVN on Ubuntu</title><content type='html'>sudo apt-get install trac&lt;br /&gt;sudo apt-get install libapache2-mod-python libapache2-mod-python-doc libapache2-svn&lt;br /&gt;&lt;br /&gt;# Create a directory where all your Trac projects will live&lt;br /&gt;sudo mkdir /var/lib/trac&lt;br /&gt;sudo mkdir /var/lib/svn&lt;br /&gt;&lt;br /&gt;# Usernames&lt;br /&gt;sudo htpasswd -cm /etc/svnauth urname&lt;br /&gt;sudo htpasswd -cm /etc/svnauth nextuserrname&lt;br /&gt;&lt;br /&gt;# Add following to /etc/svnaccess&lt;br /&gt;sudo vim /etc/svnaccess&lt;br /&gt;##################From here#########################&lt;br /&gt;&lt;br /&gt;[groups]&lt;br /&gt;developers = yourusername, nextusername&lt;br /&gt;[ / ]&lt;br /&gt;@developers = rw&lt;br /&gt;* = r&lt;br /&gt;&lt;br /&gt;##################Till here#########################&lt;br /&gt;&lt;br /&gt;# Add following to /etc/apache2/sites-available/default&lt;br /&gt;sudo vim /etc/apache2/sites-available/default&lt;br /&gt;##################From here#########################&lt;br /&gt;&lt;br /&gt;&lt;location&gt;&lt;br /&gt;&lt;br /&gt;   DAV svn&lt;br /&gt;   SVNParentPath /var/lib/svn&lt;br /&gt;&lt;br /&gt;   AuthType Basic&lt;br /&gt;   AuthName "Subversion Repository"&lt;br /&gt;   AuthUserFile /etc/svnauth&lt;br /&gt;   Require valid-user&lt;br /&gt;&lt;br /&gt;   AuthzSVNAccessFile /etc/svnaccess&lt;br /&gt;&lt;/location&gt;&lt;br /&gt;&lt;br /&gt;&lt;location&gt;&lt;br /&gt;&lt;br /&gt;   SetHandler mod_python&lt;br /&gt;   PythonHandler trac.web.modpython_frontend&lt;br /&gt;   PythonOption TracEnvParentDir /var/lib/svn&lt;br /&gt;   PythonOption TracUriRoot /trac&lt;br /&gt;&lt;br /&gt;   AuthType Basic&lt;br /&gt;   AuthName "Trac"&lt;br /&gt;   AuthUserFile /etc/svnauth&lt;br /&gt;   Require valid-user&lt;br /&gt;&lt;br /&gt;&lt;/location&gt;&lt;br /&gt;&lt;br /&gt;##################Till here#########################&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Statically set the users in envvars&lt;br /&gt;sudo vim /etc/apache2/envvars&lt;br /&gt;export APACHE_RUN_USER=www-data&lt;br /&gt;export APACHE_RUN_GROUP=www-data&lt;br /&gt;&lt;br /&gt;# Reload the configuration&lt;br /&gt;sudo /etc/init.d/apache2 reload&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Say ur project name is PhDProject&lt;br /&gt;sudo svnadmin create /var/lib/svn/PhDProject&lt;br /&gt;&lt;br /&gt;# Assign permissions&lt;br /&gt;sudo chown www-data:www-data -R /var/lib/trac&lt;br /&gt;sudo chown www-data:www-data -R /var/lib/svn&lt;br /&gt;&lt;br /&gt;# Create Trac with SVN&lt;br /&gt;sudo trac-admin /var/lib/trac/PhDProject/ initenv 'PhDProject' 'sqlite:db/trac.db' 'svn' '/var/lib/svn/PhDProject'&lt;br /&gt;&lt;br /&gt;# Add urself to developers group&lt;br /&gt;sudo trac-admin /var/lib/trac/PhDProject/ permission add urusername developers&lt;br /&gt;&lt;br /&gt;# Optional: Some cool plugin&lt;br /&gt;sudo easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk&lt;br /&gt;&lt;br /&gt;# Re-assign permission&lt;br /&gt;sudo chown www-data:www-data -R /var/lib/trac&lt;br /&gt;sudo chown www-data:www-data -R /var/lib/svn&lt;br /&gt;&lt;br /&gt;# Reload the configuration and restart&lt;br /&gt;sudo /etc/init.d/apache2 reload&lt;br /&gt;sudo /etc/init.d/apache2 restart&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://trac.edgewall.org/wiki/TracUbuntuMultipleProjects" target="_blank"&gt;http://trac.edgewall.org/wiki/&lt;wbr&gt;TracUbuntuMultipleProjects&lt;/a&gt;&lt;br /&gt;&lt;a href="http://anantgarg.com/2009/03/25/subversion-trac-multiple-projects/" target="_blank"&gt;http://anantgarg.com/2009/03/&lt;wbr&gt;25/subversion-trac-multiple-&lt;wbr&gt;projects/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-5302695963022426516?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/5302695963022426516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=5302695963022426516' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/5302695963022426516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/5302695963022426516'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/10/how-to-set-up-trac-svn-on-ubuntu.html' title='How to set up Trac + SVN on Ubuntu'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-3058544222510194425</id><published>2009-09-23T02:08:00.004-04:00</published><updated>2009-09-23T12:32:00.040-04:00</updated><title type='text'>Meta-PhD</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Why did I decide to do a PhD ? &lt;/span&gt;&lt;br /&gt;When Chris asked me to do PhD, I was dead sure about one thing: I want to be in US for at least next 4-5 years of my life. So, I had two choices in front of me: either accept the SDE job offer from Microsoft SQL Server Data Mining team or accept Chris' PhD offer. Somewhere in back of my mind, I wanted to do a PhD after 3-4 years of my job. Also, Microsoft SQL Server Data Mining team was a dream job at that time. However, I decided to go for PhD for following reasons (ranked in the order of importance):&lt;br /&gt;1. Why PhD?: For rest of my life, (except the daily chores and some personal issues), I want to THINK and DO certain work. I believe PhD sharpens (if not develops) the unbiased factual decision making process. It also helps you identify and enumerate some choices which you probably would not had thought of. (To be brutally honest, you don't need to do PhD for this, you just need to spent some time regularly acquiring this skills. PhD is one of the well-known an hopefully the simplest way to acquire them.)&lt;br /&gt;2. Why Chris?:&lt;br /&gt;a. I don't think I would find a better advisor than Chris (for "me"). There are two reasons for it. First, I am very comfortable communicating my ideas with him (both technical as well as non-technical). Second, Chris is an "awesome" researcher and I will learn a lot (and not just Database Research topics) from him.&lt;br /&gt;3. Why PhD then and not afterwards?: If I jumped into job, I don't think I would ever return to PhD. (May be I think once I am settled down with good income, I would not have the motivation to start studying).&lt;br /&gt;&lt;br /&gt;Though I have talked about skills that I would like to acquire in general, I would like to break it into my so-called mini-goals. The list below is a result of an hour long discussion with &lt;a href="http://www.cise.ufl.edu/%7Erjampani/"&gt;Ravi Jampani&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Mini-Goals for PhD&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;(ranked in the order of importance):&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Problem Identification Skills:&lt;/span&gt; Before I complete my PhD, this is the most important skill that I would like to acquire. For example, I should be able to identify potential problems in a given area after doing critical literature study.&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Critical Literature Study or Building your base:&lt;/span&gt; This includes accumulation, simplification, contextual categorization (eg: Mindmap with Mnemonics) of the knowledge in my research field. This skill should also facilitate a way of frequently revisiting this knowledge base and also doing periodic "Lateral thinking" on it.&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Multi-domain expertise:&lt;/span&gt; This means iterating skill 2 for multiple fields. It will also help for skill 1. The fields that I am interested in are Database, Data Mining &amp;amp; Machine Learning, Algorithms(with emphasis on Approximation and Randomization) and Mathematics (with emphasis on Statistics).&lt;br /&gt;4. &lt;span style="font-weight: bold;"&gt;Indexing:&lt;/span&gt; Finding out who are good researchers in your field and always knowing what they are working on (kind of like fan-following).&lt;br /&gt;5. Improve my &lt;span style="font-weight: bold;"&gt;communication skills&lt;/span&gt; and then &lt;span style="font-weight: bold;"&gt;writing skills&lt;/span&gt;. As of now, I ramble a lot and am almost never articulate in any discussion (though I believe that I am very persistent and continue the discussion atleast until I have communicated my ideas).&lt;br /&gt;6. &lt;span style="font-weight: bold;"&gt;Collaboration&lt;/span&gt; of research with other people: This is least important skill as of now.&lt;br /&gt;&lt;br /&gt;Useful advice from different researchers for new graduate students:&lt;br /&gt;1. Chris:&lt;br /&gt;- Indexing skill (i.e skill 4)&lt;br /&gt;- Do not do exactly what the good researchers are doing.&lt;br /&gt;2. Steven Weinberg:&lt;br /&gt;- Start doing research (instead of writing this blog post ;) ), and pick up what you needed to know as you went along.&lt;br /&gt;- Forgive yourself for wasting time. As you will never be sure which are the right problems to work on, most of the time that you spend at your desk will be wasted.&lt;br /&gt;3. Richard Hamming:&lt;br /&gt;- What are the most important problems in your field?, Are you working on one of them? and Why not?&lt;br /&gt;- 'Knowledge and productivity are like compound interest.' Given two people of approximately the same ability and one person who works ten percent more than the other, the latter will more than twice outproduce the former. The more you know, the more you learn it is very much like compound interest.&lt;br /&gt;- Luck favours the prepared mind (originally for Louis Pasteur). This essentially means that acquire skill 2 and 3 and you will soon find an opportunity to identify a 'good' potential problem and may be even solve it.&lt;br /&gt;3. Others:&lt;br /&gt;- There is not substitute for hard work. (Most important of all the advices)&lt;br /&gt;- Be Persistent: "I have not failed. I've just found 10,000 ways that won't work" - Thomas A. Edison&lt;br /&gt;- Explore as many areas as you can find. Read papers from different areas, not just your area.&lt;br /&gt;4. Self:&lt;br /&gt;- Be modest. The ego destroys the process of learning. Never disregard anyone who does not agree with you. Hear what he/she has to say and then try to think it through.&lt;br /&gt;- Be committed to your problem. even if you think its not important. Finish it first and then start working on what you think is important.&lt;br /&gt;- Think clearly, write clearly and talk clearly. Always talk with right amount of abstraction.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-3058544222510194425?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/3058544222510194425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=3058544222510194425' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3058544222510194425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3058544222510194425'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/09/meta-phd.html' title='Meta-PhD'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-4938399094204752936</id><published>2009-07-23T18:29:00.003-04:00</published><updated>2009-07-24T16:31:25.645-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Mistakes you can make in your first job</title><content type='html'>1. Not taking time to study the fundamentals.&lt;br /&gt;Eg: If you are expected to write C++ program, first learn C++. Take time to understand classes, inheritance, composition, etc.  By understand, I mean you not only need to know the syntax, but also imagine the scenarios in which they are useful (an which they are not). If you don't know STL or smart pointers, believe me you would be re-inventing some of its code &lt;span style="font-weight: bold;"&gt;inefficiently&lt;/span&gt; :) and your code might be prone to bugs.&lt;br /&gt;&lt;br /&gt;2. Google search before you ask your team lead or team members. This protects you from asking stupid questions or worse committing stupid mistakes.&lt;br /&gt;&lt;br /&gt;3. Under-estimating the importance of "requirement gathering" and "design" phase aka Start coding immediately. A good programmer &lt;span style="font-weight: bold;"&gt;always&lt;/span&gt; takes time to understand the problem and create a big picture of the project in his/her head.&lt;br /&gt;&lt;br /&gt;4. Trying too hard to present what you are not. It is extremely difficult to live a lie. Remember honesty should be coupled with extreme desire to improve yourself and also hard-work.&lt;br /&gt;&lt;br /&gt;5. Blaming others to improve your chances of staying in the job. Believe me nobody likes a snitch. If you commit a mistake, be brave and accept the responsibility. Be proactive and ask the mentor for what you can do to improve your chances instead.&lt;br /&gt;&lt;br /&gt;6. Disregarding "&lt;a href="http://en.wikipedia.org/wiki/Murphy%27s_law"&gt;Murphy's law&lt;/a&gt;" and not clearing your expectations with team members.&lt;br /&gt;If you think there is slightest possiblity of any team member to commit certain mistake or make certain wrong assumption, clarify it.&lt;br /&gt;&lt;br /&gt;7. Delving into details without getting the big picture (kind of re-statement of point 3). But this is so common that I need to mention it again.&lt;br /&gt;&lt;br /&gt;8. While using new software library, not differentiating the &lt;span style="font-weight: bold;"&gt;interface part&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;core problem part&lt;/span&gt; of the project.&lt;br /&gt;&lt;br /&gt;9. Ignoring the coding standards of company. If you company does not have one, try to follow the coding standards given in the book &lt;a href="http://www.amazon.com/Coding-Standards-Guidelines-Practices-Depth/dp/0321113586/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1248466010&amp;amp;sr=8-1"&gt;C++ Coding Standards: 101 Rules, Guidelines, and Best Practices&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;10. Reinventing the wheel in your design aka not knowing what are design patterns. If you don't know what design pattern mean read &lt;a href="http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1248466094&amp;amp;sr=1-2"&gt;Head First Design Pattern&lt;/a&gt;. If you have already taken course in design patterns, then revising &lt;a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1248466094&amp;amp;sr=1-1"&gt;Gang of Four book&lt;/a&gt; won't hurt.&lt;br /&gt;&lt;br /&gt;11.  Not using a version control. Chances are that you would break the working code when you are trying to add new functionality. If you are using a version control, then remember to add messages like "Working version 1.4", etc. and learn how to revert back to certain version. If you are not allowed to use version control, make copies whenever you implement and test new functionality.&lt;br /&gt;&lt;br /&gt;12. Not discussing your design with others aka school-children syndrome. Think of it this way rather than sharing your trade-secrets; by explaining or helping others, you improve your knowledge base.&lt;br /&gt;&lt;br /&gt;13. Not respecting chain of command. Always give credits to your mentors, even if you think they have not helped you in it. It is even worse, if you complain against your mentors to their managers. Remember habit 4 (Think Win-win) of &lt;a href="http://en.wikipedia.org/wiki/The_Seven_Habits_of_Highly_Effective_People"&gt;7 habits of highly effective people&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Two books you must read and re-read before joining the job,&lt;br /&gt;1. &lt;a href="http://www.amazon.com/Habits-Highly-Effective-People/dp/0743269519/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1248467298&amp;amp;sr=1-1"&gt;7 habits of highly successful people&lt;/a&gt; by Stephen Covey. (&lt;a href="http://en.wikipedia.org/wiki/The_Seven_Habits_of_Highly_Effective_People"&gt;Summary&lt;/a&gt;)&lt;br /&gt;2. &lt;a href="http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp/0142000280/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1248467306&amp;amp;sr=1-1"&gt;Getting things done&lt;/a&gt; by David Allen. (&lt;a href="http://en.wikipedia.org/wiki/Getting_Things_Done"&gt;Summary&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-4938399094204752936?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/4938399094204752936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=4938399094204752936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4938399094204752936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4938399094204752936'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/07/programming-mistakes-you-can-make-in.html' title='Mistakes you can make in your first job'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-1096263425046784837</id><published>2009-07-05T10:32:00.002-04:00</published><updated>2009-07-05T11:26:56.232-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Why are Indians targetted ?</title><content type='html'>I am writing this article in response to the article of same name in "&lt;a href="http://epaper.timesofindia.com/Default/Scripting/ArchiveView.asp?Daily=TOIM&amp;amp;AppName=1&amp;amp;login=default&amp;amp;pub=TOI&amp;amp;Skin=TOINEW&amp;amp;Enter=true&amp;amp;GZ=T&amp;amp;BaseHref=TOIM%2F2009%2F07%2F05&amp;amp;PageSize=5&amp;amp;Page=35"&gt;Times Life&lt;/a&gt;" (a section in the news paper Times of India) dated July 5th 2009. Most of the ideas are borrowed from this article.&lt;br /&gt;&lt;br /&gt;Let us first enumerate what could be the major reasons why Indians are targeted:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Racism and jealousy&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Cultural and Behavioral habits (the "Herd" mentality)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I would like to ignore the first reason and want to focus on the second reason only. Here are the points that support my assumption:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Serenity_Prayer"&gt;Serenity Prayer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;My experience in Gainesville, Florida suggests that most people are comfortable with working in a multi-cultural society. Some people may not like some sect of people, but it is usually due to personal preference rather than racism (It is important to note there is a difference. Just because I am from different race or ethinicity doesnot mean the other person has to like me. It is only when the other person starts humiliating you, it is racism).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Whenever there is a inter-relationship problem, it is better to start identifying the problem in yourself first and try to improve it rather than finding problems in others and blaming them for the situation.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Statistically speaking, I have seen most Indians hanging out with only Indians. There are several reasons for that:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;We do not want to put extra effort to understand the cultural diversity and to come up with a harmony of both Indian cultural system and the host cultural system. For example, most jokes we share with our "Indian" friends might not be funny when we share it with people from different race.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fear of rejection/intrusion: We do not take up the initiative to talk to a "non-Indian" colleague and bond with him/her. By bonding, I mean come up with a level of comfortableness, where both you and him/her can enjoy daily discussions (say sports, politics, family, etc ..). Usually, people take this initiative only when both parties have to spend a lot of time with each other as colleagues.&lt;/li&gt;&lt;li&gt;And many more ...&lt;/li&gt;&lt;/ol&gt;The bottom line is this ... Assume non-racist environment and ignore few "racist" wise-a**. It is very important to understand and respect the host culture. Put effort to find out common trivia regarding politics, sports, etc which might be a topic of daily discussions among peers. Participate in some (host-cultural) social events, such as going to a bar, bbq, etc. Always respect the host law. And be a good guest (i.e. make the host comfortable around you) !!!&lt;br /&gt;&lt;br /&gt;This article does not in any way suggest changing your value system. I am proud to be an Indian, and I will never change by values (eg. respecting elders, praying, helping others, etc ..). But it doesnot mean only the Indian value system is the best and all others are inferior. I think I could learn a lot from US and it is necessary to put effort to learn the host culture.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-1096263425046784837?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/1096263425046784837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=1096263425046784837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1096263425046784837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1096263425046784837'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/07/why-are-indians-targetted.html' title='Why are Indians targetted ?'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-989895817167597182</id><published>2009-06-21T15:22:00.003-04:00</published><updated>2009-06-21T15:44:09.932-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Shuffle functions</title><content type='html'>Very frequency asked question is "Write a program to shuffle a set of cards". There are many approaches to solve this problem.&lt;br /&gt;&lt;br /&gt;Almost all of them treat the set of cards as a list and write the program to shuffle the list.&lt;br /&gt;&lt;br /&gt;One approach is to emulate the human shuffling:&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=e6nJB_fiaEQ&amp;amp;feature=channel"&gt;Hindu Shuffle&lt;/a&gt;; &lt;a href="http://www.youtube.com/watch?v=XJs-d_AS-jE&amp;amp;feature=related"&gt;Riffle shuffle&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Other techniques are discussed in more details in &lt;a href="http://en.wikipedia.org/wiki/Shuffling"&gt;wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is an interesting but not optimal way(O(n lgn)) to shuffle a list:&lt;br /&gt;In Ocaml:&lt;br /&gt;&lt;blockquote&gt;let shuffle l1 =&lt;br /&gt;   let sortComparator x y =&lt;br /&gt;   (&lt;br /&gt;       match (Random.int 3) with&lt;br /&gt;       0 -&gt; 0&lt;br /&gt;       | 1 -&gt; -1&lt;br /&gt;       | 2 -&gt; 1&lt;br /&gt;       | _ -&gt; failwith "Error in shuffle"&lt;br /&gt;   )&lt;br /&gt;   in&lt;br /&gt;   List.sort sortComparator l1  &lt;br /&gt;;;  &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;C++ Code:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;template &amp;lt; class T &amp;gt;&lt;br /&gt;bool sortComparator(T x, T y){&lt;br /&gt;   if(rand % 2 == 0)&lt;br /&gt;       true;&lt;br /&gt;   else&lt;br /&gt;       false              &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;template &amp;lt; class T &amp;gt;&lt;br /&gt;vector &amp;lt; t &amp;gt; shuffle(vector &amp;lt; t &amp;gt; cards) {&lt;br /&gt;   sort(cards.begin(), cards.end(), sortComparator);  &lt;br /&gt;   return cards;&lt;br /&gt;}&lt;br /&gt;&lt;/t&gt;&lt;/t&gt;&lt;/class&gt;&lt;/class&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-989895817167597182?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/989895817167597182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=989895817167597182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/989895817167597182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/989895817167597182'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/06/shuffle-functions.html' title='Shuffle functions'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-1957124951725545758</id><published>2009-06-19T19:03:00.002-04:00</published><updated>2009-06-19T19:30:32.511-04:00</updated><title type='text'>Kindle DX review</title><content type='html'>&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;1. PDF capability:&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;For pdf documents, treat Kindle DX as a READING device and nothing else.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;Does not Support: Note-taking, highlighting, zooming(both the document and font ) capability and has bad searching capability. Also there is no dictionary for PDFs&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;But it serves the purpose of READING - Resolution is good, it does not strain your eyes, and landscape view is good enough for most of my documents. Also, I prefer to take &lt;a href="http://dept.sfcollege.edu/drc/Independence%20Cafe/Active%20Notetaking.htm"&gt;active notes&lt;/a&gt; rather than just higlight, it's not a big deal for me.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;Transferring PDF - very easy ... just connect to USB and copy your PDFs to Kindle.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;a href="http://www.kindlezen.com/2009/06/pdf-and-the-kindle-dx-is-amazon-serious/"&gt;Steve Bain&lt;/a&gt; has more critical review on it.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;2. Weight:&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;Extremely light atleast for me.&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;3. Durability:&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;Though material looks good, please don't expect it to be extremely sturdy. Hence I recommend using cover(either leather or neophryne) while traveling.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;4. Battery life:&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;Extremely good. I haven't tested it very much but just turn off whispernet and you should expect 4 weeks of battery life&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;5. Choices of Books:&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;Amazon is undoubtedly the best choice.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;6. Awesome feature:&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;Wikipedia is free .... anywhere in US !!!&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;7. Cost:&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;If you think $359 is OK for Kindle 2, Kindle DX is definitely worth $489.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;If you donot like to read research papers on computer, you will save on great deal of printing and "trees" :)&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;As an engineering student, you will save a huge amount of money and space on printed books if you chose to buy Kindle DX.&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;Bottom line:&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;If you cannot live without highlighting and note-taking, DON'T BUY KINDLE DX ... go for Sony PRS-700(if you like text notes) or iRex Iliad(if you absolutely cannot live without handwritten notes)&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-family: Tahoma; font-size: 10pt;"&gt;If you think iRex is too costly (apart from the fact it has no support in US, you have to ship iRex to Germany) and it you want to READ pdfs without straining you eyes, definetely go for Kindle DX.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-1957124951725545758?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/1957124951725545758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=1957124951725545758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1957124951725545758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1957124951725545758'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/06/kindle-dx-review.html' title='Kindle DX review'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-5042003805204447317</id><published>2009-06-18T14:57:00.002-04:00</published><updated>2009-06-18T15:14:59.087-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Swine Flu</title><content type='html'>CDC has announced H1N1 flu as pandemic disease and my parents (back in India) were worried. Here are the few facts(as of June 12, 2009) that might ease their concern:&lt;br /&gt;1. Respiratory mask are advised only to people with high risk of influenza (See table 1 at &lt;a href="http://www.cdc.gov/h1n1flu/masks.htm"&gt;http://www.cdc.gov/h1n1flu/masks.htm&lt;/a&gt;)&lt;br /&gt;Most of young college graduates do not fall into this category (unless you are studying health care or related fields). See &lt;a href="http://www.cdc.gov/h1n1flu/masks.htm#footnote3"&gt;http://www.cdc.gov/h1n1flu/masks.htm#footnote3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Number of confirmed or probable cases: 17,855&lt;br /&gt;Number of Deaths: 44&lt;br /&gt;&lt;br /&gt;Well, if you are an Indian, I guess you are pretty much immune to it (See &lt;a href="http://www08.wolframalpha.com/input/?i=malaria+india"&gt;Statistics of Malaria for India&lt;/a&gt;)&lt;br /&gt;&lt;pre&gt;number of deaths | 9352 deaths per year&lt;br /&gt;cause of death probability | 1 in 1110 ~~ 0.090%&lt;br /&gt;rate of death | 1 death per 100000 persons per year&lt;br /&gt;DAILY | 843 738 life years lost per year&lt;br /&gt;DAILY rate | 80 life years per 100000 persons per year&lt;br /&gt;&lt;/pre&gt;For US, Statistics for Malaria are:&lt;br /&gt;&lt;pre&gt;number of deaths | 3 deaths per year&lt;br /&gt;cause of death probability | 1 in 768898 ~~ 0.00013%&lt;br /&gt;rate of death | 0.0011 deaths per 100000 persons per year&lt;br /&gt;DALY | 57 life years lost per year&lt;br /&gt;&lt;/pre&gt;Well, you can see statistically if you were not paranoid about fever or malaria or cold/cough in India (or US), you need not be worried about Swine flu either.&lt;br /&gt;&lt;br /&gt;However, here are prescribed precautions by CDC for Swine flu:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cover your nose and mouth with a tissue when you cough or sneeze.  Throw the tissue in the trash after you use it. &lt;/li&gt;&lt;li&gt;Wash your hands often with soap and water, especially after you cough or sneeze. Alcohol-based hand cleaners are also effective. &lt;/li&gt;&lt;li&gt;Avoid touching your eyes, nose or mouth. Germs spread this way. &lt;/li&gt;&lt;li&gt;Try to avoid close contact with sick people. &lt;/li&gt;&lt;li&gt;If you are sick with a flu-like illness, stay home for 7 days after your symptoms begin or until you have been symptom-free for 24 hours, whichever is longer. This is to keep from infecting others and spreading the virus further. &lt;/li&gt;&lt;li&gt;Follow public health advice regarding school closures, avoiding  crowds and other social distancing measures.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;Reference: Statistics are gathered from &lt;a href="http://www08.wolframalpha.com/"&gt;Wolfram Alpha&lt;/a&gt; and &lt;a href="http://www.cdc.gov/"&gt;CDC&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-5042003805204447317?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/5042003805204447317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=5042003805204447317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/5042003805204447317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/5042003805204447317'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/06/swine-flu.html' title='Swine Flu'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-894173438372393893</id><published>2009-05-30T13:14:00.003-04:00</published><updated>2009-05-30T13:31:53.976-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Research'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Research Notebook</title><content type='html'>After experimenting a bit with Evernote, I decided to move to OneNote for following reasons:&lt;br /&gt;1. Evernote has no drawing tools. I like to draw and scribble a lot.&lt;br /&gt;2. I get free subscription of OneNote as a student, whereas I need to pay for Evernote for some additional features like image recognition etc ... Though I don't need them right now, it would be handy to have them.&lt;br /&gt;3. Onenote allows you to integrate audio and video notes, whereas Evernote is simply text based.&lt;br /&gt;4. Onenote allows your notes to be arranged in hierachical folders, whereas Evernote is huge collections of notes with tags. Though I like the tagging feature (which Onenote also has), I don't think it is enough to organize my notes.&lt;br /&gt;&lt;br /&gt;Though I think Synchronize feature in Evernote is awesome, I use Webexport + Publish as PDF feature in OneNote may be once a week. However, webediting feature in Evernote has no counterpart for OneNote, I will have to live with it until Office 2010. (I donot think LiveMesh solves this problem as I use Ubuntu on my lab machines)&lt;br /&gt;&lt;br /&gt;I have used &lt;a href="http://onwebber.codeplex.com/"&gt;OneNote Web Exporter plugin&lt;/a&gt; to export my Research Notes for webview.&lt;br /&gt;&lt;br /&gt;For now (until UF doesnot close my CISE account), I will maintain my notes at:&lt;br /&gt;&lt;a href="http://www.cise.ufl.edu/%7Enpansare/webview.html"&gt;http://www.cise.ufl.edu/~npansare/webview.html&lt;/a&gt; and PDF at &lt;a href="http://www.cise.ufl.edu/%7Enpansare/ResearchNotebook.pdf"&gt;http://www.cise.ufl.edu/~npansare/ResearchNotebook.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you are using Firefox, you need to have Mozilla Archive Format add-on (since it is in MHT format). However, it still doesnot display properly. I recommend  IE  for webview or if you are a linux user, view the PDF.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-894173438372393893?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/894173438372393893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=894173438372393893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/894173438372393893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/894173438372393893'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/05/research-notebook.html' title='Research Notebook'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-7070301799478621954</id><published>2009-04-26T12:00:00.002-04:00</published><updated>2009-04-26T12:16:43.894-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>My bookmarks, research papers, books</title><content type='html'>I use xmarks to synchronize my bookmarks since I have both Windows and Ubuntu machines: &lt;a href="http://share.xmarks.com/folder/bookmarks/W6kXue0nMH"&gt;http://share.xmarks.com/folder/bookmarks/W6kXue0nMH&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am experimenting with Zotero: &lt;a href="https://www.zotero.org/niketanpansare/21978/items"&gt;https://www.zotero.org/niketanpansare/21978/items&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have missed by previous post:&lt;br /&gt;I am using citeseer for managing the papers I read: &lt;a href="http://www.citeulike.org/user/niketan"&gt;http://www.citeulike.org/user/niketan&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is a list of books I would like to read: &lt;a href="http://spreadsheets.google.com/pub?key=pRiihxKnNDBmNK4-OrOY0ZA"&gt;http://spreadsheets.google.com/pub?key=pRiihxKnNDBmNK4-OrOY0ZA&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-7070301799478621954?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/7070301799478621954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=7070301799478621954' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7070301799478621954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7070301799478621954'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/04/my-bookmarks-research-papers-books.html' title='My bookmarks, research papers, books'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6200264887623961642</id><published>2009-04-20T12:33:00.005-04:00</published><updated>2009-04-20T12:54:32.576-04:00</updated><title type='text'>You and Your Research by Richard Hamming</title><content type='html'>&lt;div&gt;After doing a little bit of Google search, I found following links:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Transcript: &lt;a href="http://www.cs.virginia.edu/~robins/YouAndYourResearch.html"&gt;http://www.cs.virginia.edu/~robins/YouAndYourResearch.html&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.0030213"&gt;10 Simple Rules from above transcript&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Video1 :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;object width="420" height="339"&gt;&lt;param name="movie" value="http://www.dailymotion.com/swf/x8qsc4"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.dailymotion.com/swf/x8qsc4" type="application/x-shockwave-flash" width="420" height="339" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.dailymotion.com/swf/x8qsc4"&gt;Richard Hamming Talk - part 1&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Video 2:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;object width="420" height="339"&gt;&lt;param name="movie" value="http://www.dailymotion.com/swf/x8qsg7"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.dailymotion.com/swf/x8qsg7" type="application/x-shockwave-flash" width="420" height="339" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.dailymotion.com/swf/x8qsg7"&gt;Richard Hamming Talk - part 2&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;Video 3:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;object width="420" height="339"&gt;&lt;param name="movie" value="http://www.dailymotion.com/swf/x8qsk0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.dailymotion.com/swf/x8qsk0" type="application/x-shockwave-flash" width="420" height="339" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.dailymotion.com/swf/x8qsk0"&gt;Richard Hamming Talk - part 3&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Enjoy !!!&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_42Aregpjvg8/SeylTZD9Z2I/AAAAAAAACMk/p_80DJIBePw/s1600-h/calvin-intelligent-life.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 207px;" src="http://1.bp.blogspot.com/_42Aregpjvg8/SeylTZD9Z2I/AAAAAAAACMk/p_80DJIBePw/s320/calvin-intelligent-life.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5326814211836045154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is another good video series on Science:&lt;br /&gt;&lt;a href="http://leeharrison.wordpress.com/2008/03/16/part-1-of-a-great-science-series/"&gt;Richard Dawkins - Breaking the Science Barrier&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6200264887623961642?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6200264887623961642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6200264887623961642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6200264887623961642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6200264887623961642'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/04/you-and-your-research-by-richard.html' title='You and Your Research by Richard Hamming'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_42Aregpjvg8/SeylTZD9Z2I/AAAAAAAACMk/p_80DJIBePw/s72-c/calvin-intelligent-life.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-5904133092824971881</id><published>2009-04-13T03:37:00.001-04:00</published><updated>2009-04-13T03:38:26.170-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Time Management tips by Randy Pausch</title><content type='html'>&lt;p class="MsoNormal"&gt;1. Create a list of 100 things you want to do in life.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;2. Ask yourself each time you are doing a thing --&gt; why am I doing this ? Use the list for reference.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;3. Also make sure you focus on critical few, rather than trivial many.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;4. If you can dream it, you can do it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;5. Plan each day, each week, each semester. You can change your plan but you need to have one to change it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;6. TODO List - Break things down into little steps. Do the ugliest thing first.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;7. Covey's four quadrant TODO:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid black .5pt;  mso-border-themecolor:text1;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"&gt;  &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;   &lt;td width="213" valign="top" style="width:159.6pt;border:solid black 1.0pt;   mso-border-themecolor:text1;mso-border-alt:solid black .5pt;mso-border-themecolor:   text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="213" valign="top" style="width:159.6pt;border:solid black 1.0pt;   mso-border-themecolor:text1;border-left:none;mso-border-left-alt:solid black .5pt;   mso-border-left-themecolor:text1;mso-border-alt:solid black .5pt;mso-border-themecolor:   text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;Due Soon&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="213" valign="top" style="width:159.6pt;border:solid black 1.0pt;   mso-border-themecolor:text1;border-left:none;mso-border-left-alt:solid black .5pt;   mso-border-left-themecolor:text1;mso-border-alt:solid black .5pt;mso-border-themecolor:   text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;Not Due Soon&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:1"&gt;   &lt;td width="213" valign="top" style="width:159.6pt;border:solid black 1.0pt;   mso-border-themecolor:text1;border-top:none;mso-border-top-alt:solid black .5pt;   mso-border-top-themecolor:text1;mso-border-alt:solid black .5pt;mso-border-themecolor:   text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;Imp&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="213" valign="top" style="width:159.6pt;border-top:none;border-left:   none;border-bottom:solid black 1.0pt;mso-border-bottom-themecolor:text1;   border-right:solid black 1.0pt;mso-border-right-themecolor:text1;mso-border-top-alt:   solid black .5pt;mso-border-top-themecolor:text1;mso-border-left-alt:solid black .5pt;   mso-border-left-themecolor:text1;mso-border-alt:solid black .5pt;mso-border-themecolor:   text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="213" valign="top" style="width:159.6pt;border-top:none;border-left:   none;border-bottom:solid black 1.0pt;mso-border-bottom-themecolor:text1;   border-right:solid black 1.0pt;mso-border-right-themecolor:text1;mso-border-top-alt:   solid black .5pt;mso-border-top-themecolor:text1;mso-border-left-alt:solid black .5pt;   mso-border-left-themecolor:text1;mso-border-alt:solid black .5pt;mso-border-themecolor:   text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:2;mso-yfti-lastrow:yes"&gt;   &lt;td width="213" valign="top" style="width:159.6pt;border:solid black 1.0pt;   mso-border-themecolor:text1;border-top:none;mso-border-top-alt:solid black .5pt;   mso-border-top-themecolor:text1;mso-border-alt:solid black .5pt;mso-border-themecolor:   text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;Not Imp&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="213" valign="top" style="width:159.6pt;border-top:none;border-left:   none;border-bottom:solid black 1.0pt;mso-border-bottom-themecolor:text1;   border-right:solid black 1.0pt;mso-border-right-themecolor:text1;mso-border-top-alt:   solid black .5pt;mso-border-top-themecolor:text1;mso-border-left-alt:solid black .5pt;   mso-border-left-themecolor:text1;mso-border-alt:solid black .5pt;mso-border-themecolor:   text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="213" valign="top" style="width:159.6pt;border-top:none;border-left:   none;border-bottom:solid black 1.0pt;mso-border-bottom-themecolor:text1;   border-right:solid black 1.0pt;mso-border-right-themecolor:text1;mso-border-top-alt:   solid black .5pt;mso-border-top-themecolor:text1;mso-border-left-alt:solid black .5pt;   mso-border-left-themecolor:text1;mso-border-alt:solid black .5pt;mso-border-themecolor:   text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;8. Clean up the desk. Focus on one thing at a time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;9. Touch one piece of paper at a time. Your inbox is not your TODO list.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;10. Recommended - Atleast 2 screens, Speaker phone, Desk space to work, Desk near window &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;11. Write - Thank you notes. Because it is rare. Gratitude is extremely helpful. (One Minute manager: Killer Whale Eg.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;12. Post-IT Notes&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;13. Say NO graciously. I will do it if you don't find anyone else.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;14. Find your creative time and defend it ruthlessly. Spend it alone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;15. Find your dead time and schedule meetings, phone call during that time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;16. Buy a earphone piece for Iphone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;17. Keep a box for the person, then when the box is full, interrupt the person and tell him/her the things you have for them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;18. Voicemail: "... I encourage you to send me a mail @ ..".&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;19. Time journal. Update it every 1/2 hours. Monitor yourself after 3 days and 2 weeks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;20. Make a fake class - Take a book and go to library.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;21. Doing things at last moment or Thinking Work expands to fill time, hence do it at end ---&gt; Stress + Expensive (Work Hard). Better Approach: Make a fake deadline.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;22. Treat the people well. (Do dirty work yourself).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;23. If you want someone to get things done: Give them a specific thing to do, a specific date/time and specific reward or penalty.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;24. Send a mail after a conversation so that there is no confusion.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;25. Ask people to find out their agenda before meeting. One person is assigned who writes down decision made in the meeting and mail it to everyone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;26. Do not delete the email. Save them for later reference.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;27. If a person has not responded in 48 hours, its OK to nag them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;28. When you are on vacation, keep a vacation responder. Note: Its not a vacation, if you read email.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;29. Kill the television. Average person watches the TV for 28 hours a week.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;30. Exchange money for time. Get other people to do trivial work for you. Eg: mowing the lawn, ...&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;31. You always have time for eating, sleeping and exercise. Never take time out of those.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;32. Never break a promise; Call and renegotiate the deadline if you think you cannot finish it by deadline.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;33. Feedbacks Loops: Ask in confidence.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;34. Get a PDA if you don't have it and use it wisely.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I donot have brain to spare for things computers can do for me - todo list, calendars&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Recommended Books:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;1. One minute manager &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;2. 7 habits of highly successful people.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-5904133092824971881?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.youtube.com/watch?v=oTugjssqOT0&amp;feature=PlayList&amp;p=BCD362F95A724D1E&amp;index=16' title='Time Management tips by Randy Pausch'/><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/5904133092824971881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=5904133092824971881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/5904133092824971881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/5904133092824971881'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/04/time-management-tips-by-randy-pausch.html' title='Time Management tips by Randy Pausch'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-4990348324590422738</id><published>2009-03-17T17:49:00.005-04:00</published><updated>2009-03-17T18:11:02.257-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mnemonics'/><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Creating flash cards using Latex</title><content type='html'>&lt;div&gt;Installation (in Ubuntu):&lt;/div&gt;&lt;div&gt;1. Install Kile&lt;/div&gt;&lt;div&gt;2. apt-get latex texlive and texlive-latex-extra packages&lt;/div&gt;&lt;div&gt;3. Modify the /usr/share/texmf-texlive/tex/latex/flashcards/flashcards.cls to new &lt;a href="http://niketanpansare.googlepages.com/flashcards.cls"&gt;flashcards.cls&lt;/a&gt;&lt;/div&gt;&lt;div&gt;4. Print them in pdf format for reading&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My future Pet project:&lt;/div&gt;&lt;div&gt;1. Create a java viewer (since I use both linux and windows) for latex or use some open source java library that renders latex (I didnot find a good C# library that does it either).&lt;/div&gt;&lt;div&gt;2. Use the flashcard package.&lt;/div&gt;&lt;div&gt;3. Use supermemo algorithm or Leitner system to enhance learning experience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;References:&lt;/div&gt;&lt;div&gt;Guide to using flashcard document class: &lt;a href="http://mirrors.med.harvard.edu/ctan/macros/latex/contrib/flashcards/flashcards.pdf"&gt;Alexander Budge's document&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Installation:&lt;/div&gt;&lt;div&gt;1. &lt;a href="http://underdown.wordpress.com/2009/01/26/creating-printable-pdf-flash-cards-using-latex/"&gt;http://underdown.wordpress.com/2009/01/26/creating-printable-pdf-flash-cards-using-latex/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;2. &lt;a href="http://feferraz.net/en/P/Flashcards_in_LaTeX"&gt;http://feferraz.net/en/P/Flashcards_in_LaTeX&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Collections of good flash cards: &lt;a href="http://www.physics.utah.edu/~jasonu/flash-cards/"&gt;http://www.physics.utah.edu/~jasonu/flash-cards/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-4990348324590422738?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/4990348324590422738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=4990348324590422738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4990348324590422738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4990348324590422738'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/03/creating-flash-cards-using-latex.html' title='Creating flash cards using Latex'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-3978866400891112794</id><published>2009-03-06T20:00:00.003-05:00</published><updated>2009-03-06T20:35:14.845-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>How to access the machine in CISE labs @ UF</title><content type='html'>Here is CISE's official webpage for accessing CISE public machines: &lt;a href="http://www.cise.ufl.edu/help/access/index.shtml"&gt;http://www.cise.ufl.edu/help/access/index.shtml&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is quick summary:&lt;/div&gt;&lt;div&gt;To access linux or solaris cise machines, you can &lt;/div&gt;&lt;div&gt;SSH using "Putty" on thunder.cise.ufl.edu (or sand, rain, bay, shine, storm, ...)&lt;/div&gt;&lt;div&gt;or SCP using "WinSCP"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To access Windows machine, you can remote desktop (or rdesktop) to new-mercury.cise.ufl.edu&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have an office in CISE labs, you can access you machine using following steps:&lt;/div&gt;&lt;div&gt;&lt;div&gt;Note: You will need a CISE account and password to the local machine. :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can replace 10.227.170.147 using your IP address.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;To be done once: install vnc server and openssh in you session and vnc client on you home machine&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Start vnc server on the machine (in CISE Lab)&lt;/div&gt;&lt;div&gt;1. Locally using command: vnc4server :n (where n is some number say eg. :2)&lt;/div&gt;&lt;div&gt;or on remote machine - these are steps &lt;/div&gt;&lt;div&gt;1. open putty&lt;/div&gt;&lt;div&gt;2. ssh to rain&lt;/div&gt;&lt;div&gt;3. ssh to 10.227.170.147 from rain&lt;/div&gt;&lt;div&gt;4. vnc4server :n (where n is some number say eg. :2)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. open putty&lt;/div&gt;&lt;div&gt;2. Go to Connections &gt; SSH &gt; Tunnels&lt;/div&gt;&lt;div&gt;Source port: 5901&lt;/div&gt;&lt;div&gt;Destination: 10.227.170.147:5901&lt;/div&gt;&lt;div&gt;3. Connect to rain.cise.ufl.edu n leave the session as it is&lt;/div&gt;&lt;div&gt;4. Open VNC client and connect to 127.0.0.1:1&lt;/div&gt;&lt;div&gt;5. Enter password in the small dialog box&lt;/div&gt;&lt;div&gt;6. gnome-session (if you get a terminal, you can skip this step by configuring the vnc server settings)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-3978866400891112794?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/3978866400891112794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=3978866400891112794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3978866400891112794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3978866400891112794'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/03/how-to-access-machine-in-cise-labs-uf.html' title='How to access the machine in CISE labs @ UF'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-2303674679699717643</id><published>2009-02-15T13:36:00.002-05:00</published><updated>2009-02-15T13:45:35.083-05:00</updated><title type='text'>Books I intend to read</title><content type='html'>I will keep updating this excel sheet. Here is the initial version:&lt;div&gt;&lt;a href="http://spreadsheets.google.com/pub?key=pRiihxKnNDBmNK4-OrOY0ZA"&gt;http://spreadsheets.google.com/pub?key=pRiihxKnNDBmNK4-OrOY0ZA&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They are categorized according to topics(field the book belongs to), authors and priorities (Priority doesnot imply the "goodness" of the book. I use that column for scheduling purposes).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I use citeulike for keeping track of research papers I read. Here is the link:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.citeulike.org/user/niketan"&gt;http://www.citeulike.org/user/niketan&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-2303674679699717643?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/2303674679699717643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=2303674679699717643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/2303674679699717643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/2303674679699717643'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/02/books-i-intend-to-read.html' title='Books I intend to read'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-2674429421486039477</id><published>2009-01-30T18:16:00.001-05:00</published><updated>2009-01-30T18:18:23.594-05:00</updated><title type='text'>Memorizing pi to 70 decimal places</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;First 8 digits can be memorized using 2 different ways:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;First, Counting number of letters of words:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:12.0pt; font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;; color:black"&gt;How I wish I could recollect pi easily today&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;3.&lt;span style="mso-spacerun:yes"&gt;      &lt;/span&gt;1&lt;span style="mso-spacerun:yes"&gt;   &lt;/span&gt;4&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;1&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;5&lt;span style="mso-spacerun:yes"&gt;          &lt;/span&gt;9&lt;span style="mso-spacerun:yes"&gt;           &lt;/span&gt;2&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;6&lt;span style="mso-spacerun:yes"&gt;         &lt;/span&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;Second, Major System (see below):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;3. &lt;b style="mso-bidi-font-weight: normal"&gt;Turtle &lt;span style="mso-spacerun:yes"&gt;      &lt;/span&gt;bench &lt;span style="mso-spacerun:yes"&gt;      &lt;/span&gt;lao&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;3. 1 4 1 5&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;9 2&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;6&lt;span style="mso-spacerun:yes"&gt;       &lt;/span&gt;5&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;Mnemonic for the remaining decimal places is using major system only:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;(Disclaimer: This is not to hurt any person and do not in anyways express my opinion. It is only meant to be humorous, so that I could remember the mnemonic easily)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:12.0pt; font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;; color:black"&gt;Homo love pic&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12.0pt;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt; &lt;/span&gt;&lt;span style="font-size:8.0pt;mso-bidi-font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;of&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;color:black"&gt; &lt;b style="mso-bidi-font-weight:normal"&gt;Obama&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:8.0pt;mso-bidi-font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;’s&lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;color:black"&gt; &lt;b style="mso-bidi-font-weight:normal"&gt;enemy for change&lt;/b&gt; = &lt;b style="mso-bidi-font-weight:normal"&gt;army mafia man&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt;   &lt;/span&gt;3&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;   &lt;/span&gt;5 8&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;9 7&lt;span style="mso-spacerun:yes"&gt;       &lt;/span&gt;9&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;3&lt;span style="mso-spacerun:yes"&gt;        &lt;/span&gt;2 3&lt;span style="mso-spacerun:yes"&gt;     &lt;/span&gt;84&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;6 2 6&lt;span style="mso-spacerun:yes"&gt;        &lt;/span&gt;4 3&lt;span style="mso-spacerun:yes"&gt;     &lt;/span&gt;3 8&lt;span style="mso-spacerun:yes"&gt;       &lt;/span&gt;3 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:12.0pt; font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;; color:black"&gt;Iqbal Singh favorite pocket shop maybe &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8.0pt;mso-bidi-font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;in&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:12.0pt;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt; Obama gully&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;7 9 5&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;0 2&lt;span style="mso-spacerun:yes"&gt;      &lt;/span&gt;8 8 4 1&lt;span style="mso-spacerun:yes"&gt;   &lt;/span&gt;9 7 1&lt;span style="mso-spacerun:yes"&gt;   &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;6 9&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;3&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;9&lt;span style="mso-spacerun:yes"&gt;         &lt;/span&gt;9&lt;span style="mso-spacerun:yes"&gt;   &lt;/span&gt;3&lt;span style="mso-spacerun:yes"&gt;     &lt;/span&gt;7 5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;Note: there is no zero until now&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:12.0pt; font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;; color:black"&gt;Diesel fans, beggar, borrower help enemy seek hafta jar&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;1&lt;span style="mso-spacerun:yes"&gt;   &lt;/span&gt;0 5&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;8 2&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;9 7&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;4&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;9&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;4&lt;span style="mso-spacerun:yes"&gt;       &lt;/span&gt;4&lt;span style="mso-spacerun:yes"&gt;     &lt;/span&gt;59&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;2&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;3&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;0&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;7&lt;span style="mso-spacerun:yes"&gt;     &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;81&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;6 4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;Done !!! &lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;So therefore pi is&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;3.1415926535897932384626433832795028841971693993751058209749445923078164…&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;Major System&lt;/b&gt; (Refine this list):&lt;/p&gt;  &lt;table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid black .5pt;  mso-border-themecolor:text1;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"&gt;  &lt;tbody&gt;&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-left:none;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;s, z, soft c&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-left:none;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;"z" is the   first letter of zero. The others have a similar sound&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:1"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;d, t&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;d, t have one   downstroke and sound similar(some variants include th)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:2"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;n has two downstrokes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:3"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;M&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;three downstrokes ,   also "m" looks like a "3" on its side&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:4"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;R&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;last letter of four,   also 4 and R are almost mirror images of each other&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:5"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;L&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;L is the Roman Numeral   for 50&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:6"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;j, sh, soft ch, dg,   zh, soft g&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;a script j has a lower   loop / g is almost a 6 flipped over&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:7"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;7&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;k, hard c, hard g, q,   qu&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;capital K contains two   sevens&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:8"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;f, v&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;script f resembles a   figure-8. V sounds similar. (some variants include th)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:9"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;9&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;b, p&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;p is a mirror-image 9.   b sounds similar and resembles a 9 rolled around&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="mso-yfti-irow:10;mso-yfti-lastrow:yes"&gt;   &lt;td valign="top" style="border:solid black 1.0pt;mso-border-themecolor:text1;   border-top:none;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:   text1;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:   0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;Unassigned&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;Vowel sounds, w,h,y&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td valign="top" style="border-top:none;border-left:none;border-bottom:solid black 1.0pt;   mso-border-bottom-themecolor:text1;border-right:solid black 1.0pt;mso-border-right-themecolor:   text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;   mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;   mso-border-alt:solid black .5pt;mso-border-themecolor:text1;padding:0in 5.4pt 0in 5.4pt"&gt;   &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:   normal"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;   mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;;color:black"&gt;These can be used   anywhere without changing a word's number value&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt"&gt;Note: When there are two same adjacent letters, consider only 1. Eg: mapped mean 391, not 3991. Also sound is important, not the letters, eg: Michael stands for 375. Also, g (hard) is 7, not 8. Also, nympho is 238 not 239.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt"&gt;You can also download pdf version of above blog entry: &lt;a href="http://niketanpansare.googlepages.com/MemorizingValueOfPi.pdf"&gt;MemorizingValueOfPi.pdf&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-2674429421486039477?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/2674429421486039477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=2674429421486039477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/2674429421486039477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/2674429421486039477'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2009/01/memorizing-pi-to-70-decimal-places.html' title='Memorizing pi to 70 decimal places'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-1736858173108252008</id><published>2008-12-06T23:50:00.000-05:00</published><updated>2008-12-06T23:51:49.773-05:00</updated><title type='text'>Mumbai terror attack</title><content type='html'>&lt;p class="MsoNormal"&gt;I have been itching from past few days to write a blog entry, but was busy with assignments and project. Here is quick update from my side: &lt;/p&gt;  &lt;p class="MsoNormal"&gt;I will finish my application process tomorrow for PhD program at Rice University. Florida has won SEC championship game, and hopefully will win National championship also. My best wishes are with coach Urban Meyer and his team. I followed Florida games throughout this season and am really impressed by Tim Tebow’s dedication. For those who don’t know, Tim Tebow is University of Florida quarterback, Heisman Trophy winner with a GPA of 3.7!!! And yes, he visited Philippines for missionary work in his spring break rather than going to Daytona or Miami beach.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I intend to address issues that came to my mind after November 2008 Mumbai attack. Interesting thing is I have to write date along the topic name, suggests “There have been more”. There have been 5 bombing incidents within a period of 8 months (Dec 6 2008, Jan 27 2003, July 28 2003, August 25 2003). Then there is July 11 2006 Mumbai train bombing. In fact, I was outside the Malad station, returning from Java class when these bombing incidents occurred. I had to walk from Malad to my place, since trains and bus services were stopped to prevent further attacks. Here is listing of all the terrorist attacks that took place in India: &lt;a href="http://en.wikipedia.org/wiki/Chronology_of_terrorist_incidents_in_India"&gt;http://en.wikipedia.org/wiki/Chronology_of_terrorist_incidents_in_India&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;My heart fills with pain when I read and hear about this. As human being, I have extreme desire to end these kinds of attacks and bring peace in the world, and as a science student, I see it as a problem that it yet to be solved. I will try to address these emotions separately and hopefully, at end of this blog entry, I am able to put down thoughts that have been revolving in my mind (this is literal translation of an Hindi expression &lt;span style="font-family:Wingdings;mso-ascii-font-family:Calibri;mso-ascii-theme-font: minor-latin;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin; mso-char-type:symbol;mso-symbol-font-family:Wingdings"&gt;&lt;span style="mso-char-type: symbol;mso-symbol-font-family:Wingdings"&gt;J&lt;/span&gt;&lt;/span&gt; ). &lt;/p&gt;  &lt;p class="MsoNormal"&gt;First, let me offer my prayers and condolences for those who have lost their lives. There was a candle light event at University of Florida campus. I was overwhelmed to see people from various countries (including Pakistan) share the same sentiments.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Now let’s address the issues rationally and methodically:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;1. Is India prepared to handle terrorist attacks?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I believe Indian defense forces (which include Police) are capable to counter any kind of attack. But I must say we are not ready to predict such attacks. India does not have a centralized counter-terrorist plan (which should include local law enforcement agencies to RAW, navy and army). Efforts should be made to formulate such plan. It will require considerable investment in developing this infrastructure. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;2. “Blame game” (as Mr Musharraf puts it) post-attack&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I believe that both countries India and Pakistan cannot afford a war. Even if they could, they shouldn’t go for it. There is significant portion of people on both sides which hate other country and believe in war propaganda. These people were either victims of partition or war or probably are “brainwashed”. I use this term to generalize any kind of thought processes which is built up based on environment and which relies totally on emotions rather than logical and rational thinking. Both Pakistan and India have to make sure that such people are not the elected representative of people or into law enforcement.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I am sure that Pakistani government did not authorize this attack, but it is also confirmed that this attack was masterminded in Pakistan and Pakistani nationals were involved in this attack (See: &lt;a href="http://broadband.indiatimes.com/toishowvideo/3800626.cms"&gt;http://broadband.indiatimes.com/toishowvideo/3800626.cms&lt;/a&gt;). Also, I disagree with the fact that it is just India’s internal problem. If there is a citizen of your country, who promotes terrorist activities, it is responsibility of the government to act against such person (even if he is from your intelligence services). I think Pakistan government should investigate into this and ban any terror camps. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Again, I want to summarize by saying, I do not believe in war, but I think Pakistan should make considerable efforts to eliminate terrorist camps in their region. Also, I think peace talks with Pakistan should be continued and efforts should be made by Indian government to coordinate with Pakistan government to take action against people involved in this attack. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;3. Islam and terrorism&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I respect Islam and think it has something wonderful to offer to world, eg: “Zakat” (alms-giving). But, I feel sad for people who misinterpret Quran and believe in killing other people in name of Jihad (See &lt;a href="http://www.youtube.com/watch?v=Bxk5AAA5FbI"&gt;http://www.youtube.com/watch?v=Bxk5AAA5FbI&lt;/a&gt;). I am sure God will not absolve them of such sins. I have many Muslim friends who are very nice people. It is unfortunate that they are categorized because of these terrorist. I would like to point out the fact that Indian Muslims condemned this terrorist attack and even refused to bury the terrorists in Mumbai. Hanif Nalkhande, a spokesman for the Muslim Jama Masjid Trust, said: "People who committed this heinous crime cannot be called Muslim. Islam does not permit this sort of barbaric crime." (See &lt;a href="http://www.timesonline.co.uk/tol/news/world/asia/article5267860.ece"&gt;http://www.timesonline.co.uk/tol/news/world/asia/article5267860.ece&lt;/a&gt;)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I believe any religion (including Hinduism) should not tolerate harming other people in its name. I am against anyone who is involved in Mumbai and Gujarat riots. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;4. Responsibility of media&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I think media should not abuse the freedom of speech and should be discreet in case of such emergency. I hate to point out that terrorist were watching the television which displayed all the movements of India defense forces, which may have delayed the operation and cause further casualties. (See &lt;a href="http://news.bbc.co.uk/2/hi/south_asia/7760754.stm"&gt;http://news.bbc.co.uk/2/hi/south_asia/7760754.stm&lt;/a&gt;). &lt;/p&gt;  &lt;p class="MsoNormal"&gt;5. Assessment of manpower and equipments of Indian police is necessary (See &lt;a href="http://news.bbc.co.uk/2/hi/south_asia/7760460.stm"&gt;http://news.bbc.co.uk/2/hi/south_asia/7760460.stm&lt;/a&gt;). I understand it is not a step function, but steps should be taken to ensure gradual progress of Indian forces.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;These are my personal opinion, and do not intend to harm anyone or any sect. I also do not intend to finger point at any country. If you feel I have hurt your feelings or am being unfair or incorrect, please write back to me and I will modify or probably delete this blog.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I would like to conclude with two sayings:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;“Eye for an eye would make the whole world blind” – Mahatma Gandhi.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;“All that is necessary for the triumph of evil is that good men do nothing” – Edmund Burke.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-1736858173108252008?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/1736858173108252008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=1736858173108252008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1736858173108252008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1736858173108252008'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/12/mumbai-terror-attack.html' title='Mumbai terror attack'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-797555882901621317</id><published>2008-09-15T17:16:00.000-04:00</published><updated>2008-09-15T17:36:46.338-04:00</updated><title type='text'>Microsoft Internship</title><content type='html'>My interview experience with Microsoft:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://niketanblog.blogspot.com/2008/01/microsoft-interview.html"&gt;Questions asked&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://picasaweb.google.com/niketanpansare/MicrosoftInterview"&gt;Pictures&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;Here are some more pictures:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://picasaweb.google.com/niketanpansare/InternEventMicrosoft"&gt;Intern Event&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://picasaweb.google.com/niketanpansare/Microsoft"&gt;Soccer Match, DSP Event, My office (building 34)&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;I also visited couple of other places during internship:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://picasaweb.google.com/niketanpansare/CanadaTrip"&gt;Canada&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://picasaweb.google.com/niketanpansare/OregonTrip"&gt;Oregon&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;Overall the experience was awesome. I got an offer at end of internship, but had to refuse it to pursue PhD. My team lead was &lt;a href="http://www.bogdancrivat.net/dm/"&gt;Bogdan Crivat&lt;/a&gt; and my manager was Raman Iyer. Both of them are amazing guys and it was a great learning experience. I contributed a "little" in development of &lt;a href="http://www.sqlserverdatamining.com/cloud/"&gt;Table Analysis Tool for Cloud&lt;/a&gt;. In all, I think it is amazing product. If you haven't tried it, I encourage you to do so (atleast the online version).&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-797555882901621317?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/797555882901621317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=797555882901621317' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/797555882901621317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/797555882901621317'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/09/microsoft-internship.html' title='Microsoft Internship'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6937090631572869428</id><published>2008-09-14T15:40:00.001-04:00</published><updated>2008-09-14T16:09:31.038-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mnemonics'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>GatorMemo version 3.0 is ready !!!</title><content type='html'>After I decided to do PhD, I always wanted to improve my study process (especially  my notes management system). After several discussions with my internship manager Raman Iyer, my friends Raja Nadar and Kishore Malani, I decided to go ahead with GatorMemo. It is build on principles of &lt;a href="http://www.supermemo.com/english/smintro.htm"&gt;SuperMemo (spaced learning)&lt;/a&gt; and Mindmaps.&lt;br /&gt;&lt;br /&gt;It started out as Windows Form application which resulted in &lt;a href="http://niketan2.googlepages.com/GatorMemo.rar"&gt;version 2.0&lt;/a&gt;. I feel the user interface is too complicated for normal user, so decided to build it again from scratch using WPF instead of WinForms. Functionally, there is no difference between these two versions (except WPF doesnt have facility to play audio/video files. I might add them as soon as I get time to work on it).&lt;br /&gt;&lt;br /&gt;Suggestions:&lt;br /&gt;                       1. Read a book, research paper, or go through lectures/podcast/videos, etc ...&lt;br /&gt;                       2. Then, create a &lt;a href="http://kishore.malani.googlepages.com/mindmaps"&gt;mindmap&lt;/a&gt; after completing understanding the topic.                        I usually refer to 3 or more books and then organize my thoughts into mindmap.  I strongly suggest to put huge amount of efforts to create a good mindmap.&lt;br /&gt;                       3. Now, create card for each node. Front side of card can be a question about the node or simply node name and Back side can be the answer or description about the topic that the node represents.&lt;br /&gt;                       4. I recommend adding mnemonics and bibliography to mindmap and cards. Mnemonic will help you recollect the subject matter and Bibliography will be extremely useful if you are planning to write a research paper.&lt;br /&gt;                       5. Periodically, revise the card by using the Autolearn under Action tab (This software uses &lt;a href="http://en.wikipedia.org/wiki/SuperMemo"&gt;SuperMemo algorithm&lt;/a&gt; developed by Piotr Woznaik).&lt;br /&gt;                       6. I also suggest using &lt;a href="http://en.wikipedia.org/wiki/Lateral_thinking"&gt;Lateral Thinking&lt;/a&gt; especially if you are planning to write a research papers.&lt;br /&gt;&lt;br /&gt;Here is link to setup version 3.0: &lt;span style="font-weight: bold;"&gt;(I encourage you to to use this version)&lt;/span&gt;&lt;br /&gt;http://niketan2.googlepages.com/GatorMemoSetup.msi&lt;br /&gt;&lt;br /&gt;You can import following file (see Action tab):&lt;br /&gt;http://niketan2.googlepages.com/OSMindMap.zip to see how s/w works :)&lt;br /&gt;&lt;br /&gt;It is still in Beta phase, so expect bugs / exceptions :) ... (Infact I am so busy with my studies/assignments, that I did not time to any kind of corner case testing). Please mail me if you find bugs and help me improve the software.&lt;br /&gt;&lt;br /&gt;If you are interested in improving the software, go ahead and download &lt;a href="http://niketan2.googlepages.com/GatorMemo3.rar"&gt;the code&lt;/a&gt; and modify it.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6937090631572869428?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6937090631572869428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6937090631572869428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6937090631572869428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6937090631572869428'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/09/gatormemo-version-30-is-ready.html' title='GatorMemo version 3.0 is ready !!!'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-7894539918527228478</id><published>2008-08-29T16:44:00.000-04:00</published><updated>2008-08-29T16:45:19.453-04:00</updated><title type='text'>My new wiki</title><content type='html'>http://niketanpansare.wikidot.com/&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-7894539918527228478?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/7894539918527228478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=7894539918527228478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7894539918527228478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7894539918527228478'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/08/my-new-wiki.html' title='My new wiki'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6239719314206843337</id><published>2008-06-20T02:30:00.000-04:00</published><updated>2008-06-20T02:32:33.350-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Invictus by William Ernest Henley</title><content type='html'>Out of the night that covers me,&lt;br /&gt;      Black as the Pit from pole to pole,&lt;br /&gt;I thank whatever gods may be&lt;br /&gt;      For my unconquerable soul.&lt;br /&gt;&lt;br /&gt;In the fell clutch of Circumstance&lt;br /&gt;      I have not winced nor cried aloud.&lt;br /&gt;Under the bludgeonings of Chance&lt;br /&gt;       My head is bloody, but unbowed.&lt;br /&gt;&lt;br /&gt;Beyond this place of wrath and tears&lt;br /&gt;      Looms but the Horror of the shade,&lt;br /&gt;And yet the menace of the years&lt;br /&gt;      Finds, and shall find me, unafraid.&lt;br /&gt;&lt;br /&gt;It matters not how strait the gate,&lt;br /&gt;      How charged with punishments the scroll,&lt;br /&gt;I am the master of my fate:&lt;br /&gt;      I am the captain of my soul.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6239719314206843337?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6239719314206843337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6239719314206843337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6239719314206843337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6239719314206843337'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/06/invictus-by-william-ernest-henley.html' title='Invictus by William Ernest Henley'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-4137633581034563316</id><published>2008-06-19T18:21:00.001-04:00</published><updated>2008-06-19T18:44:12.398-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Random Quotes</title><content type='html'>If&lt;br /&gt;&lt;br /&gt;If you can keep your head when all about you &lt;br /&gt;Are losing theirs and blaming it on you; &lt;br /&gt;If you can trust yourself when all men doubt you, &lt;br /&gt;But make allowance for their doubting too; &lt;br /&gt;If you can wait and not be tired by waiting, &lt;br /&gt;Or, being lied about, don't deal in lies, &lt;br /&gt;Or, being hated, don't give way to hating, &lt;br /&gt;And yet don't look too good, nor talk too wise; &lt;br /&gt;&lt;br /&gt;If you can dream - and not make dreams your master; &lt;br /&gt;If you can think - and not make thoughts your aim; &lt;br /&gt;If you can meet with triumph and disaster &lt;br /&gt;And treat those two imposters just the same; &lt;br /&gt;If you can bear to hear the truth you've spoken &lt;br /&gt;Twisted by knaves to make a trap for fools, &lt;br /&gt;Or watch the things you gave your life to broken, &lt;br /&gt;And stoop and build 'em up with wornout tools; &lt;br /&gt;&lt;br /&gt;If you can make one heap of all your winnings &lt;br /&gt;And risk it on one turn of pitch-and-toss, &lt;br /&gt;And lose, and start again at your beginnings &lt;br /&gt;And never breath a word about your loss; &lt;br /&gt;If you can force your heart and nerve and sinew &lt;br /&gt;To serve your turn long after they are gone, &lt;br /&gt;And so hold on when there is nothing in you &lt;br /&gt;Except the Will which says to them: "Hold on"; &lt;br /&gt;&lt;br /&gt;If you can talk with crowds and keep your virtue, &lt;br /&gt;Or walk with kings - nor lose the common touch; &lt;br /&gt;If neither foes nor loving friends can hurt you; &lt;br /&gt;If all men count with you, but none too much; &lt;br /&gt;If you can fill the unforgiving minute &lt;br /&gt;With sixty seconds' worth of distance run - &lt;br /&gt;Yours is the Earth and everything that's in it, &lt;br /&gt;And - which is more - you'll be a Man my son&lt;br /&gt;- Rudyard Kipling&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nothing in the world can take the place of persistence. &lt;br /&gt;Talent will not; nothing is more common than unsuccessful men with talent. &lt;br /&gt;Genius will not; unrewarded genius is almost a proverb. &lt;br /&gt;8Education will not; the world is full of educated derelicts. &lt;br /&gt;Persistence and determination alone are omnipotent. &lt;br /&gt;The slogan "Press On!" has solved and always will solve the problems of the human race&lt;br /&gt;- Calvin Coolidge&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When I do good, I feel good. When I do bad, I feel bad. That's my religion. &lt;br /&gt;- Abraham Lincoln&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All that I have seen teaches me to trust the Creator for all I have not seen.&lt;br /&gt;- Ralph Waldo Emerson&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Our deepest fear is not that we are inadequate. Our deepest fear is that we are powerful beyond measure.&lt;br /&gt;- Marianne Williamson&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-4137633581034563316?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/4137633581034563316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=4137633581034563316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4137633581034563316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4137633581034563316'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/06/random-quotes_19.html' title='Random Quotes'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-7429505723842160014</id><published>2008-06-06T17:41:00.000-04:00</published><updated>2008-06-06T17:44:36.856-04:00</updated><title type='text'>Developers are born brave :)</title><content type='html'>&lt;a href="http://codeforeternity.com/blogs/technology/DevelopersAreBornBrave.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://codeforeternity.com/blogs/technology/DevelopersAreBornBrave.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-7429505723842160014?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://codeforeternity.com/blogs/technology/DevelopersAreBornBrave.jpg' title='Developers are born brave :)'/><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/7429505723842160014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=7429505723842160014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7429505723842160014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7429505723842160014'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/06/developers-are-born-brave.html' title='Developers are born brave :)'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-652500963636564452</id><published>2008-05-09T17:54:00.003-04:00</published><updated>2008-11-15T09:25:36.974-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>P versus NP</title><content type='html'>Never heard about it ?&lt;br /&gt;&lt;br /&gt;Its an unsolved problem in computer Science. Infact, if you could find a solution to it, you will get a million dollars. Well, I am not kidding (&lt;a href="http://www.claymath.org/millennium/"&gt;http://www.claymath.org/millennium/&lt;/a&gt;).&lt;br /&gt;Now aren't you curious ?&lt;br /&gt;&lt;br /&gt;Here is the official problem description: &lt;a href="http://www.claymath.org/millennium/P_vs_NP/Official_Problem_Description.pdf"&gt;http://www.claymath.org/millennium/P_vs_NP/Official_Problem_Description.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will try to explain it to you in more simpler way. It is extremely titillating problem because it is very simple to understand it and first time when you hear it, it seems that you can crack it witihin a day or two.&lt;br /&gt;&lt;br /&gt;I will assume few things:You know what an algorithm is and what is worst, average and best case complexities (asymtotic notations) are. You may want to refer to Chapter 1,2 and 3 in &lt;a href="http://books.google.com/books?id=NLngYyWFl_YC&amp;amp;printsec=frontcover&amp;amp;dq=Thomas+H+Cormen&amp;amp;psp=1&amp;amp;source=gbs_summary_r&amp;amp;cad=0#PPR5,M1"&gt;Introduction to Algorithm by Cormen&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Section 1: Lower bound&lt;/strong&gt;&lt;br /&gt;Say you are given a problem and you find an algorithm that solves that problem in O(n^2) time. What is the lower bound of your algorithm (or should I say the problem -- Hmmm, I will use algorithm and the problem interchangeably) ?&lt;br /&gt;If your answer is O(n^2), you may want to read this section further, else you can skip this and go to the next section.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Lower bound is not about a particular algorithm, but about all possible algorithms for solving that problem.&lt;br /&gt;&lt;/blockquote&gt;I know 2 ways to find lower bound of the algorithms:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;1. Decision tree based approach:&lt;br /&gt;&lt;/em&gt;Eg: Lower bound of Comparison based Sorting (See this: &lt;a href="http://www.ics.uci.edu/~eppstein/161/960116.html"&gt;http://www.ics.uci.edu/~eppstein/161/960116.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;In short, comparison sort can be mapped to a decision tree (binary tree with yes and no). Longest path in binary tree with k leaves = log k.Since we know a number can be arranged in n! ways =&gt; n! leaves of decision trees.There, number of comparisions = log(n!) = n log(n) - O(n) .... using Stirling's formula.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;2. Reduction: &lt;/em&gt;&lt;br /&gt;Reduce an algorithm whose lower bound you already know to your algorithm (Thats right ... not the other way round).&lt;br /&gt;Eg. Say you somehow prove that Sorting &lt;= (O(n)) Ur algorithm, ie. Sorting is reducible to your algorithm in polynomial timeThen you can state that lower bound of your algorithm is nlogn.This in essense means that your algorithm is atleast as difficult as sorting. So, how to prove this ? Prove that by some crazy way, "Sorting can be done by your algorithm" &lt;a href="http://1.bp.blogspot.com/_42Aregpjvg8/SCTI5g8IJdI/AAAAAAAAA1M/wXGQzDPKSxI/s1600-h/Reduction.jpg"&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_42Aregpjvg8/SCTI5g8IJdI/AAAAAAAAA1M/wXGQzDPKSxI/s1600-h/Reduction.jpg"&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5198500760312620498" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_42Aregpjvg8/SCTI5g8IJdI/AAAAAAAAA1M/wXGQzDPKSxI/s320/Reduction.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Section 2: Definitions&lt;br /&gt;&lt;/strong&gt;&lt;span style="color:#ff0000;"&gt;Decision problems:&lt;/span&gt; Problem with output either "YES" or "NO", depending on values of some input parameters &lt;p&gt;&lt;span style="color:#ff0000;"&gt;P:&lt;/span&gt; Class of decision problems that are "solvable" in polynomial time. &lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff0000;"&gt;NP:&lt;/span&gt; Class of the decision problem that can be "verified" in polynomial time.&lt;br /&gt;Eg: Sorting is NP since given a list, we can verify that it is sorted or not in polynomial time.Also, Sorting is P since it is solvable in polynomial time (O(nlogn)).&lt;br /&gt;Infact, Every P problem is NP (ie to verify a P problem, we can simply solve it in polynomial time and compare the input with the output). i.e P belongsto NPWhether there exists any NP problem that is not P is yet unproven.&lt;br /&gt;Trivial Solution - Every NP problem can be solved in 2^n, ie simply enumerating all cases.&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff0000;"&gt;NP-hard:&lt;/span&gt; For all problems L in NP, if L is reducible to L1 in polynomial time, then L1 is NP-hard.&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;NP-Complete:&lt;/span&gt; A problem is NP-Complete iff it is both NP and NP-hard.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://en.wikipedia.org/wiki/Image:P_np_np-complete_np-hard.svg"&gt;this Venn diagram &lt;/a&gt;for big picture.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;co-NP:&lt;/span&gt; If complement of your problem is in NP, then your problem is in co-NP.&lt;br /&gt;Eg: NP - Given a graph, is there a path of length less than k from some source node s to destination node t.co-NP - Given a graph, are all path of length greater than k&lt;br /&gt;Again, whether NP = co-NP is unknown ?&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;Oracle&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;:&lt;/span&gt; Consider Oracle to be GOD who knows everything and whom you can trust (So, computer scientist believe in GOD ... may be not in way as religion, but maybe yes to some extent)&lt;/p&gt;&lt;p&gt;We "pray" to GOD to give guidance. Similarly, we ask Oracle to help us with the problem.&lt;/p&gt;&lt;p&gt;GOD give us omens. Oracle gives us a certificate (an input sequence that will probably reveal the "TRUTH"). So you try to verify the certificate by your polynomial time verification algorithm (assuming it is NP). &lt;/p&gt;&lt;p&gt;Now here is a trick: &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;If the answer to that certificate is "YES" ... cool ... you have solved the problem !!!&lt;/p&gt;&lt;p&gt;If the answer is "NO" .... you ask for a new certificate from the Oracle. &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;(You could argue that since we trust Oracle, we should output "NO". But, we don't do that because Oracle gives a random certificate for &lt;a href="http://en.wikipedia.org/wiki/List_of_undecidable_problems"&gt;undecidable problems&lt;/a&gt;. This makes it indeterministic, hence NP =&gt; nondeterministic polynomial).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Section 3: The real stuff&lt;br /&gt;&lt;/strong&gt;The biggest breakthrough in this area: Stephen Cook proved that &lt;a href="http://en.wikipedia.org/wiki/Boolean_satisfiability_problem"&gt;Boolean Satisfiability problem (SAT)&lt;/a&gt; is NP-Complete.&lt;br /&gt;&lt;br /&gt;So, if you could prove one of this things, you probably don't have to work any more for your thesis or field's medal:&lt;br /&gt;1. SAT has polynomial time algorithm&lt;br /&gt;2. Give non-polynomial time lower bound argument for SAT&lt;br /&gt;&lt;br /&gt;If you prove 1 =&gt; you have proven P = NP&lt;br /&gt;If you prove 2 =&gt; you have proven P != NP&lt;br /&gt;&lt;br /&gt;OK. Let me makes things a little easy for you. Instead of SAT, you can do above things on any &lt;a href="http://en.wikipedia.org/wiki/List_of_NP-complete_problems"&gt;one of these problems&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And yippee .... you will be more popular than Donald Knuth in Computer Science field.&lt;br /&gt;&lt;br /&gt;I would encourage you to read "Computers and Intractability: A Guide to the Theory of NP-Completeness" or atleast a chapter in "Introduction to Algorithms - by Cormen, Rivest" to see how reduction actually works. Some of them are really cool and mind boggling techniques.&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-652500963636564452?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/652500963636564452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=652500963636564452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/652500963636564452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/652500963636564452'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/05/p-versus-np.html' title='P versus NP'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_42Aregpjvg8/SCTI5g8IJdI/AAAAAAAAA1M/wXGQzDPKSxI/s72-c/Reduction.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-4146184186937801881</id><published>2008-04-07T15:32:00.003-04:00</published><updated>2008-04-07T15:58:11.830-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Random C++ tricks - GDB, Valgrind and Makefile</title><content type='html'>1. Perfect programming is hard - even the best programmers make mistakes.&lt;br /&gt;2. A line of code that you haven't tested is a line of code with a bug.&lt;br /&gt;&lt;br /&gt;Cardinal rule for debugging: If you are using gcc or g++, compile your program with -g option.&lt;br /&gt;(Btw, to link a library with gcc, you use -l option. Eg: to link math library, use:&lt;br /&gt;gcc filename -o outputfile -lm)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Segmentation Faults:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Any access outside that area (memory area assigned to the program) will cause a segmentation fault.&lt;br /&gt;&lt;br /&gt;Common mistakes of segmentation faults:&lt;br /&gt;1. Deferencing&lt;br /&gt;a. NULL&lt;br /&gt;b. an uninitialized pointer&lt;br /&gt;c. a pointer that has been freed (or deleted, in C++) or that has gone out of scope (in the case of arrays declared in functions)&lt;br /&gt;2. writing off the end of an array&lt;br /&gt;3. Calling a recursive function that uses all of the stack space (On some systems, this will cause a "stack overflow" report)&lt;br /&gt;&lt;br /&gt;Attacking segfaults:&lt;br /&gt;&lt;br /&gt;1.a Deferencing NULL&lt;br /&gt;&lt;br /&gt;$gdb myPgm core&lt;br /&gt;The core file contains all the information needed by GDB to reconstruct the state of execution when the invalid operation caused a segmentation fault.&lt;br /&gt;&lt;br /&gt;It will o/p:&lt;br /&gt;&lt;blockquote&gt;Some copyright info&lt;br /&gt;Core was generated by `myPgm'.&lt;br /&gt;Program terminated with signal 11, Segmentation fault.&lt;br /&gt;Some information about loading symbols&lt;br /&gt;#0  0x0804838c in foo() () at myPgm.cpp:4&lt;br /&gt;4           *x = 3;&lt;/blockquote&gt;This tells us that the execution stopped inside the function called foo() on line 4, which happened to be the assignment of the number 3 to the location pointed to by x.&lt;br /&gt;&lt;blockquote&gt;(gdb) list&lt;br /&gt;1       void foo()&lt;br /&gt;2       {&lt;br /&gt;3           char *x = 0;&lt;br /&gt;4           *x = 3;&lt;br /&gt;5       }&lt;br /&gt;6  &lt;br /&gt;7       int main()&lt;br /&gt;8       {&lt;br /&gt;9           foo();&lt;br /&gt;10          return 0;&lt;br /&gt;(gdb) print x&lt;br /&gt;$1 = 0x0&lt;/blockquote&gt;&lt;br /&gt;A little complicated eg: execution crashing inside a system call or library function (perhaps because we passed an uninitialized pointer)&lt;br /&gt;&lt;blockquote&gt;#0  0x40194f93 in strcat () from /lib/tls/libc.so.6&lt;br /&gt;(gdb) bt&lt;br /&gt;#0  0x40194f93 in strcat () from /lib/tls/libc.so.6&lt;br /&gt;#1  0x080483c9 in foo() () at t.cpp:6&lt;br /&gt;#2  0x080483e3 in main () at t.cpp:11&lt;/blockquote&gt;so now we are in strcat stack but we want to see variable that was passed to strcat:&lt;br /&gt;&lt;blockquote&gt;(gdb) up&lt;br /&gt;#1  0x080483c9 in foo() () at t.cpp:6&lt;br /&gt;6           strcat(x, "end");&lt;br /&gt;(gdb) print x&lt;br /&gt;$1 = 0x0&lt;/blockquote&gt;A common mistake is to not check the return from malloc to make sure that the system isn't out of memory. Another common mistake is to assume that a function that calls malloc doesn't return NULL even though it returns the result of malloc. Note that in C++, when you call new, it will throw an exception, bad_alloc, if sufficient memory cannot be allocated. Your code should be prepared to handle this situation cleanly, and if you choose to catch the exception and return NULL inside a function that ordinarily returns a new'ed pointer, this advice still holds.&lt;br /&gt;&lt;br /&gt;1.b Deferencing an uninitialized pointer&lt;br /&gt;Figuring out whether or not a pointer has been initialized is a bit harder than figuring out whether a pointer is NULL. The best way to avoid using an uninitialized pointer is to set your pointers to NULL when you declare them (or immediately initialize them).&lt;br /&gt;&lt;br /&gt;You might need to figure out if 0x4025e800 is valid memory. One way you can get a sense of this in GDB is by printing out the addresses stored in other pointers you've allocated. If they're fairly close together, you've probably correctly allocated memory. Of course, there's no guarantee that this rule of thumb will hold on all systems.&lt;br /&gt;&lt;br /&gt;In some cases, your debugger can tell you that an address is invalid based on the value stored in the pointer.&lt;br /&gt;&lt;blockquote&gt;(gdb) print x&lt;br /&gt;$1 = 0x1e &amp;lt;out of bounds&amp;gt;&lt;out&gt;&lt;br /&gt;(gdb) print *x&lt;br /&gt;Cannot access memory at address 0x1e&lt;/out&gt;&lt;/blockquote&gt;1.c Dereferencing Freed Memory&lt;br /&gt;This is another tricky bug to find because you're working with memory addresses that look valid. The best way to handle such a situation is again preventative: set your pointer to point to NULL as soon as you've freed it.&lt;br /&gt;&lt;br /&gt;Another form of this bug is the problem of dealing with memory that has gone out of scope.&lt;br /&gt;&lt;blockquote&gt;char *return_buffer()&lt;br /&gt;{&lt;br /&gt;char x[10];&lt;br /&gt;strncpy(x, "a string", sizeof(x));&lt;br /&gt;return x;&lt;br /&gt;}&lt;/blockquote&gt;This is a really tricky bug to find because once again the memory address will look valid when you print it out in GDB.&lt;br /&gt;&lt;br /&gt;If that pointer is causing you trouble, check the function and look for whether the pointer is pointing to a local variable in the function. Note that it is perfectly fine to return a pointer to memory allocated in the function using new or malloc, but not to return a pointer to a statically declared array (e.g., char x[10]).&lt;br /&gt;&lt;br /&gt;2. writing off the end of an array&lt;br /&gt;Valgrind will help you catch this bug on dynamically allocated arrays. See point 2 below.&lt;br /&gt;&lt;br /&gt;Trick:&lt;br /&gt;If notice that some of your variable values are changing periodically and unexpectedly. This is a tough bug to crack; one option is to set up your debugger to watch a variable for changes and run your program until the variable's value changes. Your debugger will break on that instruction, and you can poke around to figure out if that behavior is unexpected.&lt;br /&gt;&lt;blockquote&gt;(gdb) watch [variable name]&lt;br /&gt;Hardware watchpoint 1: [variable name]&lt;br /&gt;(gdb) continue&lt;br /&gt;...&lt;br /&gt;Hardware watchpoint 1: [variable name]&lt;br /&gt;&lt;br /&gt;Old value = [value1]&lt;br /&gt;New value = [value2]&lt;/blockquote&gt;This approach can get tricky when you're dealing with a lot of dynamically allocated memory and it's not entirely clear what you should watch.&lt;br /&gt;&lt;br /&gt;3. Stack overflow:&lt;br /&gt;To diagnose a stack overflow in GDB, typically you just need to do a backtrace. If you find a single function call piling up an awfully large number of times, this is a good indication of a stack overflow.&lt;br /&gt;&lt;blockquote&gt;(gdb) backtrace&lt;br /&gt;#0  foo() () at t.cpp:5&lt;br /&gt;#1  0x08048404 in foo() () at t.cpp:5&lt;br /&gt;#2  0x08048404 in foo() () at t.cpp:5&lt;br /&gt;#3  0x08048404 in foo() () at t.cpp:5&lt;br /&gt;[...]&lt;br /&gt;#20 0x08048404 in foo() () at t.cpp:5&lt;br /&gt;#21 0x08048404 in foo() () at t.cpp:5&lt;br /&gt;#22 0x08048404 in foo() () at t.cpp:5&lt;br /&gt;---Type  to continue, or q  to quit---&lt;/blockquote&gt;Typically, you need to analyze your recursive function to make sure that all the base cases (the cases in which the function should not call itself) are covered correctly.&lt;br /&gt;&lt;br /&gt;Other cool tricks with gdb:&lt;br /&gt;We discussed bt, p (print), list, up&lt;br /&gt;&lt;br /&gt;To set a breakpoint, type break &amp;lt;line number&amp;gt;&lt;br /&gt;&amp;lt;line number&amp;gt; can be &amp;lt;sourcefile&amp;gt;:&amp;lt;line number&amp;gt;&lt;line&gt;&lt;line&gt;&lt;sourcefile&gt;&lt;line&gt;&lt;br /&gt;&lt;br /&gt;Use n (or next) to progress through the loop one line at a time, r to run the program and c to continue.&lt;br /&gt;&lt;br /&gt;There is also another set of commands, although they are not very commonly used; these commands actually modify the program as it is running. The call command, for example, will call a particular function; the set variable command will set a variable in the program to a particular value, for example, set variable i = 0. Return will make the current function return to the caller.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Using valgrind:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Finding memory leaks:&lt;br /&gt;Compile your program with -g option.&lt;br /&gt;&lt;/line&gt;&lt;/sourcefile&gt;&lt;/line&gt;&lt;/line&gt;&lt;blockquote&gt;$valgrind --tool=memcheck program_name&lt;/blockquote&gt;If number of allocs and the number of frees will differ in o/p, the try&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;$valgrind --tool=memcheck --leak-check=yes --show-reachable=yes program_name&lt;/blockquote&gt;&lt;br /&gt;O/p is somewhat like:&lt;br /&gt;&lt;blockquote&gt;==pid== 100 bytes in 1 blocks are definitely lost in loss record 1 of 1&lt;br /&gt;==pid==    at 0x1B900DD0: malloc (vg_replace_malloc.c:131)&lt;br /&gt;==pid==    by 0x804840F: main (myPgm.c:5)&lt;br /&gt;&lt;/blockquote&gt;This means that there is a memory leak at line 5 in myPgm.c&lt;br /&gt;&lt;br /&gt;2. Finding invalid pointers:&lt;br /&gt;Warning of form:&lt;br /&gt;'Invalid read of size X'or 'Invalid write of size X'&lt;br /&gt;where X is the amount of memory we try to read.&lt;br /&gt;&lt;br /&gt;Eg: if you allocate an array with malloc or new and then try to access a location past the end of the array:&lt;br /&gt;&lt;blockquote&gt;&lt;stdlib.h&gt;int main()&lt;br /&gt;{&lt;br /&gt;char *x = malloc(10);&lt;br /&gt;x[10] = 'a';&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$valgrind --tool=memcheck --leak-check=yes --show-reachable=yes program_name&lt;/stdlib.h&gt;&lt;/blockquote&gt;This will give o/p:&lt;br /&gt;&lt;blockquote&gt;==pid==  Invalid write of size 1&lt;br /&gt;==pid==    at 0x804841E: main (myPgm2.c:6)&lt;br /&gt;==pid==  Address 0x1BA3607A is 0 bytes after a block of size 10 alloc'd&lt;br /&gt;==pid==    at 0x1B900DD0: malloc (vg_replace_malloc.c:131)&lt;br /&gt;==pid==    by 0x804840F: main (myPgm2.c:5)&lt;br /&gt;&lt;/blockquote&gt;3. Detecting the use of uninitialized variables:&lt;br /&gt;Warning: 'uninitialised' value(s)&lt;br /&gt;&lt;br /&gt;Eg:&lt;br /&gt;&lt;blockquote&gt;&lt;stdio.h&gt;int foo(int x)&lt;br /&gt;{&lt;br /&gt;if(x &amp;lt; 10)&lt;br /&gt;   {&lt;br /&gt;       printf("x is less than 10\n");&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;   int y;&lt;br /&gt;   foo(y);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/stdio.h&gt;&lt;/blockquote&gt;o/p:&lt;br /&gt;&lt;blockquote&gt;==pid== Conditional jump or move depends on uninitialised value(s)&lt;br /&gt;==pid==    at 0x8048366: foo (myPgm3.c:5)&lt;br /&gt;==pid==    by 0x8048394: main (myPgm3.c:14)&lt;br /&gt;&lt;/blockquote&gt;4. Other improper use of memory:&lt;br /&gt;&lt;br /&gt;4.a: If you call free twice on the same pointer value, Valgrind will detect this for you; you'll get an error:&lt;br /&gt;&lt;blockquote&gt;Invalid free()&lt;/blockquote&gt;This is also called "double free attack":&lt;br /&gt;&lt;blockquote&gt;free(x);&lt;br /&gt;/* code */&lt;br /&gt;free(x);&lt;br /&gt;&lt;/blockquote&gt;The easiest way to avoid it is simply to set your pointer to point to NULL once you've freed it:&lt;br /&gt;&lt;blockquote&gt;free(x); x = NULL;&lt;br /&gt;/* code */&lt;br /&gt;free(x);&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;4.b: free should be matched with corresponding malloc. Similarly, delete with new and delete[] with new[].&lt;br /&gt;If you do mismatch, you will get following error:&lt;br /&gt;&lt;blockquote&gt;Mismatched free() / delete / delete []&lt;/blockquote&gt;What won't Valgrind find?&lt;br /&gt;Valgrind doesn't perform bounds checking on static arrays (allocated on the stack).&lt;br /&gt;Eg:&lt;br /&gt;&lt;blockquote&gt;int main()&lt;br /&gt;{&lt;br /&gt;char x[10];&lt;br /&gt;x[11] = 'a';&lt;br /&gt;}&lt;/blockquote&gt;Valgrind won't alert you!&lt;br /&gt;&lt;br /&gt;Also, if you don't test for buffer overflows by using long input strings, Valgrind won't tell you that your code is capable of writing over memory that it shouldn't be touching.&lt;br /&gt;&lt;br /&gt;------------------------&lt;br /&gt;&lt;br /&gt;Some common bugs in C/C++:&lt;br /&gt;1. Uninitialized variables&lt;br /&gt;2. Using a single equal sign to check equality:&lt;br /&gt;while(x='Y') { ....}&lt;br /&gt;&lt;array[x];&gt;3. Extra Semicolons:&lt;br /&gt;&lt;/array[x];&gt;&lt;blockquote&gt;int x;&lt;br /&gt;for(x=0; x&amp;lt;100; x++); &lt;br /&gt;Do something with x;&lt;br /&gt;&lt;/blockquote&gt;4. Overstepping array boundaries (especially if it static array):&lt;br /&gt;&lt;blockquote&gt;int array[10];&lt;br /&gt;//...&lt;br /&gt;for(int x=1; x&lt;=10; x++)   do something with array[x];  &lt;/blockquote&gt;&lt;br /&gt;-------------------------&lt;br /&gt;Make file:  Simple eg: &lt;blockquote&gt;CC = gcc&lt;br /&gt;FILES = in_one.c in_two.c&lt;br /&gt;OUT_EXE = out_executable&lt;br /&gt;&lt;br /&gt;build: $(FILES)&lt;br /&gt;    $(CC) -o $(OUT_EXE) $(FILES)&lt;br /&gt;&lt;br /&gt;clean:&lt;br /&gt;    rm -f *.o core&lt;br /&gt;&lt;br /&gt;rebuild: clean build&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Advanced eg:&lt;br /&gt;1. $@ is the name of the target.&lt;br /&gt;&lt;blockquote&gt;client: client.c&lt;br /&gt;    $(CC) client.c -o $@&lt;br /&gt;&lt;br /&gt;server: server.c&lt;br /&gt;    $(CC) server.c -o $@&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;List of dependents&lt;br /&gt;$? - more recent than the target(i.e., those that have changed since the last time make was invoked for the given target)&lt;br /&gt;$^ - all dependencies, regardless of whether they are more recent than the target, but removes duplicate names&lt;br /&gt;$+ - like $^, but it keeps duplicates&lt;br /&gt;$&gt; - first dependency&lt;br /&gt;&lt;br /&gt;Wildcard Matching in Targets (percent sign, %)&lt;br /&gt;When a % appears in the dependencies list, it replaces the same string of text throughout the command in makefile target. If you wish to use the matched text in the target itself, use the special variable $*.&lt;br /&gt;Eg:&lt;br /&gt;&lt;blockquote&gt;%.c:&lt;br /&gt;    gcc -o $* $*.c&lt;/blockquote&gt;Implicit Targets&lt;br /&gt;&lt;blockquote&gt;.c:&lt;br /&gt;    $(CC) -o $@ $@.c&lt;br /&gt;&lt;/blockquote&gt;This rule says that for any target that corresponds to a .c file, make should compile it using the name of the implicit target as the output, and the name plus the .c extension as the file to compile.&lt;br /&gt;&lt;br /&gt;Replacing Text&lt;br /&gt;To specify that OBJ is equivalent to SRC, except with the .c extension replaced with a .o extension:&lt;br /&gt;&lt;blockquote&gt;OBJ = $(SRC:.c=.o)&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Visit &lt;a href="http://www.cprogramming.com/debugging/valgrind.html"&gt;CProgramming.com for more details&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-4146184186937801881?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/4146184186937801881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=4146184186937801881' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4146184186937801881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4146184186937801881'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/04/random-c-tricks-gdb-valgrind-and.html' title='Random C++ tricks - GDB, Valgrind and Makefile'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-1336156180489789216</id><published>2008-02-09T11:14:00.000-05:00</published><updated>2008-02-09T11:22:01.785-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Poem: The Road Not Taken by Robert Frost</title><content type='html'>Poem:&lt;br /&gt;&lt;br /&gt;TWO roads diverged in a yellow wood,&lt;br /&gt;And sorry I could not travel both&lt;br /&gt;And be one traveler, long I stood&lt;br /&gt;And looked down one as far as I could&lt;br /&gt;To where it bent in the undergrowth;&lt;br /&gt;&lt;br /&gt;Then took the other, as just as fair,&lt;br /&gt;And having perhaps the better claim,&lt;br /&gt;Because it was grassy and wanted wear;&lt;br /&gt;Though as for that the passing there&lt;br /&gt;Had worn them really about the same,&lt;br /&gt;&lt;br /&gt;And both that morning equally lay&lt;br /&gt;In leaves no step had trodden black.&lt;br /&gt;Oh, I kept the first for another day!&lt;br /&gt;Yet knowing how way leads on to way,&lt;br /&gt;I doubted if I should ever come back.&lt;br /&gt;I shall be telling this with a sigh&lt;br /&gt;Somewhere ages and ages hence:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Two roads diverged in a wood, and&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;I took the one less traveled by,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;And that has made all the difference.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Explanation and interpretation:&lt;br /&gt;1. One possible interpretation of this poem can be summarized by Keating's quote from "Dead Poet Society" (movie) :&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;"We all are driven by conformity; difficulty in maintaining our own belief. We all have great need for acceptance, but you must trust that your belief are unique, even though others may think they are odd or unpopular."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. The Road Not Taken seems to illustrate that once one takes a certain road, there's no turning back, although one might change paths later on, they still can't change the past.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-1336156180489789216?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/1336156180489789216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=1336156180489789216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1336156180489789216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1336156180489789216'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/02/poem-road-not-taken-by-robert-frost.html' title='Poem: The Road Not Taken by Robert Frost'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-3318064459584156663</id><published>2008-01-31T21:51:00.000-05:00</published><updated>2008-11-15T09:25:37.099-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mnemonics'/><title type='text'>Remembering names of Indian states</title><content type='html'>If someone asked us, how many states is India divided into ? Probably most of us won't be able to answer that. Even worse, what if we are asked to enumerate them.&lt;br /&gt;&lt;br /&gt;Here is a simple way to remember all the states:&lt;br /&gt;&lt;br /&gt;Btw, India is divided into 28 states and six union territories (Andaman-Nicobar, Daman-Diu, Chandigarh, Delhi, Dadara-Nagar Haveli, Lakshadeep and Pondicherry)&lt;br /&gt;&lt;br /&gt;I have 3 mnemonics (Also see &lt;a href="http://niketanblog.blogspot.com/2006/07/remembering-periodic-table.html"&gt;mnemonic for Periodic table&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_42Aregpjvg8/R6KJ87RTU4I/AAAAAAAAAuM/QcTS92CZ_oI/s1600-h/India+Map.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_42Aregpjvg8/R6KJ87RTU4I/AAAAAAAAAuM/QcTS92CZ_oI/s320/India+Map.png" alt="" id="BLOGGER_PHOTO_ID_5161839802715427714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(Ignore vowels)&lt;br /&gt;1. JK par game kar ke Tao West Bengal gaye&lt;br /&gt;(Jammu Kashmir,  Punjab Rajasthan, Gujarat Maharashtra, Karnataka Kerala, Tamil Nadu Andra Pradesh Orissa, West Bengal)&lt;br /&gt;&lt;br /&gt;Goa is below Maharashtra :)&lt;br /&gt;&lt;br /&gt;2. HP hara MAC jhab UP UK gaye&lt;br /&gt;(Himachal Pradesh, Harayana, Madhya Pradesh Chattisgarh, Jharkhand Bihar,Uttar Pradesh, UttarKhand)&lt;br /&gt;&lt;br /&gt;Sikkim separates 1,2 from 3&lt;br /&gt;&lt;br /&gt;3. Arun &amp;amp; Megha Assam trip mi nagmani ko dekha&lt;br /&gt;(Arunachal Pradesh, Meghalaya, Tripura, Mizoram, Nagaland Manipur)&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-3318064459584156663?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/3318064459584156663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=3318064459584156663' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3318064459584156663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3318064459584156663'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/02/remembering-names-of-indian-states.html' title='Remembering names of Indian states'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_42Aregpjvg8/R6KJ87RTU4I/AAAAAAAAAuM/QcTS92CZ_oI/s72-c/India+Map.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-3905095772406720117</id><published>2008-01-22T17:37:00.000-05:00</published><updated>2008-11-15T09:25:37.228-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Computer Problem Solving</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_42Aregpjvg8/R5Zwh7KeD3I/AAAAAAAAAmk/FLQuo9D1hjU/s1600-h/genius.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_42Aregpjvg8/R5Zwh7KeD3I/AAAAAAAAAmk/FLQuo9D1hjU/s400/genius.png" alt="" id="BLOGGER_PHOTO_ID_5158434151319080818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I found this interesting pic about "How to be Computer Genius". Funny and sarcastic :)&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-3905095772406720117?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/3905095772406720117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=3905095772406720117' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3905095772406720117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3905095772406720117'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/01/computer-problem-solving.html' title='Computer Problem Solving'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_42Aregpjvg8/R5Zwh7KeD3I/AAAAAAAAAmk/FLQuo9D1hjU/s72-c/genius.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-8436151459770764286</id><published>2008-01-13T15:54:00.000-05:00</published><updated>2008-02-09T09:50:15.698-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Microsoft Interview</title><content type='html'>I had an interview for internship at Microsoft. I was interviewed by SQL Server Analysis Services and SQL Server Reporting Services (I got offer from both :) ).&lt;br /&gt;&lt;br /&gt;I was briefed by my recruitment coordinator at building 19. I had my interviews in building 34 and 35.&lt;br /&gt;&lt;br /&gt;My interview questions were pretty easy. Here are some of them:&lt;br /&gt;1. Write a program to create a balanced binary tree from a sorted array of integer.&lt;br /&gt;&gt;&gt; Find the middle element. Make it root. recursively call the function for left and right subarray with  root-&gt;left and root-&gt;right respectively.&lt;br /&gt;&lt;br /&gt;2. Write a program to find angle between clock's minute and hour hand&lt;br /&gt;&gt;&gt; assert(h &gt;= 0 &amp;amp;&amp;amp; m &gt;=0)&lt;br /&gt;return ( abs( 0.5*((h%12)*60 + m%60) -  6*(m%60)));&lt;br /&gt;&lt;br /&gt;3. Consider there are 2 types of characters:&lt;br /&gt;1byte character - has value less than 128&lt;br /&gt;2 byte character - whose first byte has value &gt;= 128&lt;br /&gt;Given a random pointer in a byte array find the previous character&lt;br /&gt;&lt;br /&gt;I was asked to solve the simpler version of the problem: i.e I was given the pointer to beginning of array.&lt;br /&gt;&gt;&gt; Start from beginning of array till pointer (also keep track of prev character), if value &lt;&gt; 1 byte character. Goto next byte.&lt;br /&gt;If value &gt;= 128, =&gt; 2 byte character,  move 2 bytes.&lt;br /&gt;&lt;br /&gt;Lets assume if I was not given the begin pointer:&lt;br /&gt;&gt;&gt; Assuming turing tape: the problem has atleast 1 non halting solution. Consider, tape filled with 128. :)&lt;br /&gt;&lt;br /&gt;4. Given a string, reverse first n characters in each word of the string.&lt;br /&gt;Eg: if string is "abcd ef"&lt;br /&gt;and n =2 =&gt; o/p: "badc fe"&lt;br /&gt;and if n =3 =&gt; o/p: "cbad ef" (if less than n characters, donot reverse)&lt;br /&gt;&lt;br /&gt;5. Some probability based questions: 3 types of ball in bag with equal probability. Some of the atleast, atmax kind of questions. I am sure almost everyone has solved these type of questions in their undergrad.&lt;br /&gt;&lt;br /&gt;6. Problem with Concurrent Reader, Exclusive Writer (CREW):&lt;br /&gt;A writer may wait forever.&lt;br /&gt;How to solve it?&lt;br /&gt;Assign reader_priority = writer_priority = normal&lt;br /&gt;When number of readers exceeds a threshold, --reader_priority&lt;br /&gt;When writer writes and if reader_priority &lt; normal, ++reader_priority&lt;br /&gt;&lt;br /&gt;If reader_priority &lt; norm, and if a reader comes, it will wait if there is writer waiting in the queue.&lt;br /&gt;&lt;br /&gt;My suggestions:&lt;br /&gt;Be confident. Revise Data Structures and Algorithms. Write few programs for practice.&lt;br /&gt;Also talk to interviewer, clarify assumptions and state your algorithm before starting to write on the white board. Always check for boundary conditions (this is where most candidates get filtered).&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-8436151459770764286?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/8436151459770764286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=8436151459770764286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8436151459770764286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8436151459770764286'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2008/01/microsoft-interview.html' title='Microsoft Interview'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-3554305371769445405</id><published>2007-11-20T16:45:00.000-05:00</published><updated>2007-11-20T17:21:37.339-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Why it is impossible to find miss perfect ?</title><content type='html'>Lets define miss perfect to be X&lt;br /&gt;&lt;br /&gt;Number of people in World = 6,602,236,753&lt;br /&gt;&lt;br /&gt;Number of females in World = 3,278,621,042 (I am straight)&lt;br /&gt;&lt;br /&gt;Lets say we would expect X to be between 20-24 age&lt;br /&gt;Number of females in World between 20-24 = 2,79,407,178&lt;br /&gt;&lt;br /&gt;Demographic probability (This is my personal view - I am an Indian)&lt;br /&gt;X from Indian = 0.6&lt;br /&gt;X from US = 0.3&lt;br /&gt;X from other places = 0.1 (since US and India are only places I have been, hence this is low probability)&lt;br /&gt;&lt;br /&gt;Population of females between 20-24 age:&lt;br /&gt;India = 48,812,664&lt;br /&gt;US = 10,240,823&lt;br /&gt;Other = 220,353,691&lt;br /&gt;&lt;br /&gt;Therefore, eligible females = 0.6 * 48,812,664 + 0.3 * 10,240,823 + 0.1 * 2,20,353,691 = 54,395,214&lt;br /&gt;&lt;br /&gt;I also want X to be beautiful (physical characteristics - I wont go into details) and intelligent.&lt;br /&gt;&lt;br /&gt;Lets consider normal distribution with variance = 1 and mean = 0.&lt;br /&gt;&lt;br /&gt;Females having "really" perfect physical attributes can be estimated to be 2 deviations above norm. Hence 2.275%&lt;br /&gt;But lets say, this is not a stringent factor and increase this to 20%&lt;br /&gt;&lt;br /&gt;Intelligence - I dont expect X to be very very intelligent, lets say 1 deviation above norm. Hence, 84,135%&lt;br /&gt;&lt;br /&gt;Also, X should not be already committed and also must like me.&lt;br /&gt;&lt;br /&gt;X not already committed = 50% (Since we are considering females in age 20-24)&lt;br /&gt;X who also likes me = 15.86% (Since she is beautiful, and I am not very fun kind of guy - why do u think I am still writing this post ?? :))&lt;br /&gt;&lt;br /&gt;Therefore, eligible females = 54,395,214 * 0.2 * 0.84135 * 0.5 * 0.1586 = 7,25,840&lt;br /&gt;&lt;br /&gt;Assuming if I go to blind date with new girl every week (I am quite conservative and shy - So probabilty of this happening is 0.1. But for sake of argument, lets assign it probability 1), it would take me 7,25,840 weeks&lt;br /&gt;&lt;br /&gt;1 year = 52.177 weeks&lt;br /&gt;&lt;br /&gt;Therefore, number of years to find X is 7,25,840 / 52.177 = 13,911 years&lt;br /&gt;&lt;br /&gt;Life expectancy in US is 77.8 years (I highly doubt that ;-) )&lt;br /&gt;&lt;br /&gt;Therefore, either I or her will be dead before we fall in love.  &lt;span style="font-weight: bold;"&gt;Hence, it is impossible to find "Miss Perfect"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;(Please note: I have considered females with age 20-24, but as I grow older, i might want to go with females of similar age. However, this makes problem more difficult.  Hence, I assumed age bracket 20-24)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(All above data is as per 20th November.  Almost all data is collected from http://www.census.gov/&lt;br /&gt;&lt;br /&gt;This post is based on paper by Tristan Miller, German Center of AI)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-3554305371769445405?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/3554305371769445405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=3554305371769445405' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3554305371769445405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3554305371769445405'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/11/why-it-is-impossible-to-find-miss.html' title='Why it is impossible to find miss perfect ?'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-4414815993155939464</id><published>2007-10-22T22:53:00.000-04:00</published><updated>2008-02-09T09:50:44.423-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>BEING IN TWENTIES - SOMETHING</title><content type='html'>I got this interesting forward from one of my friend:&lt;br /&gt;&lt;div&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/div&gt; It is when you stop going along with  the crowd and start realizing that there are many things about yourself that you  didn't know and may not like. You start feeling insecure and wonder where you  will be in a year or two, but then get scared because you barely know where you  are now.   You start realizing that people are  selfish and that, maybe, those friends that you thought you were so close to  aren't exactly the greatest people you have ever met, and the people you have  lost touch with are some of the most important ones. What you don't recognize is  that they are realizing that too, and aren't really cold, catty, mean or  insincere, but that they are as confused as you.   You look at your job... and it is  not even close to what you thought you would be doing, or maybe you are looking  for a job and realizing that you are going to have to start at the bottom and  that scares you.   Your opinions have gotten stronger.  You see what others are doing and find yourself judging more than usual because  suddenly you realize that you have certain boundaries in your life and are  constantly adding things to your list of what is acceptable and what isn't. One  minute, you are insecure and then the next, secure.   You laugh and cry with the greatest  force of your life. You feel alone and scared and confused. Suddenly, change is  the enemy and you try and cling on to the past with dear life, but soon realize  that the past is drifting further and further away, and there is nothing to do  but stay where you are or move forward.   You get your heart broken and wonder  how someone you loved could do such damage to you. Or you lie in bed and wonder  why you can't meet anyone decent enough that you want to get to know better. Or  maybe you love someone but love someone else too and cannot figure out why  you're doing this because you know that you aren't a bad person. One night  stands and random hook ups start to look cheap. Getting wasted and acting like  an idiot starts to look pathetic. You go through the same emotions and questions  over and over, and talk with your friends about the same topics because you  cannot seem to make a decision. You worry about loans, money, the future and  making a life for yourself... and while winning the race would be great, right  now you'd just like to be a contender!   What you may not realize is that  every one reading this relates to it. We are in our best of times and our worst  of times, trying as hard as we can to figure this whole thing  out...   We call it the "&lt;span style="color: rgb(255, 0, 0);"&gt;Quarter-life  Crisis&lt;/span&gt;."&lt;div&gt;&lt;span style="font-family:Bookman Old Style;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;strong style="font-weight: bold;"&gt;&lt;/strong&gt; &lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Bookman Old Style;"&gt;&lt;strong&gt;FATE DETERMINES WHO COMES INTO OUR  LIVES.....HEART DETERMINES WHO STAYS&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-4414815993155939464?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/4414815993155939464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=4414815993155939464' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4414815993155939464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4414815993155939464'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/10/being-in-twenties-something.html' title='BEING IN TWENTIES - SOMETHING'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-8918605662777554639</id><published>2007-09-19T00:19:00.000-04:00</published><updated>2008-02-09T10:48:17.266-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Mixing DOS and Unix</title><content type='html'>I wrote a java program using Notepad in Windows and when I opened it in vi editor on unix machine, I got ^M character at end of each line.&lt;br /&gt;&lt;br /&gt;Eg:&lt;br /&gt;import java.io.*;^M&lt;br /&gt;^M&lt;br /&gt;/**^M&lt;br /&gt;*^M&lt;br /&gt;*This class is used to manage the o/p stream of the application.^M&lt;br /&gt;* ^M&lt;br /&gt;*@author Niketan Pansare^M&lt;br /&gt;*@version 1.0 ^M&lt;br /&gt;* ^M&lt;br /&gt;*/^M&lt;br /&gt;public class OutputManager^M&lt;br /&gt;{^M&lt;br /&gt;     OutputStream outputStream; ^M&lt;br /&gt;     ^M&lt;br /&gt;     /**^M&lt;br /&gt;      * This constructor uses standard i/o as default stream.^M&lt;br /&gt;      */^M&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and so on ...&lt;br /&gt;&lt;br /&gt;You can replace all the extra ^M  in vi editor by:&lt;br /&gt;1. Go in command mode (Press Esc - If you already are in command mode, you will hear a beep)&lt;br /&gt;2. Then type&lt;br /&gt;&lt;code&gt;:%s/^M$//g &lt;/code&gt;&lt;br /&gt;Don't copy and paste above lines. To add ^M, press (CTRL+V) + (CTRL+M) ie ^V+^M&lt;br /&gt;&lt;br /&gt;What does above command mean:&lt;br /&gt;For substitution you use following command&lt;br /&gt;:[range]&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;s/&lt;/span&gt;[pattern]&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;/&lt;/span&gt;[string]&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;/&lt;/span&gt;[options]&lt;br /&gt;&lt;br /&gt;'s' here mean substitute a pattern with a string.&lt;br /&gt;&lt;br /&gt;range can be&lt;br /&gt;{number}    an absolute line number&lt;br /&gt;.                    the current line      &lt;br /&gt;$                   the last line in the file  &lt;br /&gt;%                  equal to 1,$ (the entire file)  &lt;br /&gt;&lt;br /&gt;You can also use # instead of / as seperator.&lt;br /&gt;&lt;br /&gt;Technically you can define pattern as:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;The definition of a pattern:                *search_pattern*&lt;br /&gt;&lt;br /&gt;Patterns may contain special characters, depending on the setting of the&lt;br /&gt;'magic' option.&lt;br /&gt;&lt;br /&gt;                           */bar* */\bar*&lt;br /&gt;1. A pattern is one or more branches, separated by "\|".  It matches anything&lt;br /&gt;  that matches one of the branches.  Example: "foo\|beep" matches "foo" and&lt;br /&gt;  "beep".&lt;br /&gt;&lt;br /&gt;2. A branch is one or more pieces, concatenated.  It matches a match for the&lt;br /&gt;  first, followed by a match for the second, etc.  Example: "foo[0-9]beep",&lt;br /&gt;  first match "foo", then a digit and then "beep".&lt;br /&gt;&lt;br /&gt;3. A piece is an atom, possibly followed by:&lt;br /&gt;     magic   nomagic&lt;br /&gt;                           */star* */\star*&lt;br /&gt;   *    \*    matches 0 or more of the preceding atom&lt;br /&gt;                           */\+*&lt;br /&gt;   \+    \+    matches 1 or more of the preceding atom {not in Vi}&lt;br /&gt;                           */\=*&lt;br /&gt;   \=    \=    matches 0 or 1 of the preceding atom {not in Vi}&lt;br /&gt;&lt;br /&gt;   Examples:&lt;br /&gt;      .*    .\*    matches anything, also empty string&lt;br /&gt;      ^.\+$    ^.\+$    matches any non-empty line&lt;br /&gt;      foo\=    foo\=    matches "fo" and "foo"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. An atom can be:&lt;br /&gt;  - One of these five:&lt;br /&gt;     magic   nomagic&lt;br /&gt;   ^    ^    at beginning of pattern, matches start of line    */^*&lt;br /&gt;   $    $    at end of pattern or in front of "\|",        */$*&lt;br /&gt;           matches end of line&lt;br /&gt;   .    \.    matches any single character          */.* */\.*&lt;br /&gt;   \&lt;    \&lt;&gt;    \&gt;    matches the end of a word            */\&gt;*&lt;br /&gt;   \i    \i    matches any identifier character (see        */\i*&lt;br /&gt;           'isident' option) {not in Vi}&lt;br /&gt;   \I    \I    like "\i", but excluding digits {not in Vi}    */\I*&lt;br /&gt;   \k    \k    matches any keyword character (see        */\k*&lt;br /&gt;           'iskeyword' option) {not in Vi}&lt;br /&gt;   \K    \K    like "\k", but excluding digits {not in Vi}    */\K*&lt;br /&gt;   \f    \f    matches any file name character (see        */\f*&lt;br /&gt;           'isfname' option) {not in Vi}&lt;br /&gt;   \F    \F    like "\f", but excluding digits {not in Vi}    */\F*&lt;br /&gt;   \p    \p    matches any printable character (see        */\p*&lt;br /&gt;           'isprint' option) {not in Vi}&lt;br /&gt;   \P    \P    like "\p", but excluding digits {not in Vi}    */\P*&lt;br /&gt;   \e    \e                            */\e*&lt;br /&gt;   \t    \t                            */\t*&lt;br /&gt;   \r    \r                            */\r*&lt;br /&gt;   \b    \b                            */\b*&lt;br /&gt;   ~    \~    matches the last given substitute string    */~* */\~*&lt;br /&gt;   \(\)    \(\)    A pattern enclosed by escaped parentheses      */\(\)*&lt;br /&gt;           (e.g., "\(^a\)") matches that pattern&lt;br /&gt;   x    x    A single character, with no special meaning,&lt;br /&gt;           matches itself&lt;br /&gt;   \x    \x    A backslash followed by a single character,    */\*&lt;br /&gt;           with no special meaning, matches the single&lt;br /&gt;           character&lt;br /&gt;   []    \[]    A range. This is a sequence of characters    */[]*&lt;br /&gt;           enclosed in "[]" or "\[]".  It matches any    */\[]*&lt;br /&gt;           single character from the sequence.  If the&lt;br /&gt;           sequence begins with "^", it matches any&lt;br /&gt;           single character NOT in the sequence.  If two&lt;br /&gt;           characters in the sequence are separated by '-', this&lt;br /&gt;           is shorthand for the full list of ASCII characters&lt;br /&gt;           between them.  E.g., "[0-9]" matches any decimal&lt;br /&gt;           digit.  To include a literal "]" in the sequence, make&lt;br /&gt;           it the first character (following a possible "^").&lt;br /&gt;           E.g., "[]xyz]" or "[^]xyz]".  To include a literal&lt;br /&gt;           '-', make it the first or last character.&lt;br /&gt;&lt;br /&gt;If the 'ignorecase' option is on, the case of letters is ignored.&lt;br /&gt;&lt;br /&gt;It is impossible to have a pattern that contains a line break.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;^beep(            Probably the start of the C function "beep".&lt;br /&gt;&lt;br /&gt;[a-zA-Z]$        Any alphabetic character at the end of a line.&lt;br /&gt;&lt;br /&gt;\&lt;\I\i        or \(^\|[^a-zA-Z0-9_]\)[a-zA-Z_]\+[a-zA-Z0-9_]*             A C identifier (will stop in front of it).  \(\.$\|\. \)        A period followed by end-of-line or a space.             Note that "\(\. \|\.$\)" does not do the same,             because '$' is not end-of-line in front of '\)'.             This was done to remain Vi-compatible.  [.!?][])"']*\($\|[ ]\)    A search pattern that finds the end of a sentence,             with almost the same definition as the ")" command.  Technical detail:  characters in the file are stored as  in memory.  In the display they are shown as "^@".  The translation is done when reading and writing files.  To match a  with a search pattern you can just enter CTRL-@ or "CTRL-V 000".  This is probably just what you expect.  Internally the character is replaced with a  in the search pattern.  What is unusual is that typing CTRL-V CTRL-J also inserts a , thus also searches for a  in the file.  {Vi cannot handle  characters in the file at all}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Seems complex ??&lt;br /&gt;Let us stick to our example for time being.&lt;br /&gt;&lt;br /&gt;$ mean end of line&lt;br /&gt;Therefore, ^M$ mean any ^M character at end of line.&lt;br /&gt;It is supposed to be replaced by nothing (since in our example, string is empty).&lt;br /&gt;&lt;br /&gt;g at end mean "global"&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-8918605662777554639?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/8918605662777554639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=8918605662777554639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8918605662777554639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8918605662777554639'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/09/mixing-dos-and-unix.html' title='Mixing DOS and Unix'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-7510834658616934917</id><published>2007-08-17T21:53:00.000-04:00</published><updated>2008-02-09T10:49:55.497-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Good Interviews</title><content type='html'>Here is a blogger who wrote emails to some "good" programmers, and posted their humble replies:&lt;br /&gt;&lt;a href="http://www.stifflog.com/2006/10/16/stiff-asks-great-programmers-answer/"&gt;http://www.stifflog.com/2006/10/16/stiff-asks-great-programmers-answer/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is another interview worth mentioning (with Denis Ritchie, Bjarne Stroustrup and James Gosling): &lt;a href="http://www.gotw.ca/publications/c_family_interview.htm"&gt;http://www.gotw.ca/publications/c_family_interview.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-7510834658616934917?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/7510834658616934917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=7510834658616934917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7510834658616934917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7510834658616934917'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/08/good-interviews.html' title='Good Interviews'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6506217841845009994</id><published>2007-08-13T20:40:00.000-04:00</published><updated>2008-02-09T10:50:19.426-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>First Week @ Gainesville</title><content type='html'>I landed in US on 6th August, 2007 at JFK New York Airport. Since I had next flight to Atlanta in about half an hour, I had to actually run with my checking bag. Fortunately, I caught my flight on time. I had to wait for few hours at Atlanta.&lt;br /&gt;&lt;br /&gt;Atlanta to Gainesville was exciting experience. Only plane going to Gainesville had big rotator, and some of the passengers had to go and sit in the front of the plane to maintain the balance of the plane. After flying in Boeing 777 from India to Atlanta and then asked to catch this plane,  I was really annoyed, and  probably a bit scared  (plane oscillated in air :-) )&lt;br /&gt;&lt;br /&gt;People in Gainesville are really very nice and polite. If you ask for direction and if the person doesn't know, he/she actually apologizes !!!&lt;br /&gt;&lt;br /&gt;Another strange thing I noticed is the way people drive around here. Distance between cars is huge (I can actually park my car in that :) ). Also pedestrian are allowed to pass before at the turn.&lt;br /&gt;&lt;br /&gt;Florida is quite hot. But still i love it !!!&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6506217841845009994?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6506217841845009994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6506217841845009994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6506217841845009994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6506217841845009994'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/08/first-week-gainesville.html' title='First Week @ Gainesville'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-3211342261382926049</id><published>2007-07-29T15:18:00.000-04:00</published><updated>2008-02-09T10:50:58.763-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mnemonics'/><title type='text'>Tech Savvy way of organizing ur notes</title><content type='html'>If u have Microsoft Office Enterprise 2007 and a Tablet PC, you have brand new way of organizing your notes.&lt;br /&gt;&lt;br /&gt;In One Note ( which comes along with Microsoft Office Enterprise 2007), you can record audio/video, make notes using stylus (u can use diff colours - hence can make a mindmap)&lt;br /&gt;&lt;br /&gt;If you still prefer to study on paper, you can always take a printout&lt;br /&gt;&lt;br /&gt;Positive points of this approach:&lt;br /&gt;1. Organized in one place - hence very useful while commuting (if u r used to ebooks, its like carrying ur entire library, colour pens and notes along with u to college/home/office).&lt;br /&gt;2. Can make easy backups (even store them permanently on Internet).&lt;br /&gt;3. Can easily be integrated with Outlook (hence managing contacts/to do list/emails - very easy).&lt;br /&gt;4. Writing on it ~ to writing on book (since stylus is magnetic, therefore placing ur hand over screen wont create a problem, but it may take some time to adjust)&lt;br /&gt;&lt;br /&gt;Negative points:&lt;br /&gt;1. Tablet PC - quite costly - (Price of Laptop with same config + 10 to 20k extra).&lt;br /&gt;2. (If u like to study on paper), printer will add to ur cost.&lt;br /&gt;3. What if ur tablet PC crashes and u dont have backup ???&lt;br /&gt;4. Everything is not integrated (ie email, calendar, notes, etc...)&lt;br /&gt;&lt;br /&gt;What I plan to do -&lt;br /&gt;1. I already have a Laptop (hence buying tablet would be waste of money) which I will use for ebooks. I will prepare my mindmaps on papers and take pics using DigiCam or will use scanner. (therefore it will allow me to take backups of my mind maps easily (See: &lt;a href="http://niketanpansare.googlepages.com/mindmaps"&gt;http://niketanpansare.googlepages.com/mindmaps&lt;/a&gt;)).&lt;br /&gt;2. Taking printouts is very costly for Student and I prefer my mindmaps on paper rather than on PC.&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Once I start working / earning, I will prefer this option&lt;/span&gt; as I will rarely use my mindmaps for more than half hour (I have worked as Software Developer and I know that u dont get time to revise ur mindmaps, nor can u carry them to ur office. Other than time, there is another factor - Uncertainty - u wont know for sure which Mindmap will u need today (unlike exams in college days))&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-3211342261382926049?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/3211342261382926049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=3211342261382926049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3211342261382926049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/3211342261382926049'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/07/tech-savvy-way-of-organizing-ur-notes.html' title='Tech Savvy way of organizing ur notes'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-7447146193064127138</id><published>2007-05-14T10:50:00.000-04:00</published><updated>2008-11-15T09:25:37.458-05:00</updated><title type='text'>Change of the blog title</title><content type='html'>I have changed the title of the blog from "Let's Educate the literate" to "Gyanam Paramam Dhyeyam (Knowledge is the Ultimate Goal)".&lt;br /&gt;&lt;br /&gt;"Gyanam Paramam Dhyeyam" is IIT Bombay's motto.&lt;br /&gt;&lt;br /&gt;Here is their logo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_42Aregpjvg8/Rkh4EWcxvaI/AAAAAAAAAB4/3KdlBARmwuM/s1600-h/625px-Iit_logo1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_42Aregpjvg8/Rkh4EWcxvaI/AAAAAAAAAB4/3KdlBARmwuM/s320/625px-Iit_logo1.jpg" alt="" id="BLOGGER_PHOTO_ID_5064429797119212962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Please note: &lt;span style="font-weight: bold;"&gt;"I am not an IITian"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;But I like their motto, that is why I choosed it (I don't think they have copyright over this motto and if they do, I hope they don't sue me :-)).&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-7447146193064127138?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/7447146193064127138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=7447146193064127138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7447146193064127138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7447146193064127138'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/05/change-of-blog-title.html' title='Change of the blog title'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_42Aregpjvg8/Rkh4EWcxvaI/AAAAAAAAAB4/3KdlBARmwuM/s72-c/625px-Iit_logo1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-620691344849789225</id><published>2007-05-09T14:47:00.000-04:00</published><updated>2008-02-09T10:51:45.943-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Wave Particle Duality - Animated video</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Double Slit Experiment:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An animated video explaining Wave-Particle duality principle.&lt;br /&gt;&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/x_tNzeouHC4"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/x_tNzeouHC4" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Quantum Flatland&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;According to String theory, "There are 11 dimensions". Though it cannot be demonstrated, it can explain many phenomena (quantum events, but I suppose people can use it to explain "time travel" and unproven experiences like after-death experience, GOD and ghosts) using mathematical equations. Should we dismiss them as hoax or should we accept them without experiencing them?&lt;br /&gt;&lt;br /&gt;It is my personal opinion that "human time-travel" is not possible. (I think it is difficult for human body to sustain huge acceleration required for time travel).&lt;br /&gt;&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BWyTxCsIXE4"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/BWyTxCsIXE4" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-620691344849789225?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/620691344849789225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=620691344849789225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/620691344849789225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/620691344849789225'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/05/wave-particle-duality-animated-video.html' title='Wave Particle Duality - Animated video'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-7577208684186999849</id><published>2007-04-10T11:34:00.000-04:00</published><updated>2008-02-09T10:52:40.724-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Scheme and Factorials</title><content type='html'>I am currently working of Scheme. I decided to try out few programs on factorial and factorial like products.&lt;br /&gt;&lt;br /&gt;If you have a mathematical definition, you can easily write its Scheme equivalent procedure (I cannot prove this statement).&lt;br /&gt;&lt;br /&gt;--------------------------------------&lt;br /&gt;&lt;br /&gt;(define (factorial n)&lt;br /&gt;   (cond ((= n 0) 1)&lt;br /&gt;         ((= n 1) 1)&lt;br /&gt;         (else (* (factorial (- n 1)) n))&lt;br /&gt;         )&lt;br /&gt;   )&lt;br /&gt;&lt;br /&gt;---------------------------------------&lt;br /&gt;&lt;br /&gt;Multifactorial&lt;br /&gt;&lt;br /&gt;(define (multifactorial n k)&lt;br /&gt;   (cond ((and (&lt;= 0 n) (&lt; k =" 2)"&gt; n 0)) n)&lt;br /&gt;         ((= n 0) 1)&lt;br /&gt;         (else (* (multiplelevelfactorial (- n 1) m) (multiplelevelfactorial n (- m 1))))&lt;br /&gt;         )&lt;br /&gt;   )&lt;br /&gt;&lt;br /&gt;To test:&lt;br /&gt;Superfactorial (k = 2) of 4 is 288&lt;br /&gt;Superduperfactorial (k = 3) of 4 is 6912&lt;br /&gt;&lt;br /&gt;---------------------------------------&lt;br /&gt;&lt;br /&gt;(define (power a b)&lt;br /&gt;   (cond ((= b 1) a)&lt;br /&gt;         (else (* a (power a (- b 1))))&lt;br /&gt;         )&lt;br /&gt;   )&lt;br /&gt;&lt;br /&gt;(define (hyperfactorial n)&lt;br /&gt;   (cond ((= n 0) 1)&lt;br /&gt;         ((= n 1) 1)&lt;br /&gt;         (else (* (power n n) (hyperfactorial (- n 1))))&lt;br /&gt;         )&lt;br /&gt;   )&lt;br /&gt;&lt;br /&gt;To test:&lt;br /&gt;Hyperfactorial of 4 is 27648&lt;br /&gt;&lt;br /&gt;---------------------------------------&lt;br /&gt;&lt;br /&gt;All above procedures are recursive.&lt;br /&gt;&lt;br /&gt;Linear iteration for calculating factorial would result into faster results.&lt;br /&gt;&lt;br /&gt;(define (factorial n)&lt;br /&gt;   (fact-iter 1 1 n)&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;(define (fact-iter product counter max-count)&lt;br /&gt;  (if (&gt; counter max-count)&lt;br /&gt;      product&lt;br /&gt;      (fact-iter (* counter product) (+ counter 1) max-count)&lt;br /&gt;  )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;If n is very large number and you can use Stirling's approximation to get much faster results.&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-7577208684186999849?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/7577208684186999849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=7577208684186999849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7577208684186999849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/7577208684186999849'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/04/scheme-and-factorials.html' title='Scheme and Factorials'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6397858666736062978</id><published>2007-03-30T03:59:00.000-04:00</published><updated>2008-11-15T09:25:38.322-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Planning for Sabbatical</title><content type='html'>I am currently working for MAQSoftware and will be taking a sabbatical from next month for concentrated (hopefully &lt;span style="font-family:Wingdings;"&gt;&lt;span style=""&gt;J&lt;/span&gt;&lt;/span&gt;) study before my M.S. in Computer Science. Before leaving my company, I wanted to do have a concrete plan about what I am going to do for next couple of months. People around me were skeptical about this step as I was doing great at my job (I recently got a big raise and was placed on good project). So I decided to jot down the purpose and plan for the sabbatical.  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;b style=""&gt;Duration:&lt;/b&gt; 3 months&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;b style=""&gt;Purpose:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpFirst" style="margin-bottom: 0.0001pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;1.&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;To improve my vocabulary.&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;2.&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;To prepare myself for research.&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;3.&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;To improve my programming skills.&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;4.&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;To improve my health.&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;5.&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;To enjoy life …&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt;"&gt;&lt;b style=""&gt;Plan:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="border: medium none ; width: 463px; border-collapse: collapse; height: 503px;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style="height: 27.3pt;"&gt;   &lt;td style="border: 1pt solid black; padding: 0in 5.4pt; width: 47.5pt; height: 27.3pt;" valign="top" width="63"&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt; text-align: center; line-height: normal;" align="center"&gt;&lt;b style=""&gt;Purpose number&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 444.55pt; height: 27.3pt;" valign="top" width="593"&gt;   &lt;p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0.0001pt; text-align: center; line-height: normal;" align="center"&gt;&lt;b style=""&gt;My plan&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 30.1pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 47.5pt; height: 30.1pt;" valign="top" width="63"&gt;   &lt;p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0.0001pt; line-height: normal;"&gt;1&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 444.55pt; height: 30.1pt;" valign="top" width="593"&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;1.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Listen to audio of wordlist whenever I take   rest (daily).&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;2.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Give test – Big Book (daily).&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;3.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Read my mind map book of words (weekly).&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 14.05pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 47.5pt; height: 14.05pt;" valign="top" width="63"&gt;   &lt;p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0.0001pt; line-height: normal;"&gt;2&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 444.55pt; height: 14.05pt;" valign="top" width="593"&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;1.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Read computer science topics and research   papers and prepare mind maps.&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;2.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Brainstorm the mind maps, use lateral thinking   (ask questions – Why, How. Don’t neglect seemingly illogical conclusions).&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;3.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Document every crazy ideas and reserve some   time every month to think about them.&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;4.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Watch technical videos and create mind maps.&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;5.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Maintain a bibliography and document every   reference (use notations) in your mind map. &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 14.05pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 47.5pt; height: 14.05pt;" valign="top" width="63"&gt;   &lt;p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0.0001pt; line-height: normal;"&gt;3&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 444.55pt; height: 14.05pt;" valign="top" width="593"&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;1.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Create a mind map (one for each programming   language you know) that encapsulates every language constructs.&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;2.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Maintain an online programming cookbook (best   practices, code snippets, coding styles, design patterns, &lt;u&gt;components&lt;/u&gt;,   etc).&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;3.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Also, create mind maps for standard library   for each language and try to correlate them.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 14.05pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 47.5pt; height: 14.05pt;" valign="top" width="63"&gt;   &lt;p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0.0001pt; line-height: normal;"&gt;4&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 444.55pt; height: 14.05pt;" valign="top" width="593"&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;1.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Yoga, Meditation (daily – 1 hour (morning)).&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;2.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Exercise (daily – 1 hour (evening)).&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 14.05pt;"&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 47.5pt; height: 14.05pt;" valign="top" width="63"&gt;   &lt;p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0.0001pt; line-height: normal;"&gt;5&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 444.55pt; height: 14.05pt;" valign="top" width="593"&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;1.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Movie or hangout with friends (weekly).&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;2.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;One Trip (Goa – 10-15 days).&lt;/p&gt;   &lt;p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;3.&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Spend more time with family.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoListParagraph" style="margin: 0in 0in 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;span style="line-height: 115%;"&gt;  &lt;/span&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;b style=""&gt;Some important points:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;1. “Preparing for research”?&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_42Aregpjvg8/RgzELUkUE6I/AAAAAAAAABw/8bRDzyw8-0w/s1600-h/plan.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_42Aregpjvg8/RgzELUkUE6I/AAAAAAAAABw/8bRDzyw8-0w/s320/plan.JPG" alt="" id="BLOGGER_PHOTO_ID_5047624981154108322" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;2. What to do when I am bored?&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Watch technical videos.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Go for a walk.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Listen to music.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Have a constructive discussion with someone (Use yahoo or telephone if the person stays far away).&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Go for a movie.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;3. Work hard and follow strict discipline. I may not be the smartest or the most hard-working person, but I know one thing about myself – “I don’t give up regardless of what other people say”. I will keep on trying until I succeed. I will be defined by my work and not by my resume. It doesn’t matter if I am in the best college or if I am in the worst college.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;4. We all have what Einstein had during his time - access to all patents &lt;span style="line-height: 115%;font-size:8;" &gt;(&lt;a href="http://www.google.com/patents"&gt;www.google.com/patents&lt;/a&gt;)&lt;/span&gt;, 24 hours a day and a human brain. In fact, we have much more information available and also better tools to organize it than what he had. So, ideally if we all organize our information more efficiently and think more clearly and more constructively, we can better even Einstein.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6397858666736062978?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6397858666736062978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6397858666736062978' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6397858666736062978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6397858666736062978'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/03/planning-for-sabbatical.html' title='Planning for Sabbatical'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_42Aregpjvg8/RgzELUkUE6I/AAAAAAAAABw/8bRDzyw8-0w/s72-c/plan.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-1048019762261877292</id><published>2007-03-26T06:18:00.000-04:00</published><updated>2008-11-15T09:25:38.659-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>What is difference between span and div tag?</title><content type='html'>Recently, when I was asked to take interview, I asked a simple question that none could answer :-(&lt;br /&gt;&lt;b&gt;&lt;i&gt;"What is difference between span and div tag?"&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This prompted me to write this post.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;span&amp;gt; and &amp;lt;div&amp;gt; tags both allow a Web designer to style text and add other formatting attributes to their Web page.&lt;br /&gt;&lt;br /&gt;The &amp;lt;span&amp;gt; and &amp;lt;div&amp;gt; tags are very useful when dealing with Cascading Style Sheets.&lt;br /&gt;&lt;br /&gt;Because the &amp;lt;center&amp;gt; tag has been deprecated in HTML 4.0, it is a good idea to start using&lt;br /&gt;&amp;lt;div style="text-align: center;"&amp;gt;&lt;br /&gt;to center the content inside your div.&lt;br /&gt;&lt;br /&gt;&amp;lt;div&amp;gt; tags are block elements. This means they can "hold" other HTML elements, and they can be positioned anywhere on the screen. For this reason, &amp;lt;div&amp;gt; tags can be used for replacing table-based Web designs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unlike &amp;lt;div&amp;gt; tags, &amp;lt;span&amp;gt; tags cannot hold other HTML tags. They should only be used for inline styling of text. Consider the following code:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;span &amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&amp;gt;This is some text sized at 14 pixels.&amp;lt;/p&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This code will probably render OK in most browsers, but it is actually incorrect. Remember, since the &amp;lt;span&amp;gt; tag is not a block-level element, it cannot contain other HTML tags. The correct way to write this code would be:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&amp;gt;&amp;lt;span &amp;gt;&lt;br /&gt;&lt;br /&gt;This is some text sized at 14 pixels.&lt;br /&gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Since &amp;lt;div&amp;gt; tags are block elements, they create line breaks. This is the same effect as a &amp;lt;p&amp;gt; tag. &amp;lt;span&amp;gt; tags do not create line breaks, which makes them perfect for styling text in the middle of a sentence.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are far more possible values for the display property than block and inline — in fact, the CSS 2.1 specification lists 17 different possible values. Ten of these values are related to tables and correspond to the way the various HTML table elements act.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However, IE 6/7 doesnot support "display: table"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, simple code to display a table is rendered differently in IE and Firefox&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div style="display:table"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div style="display:table-row ;"&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;div style="display:table-cell;background: #ccc;"&amp;gt;&lt;br /&gt;&lt;br /&gt;          Cell 1&lt;br /&gt;&lt;br /&gt;   &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;div style="display:table-cell;background: #aaa;"&amp;gt;&lt;br /&gt;&lt;br /&gt;        Cell 2&lt;br /&gt;&lt;br /&gt;   &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div style="display:table-row;"&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;div style="display:table-cell;background: #ccc;"&amp;gt;&lt;br /&gt;&lt;br /&gt;        Cell 3&lt;br /&gt;&lt;br /&gt;   &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;div style="display:table-cell;background: #aaa;"&amp;gt;&lt;br /&gt;&lt;br /&gt;        Cell 4&lt;br /&gt;&lt;br /&gt;   &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IE 7&lt;/b&gt; renders it as:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_42Aregpjvg8/Rgeg3fz2KWI/AAAAAAAAABU/Uc44r1Jkpzw/s1600-h/IE.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_42Aregpjvg8/Rgeg3fz2KWI/AAAAAAAAABU/Uc44r1Jkpzw/s320/IE.JPG" alt="" id="BLOGGER_PHOTO_ID_5046178782784137570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Firefox&lt;/b&gt; renders it as:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_42Aregpjvg8/Rgehm_z2KXI/AAAAAAAAABc/eL-WP9vfN2w/s1600-h/Firefox.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_42Aregpjvg8/Rgehm_z2KXI/AAAAAAAAABc/eL-WP9vfN2w/s320/Firefox.JPG" alt="" id="BLOGGER_PHOTO_ID_5046179598827923826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Your browser will display above code as:&lt;br /&gt;&lt;div style="display: table;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="display: table-row;"&gt;&lt;br /&gt;&lt;div style="background: rgb(204, 204, 204) none repeat scroll 0% 50%; display: table-cell; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;br /&gt; Cell 1&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="background: rgb(170, 170, 170) none repeat scroll 0% 50%; display: table-cell; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;br /&gt; Cell 2&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="display: table-row;"&gt;&lt;br /&gt;&lt;div style="background: rgb(204, 204, 204) none repeat scroll 0% 50%; display: table-cell; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;br /&gt; Cell 3&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="background: rgb(170, 170, 170) none repeat scroll 0% 50%; display: table-cell; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;br /&gt; Cell 4&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;(Refer&lt;br /&gt;&lt;a href="http://www.decloak.com/Dev/CSSTables/CSS_Tables_01.aspx"&gt;Decloak.com&lt;/a&gt; for comparison between &amp;lt;table&amp;gt; and &amp;lt;div&amp;gt;tags for displaying tabular data&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and &lt;a href="http://www.quirksmode.org/css/display.html"&gt;Quirksmode.org&lt;/a&gt; for compatibility of browsers for display property).&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-1048019762261877292?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/1048019762261877292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=1048019762261877292' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1048019762261877292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/1048019762261877292'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/03/and-tags-both-allow-web-designer-to.html' title='What is difference between span and div tag?'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_42Aregpjvg8/Rgeg3fz2KWI/AAAAAAAAABU/Uc44r1Jkpzw/s72-c/IE.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-8828475743426759504</id><published>2007-03-14T00:52:00.001-04:00</published><updated>2008-02-09T10:53:45.562-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Issues with javascript:void(0)</title><content type='html'>There are plenty of occasions when coding JavaScript events where you simply need to call a function, for which an entire event registration model is too lengthy. The most commonly used method is to bind your event to an anchor link. The user clicks and the onclick event is fired, calling a reference to a function.&lt;br /&gt;&lt;br /&gt;Because the user isn’t actually visiting a URL, something has to be done with the href attribute.&lt;br /&gt;There are 2 options:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use href="#"&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Not finding a name (anchor link) after the pound, the browser “kicks” the user to the top of the current page, losing the location in the document.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Use href="javascript:void(0);"&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Lets go with second option:&lt;/p&gt;&lt;p&gt;&amp;lt;a onclick="someMethod('userControlName')" href="javascript:void(0);"&amp;gt;Click Here&amp;lt;/a&amp;gt;&lt;/p&gt;&lt;p&gt;I tried to load user control in someMethod('userControlName'). It was working in IE7 and Firefox but not on IE6.&lt;/p&gt;&lt;p&gt;After investing into it a little bit, I found out a simple solution:&lt;/p&gt;&lt;p&gt;&gt;&amp;lt;a onclick="someMethod('userControlName'); return false;" href="javascript:void(0);"&amp;gt;Click Here&amp;lt;/a&amp;gt;&lt;/p&gt;&lt;p&gt;“return false” stops any other action after the person has finished the onClick action. This prevented event bubbling action (For excellent article on Event bubbling, see &lt;a href="http://www.quirksmode.org/js/events_order.html"&gt;quirksmode.org&lt;/a&gt; )&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-8828475743426759504?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/8828475743426759504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=8828475743426759504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8828475743426759504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/8828475743426759504'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/03/issues-with-javascriptvoid0.html' title='Issues with javascript:void(0)'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-6565952813391195407</id><published>2007-02-06T06:29:00.001-05:00</published><updated>2008-11-15T09:25:39.600-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Find and Replace Dialog in Visual Studio</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span xmlns=""&gt;&lt;p&gt;Recently, I was working with a prototype of web application. Since I was building a prototype, I simply used table utility in Word 2007 to create table and used its formatting to create nice looking tables.&lt;br /&gt;&lt;/p&gt;&lt;a href="http://4.bp.blogspot.com/_42Aregpjvg8/RchoJ_Smd9I/AAAAAAAAAAU/_1dq7VgKIjc/s1600-h/a1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028383504776722386" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://4.bp.blogspot.com/_42Aregpjvg8/RchoJ_Smd9I/AAAAAAAAAAU/_1dq7VgKIjc/s320/a1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I simply copy-pasted it in design view of Visual Studio in my ASP.NET web project.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_42Aregpjvg8/RchoXvSmd-I/AAAAAAAAAAc/3gbzoWvZsis/s1600-h/a2.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028383740999923682" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://3.bp.blogspot.com/_42Aregpjvg8/RchoXvSmd-I/AAAAAAAAAAc/3gbzoWvZsis/s320/a2.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This worked fine for small prototype. Problem is that this create internal stylesheets for each &amp;lt;td&amp;gt;, &amp;lt;tr&amp;gt;, &amp;lt;p&amp;gt;,...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_42Aregpjvg8/RchpZvSmeAI/AAAAAAAAAAs/MBuHqNmOXBI/s1600-h/a3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028384874871289858" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://3.bp.blogspot.com/_42Aregpjvg8/RchpZvSmeAI/AAAAAAAAAAs/MBuHqNmOXBI/s320/a3.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When I was asked to convert this to external stylesheets, it created a lot of problems (since I had to remove all internal style="…" attribute from each tag and associate with similar class from external stylesheet).&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span xmlns=""&gt;I had to remove some 1500 style attribute in a particular page. Then regular expression feature of Find Replace Dialog in Visual Studio came to my rescue.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_42Aregpjvg8/RchpkvSmeBI/AAAAAAAAAA0/7gGLUIfsAeE/s1600-h/visual-studio-2005-find-dialog-builder.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028385063849850898" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://3.bp.blogspot.com/_42Aregpjvg8/RchpkvSmeBI/AAAAAAAAAA0/7gGLUIfsAeE/s320/visual-studio-2005-find-dialog-builder.png" border="0" /&gt;&lt;/a&gt; &lt;p&gt;Also, I faced a strange problem. After replacing &lt;strong&gt;style=:q &lt;/strong&gt;with empty string, I still had some 1000 style attributes that were not replaced. The problem was attributes like&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;="font-size: 12pt; color: black; font-family: 'Cambria','serif'; mso-ascii-theme-font: major-latin;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Courier New;color:blue;"  &gt;mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Courier New;color:blue;"  &gt;mso-hansi-theme-font: major-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Courier New;color:blue;"  &gt;mso-themecolor: text1"&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;was not replaced since they were multi-line. I had regular expression &lt;strong&gt;style=("([^"]\n)*")&lt;/strong&gt; to replace these attributes.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Lessons learnt:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Regular Expression make Find Replace dialog very powerful.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Never use Word 2007 (though it allows you to rapidly develop professional looking tables) in your ASP application&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-6565952813391195407?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/6565952813391195407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=6565952813391195407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6565952813391195407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/6565952813391195407'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/02/find-and-replace-dialog-in-visual.html' title='Find and Replace Dialog in Visual Studio'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_42Aregpjvg8/RchoJ_Smd9I/AAAAAAAAAAU/_1dq7VgKIjc/s72-c/a1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-4387257031613874407</id><published>2007-01-31T00:57:00.001-05:00</published><updated>2008-02-09T10:54:29.845-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>What is Research?</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;strong&gt;&lt;em&gt;READING:&lt;/em&gt;&lt;/strong&gt;&lt;a name="READING"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Books are not scrolls.&lt;br /&gt;&lt;br /&gt;Scrolls must be read like the Torah from one end to the other.&lt;br /&gt;&lt;br /&gt;Books are random access -- a great innovation over scrolls.&lt;br /&gt;&lt;br /&gt;Make use of this innovation! Do NOT feel obliged to read a book from beginning to end.&lt;br /&gt;&lt;br /&gt;Permit yourself to open a book and start reading from anywhere.&lt;br /&gt;&lt;br /&gt;In the case of mathematics or physics or anything especially hard, try to find something anything that you can understand.&lt;br /&gt;&lt;br /&gt;Read what you can.&lt;br /&gt;&lt;br /&gt;Write in the margins. (You know how useful that can be.)&lt;br /&gt;&lt;br /&gt;Next time you come back to that book, you'll be able to read more.&lt;br /&gt;&lt;br /&gt;You can gradually learn extraordinarily hard things this way.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Consider writing what you read as you read it.&lt;br /&gt;&lt;br /&gt;This is especially true if you're intent on reading something hard.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;I remember a professor of Mathematics at MIT,&lt;br /&gt;&lt;br /&gt;name of BERTRAM KOSTANT,&lt;br /&gt;&lt;br /&gt;who would keep his door open whenever he was in his office, and he would always be at his desk writing.&lt;br /&gt;&lt;br /&gt;Writing. Always writing.&lt;br /&gt;&lt;br /&gt;Was he writing up his research? Maybe.&lt;br /&gt;&lt;br /&gt;Writing up his ideas? Maybe.&lt;br /&gt;&lt;br /&gt;I personally think he was reading, and writing what he was reading.&lt;br /&gt;&lt;br /&gt;At least for me, writing what I read is one of the most enjoyable and profitable ways to learn hard material.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;STUDYING:&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a name="STUDYING"&gt;&lt;/a&gt;&lt;br /&gt;You are all computer scientists.&lt;br /&gt;&lt;br /&gt;You know what FINITE AUTOMATA can do.&lt;br /&gt;&lt;br /&gt;You know what TURING MACHINES can do.&lt;br /&gt;&lt;br /&gt;For example, Finite Automata can add but not multiply.&lt;br /&gt;&lt;br /&gt;Turing Machines can compute any computable function.&lt;br /&gt;&lt;br /&gt;Turing machines are incredibly more powerful than Finite Automata.&lt;br /&gt;&lt;br /&gt;Yet the only difference between a FA and a TM is that&lt;br /&gt;&lt;br /&gt;the TM, unlike the FA, has paper and pencil.&lt;br /&gt;&lt;br /&gt;Think about it.&lt;br /&gt;&lt;br /&gt;It tells you something about the power of writing.&lt;br /&gt;&lt;br /&gt;Without writing, you are reduced to a finite automaton.&lt;br /&gt;&lt;br /&gt;With writing you have the extraordinary power of a Turing machine.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;strong&gt;&lt;em&gt;THINKING:&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a name="THINKING"&gt;&lt;/a&gt;&lt;br /&gt;CLAUDE SHANNON once told me that as a kid, he remembered being stuck on a jigsaw puzzle.&lt;br /&gt;&lt;br /&gt;His brother, who was passing by, said to him:&lt;br /&gt;&lt;br /&gt;"You know: I could tell you something."&lt;br /&gt;&lt;br /&gt;That's all his brother said.&lt;br /&gt;&lt;br /&gt;Yet that was enough hint to help Claude solve the puzzle.&lt;br /&gt;&lt;br /&gt;The great thing about this hint... is that you can always give it to yourself !!!&lt;br /&gt;&lt;br /&gt;I advise you, when you're stuck on a hard problem,&lt;br /&gt;&lt;br /&gt;to imagine a little birdie or an older version of yourself whispering&lt;br /&gt;&lt;br /&gt;"... I could tell you something..."&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;I once asked UMESH VAZIRANI how he was able,&lt;br /&gt;&lt;br /&gt;as an undergraduate at MIT,&lt;br /&gt;&lt;br /&gt;to take 6 courses each and every semester.&lt;br /&gt;&lt;br /&gt;He said that he knew he didn't have the time to work out his answers the hard way.&lt;br /&gt;&lt;br /&gt;He had to find a shortcut.&lt;br /&gt;&lt;br /&gt;You see, Umesh understood that problems often have short clever solutions.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;br /&gt;&lt;br /&gt;There will come a time when you work on a problem long and hard but UNsuccessfully :(&lt;br /&gt;&lt;br /&gt;And then you learn that someone else found a solution.&lt;br /&gt;&lt;br /&gt;See this as the GREAT opportunity it is to learn something important.&lt;br /&gt;&lt;br /&gt;Don't let it pass you by.&lt;br /&gt;&lt;br /&gt;Ask yourself: "How SHOULD I have been thinking to solve that problem?"&lt;br /&gt;&lt;br /&gt;I have found that doing so is a powerful exercise.&lt;br /&gt;&lt;br /&gt;Danny Sleator tells me that BOB FLOYD independently recommended exactly this exercise to his students.&lt;br /&gt;&lt;br /&gt;He would lead them into asking themselves:&lt;br /&gt;&lt;br /&gt;"How COULD I have led myself to that answer?"&lt;br /&gt;&lt;br /&gt;Take the time to think it through.&lt;br /&gt;&lt;br /&gt;It's worth it.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;There will come a time when you work on a problem long and hard and SUCCESSFULLY :)&lt;br /&gt;&lt;br /&gt;And then you learn that someone else already published. :(&lt;br /&gt;&lt;br /&gt;Hard as that may be for you to take, you must view this too as a great opportunity.&lt;br /&gt;&lt;br /&gt;Don't turn off. Read what got published.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;You will be surprised how often the published paper turns out to be different in some significant way. Roughly&lt;br /&gt;&lt;br /&gt;50% of the time, it is NOT at all the same as what you did.&lt;br /&gt;&lt;br /&gt;25% of the time, it is the same but not as good.&lt;br /&gt;&lt;br /&gt;25% of the time it is better.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;This means that 50% of the time or more, you can still publish.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;And what about the 25% time that what got published is better than your own?&lt;br /&gt;&lt;br /&gt;In that case, you have a great opportunity to learn.&lt;br /&gt;&lt;br /&gt;Ask yourself: "How SHOULD I have been thinking to solve the problem in this fine way?"&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;This is how I discovered, as a young engineer, that I should learn something enormously powerful called "Modern Algebra."&lt;br /&gt;&lt;br /&gt;It's one reason I switched from Electrical Engineering as an undergraduate major to Mathematics as a Graduate major.&lt;br /&gt;&lt;br /&gt;Of course, this was before there existed anything called Computer Science.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;br /&gt;&lt;br /&gt;Still on THINKING...&lt;br /&gt;&lt;br /&gt;The importance of PARADOX and CONTRADICTION.&lt;br /&gt;&lt;br /&gt;When you can prove that a statement S is true,&lt;br /&gt;&lt;br /&gt;and you can prove that the same statement S is false,&lt;br /&gt;&lt;br /&gt;then you KNOW that that you're on to something:&lt;br /&gt;&lt;br /&gt;Something is wrong somewhere.&lt;br /&gt;&lt;br /&gt;Never underestimate the power of a contradiction.&lt;br /&gt;&lt;br /&gt;It is one of our most potent sources of knowledge.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Examples include the Liar Paradox "This statement is false." with its applications to Set Theory and our understanding of language.&lt;br /&gt;&lt;br /&gt;There are the seeming paradoxes of countability and uncountability,&lt;br /&gt;&lt;br /&gt;In CS, there is the apparent paradox that leads to The Halting Problem.&lt;br /&gt;&lt;br /&gt;Physics has lots of paradoxical material:&lt;br /&gt;&lt;br /&gt;Quantum Theory. The Einstein-Rosen-Podulsky Paradox.&lt;br /&gt;&lt;br /&gt;The relativistically speeding Twins.&lt;br /&gt;&lt;br /&gt;The wave and particle nature of matter.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Here's an ASIDE on my current work, also based on paradox:&lt;br /&gt;&lt;br /&gt;I am personally interested in the Paradox of consciousness. Compare the following two views:&lt;br /&gt;&lt;br /&gt;1. the view that the human is a MECHANISM, an automaton&lt;br /&gt;&lt;br /&gt;with substantial but finite internal memory, programmed like&lt;br /&gt;&lt;br /&gt;any computer to do whatever it does, and/or&lt;br /&gt;&lt;br /&gt;2. the view that the human is a thoughtful observant&lt;br /&gt;&lt;br /&gt;creature with a God-like free will; that it is a CONSCIOUS&lt;br /&gt;&lt;br /&gt;ENTITY at the controls of a highly complex highly capable&lt;br /&gt;&lt;br /&gt;mechanism, choosing what to do from among options served up&lt;br /&gt;&lt;br /&gt;by/from its vast unconscious below.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;In my view, both these views are correct. How can that be?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;In his "Life of Johnson," James Boswell quotes Samuel Johnson&lt;br /&gt;&lt;br /&gt;as saying:&lt;br /&gt;&lt;br /&gt;"All theory is against the freedom of the will; all experience&lt;br /&gt;&lt;br /&gt;is for it."&lt;br /&gt;&lt;br /&gt;Johnson was 18 years old when Newton (age 85) was buried.&lt;br /&gt;&lt;br /&gt;Johnson knew that F=MA implied that humans are mechanisms.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;"All theory is against the freedom of the will; all experience&lt;br /&gt;&lt;br /&gt;is for it."&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;This ends my ASIDE.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Make a list for yourself of good ways to pursue a problem.&lt;br /&gt;&lt;br /&gt;My own favorite is to try small examples. By comparison,&lt;br /&gt;&lt;br /&gt;DAVID GRIES's favorite is to put himself in the middle&lt;br /&gt;&lt;br /&gt;of a (presumed) solution. An example is his coffee can problem:&lt;br /&gt;&lt;br /&gt;Given a can of black and white coffee beans, do the following: Pull out two beans: if both are the same color, replace them with a white bean. If the two are different, replace them with a black bean. What color is the last bean?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Or try out the two methods on the Hershey Bar problem&lt;br /&gt;&lt;br /&gt;[Give an optimal algorithm to break an mxn Hershey bar into&lt;br /&gt;&lt;br /&gt;1x1 pieces. At each step, you can choose a single rectangle&lt;br /&gt;&lt;br /&gt;of chocolate and crack it along one of its vertical or&lt;br /&gt;&lt;br /&gt;horizontal lines. A single crack counts one step. You are to&lt;br /&gt;&lt;br /&gt;make the fewest number of cracks]&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Brains are muscles.&lt;br /&gt;&lt;br /&gt;They grow strong with exercise.&lt;br /&gt;&lt;br /&gt;And even if they're strong, they grow weak without it.&lt;br /&gt;&lt;br /&gt;In the months before Kasparov lost to Deep Blue,&lt;br /&gt;&lt;br /&gt;his mother came after him.&lt;br /&gt;&lt;br /&gt;She was worried that he wasn't spending enough time&lt;br /&gt;&lt;br /&gt;exercising himself (on chess).&lt;br /&gt;&lt;br /&gt;Her worries proved well-founded.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;strong&gt;&lt;em&gt;THE PhD: GETTING STARTED&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a name="STARTING"&gt;&lt;/a&gt;&lt;br /&gt;I remember a great summer job I once had at IVIC&lt;br /&gt;&lt;br /&gt;(Instituto Venezolano de Investigaciones Cientificos).&lt;br /&gt;&lt;br /&gt;A top neurophysiologist, name of Svaetichin, gave me a splendid problem... one that I unfortunately could not solve.&lt;br /&gt;&lt;br /&gt;The problem was to find a way to focus light on a single cell&lt;br /&gt;&lt;br /&gt;of a goldfish retina so that the light would not spill over&lt;br /&gt;&lt;br /&gt;onto any of the adjacent cells.&lt;br /&gt;&lt;br /&gt;Svaetichin had tried making a pinhole in a sheet of black tin,&lt;br /&gt;&lt;br /&gt;and shining his light thru the hole. This worked for moderate size holes, but failed for really small holes, which caused the light to diverge, to form diffraction patterns.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Since Svaetichin couldn't solve the problem, I decided I couldn't. Or perhaps it's that I thought his problem physically unsolvable. In retrospect, I should have taken out books on physics, especially optics, read as much as I could, talked to others and kept on talking to him.&lt;br /&gt;&lt;br /&gt;Svaetichin would have helped me if I had shown him I was reading thinking working.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Don't expect your thesis advisor to give you a problem that he or she can answer. Of course, she might.&lt;br /&gt;&lt;br /&gt;* She might give you a problem to which she already knows an answer.&lt;br /&gt;&lt;br /&gt;* She might give you a problem that she thinks is answerable,&lt;br /&gt;&lt;br /&gt;but that she hasn't actually answered.&lt;br /&gt;&lt;br /&gt;* She might give you a problem that is deadly hard.&lt;br /&gt;&lt;br /&gt;* If the problem she gives you is hard enough,&lt;br /&gt;&lt;br /&gt;I suggest you look for a NONSTANDARD answer.&lt;br /&gt;&lt;br /&gt;More on this later after I get done cooking the thesis advisor.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Your thesis advisor may encourage you to work in an area&lt;br /&gt;&lt;br /&gt;that she feels completely comfortable in... in which case you can rely on her for sage advice and sound guidance.&lt;br /&gt;&lt;br /&gt;Or she may encourage you to work on something she knows little or nothing about, in which case it will be up to you to inform and teach her.&lt;br /&gt;&lt;br /&gt;In the latter case, you will have to learn all you can for yourself...&lt;br /&gt;&lt;br /&gt;You will have to learn from other faculty, from courses, from books, from journals. from peers.&lt;br /&gt;&lt;br /&gt;Both kinds of advisors can work out for you.&lt;br /&gt;&lt;br /&gt;I don't know that one is necessarily better than the other.&lt;br /&gt;&lt;br /&gt;But you should know which you got.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Whatever you do, you got to like doing it....&lt;br /&gt;&lt;br /&gt;You got to like it so much that you're willing to think about it, work on it, long after everyone else has moved on.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;strong&gt;&lt;em&gt;THE PhD: DEEP IN THE MIDDLE OF IT&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;a name="DEEP"&gt;&lt;/a&gt;&lt;br /&gt;There's a wonderful quote from ANATOLE FRANCE:&lt;br /&gt;&lt;br /&gt;"A University Student"&lt;br /&gt;&lt;br /&gt;-- and this is especially true for a PhD Student --&lt;br /&gt;&lt;br /&gt;"should know something about everything&lt;br /&gt;&lt;br /&gt;and everything about something."&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;You know the jokes about PhD's...&lt;br /&gt;&lt;br /&gt;A PhD knows more and more about less and less&lt;br /&gt;&lt;br /&gt;until he knows everything about nothing.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;When working on a PhD, you must focus on a topic so narrow that you can understand it completely.&lt;br /&gt;&lt;br /&gt;It will seem at first that you're working on the proverbial needle, a tiny fragment of the world, a minute crystal,&lt;br /&gt;&lt;br /&gt;beautiful but in the scheme of things, microscopic.&lt;br /&gt;&lt;br /&gt;Work with it. And the more you work with it, the more you penetrate it, the more you will come to see that your work, your subject, encompasses the world.&lt;br /&gt;&lt;br /&gt;In time, you will come to see the world in your grain of sand.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;To see a world in a grain of sand&lt;br /&gt;&lt;br /&gt;Or a heaven in a wild flower,&lt;br /&gt;&lt;br /&gt;Hold infinity in the palm of your hand&lt;br /&gt;&lt;br /&gt;And eternity in an hour.&lt;br /&gt;&lt;br /&gt;WILLIAM BLAKE (1757-1827)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;This gorgeous quartet is followed by a large number of sometimes deep sometimes questionable aphorisms, which I see much like the occasionally grinding work of a PhD thesis.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;br /&gt;&lt;br /&gt;There's all kinds of research you can do.&lt;br /&gt;&lt;br /&gt;There's research to prove what you know to be true.&lt;br /&gt;&lt;br /&gt;There's research -- maybe better called SEARCH -- to figure out what is true.&lt;br /&gt;&lt;br /&gt;Some of the best such search succeeds in DISPROVING&lt;br /&gt;&lt;br /&gt;what you initially believed to most certainly be true.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;For example, Sir Fred Hoyle is said to have coined the phrase "Big Bang" at a time when he was looking to disprove it.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;For a relatively minor but personal example:&lt;br /&gt;&lt;br /&gt;When I was working on the MEDIAN problem,&lt;br /&gt;&lt;br /&gt;my goal was to prove that any deterministic algorithm to find the MEDIAN of n integers must necessarily make roughly as many comparisons as it takes to sort n integers, i.e. n log n comparisons.&lt;br /&gt;&lt;br /&gt;I was shocked to discover that the median of n integers can be found with just O(n) comparisons.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;When working on proving some statement S true,&lt;br /&gt;&lt;br /&gt;you should spend at least some time trying to prove it false.&lt;br /&gt;&lt;br /&gt;Even if it's true, trying to prove it false can give insight.&lt;br /&gt;&lt;br /&gt;And in any case, too often, our intuition is dead wrong.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;There is yet another sense in which, when working on a hard problem, you may find that the answer is NOT what you expected.&lt;br /&gt;&lt;br /&gt;You may be looking for a YES or a NO; it may be something else.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Some years ago, JOHN HOPCROFT gave one of his PhD students the problem of deciding the Equivalence of Free Boolean Forms.&lt;br /&gt;&lt;br /&gt;The specifics don't matter.&lt;br /&gt;&lt;br /&gt;The problem appeared as an open problem in Garey and Johnson.&lt;br /&gt;&lt;br /&gt;The question was: Is the Equivalence problem NP-complete?&lt;br /&gt;&lt;br /&gt;Or is it solvable in poly time?&lt;br /&gt;&lt;br /&gt;Chandra, Wegman and I found a randomizing algorithm for this problelm. At the time this seemed to beg the question entirely. Only after writing it up did we really understand that we had given an efficient albeit randomizing algorithm to solve it, This shows, by the way, that the problem is not NP-complete if NP &amp;lt;&amp;gt; RP (Randomizing Poly-time), as seems likely.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Of course, this brings up the question whether P = NP.&lt;br /&gt;&lt;br /&gt;The question of our time: Are NP-complete problems solvable in poly time?&lt;br /&gt;&lt;br /&gt;Could anything I have said today be useful for so hard a problem as that?&lt;br /&gt;&lt;br /&gt;Probably not. Nevertheless...&lt;br /&gt;&lt;br /&gt;LEONID LEVIN believes as I do that whatever the answer to the P=NP? problem, it won't be like anything you think it should be. And he has given some wonderful examples.&lt;br /&gt;&lt;br /&gt;For one, he has given a FACTORING ALGORITHM that is proVably optimal, up to a multiplicative constant.&lt;br /&gt;&lt;br /&gt;He proves that if his algorithm is exponential,&lt;br /&gt;&lt;br /&gt;then every algorithm for FACTORING is exponential.&lt;br /&gt;&lt;br /&gt;Equivalently, if any algorithm for factoring is poly-time,&lt;br /&gt;&lt;br /&gt;then his algorithm is poly-time.&lt;br /&gt;&lt;br /&gt;But we haven't been able to tell the running time of his algorithm because, in a strong sense, it's running time is unanalyzable.&lt;br /&gt;&lt;br /&gt;Maybe as STEVEN RUDICH suggests, the P=NP? problem is undecidable in the standard formalization of Mathematics.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;The point is that the answer may not lie where you expect it. Here's a poem I wrote when I wondered at the fact that we must sometimes be dragged kicking and screaming in the right direction.&lt;br /&gt;&lt;br /&gt;It's a comparison to the blind spot in our eyes,&lt;br /&gt;&lt;br /&gt;which isn't really blind but makes things up for us.&lt;br /&gt;&lt;br /&gt;It questions whether there might not be other things in this world that our brains, our minds, by their very nature, make up for us:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Blind Spots mb 15-MAY-96&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;All men have Blind Spots in their eyes,&lt;br /&gt;&lt;br /&gt;That manufacture visions of their vale.&lt;br /&gt;&lt;br /&gt;And shape that void where light's unregistered,&lt;br /&gt;&lt;br /&gt;With bold-faced unrepentant tales.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;What other blind spots shape our minds and thoughts?&lt;br /&gt;&lt;br /&gt;What other tales do won'dring minds unfurl&lt;br /&gt;&lt;br /&gt;To woo us unbeguiled we would believe&lt;br /&gt;&lt;br /&gt;To strange and nonexistent worlds?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;ABOUT WRITING:&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a name="WRITING"&gt;&lt;/a&gt;&lt;br /&gt;Here is the one quote that I have found most helpful and wise:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;"First have something to say,&lt;br /&gt;&lt;br /&gt;Second say it,&lt;br /&gt;&lt;br /&gt;Third stop when you have said it,&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;Finally give it an accurate title."&lt;br /&gt;&lt;br /&gt;JOHN SHAW BILLINGS [1838-1913]&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;strong&gt;&lt;em&gt;MY ADVICE TO YOU:&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a name="you"&gt;&lt;/a&gt;&lt;br /&gt;Don't expect your thesis advisor to read your thesis. Some thesis advisors can and do give good feedback, but not all.&lt;br /&gt;&lt;br /&gt;Still, make sure that SOMEBODY reads your thesis...&lt;br /&gt;&lt;br /&gt;I especially recommend that you ask your peers.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Here's another piece of advice that I have often had to give myself, and I here give you...&lt;br /&gt;&lt;br /&gt;When you send a paper off to be published,&lt;br /&gt;&lt;br /&gt;and it gets rejected...&lt;br /&gt;&lt;br /&gt;Don't be turned off by the mindless cretinous feedback&lt;br /&gt;&lt;br /&gt;that you get to your well-thought-out beautifully-written work!&lt;br /&gt;&lt;br /&gt;Be a MENSCH. Use the feedback to improve your paper!&lt;br /&gt;&lt;br /&gt;Make it better. And send it back.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;br /&gt;&lt;br /&gt;Finally, it is my most earnest wish that you should know something that is honestly amazingly true of you... That you are each of you UNIQUE and SPECIAL in some glorious way.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;I wrote a poem to capture this, which I now use to end my sermon. It's called "Fundamentals."&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;&lt;strong&gt;FUNDAMENTALS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;mb 05-JUN-96&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Bird must soar. Skunk must stink.&lt;br /&gt;&lt;br /&gt;Cat must prowl. Man must think.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;What sets man apart from beast is his engine of&lt;br /&gt;&lt;br /&gt;thought. His mind. His&lt;br /&gt;&lt;br /&gt;BRAIN&lt;br /&gt;&lt;br /&gt;makes him unique&lt;br /&gt;&lt;br /&gt;and gives him his greatest pleasure.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;But fundamental as is thought for human beings,&lt;br /&gt;&lt;br /&gt;there is stuff more basic still that underlies and&lt;br /&gt;&lt;br /&gt;DRIVES&lt;br /&gt;&lt;br /&gt;not only man&lt;br /&gt;&lt;br /&gt;but all great beasts,&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;And that is nature's call to each of us... to be special.&lt;br /&gt;&lt;br /&gt;To be distinguished in some way. To be&lt;br /&gt;&lt;br /&gt;UNIQUE.&lt;br /&gt;&lt;br /&gt;To BE something, to DO something, BETTER than everyone else.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Like the leather nosed chimpanzee,&lt;br /&gt;&lt;br /&gt;dragging noisy cans and branches,&lt;br /&gt;&lt;br /&gt;frightening peers into submission,&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;One does not have to be brilliant, a genius, to be special.&lt;br /&gt;&lt;br /&gt;To do something better than anyone/everyone else. To be&lt;br /&gt;&lt;br /&gt;UNMATCHED,&lt;br /&gt;&lt;br /&gt;One has only to choose an END&lt;br /&gt;&lt;br /&gt;any END&lt;br /&gt;&lt;br /&gt;that MATTERS&lt;br /&gt;&lt;br /&gt;that INSPIRES&lt;br /&gt;&lt;br /&gt;YOU&lt;br /&gt;&lt;br /&gt;And then DO IT.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;By, Manuel Blum.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="color:black;"&gt;(&lt;a href="http://www.cs.cmu.edu/%7Emblum/research/pdf/grad.html"&gt;&lt;/a&gt;&lt;/span&gt;http://www.cs.cmu.edu/~mblum/research/pdf/grad.html&lt;span style="color:black;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Manuel Blum (born 26 April 1938) is a computer scientist who received the Turing Award in 1995 "In recognition of his contributions to the foundations of computational complexity theory and its application to cryptography and program checking". Blum attended MIT, where he received his Bachelor's degree in 1959, his Master's degree in 1961, and his PhD in 1964. He worked as a professor of computer science at the University of California, Berkeley until 2000. He is currently the Bruce Nelson Professor of Computer Science at Carnegie Mellon University.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-4387257031613874407?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/4387257031613874407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=4387257031613874407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4387257031613874407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/4387257031613874407'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/01/what-is-research.html' title='What is Research?'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-116909530957188901</id><published>2007-01-17T23:39:00.000-05:00</published><updated>2008-02-09T10:55:15.990-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Code Obfuscator</title><content type='html'>One of the key architectural features of Microsoft .NET is that all its languages compile to .NET assemblies containing CPU-independent instructions. These instructions, known as Microsoft Intermediate Language (MSIL), contrast with many other languages that generate CPU-specific instructions for the target CPU. .NET assemblies are comprised both of MSIL instructions and also metadata that describe types, members, and code references from other assemblies. At runtime, the MSIL instructions are converted to CPU-specific instructions by a just-in-time (JIT) compiler.&lt;br /&gt;&lt;br /&gt;The use of this architecture has several huge benefits for the .NET developer. For instance, it makes possible easy interoperability for code written in differing languages, and it makes it easy for an assembly to specify exactly the version of another assembly with which it will work. But there is one major drawback for some developers as well: the MSIL and metadata in an assembly provide enough information to recover the original code. The .NET framework ships with a tool, ILDASM that can disassemble MSIL into assembly language and other utilities can carry the process even further, translating a .NET assembly back into a high-level language such as C# or Visual Basic .NET.&lt;br /&gt;&lt;br /&gt;This is a drawback because it is very difficult to protect the intellectual property in an application if anyone can read the source code for the application. Developers, who have spent months or years coming up with complex algorithms or workarounds for bugs in the .NET Framework, or other components, often prefer to have their methods remain secret from their competitors.&lt;br /&gt;&lt;br /&gt;This is where obfuscators come in. The purpose of an obfuscator is to apply one or more transformations to a .NET assembly without affecting the proper functioning of the assembly, but that make it difficult or impossible to understand any source code recovered from the assembly. As a simple example, every obfuscator offers some level of member renaming. Source code where all of the objects are named things like A, B, and C instead of Customer, ClientData, and ServiceUpdate, is substantially more difficult to understand.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to obfuscate?&lt;br /&gt;&lt;/strong&gt;Simplest way – Use Macro preprocessors to create hard to read code by masking the standard language syntax and grammar from the main body of code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Pitfalls:&lt;br /&gt;&lt;/strong&gt;Although obfuscation is a valuable technology in many circumstances, you do need to be aware of some potential pitfalls:&lt;br /&gt;1. Obfuscation can break code that depends on reflection, serialization, or remoting.&lt;br /&gt;2. Obfuscation can make diagnosing and debugging problems in your code more difficult.&lt;br /&gt;3. Obfuscation adds another step and another potential error source to your build process.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Obfuscation in Visual Studio .NET:&lt;br /&gt;&lt;/strong&gt;If your obfuscation needs are minimal, and you're a Visual Studio .NET user you may not need to purchase a product at all. That's because Visual Studio .NET includes a copy of the Community Edition of Dotfuscator for .NET, an obfuscator from PreEmptive Solutions. This obfuscator is targeted at students and freeware authors, and supports basic entity renaming and removal of unused metadata, but no advanced obfuscation features.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Recreational obfuscation:&lt;br /&gt;&lt;/strong&gt;Code is sometimes obfuscated deliberately for recreational purposes. There are programming contests which reward the most creatively obfuscated code: the International Obfuscated C Code Contest, Obfuscated Perl Contest, International Obfuscated Ruby Code Contest and Obfuscated PostScript Contest.&lt;br /&gt;There are many varieties of interesting obfuscations ranging from simple keyword substitution, use/non-use of whitespace to create artistic effects, clever self-generating or heavily compressed programs, or programs that are valid and operate similarly in multiple programming languages.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Points to note:&lt;br /&gt;&lt;/strong&gt;No obfuscator known today provides any guarantees on the difficulty of reverse engineering: See &lt;a href="http://www.math.ias.edu/%7Eboaz/Papers/obf_informal.html"&gt;http://www.math.ias.edu/~boaz/Papers/obf_informal.html&lt;/a&gt;&lt;br /&gt;Hackers can use this technique to foil anti-virus programs that rely upon a virus having a static signature. The technique also allows spammers to hide their intentions. See: &lt;a href="http://www.itbusiness.ca/it/client/en/Home/News.asp?id=41807&amp;amp;bSearch=True"&gt;http://www.itbusiness.ca/it/client/en/Home/News.asp?id=41807&amp;amp;bSearch=True&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-116909530957188901?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/116909530957188901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=116909530957188901' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/116909530957188901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/116909530957188901'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/01/code-obfuscator.html' title='Code Obfuscator'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-116834483025546599</id><published>2007-01-09T07:13:00.000-05:00</published><updated>2008-02-09T10:55:38.303-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>ClickOnce Deployment</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Visual Studio provides two different strategies for deploying Windows-based applications: publishing an application using ClickOnce technology, or deploying it with a traditional Setup using Windows Installer technology. With ClickOnce deployment, you publish the application to a centralized location and the user installs or runs the application from that location. With Windows Installer deployment, you package the application in a setup.exe file and distribute that file to users, who run the Setup.exe file to install the application.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;ClickOnce deployment greatly simplifies the process of installing and updating an application, but you do not get the power of Windows Installer deployment, which provides you with greater flexibility.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;ClickOnce deployed applications are self-updating and are the best choice for applications that require frequent changes. Although ClickOnce applications can be initially installed by means of a CD-ROM, users must have network connectivity to take advantage of the update capabilities.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;With Windows Installer, you add a Setup project to your solution to create a setup file that is distributed to users; the user runs the setup file and steps through a wizard to install the application.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Creating ClickOnce application:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Create normal windows or console application.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;Then, right click on it and click on Publish.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;This will prompt you to specify a Web site or network file share.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;The user installs and launches the application directly from that location in a single step.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;However, you don't have flexibility of custom install in ClickOnce application. This is crucial feature that I miss the most. However, updating functionality is great.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;color:black;"  &gt;If your application does not require custom install actions and if you have hosting space, I will advise you to try this feature.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;!-- Search Google --&gt;
&lt;center&gt;
&lt;form method="get" action="http://www.google.co.in/custom" target="google_window"&gt;
&lt;table bgcolor="#ffffff"&gt;
&lt;tr&gt;&lt;td nowrap="nowrap" valign="top" align="left" height="32"&gt;
&lt;a href="http://www.google.com/"&gt;
&lt;img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;br/&gt;
&lt;input type="text" name="q" size="31" maxlength="255" value=""&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign="top" align="left"&gt;
&lt;input type="submit" name="sa" value="Search"&gt;&lt;/input&gt;
&lt;input type="hidden" name="client" value="pub-7438668549819913"&gt;&lt;/input&gt;
&lt;input type="hidden" name="forid" value="1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="ie" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="oe" value="ISO-8859-1"&gt;&lt;/input&gt;
&lt;input type="hidden" name="safe" value="active"&gt;&lt;/input&gt;
&lt;input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFF3DB;LBGC:FFF3DB;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"&gt;&lt;/input&gt;
&lt;input type="hidden" name="hl" value="en"&gt;&lt;/input&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/center&gt;
&lt;!-- Search Google --&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30819994-116834483025546599?l=niketanblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://niketanblog.blogspot.com/feeds/116834483025546599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30819994&amp;postID=116834483025546599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/116834483025546599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30819994/posts/default/116834483025546599'/><link rel='alternate' type='text/html' href='http://niketanblog.blogspot.com/2007/01/clickonce-deployment.html' title='ClickOnce Deployment'/><author><name>Niketan Pansare</name><uri>https://profiles.google.com/114638076826553475806</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-81z4CsQzHSE/AAAAAAAAAAI/AAAAAAAAEcY/olc5nREzYyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30819994.post-116824994805010365</id><published>2007-01-08T04:52:00.000-05:00</published><updated>2008-02-09T10:55:52.532-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Some tips about creating an installer</title><content type='html'>I am working on custom installer for deploying DTSX packages. It also includes few custom actions like creating databases, populating data, attaching dtsConfig files, etc...&lt;br /&gt;&lt;br /&gt;Few Golden rules:&lt;br /&gt;1.      “Uninstall/Remove/Delete all resources during uninstall and rollback, you install using custom action”.&lt;br /&gt;2.      Suppress all exceptions in Rollback.&lt;br /&gt;3.      Validate “ALL” parameters supplied by user.&lt;br /&gt;4.      Create a separate file that stores all strings used by Installer for user interaction.&lt;br /&gt;5.      Always have a log file.&lt;br /&gt;6.      Not recommended: You can use MessageBox to debug your installer.&lt;br /&gt;&lt;br /&gt;How to implement:&lt;br /&gt;1.      Uninstall:&lt;br /&gt;Create a text file “uninstall.log”. This should ideally have list of all resources that has been installed using custom install method. It should also have additional parameters (eg username, password) that will be useful for uninstalling or removing the resources.&lt;br /&gt;Rollback:&lt;br /&gt;Create a flag that states whether a resources has been deployed or not. Add all parameters required in state server:&lt;br /&gt;Eg: stateSaver.Add("someParameter", ParameterValue); -- in Install method&lt;br /&gt;if(savedState["someParameter"] != null) // Required&lt;br /&gt;string someParameterInRollback =    savedState["someParameter"].ToString(); -- in Rollback method&lt;br /&gt;&lt;br /&gt;2.      Keep a general try / catch loop. This will allow you to do maximum damage control J in rollback phase.&lt;br /&gt;&lt;br /&gt;public override void Rollback(System.Collections.IDictionary savedState)&lt;br /&gt;{&lt;br /&gt;     base.Rollback(savedState);&lt;br /&gt;     try&lt;br /&gt;     {&lt;br /&gt;           //&lt;br /&gt;//Rollback Action&lt;br /&gt;//&lt;br /&gt;}&lt;br /&gt;           catch (Exception exception)&lt;br /&gt;           {&lt;br /&gt;               //Suppress all exceptions&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;            &lt;br /&gt;3.      Keep a separate method for this fun
