tag:blogger.com,1999:blog-89222361788779024512024-03-13T12:15:05.588-07:00Mohit TanejaI consider my blog as a place where I try to write about my thoughts and ExperiencesAnonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-8922236178877902451.post-7249158264467233342013-08-16T16:54:00.001-07:002013-08-17T04:42:00.057-07:00Web Parsing and Custom Alerting<div dir="ltr" style="text-align: left;" trbidi="on">
Ok, so this post is about an amazing project in which I did ended up solving a real world problem. Inside, CMU we have this cbdr website is used for putting up research studies happening at CMU campus in which students can participate, and most of them are paid studies. And since everyone specially including me at CMU is almost broke because of the really high education fee (you can never be too greedy CMU ), this website is in high demand during summers.<br>
<br>
Now, there are a few bad things about this website, one cannot in any way register for email updates when a study is added, and most of the studies need finite number of participants which are in abundance, so regular FCFS applies. And well even though I was broke, I didn't really had the time to visit the website 20 times a day. So, I ended up writing a small script which checks if a new study has been added one their website, then send me an email.<br>
<br>
So this script was required to do a few fundamental tasks :<br>
<br>
1.) Parse the website automatically periodically after certain interval of time.<br>
2.) Check the current list of studies against a database of studies that I have already been intimated about and notifying me only about the newly added studies.</div><div dir="ltr" style="text-align: left;" trbidi="on">3.) Send me an email when it identifies a new study has been added.</div><div dir="ltr" style="text-align: left;" trbidi="on"><br></div><div dir="ltr" style="text-align: left;" trbidi="on">For the first part I ended up using zombie js module in nodejs, classic headless browser based web parsing and automation. Injecting jquery based code is a bit of a pain with the framework but one can always use the good old Dom objects.</div><div dir="ltr" style="text-align: left;" trbidi="on"><br></div><div dir="ltr" style="text-align: left;" trbidi="on">For the database part mongodb was something which was really easy to setup and get working with JavaScript as it can directly add JavaScript objects and retrieve them so no conversion from/to strings. </div><div dir="ltr" style="text-align: left;" trbidi="on"><br></div><div dir="ltr" style="text-align: left;" trbidi="on">And finally for sending emails, Randy at create lab pointed me towards the Linux sendmail command which needs mail utils to be setup, but once that is done one can easily use a shell script to send emails.</div><div dir="ltr" style="text-align: left;" trbidi="on"><br></div><div dir="ltr" style="text-align: left;" trbidi="on">For deployment of the script, instead of using my crappy laptop I ended up deploying the script on a t1 micro instance on amazon EC2. Though yes I had to install nodejs, mongodb and mail utils on the EC2 instance but that's fairly straight forward. </div><div dir="ltr" style="text-align: left;" trbidi="on"><br></div><div dir="ltr" style="text-align: left;" trbidi="on">For those of you interested in checking out the code for the same, it is hosted on my GitHub account <a href="https://github.com/tanejamohit/Parsing-Alert">https://github.com/tanejamohit/Parsing-Alert</a></div><div dir="ltr" style="text-align: left;" trbidi="on"><br></div><div dir="ltr" style="text-align: left;" trbidi="on">Thankfully, now I am the first person to register for any study on CBDR. Sadly as the summer comes to an end, I doubt I will have a lot of time for any of the studies.</div>
Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com1tag:blogger.com,1999:blog-8922236178877902451.post-72715719943404739022013-07-02T16:12:00.000-07:002013-07-02T16:12:07.307-07:00Practical Issues while Coding<div dir="ltr" style="text-align: left;" trbidi="on">
Between, CREATE lab internship and GSoC work, and Startup Engineering course, I have been doing quite some amount of coding these days. I am learning some good lessons during all this coding, and thought it might be a good idea to jot them down for myself, and share with anyone who is interested.<br />
<br />
The most important thing which I realized is that the amount of time spent understanding and reading the code is much much more than the amount of time spent writing that code. So, it makes sense to write the code in such a way that the amount of time spent on reading/understanding the code can be minimized. Also, 90% of the optimization happens in only 10% of the code, and sometimes it is better to write more readable code than writing optimized code.<br />
<br />
<br />
<ul style="text-align: left;">
<li>Explaining what the code in a particular file does, along with the licensing info at the beginning of the file is actually a pretty good idea. And so is describing what does a function do at the beginning of the function.</li>
<li>It's better to use elaborate names for variables and functions, which are self explanatory, rather than using concise variable names. It's even better to use function names which are don't include the technical lingo and are rather understandable by a user who don't have a great idea about the library being used by you. <i>chooseVisual() is a much better function name than, createEGLConfiguration().</i></li>
<li>Instead of aiming for writing the most optimized code from the beginning it is better to write the most readable code, and then try to optimize it. Also, using temporary variables is not really that a bad idea if they can make your code easier to understand.</li>
<li>It makes a lot of sense if the same convention for naming functions and variables is used throughout the code base (assuming there are multiple engineers working on the code base). Also, if you use the same indentation style, and commenting style, your code might start looking good too. As of ow that seems to be the toughest thing to achieve, a good looking code. But, I am working towards it, hopefully I should get the hang of it.</li>
</ul>
<div>
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com2tag:blogger.com,1999:blog-8922236178877902451.post-58671482208483775262012-10-07T06:44:00.001-07:002012-10-07T06:44:06.244-07:00The GSoC Experience : How to apply as a student ?<div dir="ltr" style="text-align: left;" trbidi="on">
The first time I participated in GSoC, I was in final year of my college life in 2010. And it has been a wonderful experience. At that time I participated as a student and this year I participated as a mentor, completing the full circle.<br />
<div>
<br /></div>
<div>
In this post I will write about how to apply for GSoC, my experience as a student, and then about my experience as a mentor. Since, that would be too much for a single post, I think right now I will stick only to advice about how to apply as a student (assuming you are applying for the first time).</div>
<div>
<br /></div>
<div>
Once you have read enough about the program and familiarize yourself with how it works, the first major task is to select the organisation to which you plan to apply. </div>
<div>
<br /></div>
<div>
<b>Selecting the Organisation :</b></div>
<div>
<b><br /></b></div>
<div>
<ul style="text-align: left;">
<li>Try and select an organisation whose work interest you, try to look at organisations in a field where you want to work in future. In my case, I was interested in the field of computer graphics and game development, so I selected organisations like Crystalspace3D, Tux4Kids and some other organisations who were working in the domains which interested me. One can do this very simple by seeing the list of orgs which were selected last year in GSoC (and assuming that they would be selected this year too), and checking out their org description page.<br /></li>
<li>Once your search has been reduced to 8-10 orgs by using the above criteria. Then it is time to delve a little deeper and try out products or services by these orgs. If you are interested in operating systems, it might mean installing and trying out a lot of them, a.k.a pain in the ass. But who said applying to GSoC is easy. And knowing more about the technology they use and the current work going in those organisations. In my opinion the best way to figure that out is to check out the projects they were doing last summer and checking out their previous year and if they have compiled then this year's idea's page for GSoC.<br /></li>
<li>Once you are done with this you should generally try to short your list to 2-3 orgs, with which you should interact.</li>
</ul>
<div>
<b><br /></b>
<b>Interacting with the Community :</b></div>
</div>
<div>
<b><br /></b></div>
<div>
<ul style="text-align: left;">
<li>The most common mistake to do is to enter the irc channel of an org and expect them to tell you about their product. Do your homework first. Before entering irc channel of an org and asking questions, read about the organisation their website, their wiki page, do try out their product/s, and definitely have a good look at their ideas page before asking questions.<br /></li>
<li>In fact, I would say that it would be better if you first select a project or two, in which you are interested in, and discussing and asking about them. By doing this you can come to know about how important a particular project is for a community, and who would be mentoring that project if a student is selected for that project. Also, what does the community expects a student to do if one is working on that project and how do they expect a student to do that. I believe that if one can gather this information while interacting with a community, then it can be a huge first step.<br /></li>
<li>Once you know about a GSoC project and feel that you can do it and it would be worthwhile your time. It is time to set up the development environment for that particular project and learn more about the module on which you would be working on (if you are working on an existing code base) or learn about the modules with which your module would be interacting. And try and read blogs and research papers on that particular topic. In my case, I took a project on global illumination method photon mapping and I had no clue about what it is before applying for GSoC.<br /></li>
<li>Once you know about the topic and the theory about it it is time to visit the irc channel again. This time you should be discussing in detail about the code and what exactly the community and your mentors expect you to do in that project if you are selected. Discuss about the code you would have to write, the time it might take and how should you try to approach it.</li>
</ul>
<div>
<b><br /></b></div>
<div>
<b>Preparing your Application :</b></div>
</div>
<div>
<b><br /></b></div>
<div>
<ul style="text-align: left;">
<li>Once you have a decent idea about the project and how you would be doing it. It's best to start creating your application. It is always better to be the first one to post GSoC application on the mailing list. This helps in two ways, firstly, some of the influential people in the community and senior members don't always hang around on irc, so it becomes easier to get noticed and get recommendation about your application from them too. Secondly, by being the first one to post your application on the mailing list you ask other students to probably check out some other project, rather than the one in which you are interested in.<br /></li>
<li>Generally most of the organisations have a template for an application. But your application should generally include answers to a few questions: Who are you? What is the project you want to work on? How would you solve the problem or complete your project? Timeline.<br /></li>
<li>Also it is best if you break you goals into primary and secondary goals. Primary, being the ones which are directly related to your project and which you should definitely get implemented during the GSoC period, no matter what. And secondary being the ones which you would want to implement during the GSoC period if you finish the primary goals on time. Make sure you and your mentors align with the primary and secondary goals you write in your application.<br /></li>
<li>Once you have posted your application don't hesitate to ask questions like: Are my goals good enough for a GSoC project? Are these goals doable within the period of GSoC? What all contingencies should I keep in mind?<br /></li>
<li>One very important part of application is the project timeline. It is best if you write down the timeline for your project in terms of every week of your GSoC intern. It helps you assess whether your goals are realistic or not, or are they good enough for a GSoC intern. Also once you have refined it and if you finally get selected. It helps as a time table.</li>
</ul>
<div>
And well towards the last week before application submission deadline, it is mostly about interacting with mentors, learning more about the project and the code base and updating your application in sync with it.<br /><br />Now, please dont treat this article as a guide to getting selected for a GSoC intern. These are just some pointers from my personal experience which I think might help someone applying for a GSoC intern for the first time.<br /><br /><i>I did my GSoC intern with Crystalspace3D in 2010, and most of the opinions are based on my experience as a student in 2010 and as a mentor in 2012.</i></div>
</div>
<div>
<br /></div>
<div>
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com3tag:blogger.com,1999:blog-8922236178877902451.post-5666037107957663172011-06-27T00:24:00.000-07:002011-06-27T00:24:20.247-07:00Do we really need google search..?I have been recently thinking about the number of times I have to use google search. Well it has been decreasing for sure. The reason being that there are other places where I can search for things and that too in a localized way. <br />
<br />
If I have to search for books I search on flipkart, if I have to search for movie shows, I search bookmyshow, If I have to search for food outlets, I use zomato, isohunt for torrents, wikipedia for knowledge based articles. <br />
<br />
It seems that google search has lost relevance to a certain extent today. I guess it is because it generally redirects one to places where u can search for things instead of searching things for you.<br />
<br />
Any thoughts..? Anyone else also feels like their google searches have reduced..?Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com4tag:blogger.com,1999:blog-8922236178877902451.post-58375309618688884422011-06-19T11:29:00.000-07:002011-06-19T11:29:18.449-07:00Pygame + Desktop ------> Javascript + Canvas + BrowserThe topic is just about the change of platform for my personal projects, till date I have worked on games focused on desktop environment and have used Pygame + Python for them. <br />
<br />
But, recently I have been trying with Javascript + HTML5 canvas. I have been just trying out things as of now, not yet an expert at anything or so. But yeah there are a lot of things which are supposed to be done differently, and many things are similar too.<br />
<br />
The rendering context for both of them is same. You have to expect the screen in both the cases as a piece of paper, once you draw anything on it, you cannot delete it or change it. In every new frame you can either use the same paper or clear some parts of it and then use it, or use a new paper altogether.<br />
<br />
The event handling mechanism is different, in python one used to handle every event like a keypress in a loop and depending on the type of the event (check that in a switch) one used to take appropriate action. In Javascript, one needs to attach a callback with different events and when they will occur, the callback function will be called.<br />
<br />
The good thing with python was that it was cross platform so one was not required to take care of platform specific details. But that isn't the case with Javascript, the way firefox handles events it might be, and in some cases is, different from safari or chrome. For example the simple code for finding the position of a mouse when it is clicked is different in firefox and safari. So, for such things one needs to use JQuery another library, which makes traversing DOM objects easy, and standardizes Javascript code across browsers. The good thing about JQuery is that it is pretty lightweight, something like a single javascript file of less than 1000 lines.<br />
<br />
Most of the animation in pygame was supposed to be done by manipulating images, infact most of the game view part was done using images/surfaces, in Javascript one tends to use native drawing functions. Now, this might be just a paradox in my mind, or it might just be the cult as canvas is yet a work in progress, or it is just a difference in the themes of games I used to work on pygame as compared to those of canvas, in my mind. But, still this seems to be there in general. It could also be because of speed issues of handling images in browser versus that in pygame.<br />
<br />
All in all, I am still learning about new things many of my findings here might not be true, but still i will try and update them as and when I find out more.Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com3tag:blogger.com,1999:blog-8922236178877902451.post-19902593527879301462011-04-08T06:01:00.001-07:002011-04-08T06:15:37.720-07:00Gaming + Work + Movie + Less Sleep = Crazy Dreams<div><p>I return back to my cubicle and open a ninja fighter app on my mobile and just when I open it I am sucked in by my mobile and put in a virtual arena, where I have to fight against 4 japanese black belt fighters, I see that my clothes have also been changed from jeans + shirt to a karate dress with a black belt. And as I approach those fighters with full confidence I am punched right on my nose. And I get up from my dream.</p>
<p>This is what happens when you have been playing a lot of games on your phone, watched a late night show of sucker punch, and have been overworked with issues related to thread synchronization, and have been missing on your sleep since quite some time.</p>
</div>Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com0tag:blogger.com,1999:blog-8922236178877902451.post-986941258189134062010-08-28T04:31:00.000-07:002010-08-28T06:27:45.908-07:00Cache Coherence Gyaan<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Peb2A9d7MEE/THkHEqm1OQI/AAAAAAAAANs/I04ZQupyxMo/s1600/intel-multicore.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_Peb2A9d7MEE/THkHEqm1OQI/AAAAAAAAANs/I04ZQupyxMo/s320/intel-multicore.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5510443395802544386" /></a><br /><br /><i>Total Geek talk, noobs feel free to close the tab.</i><br /><br />Finally, I realized that it is good to share technical knowledge , because the more you share the more you know.<br /><br />Basics: Cache is a mid level memory between the CPU and the RAM, the simple funda behind cache is that it is a bit expensive and much more faster than your RAM (in terms of access time) , so during processing some of the data from RAM is brought into the cache, the data which is assumed to be accessed much more often. So that the system becomes more efficient.<br /><br />Now, all is good till the time there is only one core, but if there are multiple cores which are sharing the same memory space, it creates a bit of a mess. One needs to know who is changing the memory contents, because each core would be having its own cache. Say, there is a variable which is used by both the cores, and both of them have cached it. Now, if core1 updates its value in its cache, or even if it updates its value in the memory. Core2 needs to know that the value of this variable has been changed and it should update its value before using it. Well this is called as the "Cache Coherency" problem. The problem statement is simple, "Figure out if something has been messed up, and if yes , what??"<br /><br />Before we delve into the details, we need to have some more basics. There are two ways to maintain a cache (even if there is a single cache), through which we decide that what data should be loaded into the cache and when, because the size of cache w.r.t RAM is quite less. (Just as a spec my laptop has 4 GB RAM and 3MB of cache). This is maintained as either write through cache or a write back cache. In a write through cache, the contents of the cache are written back to the memory as soon as they are updated in the cache. In a write back cache, the contents of the cache are kept in the cache even when they are changed, but when they need to be swapped out of the cache to load some other memory contents, only then they are written back into the memory.<br /><br />Now, there are two ways to handle this situation :<br /><br /><ul><li>The Software way</li><li>The Hardware way</li></ul>In the software way, to implement cache coherency, it is the responsibility of the compiler , and sometimes the programmer (if he/she is programming in assembly language) to take care of cache coherency. A simple and a bit inefficient way of doing so is flush the cache or mark it as invalid, as soon as you write a shared/global variable. Well this a very inefficient way and there are many more efficient ways to do this. And these ways generally depend on the hardware too.<br /><br />Now the problem with having cache coherency through Software means is, firstly, it is inefficient one might end up updating the whole cache even when only a few memory locations are changed. Secondly, and most importantly, the code which depends on software cache coherency cannot be easily ported from one machine to another, as the other machine might be having a different hardware configuration.<br /><br /><br />In the hardware way, there is special space reserved in the cache for cache coherence. The cache is in general divided into cache lines, say if a cache line consists of 100 bytes of data then whenever data would be swapped out of cache into the memory or data is swapped into the cache it is transacted into multiples of this number. One can imagine a cache as a 2D memory consisting of some number of lines. And for each cache line there is a directory entry in the special space reserved for cache coherence, this space is generally called as "cache directory". For each cache line there are 3 bits reserved in the directory which tell about the state of the data in that cache line.<br /><br />The issues with hardware coherency is, first, it generates a lot of inter cache traffic, whenever a cache write occurs, that cache needs to send info about this to all the other caches so that they can update themselves. Secondly, the amount of cache memory which is usable for storing data decreases.<br /><br /><br /><br /><b> So which one is better ? </b><br /><br />Well it depends on the situation, if the program has too little shared variables, then the hardware method is preferable, as the amount of inter cache traffic is manageable. Whereas if the amount of shared variables are too many and they are updated by different threads quite often, then the software method is preferred, as in this case network traffic will be too much, and it is fine to flush the whole cache at once instead of doing it one by one, by hardware method.<br /><br /><br />Now, how about a system in which we can dynamically change from software coherency to hardware coherency. <a href="https://netfiles.uiuc.edu/jkelm2/www/papers/kelm-isca2010.pdf">This</a> is a paper which talks about such a system, and also inspired me to write this blog.Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com0tag:blogger.com,1999:blog-8922236178877902451.post-52096702234037015052010-04-18T03:44:00.000-07:002010-04-18T04:02:11.943-07:00My First Snakey Game<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Peb2A9d7MEE/S8rkolSYqcI/AAAAAAAAALc/6NIvzuT1h2E/s1600/Screenshot-8.5470085144.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://3.bp.blogspot.com/_Peb2A9d7MEE/S8rkolSYqcI/AAAAAAAAALc/6NIvzuT1h2E/s320/Screenshot-8.5470085144.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5461428883995273666" /></a><br /><br />First of all. Yay!! its working...!! and perfectly fine... \m/<br /><br />Finally after a lot of time I am feeling like a doer and less like a speaker or manager. I just coded away a snakey game probably in something around 3-4 hours, in python + pygame. And it is awesome, not the game, as in even that is awesome, but yeah the feeling of accomplishing a project, even though a micro one is great. <br /><br />Well I always wanted to make games sometimes just for fun. And yeah for sure I am having fun now. Also if anyone wants to play it, you can download it from http://bit.ly/bvgFF8 . Though you would be requiring to install python and pygame on your system to run it..!!Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com1tag:blogger.com,1999:blog-8922236178877902451.post-2108051672373210952010-04-08T07:15:00.000-07:002010-04-08T08:33:52.182-07:00Whats the theory behind it??<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://christophersmark.files.wordpress.com/2008/01/meaning-of-life.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 468px; height: 640px;" src="http://christophersmark.files.wordpress.com/2008/01/meaning-of-life.jpg" border="0" alt="" /></a><br /><br />Okay, this one is totally philosophical, those not interested can leave at any time.<br /><br />Well it has been quite some time and I have been thinking about a lot of things. The most time consuming being "What next??" or say "What do I want ultimately from my life?". The biggest problem being the hunger for more, there is always a feeling of trying to get more out of my life, trying to get more out of my time. Okay this is not just about more money or more marks!! or more friends??,but maybe more achievements or maybe more knowledge. Sometimes, it is about making more sense out of my life. But, all that i think would make more sense out of my life, before doing them, end up hardly making any difference once I am done with them.<br /><br />Now, for quite some time, I used to believe that materialistic things are things like Money, objects, and similar things. But now I think hey even achievements are also like materialistic only, you achieve achievements to gain something, maybe success, or popularity or maybe even money, but yeah doesn't it sounds like materialistic after all. <br /><br />There was this guy who was mentoring me sometime back,(no it isnt deepank, this time) he used to say that his theory of life is like a circle, you get one aim then you complete it and get another aim and then you complete it and it goes on and on and on, and eventually you end up dying one day. And yeah then he added external factors like failure of an aim, gaining knowledge in every loop and so on. Well I liked his idea at that time, but now its like , c'mon life cudn't be that dumb. I guess life should be something like building a house, you collect all the raw materials for making it , then you learn all the skills for making it, then comes all actual building of the house, and after some time you feel like okay I have worked enough on it, its time to live inside it and enjoy the ambiance, though you still maintain it and upgrade it occasionally. And then yeah one fine day, you feel like okay now I am feeling bored lets die.<br /><br />Well this one sounds more meaningful and more interesting, but still keeping this in mind in real life is quite difficult. The big issue is that I want to make multiple houses, bloody I want to be great at many things. As in I guess its high time I should make myself realize that I can't be great at many things or even great at anything, as in there are good enough chances for that too, and that might be the case even (You who is reading this post right now maybe knowing better). And I guess there are many more things, this is just one, as in there should be something much more meaningful towards life, I don't know what, probably I am too young for that, but yeah there should be.<br /><br />Okay, this might make me sound like a nomad roaming in a desert looking for something (yeah I feel so sometimes), the worst part being he doesn't knows what is he looking for, but pretty sure about the thing that once he finds it he would be able to know that this is what he was looking for. God!! This post sounds crazy.<br /><br />Well at the end I would say, any comments/help is welcomed.Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com0tag:blogger.com,1999:blog-8922236178877902451.post-42750637612165121462010-02-17T05:47:00.000-08:002010-02-17T06:40:16.624-08:00Whats "right" and whats "wrong" ?When I was a kid, the answer to the above question used to be straightforward. The rules were defined by my parents and brother and the answer used to be based on those rules + a little bit of intuition. The same was the thing with who is "good" and who is "bad". Most of the times the answers used to be loud and clear. Also, every person used to be either "good" or "bad", there were no middle categories. And yeah, I generally used to keep myself into my limits of a good person according to those rules.<br /><br />Then came the teen-age. When I was entering my teen-age, there was a hell lot of discussion going on about how to handle teenagers, be it newspaper, television etc etc etc. In most of them, I was referred to be a part of a specie called "Today's Generation", and there were some particular tags associated with this specie; "resilient" , "arrogant" ,"pre-mature" and a whole sort of things, which I probably wasn't even able to decipher at that time. That was a time when doing a "wrong" thing also felt fine. Breaking the rules was the "in" thing for our specie. After all, preconsciously though, I was a part of this specie (well I still am, although the name has changed). Even in this case I used to be pretty sure about, what is right and what is wrong, although doing "wrong" was not even so "wrong". People still used to be either "good" or "bad", but now they were according to my own limit of wrongness, If their deeds were "wronger" than me then I used to consider them as "bad" else "good". Also, there was an added category of "no comments", which used to consist of very small population though.<br /><br />Finally, came the latter half of college life, when all these categories seemed to merge with each other. I went on to the most basic thing, the rules. Who defined those rules that we follow. Some of them were defined by my parents, some other were defined by teachers, some were defined by my peers. Well the problem was that, it wasn't even them who defined those rules, they just told those rules to us, and god knows who else defined those rules for them. Obviously these rules trickled down to me with some modifications(modifications which my parents, teachers etc would have made to make their life better). <br /><br />Then came the question, shall I follow all these rules or trash all of them. Well I have already been following these rules, and probably my life hasn't been flowing that smooth by following these rules. I guess that was the reason why I was thinking so deep about this matter. So this option was auto canceled. Then came the option of redefining rules, I soon realized that one cannot define all rules by himself, probably I didn't had that much experience about things. So, I started changing those rules which I thought were wrongly created, according to me(This decision making was based on my previous experience as well as on the solution to the situation at hand). <br /><br />So now there is nothing defined as "right" and nothing defined as "wrong". Its just "right for me"(at that time) or "wrong for me". No person is "good" and no person is "bad". Its just "good according to me" and "bad according to me". But these lines are very very bleak, heavily mixing with each other. Because, whenever I am at a stage to tag a person "bad" in accordance with some action of that person, I happen to think "okay, maybe it isn't wrong according to him".<br /><br />I guess the best thing of this approach till now has been this only, "None is good, none is bad, its just that some people are compatible with me and some are not". Also, I believe that the converse of this is also true, "None hates me, its just that I am not compatible with some of the people".Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com2tag:blogger.com,1999:blog-8922236178877902451.post-27063582099049542052010-02-10T10:23:00.000-08:002010-02-10T10:28:55.394-08:00Your own home made Youtube Video DownloaderWell , till quite some time back I have been using some Youtube video downloader application, most of which have stopped working now. So, there was this one awesome video which I wanted to download. <br /><br />Suddenly, I come to stuck with this simple logic, that hey if firefox is playing this video then it must be downloading that video onto the memory and then playing it. So why don't I pick up this video from there. So the most obvious place to check for such a thing was the /tmp/ folder ( I am on Ubuntu currently) and voila here it was resting in peace waiting for me to close the tab and get deleted.<br /><br />So all that one has to do for his home made Youtube Downloader to work is to cut this video from your temp folder and save it at some good place before you close the tab and here you go, you home made Youtube Downloader is ready.Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com2tag:blogger.com,1999:blog-8922236178877902451.post-8260093210875255892010-02-03T05:14:00.000-08:002010-02-05T06:51:21.516-08:00OpenCv 2.0 with Ubuntu 9.04Recently I have started working on my final year project, and I got stuck with a pretty nice idea of documenting it on my blog. <br />I am working on 3-D Modeling using Videos. As usual the first steps of doing a project is to get the development environment settled up, and doing the feasibility study. In our case we had decided to use OpenCV for video manipulation, because of two reason :<br />1.) It's faster than any other library present out there for the same purpose.<br />2.) Its pretty advanced(read as a lot of inbuilt functionality) and optimized.<br /><br />I am just documenting the method which worked for me, there were other easier one's which didn't worked for me :(.<br /><br />First of all one needs the ffmpeg (for video support) and GTK 2.0 for OpenCv to work properly. Sadly, one needs to check out ffmpeg from trunk and compile it for his own platform, no binaries in Ubuntu repositories. <br /><br />1.) Check out ffmpeg from their svn repo:<br /><blockquote>cd ~<br />svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg<br />cd ffmpeg</blockquote><br /><br />2.) Then for sure one needs to compile ffmpeg and install it:<br /><blockquote>./configure --enable-shared <br />make<br />sudo make install</blockquote><br /><br />This thing takes its own sweet time, So you can go and get some coffee for yourself.<br /><br />3.) Then you need to get GTK Development libraries:<br /><blockquote>sudo apt-get install libgtk2.0-dev</blockquote><br /><br />4.) Finally one needs to download code for OpenCV 2.0 and Compile and install it :<br /><blockquote>cd ~<br />wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.0/OpenCV-2.0.0.tar.bz2<br />tar -xvf OpenCV-2.0.0.tar.bz2<br />cd OpenCV-2.0.0<br />./configure --with-ffmpeg --with-gtk --with-quicktime=false<br />make<br />sudo make install</blockquote><br /><br />This is again a thing which will give you ample of time to take a break and make some calls to your fiends.<br /><br />After you are done installing OpenCv, then comes the issue of how to use it. I was using openCV with C++ and tried some sample examples of O'Rielly book.<br />After a little searching I figured out that to include the OpenCv files while compiling my C++ files I need to use :<br /><blockquote>g++ `pkg-config --cflags opencv` `pkg-config --libs opencv` filename.cpp -o test</blockquote><br /><br />Now, this is neither easy to remember nor easy to type every time I compile some code. So, I found this nice little hack of adding aliases.<br /><br />There exists a .bashrc file in your home folder. It is basically a config file for your login profile. One can add aliases for terminal commands in this file and then use them :<br /><blockquote>alias gcv="g++ `pkg-config --cflags opencv` `pkg-config --libs opencv`"</blockquote><br /><br />Now whenever, I type gcv in my terminal , it is interpreted as g++ blah blah blah.<br /><br />I will keep adding the progress of my project to this blog, so stay tuned.Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com1tag:blogger.com,1999:blog-8922236178877902451.post-54146663732436605612009-10-05T23:41:00.000-07:002009-10-10T23:45:17.583-07:00Thinking NothingFinally, I have got out of my place and breaking the sad daily schedule of college-home-college after a long time. And probably this would be my first experience of writing a blog on a train.<br /><br />Sadly, Rupi and Rohil have sat on a separate two seater and are chatting there ass off like a happily married couple, and I have got bored after listening to radio, playing games on my cell phone and probably looking out of the window too.And also I am sitting with this fat guy who is busy looking out, sleeping and talking on his phone.<br /><br /><br />So, finally I thought why not lets write a blogpost, and here I am back to torcher people with my thoughts. Well coming to thoughts, I have been lately thinking that how can one "think nothing". Well first of all according to me thinking nothing means, to reach a state of mind in which there are no computations going on. Probably this is very difficult stage to reach for any brain.<br /><br />The first time I practiced thinking nothing ,I ended up thinking a lot about how to think nothing, which led me to think about a lot of things. So, effectively in a quest to think nothing, which could have been considered partially successful if I would have decreased the number of computations going on in my brain, I ended up increasing the number of computations in my brain. So, this can be considered as a total disaster.<br /><br />The learning which I learnt from the above exercise was that one can never think nothing, by thinking that he will think nothing. So, the immediate consequence which comes to the mind is that probably one can think nothing, if he forgets about thinking nothing and lives his normal life and wait for such a moment to come when he is thinking nothing. But sadly there is a bug with this scheme too. Firstly, this state of thinking nothing is too unlikely to happen. Secondly, even if we suppose that this scenario occurs and your mind goes into a state in which it is thinking nothing, there would be no way in which it can register an event somewhere so that it can recall that at some time it was thinking nothing. Neither you would be able to know that you are thinking nothing because to come to know about this state of your mind you would be required to think, but you are thinking nothing. Thirdly, one also can't take help from a friend to record the instance when you would be thinking nothing, as he can never know that whether you are thinking something or not.<br /><br />So probably this bring us to a point where we can safely assume that you can never "think nothing".<br /><br />Any comments about your theories and experiments of thinking nothing are most welcome.Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com6tag:blogger.com,1999:blog-8922236178877902451.post-53368625592891868702009-03-27T04:52:00.000-07:002009-05-21T23:59:35.733-07:00MicroMouse Part-I<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Peb2A9d7MEE/SczD19GGVPI/AAAAAAAAAD8/R6McjPvEzU4/s1600-h/021205_mouse_300.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 300px;" src="http://4.bp.blogspot.com/_Peb2A9d7MEE/SczD19GGVPI/AAAAAAAAAD8/R6McjPvEzU4/s320/021205_mouse_300.jpg" alt="" id="BLOGGER_PHOTO_ID_5317840591718339826" border="0" /></a><br />Recently, I have been working on another project which is related to electronics and hardware, in which I always had my interest but never got enough opportunities to work full fledged on any of these things. But now, I got one and thought it would be a nice thing to share.<br /><br />Well first of all, it's not the micromouse which one is supposed to build for a technical fest competition. This is for real, yeah it can solve a maze on its own, and we havnt used the components of any car (\o/).<br /><br />Okay, lets start with the basic architecture of the machine. Well there were two approaches to it, Firstly, we could have the logic device mounted on the machine ,i.e. Use a microprocessor, sadly I had started developing it in last semester, so at that time Microprocessor looked like a very big term. Second approach was a bit simpler for me, that was to connect the uMouse to the computer and let Mr. Computer dictate that poor creature on his own terms.<br />Well, we followed the latter.<br /><br />Next, was the decision regarding the mechanical design of the machine, well we took a brave decision and went ahead with a two wheel drive (and with a small support of a small supporting wheel at the tail, yeah this mouse had a tail even).<br />The stability of the mouse was maintained by keeping the vehicle (<span style="font-style: italic;">maybe I should be writing mouse</span>) low floored.<br /><br />Also, there was a very important decision to be took and that was regarding, which type of motors to be used. In this case precision was to be given the maximum priority, so we went with stepper motors. These are sort of digital motors, they would move totally by your command, one can control them even to the degree of 1 to 2 degree of angle rotated by them. Well but good things come at a price, (yeah they were highly priced too) and that was their driver circuit. the first time I saw these motors, I was in a shock, I had 6 wires infront of me and till then I had the believe that almost every electrical appliance requires only 2 wires to get the requisite power to drive.<br />But this time the scene was different, stepper motors require a driving circuit for driving them, one is required to buy and use a UCN chip for the same.<br /><br />The biggest problem that I faced in my earlier projects was that, the motors had a different voltage rating than the controlling circuit. well that's generally not a very big issue for electronics junkey type of people but anyhow I was dumb enough to be unaware of the solution of using a voltage regulator for the same.<br />It is used to convert a high voltage input into a low voltage supply, and yeah its very much different from a transformer. (<span style="font-style: italic;">In practical use it will screw your life, as it blows up very often</span>, <span style="font-style: italic;">I remember we screwed up 10 of them on one single day</span> ).<br /><br />The next hurdle was regarding how to take the input from the vehicle and for that there was a simple solution of using IR sensors, these were the things which never gave a problem (<span style="font-style: italic;">I guess so, or maybe I wasnt made aware of them </span>). They were easily available, worked fine all the time, the ircuit for assembling them seemed easy and stable, yeah the only problem that i can remember related to sensors was the range of the sensors, which was supposed to be adjusted again and again, and their physical orientation on the vehicle. The physical orientation of the sensors on the vehicle was a tricky thing as they were required to check for he presence of walls on front and sides, as well as the alignment of the vehicle.<br /><br />The next thing to be worked upon was how to connect the vehicle to Mr. Computer. In this case first we were aiming at using bluetooth network to communicate with the computer. But, after one full day of aggresive googling when we werent able to find any device which we could have been mounted on the vehicle and could have communicated with with the external circuits, we dropped the idea and went in for RF (Radio Frequency) Transmitters. and they worked we were very easily able to get a chip to do the same, and also construct an antenna for the same and make the transmitter and reciever circuits. and it worked too..<br /><br />The final thing in the development of the Micromouse was about how to connect the RF transmitter reciever circuit to the computer and how to operate it, and also about which coding language should be used for making the algo. The answer to "How to connect??" was simple and it was the parallel port of the PC. Regarding the language I was in the opinion of using Python because of my recent obsession for the same, but since other members of the team were not familiar with Python we went for good old 'C'. The main hurdle in this was about how to connect to the parallel port in 'C', earlier versions of Windows (<span style="font-style: italic;">those before XP</span> ) provided direct peripheral access to the ports but they screwed up that from XP onwards. So, we had to use a DLL for the same which could easily communicate with the device driver of the port. and luckly it worked after a little bit of tinkering around with the things. We were able to take input from the RF reciever as well a give output to the RF transmitter.<br /><br />After we were almost done with everything, now it was time for us to get on to testing. I scare this step the most, but this time things went in altogether a different way. It seemed like everything is crashing and falling around us. Well, wha else could I say, we even fused the MCB of the whole building, once(<span style="font-style: italic;">Although that was done in the process of providing us with proper lighting</span>). But anyways, after a few more trials in three to four days things started getting sorted up and we were finally in a situation when we could have created a maze and do trials on it. And yeah although the machine didnt turned out to be a perfect Micromouse at the end, but it was quite close to that. Atleast, it crossed the expectations of all the team members. Or say, all the team members crossed their own expectations.<br /><br />Well this part 1 was regarding the technical aspects of the project. I would be focusssing the second part of it on the social aspects of the project. which would be like how we (the team) <span style="font-style: italic;">machaofied</span> during the process of making this machine. and yeah it would also focus on our great Team from Miranda House. and a lot many things, so do keep watching the blog for that.Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com3tag:blogger.com,1999:blog-8922236178877902451.post-73634081571088778602009-01-23T11:03:00.000-08:002009-02-04T08:08:40.663-08:00How to trace an E-mail??Well many of you guys might be even knowing that how to do this. <div><br /></div><div>But, for rest of you guys, who might not be knowing how to trace an e-mail , let me tell you that it isnt that tough or say geeky in any way. Just download a software, <a href="http://www.emailtrackerpro.com/">emailtracker pro</a>, (<span class="Apple-style-span" style="font-style: italic;"> I found this one</span> <span class="Apple-style-span" style="font-style: italic;">you might find another useful one too)</span>. Now, one needs to feed the header of the mail , which one needs to trace, into this and voila! it would pop up with a world map and pin pointing the exact location from where the mail came.</div><div><br /></div><div>Going, into the theory, it works something like this, whenever someone sends you a mail, his/her IP address is recorded into it, and if that mail has been sent through a some other server then the IP address of the sender and the server is recorded in that header.</div><div>And these softwares find out the location based on the IP adress of the sender.</div><div>Well yeah!! it means that if you know the IP address of a person you can pin point the location of that person. Actually one can do a bit more than that, you can trace the whole path your data packets are travelling while reaching their destination, not in terms of IP adresses but also in terms of physical location of the servers, and great spftwares like <a href="http://visio-trace-route.qarchive.org/">this one</a> can show you the path on World Map, Cool eh!!</div><div><br /></div><div>So, what are you waitin for, start hackin...!!</div>Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com3tag:blogger.com,1999:blog-8922236178877902451.post-57912785391085385422008-12-28T06:21:00.000-08:002008-12-28T07:06:49.526-08:00Death Race on XOToday, when I was browsing through olpc news, I read about an article on porting mplayer to XO. <div><br /></div><div>Oops..!! </div><div>Well for the people who are not quite familiar with OLPC or XO. A short intro, OLPC stands for "One Laptop Per Child", it's an organisation which is developing a laptop and related content for children. And their aim is to make this laptop available to each and every child, as the name stands. For more info one can go <a href="http://wiki.laptop.org/go/The_OLPC_Wiki">here</a>.</div><div><br /></div><div>Well now coming back to the point, yeah mplayer. It rocks.. man..<br /></div><div><br /></div><div>The first movie that i watched on it was Death Race. And I must say that both the things(XO as well as the movie) complimented each other. Awesome movie and an awesome experience watching it on XO....</div><div><br /></div><div>If anyone wants to do the same <a href="http://olpcnews.com/forum/index.php?topic=863.msg6113#msg6113">here</a> is the link...</div>Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com3tag:blogger.com,1999:blog-8922236178877902451.post-43802974270648192342008-12-13T23:29:00.000-08:002012-11-24T05:09:59.203-08:00FoodForce 2 : Alpha Release<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="http://2.bp.blogspot.com/_Peb2A9d7MEE/SUS3y7AMjHI/AAAAAAAAABM/ZPrfVGcTXZE/s1600-h/logo.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5279546748644920434" src="http://2.bp.blogspot.com/_Peb2A9d7MEE/SUS3y7AMjHI/AAAAAAAAABM/ZPrfVGcTXZE/s320/logo.png" style="cursor: hand; cursor: pointer; display: block; height: 72px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a><br />
<span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; line-height: 16px;">Finally, after close to around 7 months of hard-work, I am pleased to announce that we have released a alpha version of FoodForce 2 game which we have been developing in co-ordination with OLPC and WFP. I have working as a Lead Developer. And yeah it's fun, developing a game is always fun.</span><br />
<div>
<span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; line-height: 16px;"><br /></span>
<div>
<span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; line-height: 16px;">FoodForce 2 has been designed to educate and motivate people to solve world hunger. Since the OLPC laptop reaches out to the developing and third-world countries, it also educates children and teachers in a village on how to achieve self sustenance in a fun and non-intrusive way. It also provides awareness about the work WFP has been doing for the past many decades to abate the problem of world hunger.</span></div>
<div>
<span class="Apple-style-span" style="font-family: Verdana; font-size: 48px; line-height: 16px;"><br /></span></div>
<div>
<span class="Apple-style-span" style="font-family: Verdana; font-size: 48px; line-height: 16px;"><span class="Apple-style-span" style="font-size: 13px;"></span></span><br />
<span class="Apple-style-span" style="font-family: Verdana; font-size: 48px; line-height: 16px;"><span class="Apple-style-span" style="font-size: 13px;">FoodForce and is aimed at both XOs and Windows.</span></span><br />
<span class="Apple-style-span" style="color: #333333; font-family: Verdana; font-size: 48px; line-height: 16px;"><span class="Apple-style-span" style="font-size: 13px;"><span style="color: black;">Link to Download Page:</span> <a href="http://code.google.com/p/foodforce/downloads/list" style="color: #336699;" title="http://code.google.com/p/foodforce/downloads/list"><b>http://code.google.com/p/foodforce/downloads/list</b></a><b><br /></b></span></span><br />
<span class="Apple-style-span" style="font-family: Verdana; font-size: 48px; line-height: 16px;"><span class="Apple-style-span" style="font-size: 13px;">Relevant Files :</span></span><br />
<ol>
<li><span class="Apple-style-span" style="font-family: Verdana; font-size: 48px; line-height: 16px;"><span class="Apple-style-span" style="font-size: 13px;">FoodForce2-1.xo : For installing on olpc.</span></span></li>
<li><span class="Apple-style-span" style="font-family: Verdana; font-size: 48px; line-height: 16px;"><span class="Apple-style-span" style="font-size: 13px;">FoodForce2-Alpha.exe : Installer for installing in Windows. </span></span></li>
</ol>
<span class="Apple-style-span" style="color: #333333; font-family: Verdana; font-size: 48px; line-height: 16px;"><span class="Apple-style-span" style="font-size: 13px;"><span style="color: black;">Link to the wiki page : </span><a href="http://www.blogger.com/blogger.g?blogID=8922236178877902451" name="Credits"> </a><b><a href="http://wiki.laptop.org/go/Projects/foodforce2" style="color: #336699;">http://wiki.laptop.org/go/Projects/foodforce2</a></b></span></span></div>
<div>
<span class="Apple-style-span" style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"><span style="color: black;">Link to the official FoodForce2 blog :</span> <span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; line-height: normal;"><a href="http://foodforce2.blogspot.com/"><span class="Apple-style-span" style="color: #6666cc;">http://foodforce2.blogspot.com</span></a></span></span></div>
<div>
<span class="Apple-style-span" style="color: #333333; font-family: Verdana; font-size: 13px; font-weight: bold; line-height: 16px;"><br /></span></div>
<div>
<span class="Apple-style-span" style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"><span style="color: black;">I hope that you guys play the game and like it. Any kind of feedback, help and criticism and words of appreciation would be highly appreciated. You are welcome to send in your feedbacks at</span> <a href="mailto:foodforce2@gmail.com" style="color: #336699;">foodforce2@gmail.com</a></span></div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com2tag:blogger.com,1999:blog-8922236178877902451.post-21762507619845604092008-10-19T04:32:00.000-07:002010-02-27T03:28:35.728-08:00Why do I love AI ?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Peb2A9d7MEE/SPslhCtt1dI/AAAAAAAAAAo/PHSafBFTQA4/s1600-h/ArtificialFictionBrain.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_Peb2A9d7MEE/SPslhCtt1dI/AAAAAAAAAAo/PHSafBFTQA4/s320/ArtificialFictionBrain.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5258838239479715282" /></a><span class="Apple-style-span" style=" ;font-family:'Times New Roman';"><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style=" ;"><span class="Apple-style-span" style="font-family:arial;">Well first of all for people who have not been able to guess the meaning of 'AI' in the title, it refers to </span></span><span class="Apple-style-span" style="font-style: italic; "><span class="Apple-style-span" style=" ;"><span class="Apple-style-span" style="font-family:arial;">Artificial Intelligence</span></span></span><span class="Apple-style-span" style=" ;"><span class="Apple-style-span" style="font-family:arial;">. </span></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;">And yes now coming back to the question, the question can be answered in a very simple way as, " I consider myself intelligent, thus I like intelligent people and also deserve my gadgets and machines to be intelligent". But there is more to the story. The above answer doesn't applies to me for many reasons, firstly, I am still not sure that whether I am intelligent or not and secondly, I don't like people on the basis of their intelligence and if I go on counting the number of friends of mine who are intelligent(</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">or say considered to be intelligent, I know that all my friends are phattebaj, but still)</span></span><span class="Apple-style-span" style="font-family:arial;"> and those who are not considered intelligent, it's the second group who is going to win.</span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;">The reason I like AI is that it's something which is </span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">considered as tough</span></span><span class="Apple-style-span" style="font-family:arial;"> so in general, you can take as much time as you want to solve the problem and the fun part is that you are not sure that whether you would be able to solve the problem or not (</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">this reminds me of codexcite organised by Sharat, even he used to be unsure about the existence of the solutions of those problems, but anyways</span></span><span class="Apple-style-span" style="font-family:arial;">). And yeah there are no limits you can make it as simple as you want and go into as much complexity as you want to go into. But, one of the major reasons why my interest persisted in AI is the secret that I almost always suceeded in solving the problems (</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">mind that almost). </span></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;">The</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;"> Journey</span></span><span class="Apple-style-span" style="font-family:arial;"> began with a "Cross n Naughts" game, in class 11th. I went a step further by not only making a game which could allow two players to play a game of cross n naughts, it had the facility of allowing the player to play against the computer. Luckily, ( </span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">well I shouldn't be using lucky here as at that time I used to work hard </span></span><span class="Apple-style-span" style="font-family:arial;">) </span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;"> </span></span><span class="Apple-style-span" style="font-family:arial;">I was able to get an efficiency that the computer would either win or get the game draw against the player. And the biggest achievement was that it was made in TurboC . </span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;">Then came along the "Sudoku Solver" and even that worked (</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">I was still quite hardworking). </span></span><span class="Apple-style-span" style="font-family:arial;">Which also helped us to win the sudoku challenge in Innovision last year (</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">yes, u r guessing it right, there is a portable computer known as laptop</span></span><span class="Apple-style-span" style="font-family:arial;">).</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;"> </span></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style=" "><span class="Apple-style-span" style="font-family:arial;">And there was also a failed attempt for applying AI to a game of Chess,(</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">remember the 'almost' at the end of last paragraph</span></span><span class="Apple-style-span" style="font-family:arial;">) I would like to give the credit of this failure to limitations of TurboC , sadly my code always hanged and I was tired of debugging it again and again.</span></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;">And then finally came, </span><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family:arial;">AI Challenge </span><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-family:arial;">(</span><span class="Apple-style-span" style="font-style: italic; "><span class="Apple-style-span" style="font-family:arial;">yes, it should have been kept in bold) ,</span></span><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family:arial;"> </span></span><span class="Apple-style-span" style="font-family:arial;">it started with a meeting with Deepank sir, and then came the phases of endless nightouts to make a code to play it out in an arena with Voldemort. The very much hyped mega event AI Challenge, which luckily (</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">we were seriously lucky this time) </span></span><span class="Apple-style-span" style="font-family:arial;">went fine. </span></span></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-family:arial;">But, we learnt our lessons and came back with a bang with </span></span><span class="Apple-style-span" style="font-size:large;"><span class="Apple-style-span" style="font-family:arial;">AI Challenge</span></span><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-family:arial;"> </span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-weight: normal;"><span class="Apple-style-span" style="font-family:arial;">(</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">yes, again it required a larger font too</span></span><span class="Apple-style-span" style="font-family:arial;">) </span></span></span><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="font-family:arial;">at Innovision'08</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;"> , </span></span><span class="Apple-style-span" style="font-family:arial;">we made it bigger and better and from my expectations point of view a lot better. We were no more using TurboC , no file handling involved, no damn threading involved. In short, we added a hint of KISS to it and it clicked. And yes, this time Luckily I got quite hard working juniors, Vijit and Chirag, to work on the game (</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;"> do notice the word lucky this time</span></span><span class="Apple-style-span" style="font-family:arial;">). We got participation from IIT's, IIIT's, and yeah </span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">DCE</span></span><span class="Apple-style-span" style="font-family:arial;"> and from even the colleges at the other end of the country, mind you Chennai, and quite a lot of credit for this goes to the juniors(Vijit and Chirag). But still, the people from NSIT rocked when it comes to AI, the winners were a team from NSIT only.</span></span></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;">And now the little bit of Intelligence left in me, says that I should finally end this post as the answer seems to be almost complete. </span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><span class="Apple-style-span" style="font-family:arial;">Comments Welcomed!!!!</span></div><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><br /><br /></div></span>Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com2tag:blogger.com,1999:blog-8922236178877902451.post-21859954066977023762008-09-27T09:05:00.000-07:002008-10-04T06:08:46.547-07:00Hello World<span class="Apple-style-span" style="font-family: 'lucida grande';">"Hello World", this phrase is used by most of the coders when they write their first code in any programming language. I thought why not to start with it as my first post. This signifies my Hello to the Blogging world.</span><div><span class="Apple-style-span" style="font-family: 'lucida grande';"><br /></span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">I would like to use this blog as a medium to communicate my ideas and methodology (</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family: 'lucida grande';">Thass baji</span></span><span class="Apple-style-span" style="font-family: 'lucida grande';">) with the community(</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family: 'lucida grande';">all the vella frns of mine</span></span><span class="Apple-style-span" style="font-family: 'lucida grande';">).I also hope that the comunity likes my posts and cherishes( </span><span class="Apple-style-span" style="font-style: italic; "><span class="Apple-style-span" style="font-family: 'lucida grande';">maybe</span></span><span class="Apple-style-span" style="font-family: 'lucida grande';"> </span><span class="Apple-style-span" style="font-style: italic; "><span class="Apple-style-span" style="font-family: 'lucida grande';">say M2L2</span></span><span class="Apple-style-span" style="font-family: 'lucida grande';">) them and any comments and suggestions would be Welcomed.</span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';"><br /></span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">And now before you close this tab, I would like to sign off ( </span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family: 'lucida grande';">don't underestimate me in this task, this is a thing which I do in style and quite well </span></span><span class="Apple-style-span" style="font-family: 'lucida grande';">)</span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';"><br /></span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">Regards,</span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">Mohit Taneja<br /></span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';"><br /></span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">Hey one more thing do we sign off a Blog??? </span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">Ok, yeah Finally, I accept, Yes I am a noob. But, Don't worry even a Noob becomes a Pro someday.</span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">Well anyways if you know the answer to the question above, just drop a comment.</span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';"><br /></span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">Anyways, here I sign off once again...</span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';"><br /></span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">Regards,</span></div><div><span class="Apple-style-span" style="font-family: 'lucida grande';">Mohit Taneja</span></div><div><br /></div><div><span class="Apple-style-span" style="border-collapse: collapse; color: rgb(136, 136, 136); font-family: arial; font-size: 13px; ">-- <br /><span class="Apple-style-span" style="color: rgb(51, 51, 51);"><span class="Apple-style-span" style="font-size: small;"><br />Steve Martin - "I like a woman with a head on her shoulders. I hate necks."</span></span></span><br /></div>Anonymoushttp://www.blogger.com/profile/02454432300975355206noreply@blogger.com5