<?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-28880654</id><updated>2011-08-07T17:58:14.680+05:30</updated><title type='text'>Core Dumped ...</title><subtitle type='html'>Copy from one source is plagiarism, copy from two or more is research.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-28880654.post-4061569448036864515</id><published>2010-10-19T21:54:00.001+05:30</published><updated>2010-10-19T21:57:07.780+05:30</updated><title type='text'>Change of Research Topic</title><content type='html'>It finally happened. Many wise grad students and research scholars foretold this would happen. Many circumstances gave hints and warning signs that this would happen. I was forced to change my topic of research. I will no longer be working on "Kernel Methods", sorry Dr Vapnik.&lt;br /&gt;I will be working on formulating efficient methodologies to detect plagiarism in source code.Bleah!!!&lt;br /&gt;&lt;br /&gt;So everybody take a deep breath in and chant with me....&lt;br /&gt;"I love my project"&lt;br /&gt;"I love my project"&lt;br /&gt;"I love my project"&lt;br /&gt;"I love my project"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I guess I will not kill myself today !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-4061569448036864515?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/4061569448036864515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=4061569448036864515' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/4061569448036864515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/4061569448036864515'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2010/10/change-of-research-topic.html' title='Change of Research Topic'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-2323692765148832067</id><published>2010-10-10T09:54:00.001+05:30</published><updated>2010-10-10T09:54:29.829+05:30</updated><title type='text'>History of Learning Theory</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, serif; font-size: 13px; line-height: 19px;"&gt;According to Vapnik, history of research of the learning problem can be thought of as:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, serif; font-size: 13px; line-height: 19px;"&gt;&lt;br /&gt;1. Constructing the first learning machines&lt;br /&gt;2. Constructing the fundamentals of the theory&lt;br /&gt;3. Constructing neural networks&lt;br /&gt;4. Constructing alternatives to neural network&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, serif; font-size: 13px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 19px;"&gt;You cannot always model learning theory by looking at neural networks and modelling the human brain. Not everything can be&amp;nbsp;modeled&amp;nbsp;from nature. Look at the aircraft. It cannot be modeled from studying birds.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 19px;"&gt;And that's all Vapnik has to say about that.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-2323692765148832067?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/2323692765148832067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=2323692765148832067' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/2323692765148832067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/2323692765148832067'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2010/10/according-to-vapnik-history-of-research.html' title='History of Learning Theory'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-8124275788413337400</id><published>2010-10-10T09:50:00.002+05:30</published><updated>2010-10-10T09:50:37.654+05:30</updated><title type='text'>SVM StuckUp</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, serif; font-size: 13px; line-height: 19px;"&gt;I think I hit a road block with VC dimension and VC theory. Planning to do a writeup on SVM that gives a simple introduction. I would like to get it printed in some low key Indian journal.&lt;br /&gt;&lt;br /&gt;The tutorial by Burges:&amp;nbsp;&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.1083" id="link_0" style="border-bottom-color: rgb(178, 178, 178); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #a92242; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;http://citeseerx.ist.psu.edu/viewdoc/su&lt;wbr style="cursor: pointer;"&gt;&lt;/wbr&gt;mmary?doi=10.1.1.18.1083&lt;/a&gt;&amp;nbsp;looks like a good read to study on VC risk.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-8124275788413337400?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/8124275788413337400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=8124275788413337400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/8124275788413337400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/8124275788413337400'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2010/10/svm-stuckup.html' title='SVM StuckUp'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-167744141238637755</id><published>2010-06-27T13:22:00.000+05:30</published><updated>2010-06-27T13:22:25.966+05:30</updated><title type='text'>Getting your feet wet with SVM</title><content type='html'>This is a direct copy-paste from the Kernel Machines site:&lt;br /&gt;&lt;br /&gt;There are several introductions, review papers, and books. As usual, there is a trade-off between how much time you want to invest, and how much you will get out of it. The following list is ordered by increasing time. On the log(time) domain, the increase in effort should be pretty much linear. ;) &lt;br /&gt;(a) The introduction of the book &lt;i&gt;Advances in Kernel Methods - Support Vector Learning&lt;/i&gt; or the high level overview of Hearst et al. from &lt;i&gt;IEEE Intelligent Systems &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp; &lt;/i&gt;&lt;br /&gt;(b) The tutorial papers of Burges (SVM pattern recognition) or Smola and Schoelkopf (SVM regression estimation)&lt;br /&gt;(c) The small book of Vapnik, published by Springer (1995, or, in second edition, 1999), or the one of Cristianini and Shawe-Taylor  (2000).&lt;br /&gt;Alternatives that can be downloaded free of charge are PhD theses on SVMs, such as the ones of Schoelkopf (1997), Smola (1998), Herbrich (2000, to be finished soon).&lt;br /&gt;(d) The collection of papers presented at the NIPS workshop on SVMs and kernel methods, from 1997 (&lt;i&gt;Advances in Kernel Methods&lt;/i&gt;, MIT  Press, 1999), 1998 (&lt;i&gt;Advances in Large Margin Classifiers&lt;/i&gt;, MIT Press,  2000 - to appear), or 1999 (these will appear in a special issue of the journal &lt;i&gt;Machine Learning&lt;/i&gt; at some point of time in the future).&lt;br /&gt;(e) The long book of Vapnik, the bible of statistical learning theory (Wiley, 1998).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-167744141238637755?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/167744141238637755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=167744141238637755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/167744141238637755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/167744141238637755'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2010/06/getting-your-feet-wet-with-svm.html' title='Getting your feet wet with SVM'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-9166068027358280365</id><published>2010-06-20T12:17:00.000+05:30</published><updated>2010-06-20T12:17:38.351+05:30</updated><title type='text'>Introduction to SVM</title><content type='html'>&amp;nbsp;I was reading up on Statistical Learning theory before stepping into SVM. Vapnik's book is a little too much for me right now.&lt;br /&gt;&lt;br /&gt;This looks like a good place to start:&amp;nbsp; &lt;br /&gt;http://www.isis.ecs.soton.ac.uk/resources/svminfo/&lt;br /&gt;&lt;br /&gt;Downloaded the Technical report and the SVM Toolbox. I still have to figure out how to use the toolbox. There was some error which says:&lt;br /&gt;"??? Invalid MEX-file 'D:\poject\codeings\qp.dll': D:\poject\codeings\qp.dll is not a valid Win32 "&lt;br /&gt;&lt;br /&gt;A few google searches tells me that I have to do the following:&lt;br /&gt;In the SVM toolbox directory,&lt;br /&gt;1. Go into the optimiser directory and type,&lt;br /&gt;2. Type &amp;nbsp; mex -v qp.c pr_loqo.c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  it should create a file called qp.mex***.&lt;br /&gt;3. Copy paste this file into svm  directory.&lt;br /&gt;&lt;br /&gt;It does not complain much now. But I am still figuring out how can I use it.&lt;br /&gt;&lt;br /&gt;Why cannot people write documentation for their own code and post it along with the software.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-9166068027358280365?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/9166068027358280365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=9166068027358280365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/9166068027358280365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/9166068027358280365'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2010/06/introduction-to-svm.html' title='Introduction to SVM'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-8099327966172179011</id><published>2010-06-11T12:10:00.002+05:30</published><updated>2010-06-22T12:37:45.965+05:30</updated><title type='text'>My first steps into PhD</title><content type='html'>So I have decided to take that plunge into serious PhD business.&lt;br /&gt;&lt;br /&gt;My professor has asked me to work on structural SVMs. But I have to work my way upto there from the bottom. So the course is route is going to be something like:&lt;br /&gt;Machine Learning -&amp;gt; Supervised Learning -&amp;gt; Statistical Learning theory -&amp;gt; Pattern Recognition, Classification, Regression -&amp;gt; SVM -&amp;gt; Structural SVM&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So the first question that I find asking myself is: What is Machine Learning definition? And I find the following definitions:&lt;br /&gt;Arthur Samuel(1959) Feild of study that gives computers the ability to learn without being explicitly programmed.&lt;br /&gt;&lt;br /&gt;Tom Mitchell(1998) Well-posed Learning problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.&lt;br /&gt;&lt;br /&gt;The fundamental concepts in Machine Learning are:&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;1. Supervised Learning: Learning from Examples&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Supervised Learning can consist of&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Regression Problems : Predict continous values&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Classification Problems: Predict discrete values&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;2.1 Statistical learning theory&lt;/i&gt;&lt;/b&gt; :tries to give an understanding of how and  why&amp;nbsp;&amp;nbsp; learning algorithms work. This field of study makes it possible to  formulate theorms that will garuentee that a learning algorithm will  work. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; How well can you approximate the learning function&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; How much training data do you need &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Unsupervised Learning:&lt;/b&gt; Learning without any Examples&lt;br /&gt;&lt;b&gt;4. Reinforcement Learning:&lt;/b&gt; Learning on the fly from experience &lt;br /&gt;&lt;br /&gt;During the course of my work, I hope this blog maintains a record of the different things that I lay my hands on.&lt;br /&gt;&lt;br /&gt;For starters, I installed the latex support for blogs so that I can do stuff like this: &lt;br /&gt;&lt;span style="color: green; font-family: monospace; font-size: small;"&gt;$\sum_{i=1}^nx_i$&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;More later....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-8099327966172179011?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/8099327966172179011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=8099327966172179011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/8099327966172179011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/8099327966172179011'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2010/06/my-first-steps-into-phd.html' title='My first steps into PhD'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-4232054075171668707</id><published>2007-03-05T10:33:00.001+05:30</published><updated>2007-03-05T10:33:38.327+05:30</updated><title type='text'>Using Windows Live Writer</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If you are a lazy bum, and you dont like to log into blogger each time to post a blog, then you could download and use Windows Live Writer like me. The geeks also call it WLW. Sounds cool huh?&lt;/p&gt; &lt;p&gt;Setting up WLW for the new blogger can be quite a pain. But here is what I found:&lt;/p&gt; &lt;p&gt;(WARNING: This is only for the NEW Blogger accounts using WLW version 1.0.1 6) ) &lt;/p&gt; &lt;p&gt;1. Download the latest version of WLW. &lt;a href="http://windowslivewriter.spaces.live.com/"&gt;This&lt;/a&gt;&amp;nbsp;looks like a good place to find out that latest version.&lt;/p&gt; &lt;p&gt;2. Install WLW. You will need .NET framework for this.&lt;/p&gt; &lt;p&gt;3. Start WLW. In the weblog homepage url, give a url that WILL NOT RESOLVE.&lt;/p&gt; &lt;p&gt;4. Give the correct username and password. Your username will be something like &lt;a href="mailto:username@gmail.com"&gt;username@gmail.com&lt;/a&gt; and password will be like ********&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :-)&lt;/p&gt; &lt;p&gt;5. WLW will try to resolve the url and will fail (what did you expect). It will then&amp;nbsp;go to a window that&amp;nbsp;displays&amp;nbsp;"&amp;nbsp;Type of weblog you are using". In the drop down menu, choose Blogger(Atom).&amp;nbsp; The immediate field below is the&amp;nbsp;"Remote posting for your web log:" and it will now contain something like this:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.blogger.com/feeds/&amp;lt;feed-id&amp;gt;/posts/full" href="http://www.blogger.com/feeds/&amp;lt;blog-id&amp;gt;/posts/full"&gt;http://www.blogger.com/feeds/&amp;lt;blog-id&amp;gt;&lt;feed-id&gt;/posts/full&lt;/a&gt;&lt;/p&gt; &lt;p&gt;6. Replace your blog id in the &amp;lt;blog-id&amp;gt; section in the above URL and you are all set. If you don't know your blog id, you can simply find it out by going to your blog, click on view source in your browser and searching for it. Here is what it looked like for me:&amp;nbsp;&amp;nbsp;href=&lt;a href="http://www2.blogger.com/rsd.g?blogID=28880654"&gt;http://www2.blogger.com/rsd.g?blogID=28880654&lt;/a&gt;&lt;/p&gt; &lt;p&gt;My blog id here is 28880654. Find out yours and place that number in the url.&lt;/p&gt; &lt;p&gt;I have not been able to figure out how to upload images though. Have to check that out.&lt;/p&gt; &lt;p&gt;Disclaimer: The information here is subject to change with versions, platforms and OS. I am not responsible for your frustration if it does not work. The information here is a result of experimentation and was performed by an amateur. Please do try this at home.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-4232054075171668707?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/4232054075171668707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=4232054075171668707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/4232054075171668707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/4232054075171668707'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2007/03/using-windows-live-writer.html' title='Using Windows Live Writer'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-115562680475353972</id><published>2006-08-15T10:34:00.000+05:30</published><updated>2006-11-07T20:01:42.475+05:30</updated><title type='text'>Complexity and Big O</title><content type='html'>Ok so you are a programmer. And you have coded thousands of lines. But are you sure you need to have neccessarily coded all those lines. In computer science, often the question is not how to solve a problem, but how to solve a problem well.&lt;br /&gt; &lt;br /&gt;Whenever you are studying algorithms, you find that there are always two issues to be addressed:&lt;br /&gt;            1. Efficiency / Performance&lt;br /&gt;            2. Complexity&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Efficiency&lt;/span&gt; or performance deals with the CPU time, available memory, the disk and network usage when the program is run. So this will depend on the machine hardware, the code generated by the compiler and the user code.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Complexity&lt;/span&gt;, on the other hand, deals with resource allocation to the program and how it scales with size of the problem. In other words, what happens when the size of the program gets larger.&lt;br /&gt;&lt;br /&gt;As complexity increases, the CPU usage and memory usage increases, thereby affecting performance. But a change in machine hardware or increase in memory will not cause a change in complexity. A much faster CPU may execute the algorithm faster, but it is doing the &lt;span style="font-style:italic;"&gt;same amount of work&lt;/span&gt; as a slower CPU. Hence we can safely say that:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Complexity affects performance but not vice versa&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Measuring Complexity&lt;/span&gt;&lt;br /&gt;Complexity analysis attempts to &lt;span style="font-style:italic;"&gt;characterize the relationship&lt;/span&gt; between the number of data elements and resource usage (time or space) with a simple formula approximation. &lt;br /&gt;Why is the realtion between size of the problem and resource usage important? Well, right from the time when the first program was written, many programmers have had ugly surprises when they moved from small test data to large data sets.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Big O Notation&lt;/span&gt; &lt;br /&gt;The definition from &lt;a href="http://www.nist.gov/dads/HTML/bigOnotation.html"&gt;NIST&lt;/a&gt; is as follows:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Definition:&lt;/span&gt; A theoretical measure of the execution of an algorithm, usually the time or memory needed, given the problem size n, which is usually the number of items. Informally, saying some equation f(n) = O(g(n)) means it is less than some constant multiple of g(n). The notation is read, "f of n is big oh of g of n".&lt;br /&gt;Ok I admit, I had a tough time understanding that. A simpler explanation would be that Big O is concerened with what happens to the algorithm for very large values of N.  Hence it will NEVER have constants or lower order terms. These terms are dropped. This is due to the fact that when N becomes large, these terms do not have a significant effect on the total complexity.&lt;br /&gt;For example, if the number of operations is N^2 - N, for large values of N, the single N term is insignificant compared to N^2, therefore one of these sorts would be described as an O(N^2) algorithm. Similarly constant multipliers are ignored, so a O(4*N) algorithm is equivalent to O(N).&lt;br /&gt;A list of common orders and corresponding examples can be found &lt;a href="http://www.cprogramming.com/tutorial/computersciencetheory/algorithmicefficiency3.html"&gt;here!!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Can we blindly trust Big O&lt;/span&gt;&lt;br /&gt;The answer is NO!!  There are some problems with complexity analysis:&lt;br /&gt;1. Too hard to analyze:  Many algorithms are too hard to analyze mathematically&lt;br /&gt;2. Average case unknown. There may not be sufficient information to know what the most important "average" case really is, therefore analysis is impossible.&lt;br /&gt;3. Unknown constant. Both walking and traveling at the speed of light have a time-as-function-of-distance big-oh complexity of O(N). Altho they have the same big-oh characteristics, one is rather faster than the other. Big-oh analysis only tells you how it grows with the size of the problem, not how efficient it is.&lt;br /&gt;4. Small data sets. If there are no large amounts of data, algorithm efficiency may not be important.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;References:&lt;/span&gt;&lt;br /&gt;1. &lt;a href="http://www.cs.wisc.edu/~hasti/cs367-common/notes/COMPLEXITY.html"&gt;Complexity and Big O Notation&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://www.cs.wisc.edu/~hasti/cs367-common/notes/COMPLEXITY.html"&gt;uw-madson notes&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://leepoint.net/notes-java/algorithms/big-oh/bigoh.html"&gt; Algorithms and Big O Notation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-115562680475353972?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/115562680475353972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=115562680475353972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/115562680475353972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/115562680475353972'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2006/08/complexity-and-big-o.html' title='Complexity and Big O'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-115008276523557009</id><published>2006-06-12T08:56:00.000+05:30</published><updated>2006-11-07T20:01:42.420+05:30</updated><title type='text'>UnsupportedEncodingException</title><content type='html'>Java is an exceptional language. While working on my main project regarding search engines, I was drowned in various exceptions that were mericilessly thrown to me by Java.&lt;br /&gt; The latest exception that I encountered was UnsupportedEncodingException cp437 &lt;br /&gt;It took some time for me to find out the cause.&lt;br /&gt;&lt;br /&gt;If you have encountered this exception and still wondering what to do about it, then all you have to do is install the Java Runtime Environment (JRE) with support for all languages and fonts.&lt;br /&gt;&lt;br /&gt;I think I got an endofblog exception now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-115008276523557009?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/115008276523557009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=115008276523557009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/115008276523557009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/115008276523557009'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2006/06/unsupportedencodingexception.html' title='UnsupportedEncodingException'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-114889180451837101</id><published>2006-05-29T13:24:00.000+05:30</published><updated>2006-11-07T20:01:42.307+05:30</updated><title type='text'>Meet pagefile.sys</title><content type='html'>My first acquaintance with the infamous pagefile.sys was when windows rudely announced that I had no more free space on my C:\ drive. I was working on Photoshop and had just finished processing a new wallpaper for the college. A quick scan with &lt;a href="http://www.david-taylor.myby.co.uk/software/disk.html#ShowMan"&gt;showman&lt;/a&gt; told me that my pagefile.sys was around 1.5GB&lt;br /&gt;My first reaction was to delete that space hogger from the face of my hard disk. But wait, I had a bad feeling about this. My geek instincts told me that I had to check on this first.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What is pagefile.sys&lt;/span&gt;&lt;br /&gt;Do you what is RAM?&lt;br /&gt;Do you know what is a hard disk?&lt;br /&gt;Do you know what is a processor?&lt;br /&gt;If you answered "No!!" to all the questions mentioned above, you may stop reading  this page NOW. May the gods of computers strike ye down with lightning from a shorted SMPS.&lt;br /&gt;If you answered "Yes!!" to any one of the questions, please treat yourselves to a cup of coffee and read on.&lt;br /&gt;&lt;br /&gt;The simplest explanation to the purpose of pagefile.sys is that it acts like a swap file. Pagefile.sys is how Windows handles virtual memory using demand paging. Okay now you want to know what is demand paging and virtual memory...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Virtual Memory and Demand Paging&lt;/span&gt;&lt;br /&gt;Virtual memory is an attempt to fool the computer to think that it has more RAM.&lt;br /&gt;The Memory Management Unit(MMU) on the CPU has the ability to substitute space on the hard disk for actual RAM. This space is called swap space. And this mechanism is called demand paging.The swap space is contained in a file called swap file. &lt;br /&gt;&lt;span style="font-style:italic;"&gt;Hence swap files allow the operating system to simulate extra memory.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                    Physical memory + swap file = virtual memory &lt;br /&gt;&lt;br /&gt;Why extra memory you greedy operating system?&lt;br /&gt; I will share a profound truth, that dawned on me when in deep contemplation with lomax.&lt;br /&gt;      "Memory is like clean underwear. You never get to have enough of it."&lt;br /&gt;&lt;br /&gt;Suppose you don't have enough RAM on your machine, you can create a large swap file and hence get a larger virtual memory. The advantage here is that you can load larger programs into your memory, and run more programs concurrently. &lt;br /&gt;&lt;br /&gt;The downside is that if you have serious memory hogging programs, they will pull down the performance due to frequent swapping of files between RAM and swap disk.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Can I configure pagefile.sys settings&lt;/span&gt;&lt;br /&gt;Sure you can!! &lt;br /&gt;Please read: &lt;a href="http://www.petri.co.il/pagefile_optimization.htm"&gt;Tweaking and optimizing pagefile.sys&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Other Useful Links&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.techadvice.com/win2000/p/page-file_w2k.htm"&gt;Page File Information&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html"&gt;Optimising PageFile Performance&lt;/a&gt;&lt;br /&gt;&lt;a href="http://kb.iu.edu/data/acwa.html"&gt;Purpose of PageFiles&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msexchangeteam.com/archive/2005/12/07/415733.aspx"&gt;Another Blog that contains useful information&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-114889180451837101?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/114889180451837101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=114889180451837101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/114889180451837101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/114889180451837101'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2006/05/meet-pagefilesys.html' title='Meet pagefile.sys'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28880654.post-114883046166389660</id><published>2006-05-28T21:01:00.000+05:30</published><updated>2006-11-07T20:01:42.250+05:30</updated><title type='text'>Hello World</title><content type='html'>/**&lt;br /&gt; * I am starting this blog as a part of my venturing into the programming world.&lt;br /&gt; * I will share my code and terrible...umm  terrific insight on various other codes        &lt;br /&gt; * that I come across.&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;  #include &lt;blog.h&gt;&lt;br /&gt;  void main()&lt;br /&gt; {&lt;br /&gt;    helloworld.programming();&lt;br /&gt; }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28880654-114883046166389660?l=shivcancode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shivcancode.blogspot.com/feeds/114883046166389660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28880654&amp;postID=114883046166389660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/114883046166389660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28880654/posts/default/114883046166389660'/><link rel='alternate' type='text/html' href='http://shivcancode.blogspot.com/2006/05/hello-world.html' title='Hello World'/><author><name>Shiv</name><uri>http://www.blogger.com/profile/04267845191913046426</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
