<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-34173777</atom:id><lastBuildDate>Mon, 04 Jan 2010 11:08:10 +0000</lastBuildDate><title>DeeKaying - Geekiness @ IIT Roorkee</title><description>DeeKaying is the new term for geekiness on Campus. There you go: Its now officially on my blog!</description><link>http://divyekapoor.blogspot.com/</link><managingEditor>noreply@blogger.com (Divye)</managingEditor><generator>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-958653796906983399</guid><pubDate>Thu, 22 Oct 2009 05:58:00 +0000</pubDate><atom:updated>2009-10-22T11:28:45.724+05:30</atom:updated><title>Chinese Intervention?</title><description>Just on a light note, have a look at this screenshot of Firefox in an "embarrassing" situation. I wonder if it was because of the ever present Chinese... :)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_c0e2zFuzsT0/St_0aQO5knI/AAAAAAAABcc/oSqgwPM6gPw/s1600-h/CHINESE_INTERVENTION.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_c0e2zFuzsT0/St_0aQO5knI/AAAAAAAABcc/oSqgwPM6gPw/s640/CHINESE_INTERVENTION.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-958653796906983399?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2009/10/chinese-intervention.html</link><author>noreply@blogger.com (Divye)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_c0e2zFuzsT0/St_0aQO5knI/AAAAAAAABcc/oSqgwPM6gPw/s72-c/CHINESE_INTERVENTION.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-7284616556106787697</guid><pubDate>Thu, 27 Aug 2009 17:47:00 +0000</pubDate><atom:updated>2009-08-28T00:18:31.443+05:30</atom:updated><title>Automatic Django Template Directory adjustment</title><description>&lt;a href="http://www.djangoproject.org/"&gt;Django&lt;/a&gt; is that hot new &lt;a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller"&gt;MVC&lt;/a&gt; framework on the block that's kept me sleeping at night, quite unlike &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt;. Yup, its that good! :) It's got wonderful features that make me feel - &lt;i&gt;Yeah! Development for the web is still worth the grind!&lt;/i&gt; By the way, if you're not into Web Development and don't care two hoots about the difference between a framework and a library, this post is not for you - Mosey along now! Nothing to see here. ;)&lt;br /&gt;&lt;br /&gt;Anyway, one of my few n00b questions to which I've never actually got a satisfactory answer is - How do you specify the template directory so that you can send your code to others and have it execute by &lt;i&gt;manage.py runserver&lt;/i&gt; without any changes? The primary problem is the hardcoding of directories that is done in the &lt;i&gt;settings.py&lt;/i&gt; file at the root of the project. After a bit of searching, I've come to a satisfactory solution and lest I forget it, I've decided to post it to my blog. Here's the code snippet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;TEMPLATE_DIRS = (&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    # Always use forward slashes, even on Windows.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    # Don't forget to use absolute paths, not relative paths.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    # os.path.realpath(os.path.curdir).replace("\\", "/") + "/templates",&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    os.path.abspath(os.path.dirname(__file__)).replace("\\", "/") + "/templates"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This seems to work most of the time, just let me know how it works out for you!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-7284616556106787697?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2009/08/automatic-django-template-directory.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-1916808911082725429</guid><pubDate>Thu, 27 Aug 2009 17:32:00 +0000</pubDate><atom:updated>2009-08-27T23:53:03.228+05:30</atom:updated><title>Geeky Stuff - The Linux Kernel Implementation of Pipes, FIFOs and  other Filesystems</title><description>I had to create a presentation on the implementation of Pipes and FIFOs on GNU/Linux for my Network Programming class (we're doing some background on IPC). Since I couldn't find any decent documentation online, I decided to dive deep into the Linux kernel code and see what devils were lurking beneath the pipe() and the mkfifo() system calls. The end result? A rather organized documentation of how pipes and FIFOs are implemented on linux (including some stuff about the pipefs filesystem). You can use this documentation in a variety of ways (including creating your own, new filesystem, for linux), but beware, I've made this complete documentation by reading the code. It elides a lot of informative stuff and might be incorrect in places. I would love to hear about anything wrong or misleading in this documentation. I undertake no responsibility if something happens to you, your computer or someone else's computer if you use/misuse the information provided. Please feel free to use the information as you see fit, but keep your eyes open and your mind working. I release this presentation into the public domain. However, I would love to hear if you liked it and used it somewhere. &lt;div&gt; &lt;br /&gt;&lt;/div&gt;&lt;div&gt;The presentation is located &lt;a href="http://www.drkapoorsclinic.com/files/blog/Linux_Kernel_Implementation_of_Pipes_FIFOs.pptx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-1916808911082725429?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2009/08/geeky-stuff-linux-kernel-implementation.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-6416107496875830101</guid><pubDate>Thu, 27 Aug 2009 17:17:00 +0000</pubDate><atom:updated>2009-08-28T01:03:27.741+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>tourism</category><category domain='http://www.blogger.com/atom/ns#'>internship</category><category domain='http://www.blogger.com/atom/ns#'>pilgrimage</category><category domain='http://www.blogger.com/atom/ns#'>microsoft</category><title>Life Updates after the internship</title><description>&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Hello Web Surfer,&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Firstly - Apologies! Its been a really long time since my last (reasonable) post and I've been neglecting my blog a lot. Mostly, this can be attributed to my internship at Microsoft which sapped me for over 2 months and&amp;nbsp;then the brilliant work I've been doing at &lt;a href="http://www.zigndog.com/"&gt;Zigndog&lt;/a&gt;. Forgive me for all the neglect and thank you for your brilliant patience. Given the long absence of updates, it is only fair that I give you a peek into the inner workings of my life (If you're not really interested, just skip on to the next post, you just might like spicy letters to the Dean :D ).&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div&gt;I've been tweeting a lot about &lt;a href="http://www.designchef.com/"&gt;DesignChef&lt;/a&gt; and &lt;a href="http://www.zigndog.com/"&gt;Zigndog&lt;/a&gt;. If you don't already know of it, Zigndog is Puneet Jaggi's brainchild startup that working in the Web Development and Print Design space. Its working out well - Zigndog got 2 special mentions at the first &lt;a href="http://www.designchef.com/"&gt;DesignChef Logo Challenge&lt;/a&gt; and Second Place at the &lt;a href="http://www.designchef.com/"&gt;DesignChef UX Challenge&lt;/a&gt;. That's bagged us a cool Rs. 10,000 as a cash prize, not to mention a lot of positive publicity. (Hey! DirectI got so impressed by our work, we got contacted by them to do some work on rush basis). Of course, needless to mention that I was involved in the creation of the UX. But, collars up comments apart, serious kudos should go the entire team - Sampath, Rishabh, Sanat, Vikesh, Puneet and Priyanka Mdm. This was the outcome of our team effort and nothing significant could have been achieved without each one playing his part. Besides this, we've been working hard at ensuring that all our clients get satisfied. Something that's rather tough to achieve. (Trust me... Specially if you're planning to go for a startup someday)&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Ok, here's the deal - I need to post some meaningful stuff that will document my internship and not leave you bored to death... First, some tech stuff:&amp;nbsp;&lt;span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family: Verdana; font-size: 13px; font-weight: bold;"&gt;&lt;a href="http://tinyurl.com/luc2zo"&gt;http://tinyurl.com/luc2zo&lt;/a&gt;&lt;/span&gt; - That's my internship presentation on Coalescing. Don't even bother reading about it if you're not interested (I don't have a transcript of my speech, so the slides are rather empty). It suffices to say that people liked it and I met my personal goal of getting across 60% of my work. Most people failed in their early twenties... :)&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div&gt;On the non tech front, here are a few images that document the really fun time I had in Hyderabad while sampling restaurants and enjoying the weekends. Thanks a lot everyone! It was great fun. Oh, and as a parting note - &lt;a href="http://www.orkut.co.in/Main#Profile.aspx?uid=13173923916281342748"&gt;Happy Birthday Umesh&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5374707102628714850" src="http://3.bp.blogspot.com/_c0e2zFuzsT0/SpbLoif0GWI/AAAAAAAABbg/ebpwRigMFsc/s320/IMG_0670.JPG" style="cursor: hand; cursor: pointer; display: block; height: 320px; margin: 0px auto 10px; text-align: center; width: 240px;" /&gt;&lt;/div&gt;&lt;div&gt;This photo was taken at the Ramoji Film City. Its located about 2 hours away from Hyderabad but its a "must visit" for any tourist.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5374705506210152738" src="http://1.bp.blogspot.com/_c0e2zFuzsT0/SpbKLnX-ASI/AAAAAAAABbY/J2XIat1MB-A/s320/IMG_0726.JPG" style="cursor: hand; cursor: pointer; display: block; height: 240px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Taken at Tirupati. The golden cupola at the center is the sanctum sanctorum of Lord Balaji at the Tirupati temple. Many many thanks to &lt;a href="http://www.linkedin.com/pub/abhyuday-polineni/14/718/332"&gt;P. Abhyuday&lt;/a&gt; and his family for making our trip such a memorable experience.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-6416107496875830101?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2009/08/life-updates-after-internship.html</link><author>noreply@blogger.com (Divye)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_c0e2zFuzsT0/SpbLoif0GWI/AAAAAAAABbg/ebpwRigMFsc/s72-c/IMG_0670.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-7446979071465134810</guid><pubDate>Thu, 20 Aug 2009 14:35:00 +0000</pubDate><atom:updated>2009-08-20T20:05:31.676+05:30</atom:updated><title>[Cinema Club] Appeal</title><description>Dear Sir,&lt;div&gt;   I would like to inform you about a number of irregularities that have taken place in the selection and subsequent notification of the secretary of the Cinema Club. The professors in charge have refused to consider my case and hence I am resorting to this final recourse of appeal to you.&lt;/div&gt;  &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To give you a little background, I would like to state my version of events. You may wish to verify this with any you deem suitable:-&lt;/div&gt;&lt;div&gt;1. A notice was issued wherein applications were requested for application to the post of Secretary, Cinema club on Monday/Tuesday - 17th/18th August.&lt;/div&gt;  &lt;div&gt;2. The notice clearly stated that applications must be deposited in the office of the undersigned &lt;b&gt;Prof. R. Prasad&lt;/b&gt; (of Electrical Department) by&lt;b&gt; 20th August 2009&lt;/b&gt;. I complied with the same, having slipped in my application to his room at about &lt;b&gt;4:45 PM&lt;/b&gt; on 20th August 2009 (today). He was not present in his room and the timetable in his office showed that he was in a Lab. I visited some Labs in the department but was unable to locate him.&lt;/div&gt;  &lt;div&gt;3. Just before 6 PM, I am informed, in casual conversation, by one of my batchmates that interviews for the post of Secretary Cinema Club have already taken place at 5 PM in the office of Professor R. C. Mittal (of Mathematics Department) and that he has already notified the selected candidate by issuing a letter to &lt;b&gt;Mr. Somya Mohan&lt;/b&gt;.&lt;/div&gt;  &lt;div&gt;4. I immediately rush to the office of Prof. R. Prasad where I meet him and ask him whether he has received my application for the post. I am informed by him that he has received the application but that it is too late as he has already conducted the interviews, the result of which has already been  declared.&lt;/div&gt;  &lt;div&gt;5. I appeal to him by stating that I have complied with all directions of the notices and all  the information that was available with me. He refuses to consider my case. &lt;/div&gt;&lt;div&gt;7. At 6:30 PM at his behest, I have a telephonic conversation with Prof. R C Mittal wherein he states that he was made aware of my application by Prof. Prasad but was not willing to consider it.&lt;/div&gt;  &lt;div&gt;8. On further conversation with Prof. Prasad, I come to know that information about the interviews was passed on to the applicants through a single person - Mr. Somya Mohan via the phone during the afternoon.&lt;/div&gt;&lt;div&gt;  &lt;br&gt;&lt;/div&gt;&lt;div&gt;I would like to make the following representation:&lt;/div&gt;&lt;div&gt;1. I was not given a chance to represent myself at the interview for the post.&lt;/div&gt;&lt;div&gt;2. My application, though within time and present at the requested place was not accepted by the concerned Professor.&lt;/div&gt;  &lt;div&gt;3. The interviews were scheduled before the deadline for applications had elapsed.&lt;/div&gt;&lt;div&gt;4. Only oral notification of the interviews was made and that too via a single student, who was also an applicant for the post and thus had significant self interest in the matter.&lt;/div&gt;  &lt;div&gt;5. The results were declared before the deadline for applications had elapsed.&lt;/div&gt;&lt;div&gt;6. I was given no valid reason for the rejection of my application and my request for revoking/modifying/holding the earlier order in abeyance were summarily dismissed.&lt;/div&gt;  &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I feel that I have been unfairly discriminated against in this process.&lt;/div&gt;&lt;div&gt;Due process was not followed for the notification of interviews which were conducted without considering all applicants and before the expiry of the application deadline. Further, I wish to state that the interview procedure followed was arbitrary, unfair and opaque.&lt;/div&gt;  &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I request you to hear me out and take corrective measures as necessary so that my grievances are redressed. I shall be depositing a hardcopy of this application in your office tomorrow.&lt;/div&gt;&lt;div&gt;&lt;br&gt; &lt;/div&gt; &lt;div&gt;Thanking you,&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Yours sincerely,&lt;/div&gt;&lt;div&gt;Divye Kapoor&lt;/div&gt;&lt;div&gt;4th Year&lt;/div&gt;&lt;div&gt;B.Tech (IDD) CSI&lt;/div&gt;&lt;div&gt;IIT Roorkee&lt;/div&gt;&lt;div&gt;&lt;br&gt;-- &lt;br&gt;At bottom, every man knows perfectly well that he is a unique being, only once on this earth; and by no extraordinary chance will such a marvelously picturesque piece of diversity in unity as he is, ever be put together a second time. -Friedrich Nietzsche, philosopher (1844-1900) &lt;br&gt;  &lt;br&gt; &lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-7446979071465134810?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2009/08/cinema-club-appeal.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-8556269972983368648</guid><pubDate>Sun, 26 Apr 2009 21:22:00 +0000</pubDate><atom:updated>2009-04-27T03:46:17.588+05:30</atom:updated><title>The Complete Story - The NSS Valedictory Fiasco</title><description>&lt;div&gt;Not everything went according to plan at the NSS Valedictory Function on the 25th of April. This is a chronicle of all the events that took place. This is the mail that I sent to the NSS group to explain the effect of their individual choices on the collective whole.&lt;br /&gt;&lt;br /&gt;Hello everyone,&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;For those of you who don't know what has taken place, let me give you a quick summary. For those of you who do, you might have missed some of the following points. Please go through this carefully.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;1. The Chief Guest for the Val function was Dr. Harsh Sinhval, Dean (Alumini Affairs)&lt;/div&gt;&lt;div&gt;2. The Guest of Honour was Dr. Gaurav Raheja - Institute Architect&lt;/div&gt;&lt;div&gt;Both of them had agreed to be present at the Val function at the last moment. They had been invited at around 5 pm the previous day.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The fiascos that took place:&lt;/div&gt;&lt;div&gt;1. Almost no one was present at the venue at the allotted time of 3:15 pm&lt;/div&gt;&lt;div&gt;2. Dr. Sinhval arrived punctually at 3:28 as the time given to him was 3:30 pm&lt;/div&gt;&lt;div&gt;3. 3:28 pm onwards - we push the panic button and start calling up everyone to be present at the Val function&lt;/div&gt;&lt;div&gt;4. 3:43 pm - Dr. Sinhval expresses his anger at the state of events and threatens to leave the function if the event doesn't proceed by 3:45&lt;/div&gt;&lt;div&gt;5. 3:44 pm - We start the event. Dr. Sinhval requests that all the doors to the auditorium be closed to prevent the entry of latecomers&lt;/div&gt;&lt;div&gt;6. We disregard his request. We keep on calling up people. We even request the Dramatics section to fill up the auditorium. They refuse. I call upon personal friends to help me out at this point of time. The NSS activity list is being read out by Shruti.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;7. Close to 4:00 pm: Dr. Sinhval is asked to say a few words to the audience. He is furious. Total audience strength: close to 40 people.&lt;/div&gt;&lt;div&gt;A quote from his speech: "Normally, it isn't considered good manners to criticize your hosts but I am compelled to do this today. All the activities that you have read out to me hold no value. Anyone can write anything on a piece of paper and say that we've done this and done that. From an organization of 345 students, is this what is expected? Had I been the head of NSS, I would have clearly stated - those who don't attend this function will have their grades held back."&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Just then, someone enters. Dr. Sinhval responds - "Aayiye, Aayiye. Mushaiyare mein tashreef rakhiye. Aakhir yeh mushaira hi hai na, koi function nahin." The entire executive team is looking shamefaced.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;At the time of inviting him, Dr. Sinhval had expressed happiness at the work we were doing to teach students. He had asked us about the problems we were facing and had even offered to get a room for Prerna students to be taught at the ABN School on Saturdays. This is what he said then:&lt;/div&gt;&lt;div&gt;"Naga had told me about the problems you were facing in teaching students on weekends. I had thought of helping you in this regard but after what I have seen here today, I shall most certainly not be doing that. This is all that I had to say." He proceeds to his seat.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Can you imagine the plight of all those present there? Katiyar sir on the dias, sitting right next to him. Me and Naga sir down below - looking at the dismal empty chairs of the Civil Audi, desperately hoping that something can still be done, our hearts sinking with a feeling of deep loss. What should we do next?&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;8. Dr Raheja states a short story on the work that NSS has done. He maintains a calm disposition, but it is clearly seen that he's disappointed with the state of events. Meanwhile, Katiyar sir is desperately trying to calm Dr. Sinhval. Water arrives for the guests. There was no bouquet for any of them as the flower shops in Roorkee were closed.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;9. Dr. Sinhval realizes our plight and requests the mic to say another story, this time a humourous one to diffuse the tension, but it is obvious that he is still simmering under the surface.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;10. Naga sir was asked to announce the new team - Katiyar sir interrupts him and asks him not to do so.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;11. The prize distribution for all the active volunteers takes place. Dr. Sinhval's comment: "I hope atleast they are present here". First two names called out are not present. Just to save face, we start sending other people up in case those that were being awarded were not present. Katiyar sir is given a memento for being the NSS Program Coordinator. There are no mementos for the Chief Guest and the Guest of Honour.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;12. Prize Distribution over. I come up on stage and try salvaging the situation. I highlight the fact that the NSS Volunteer Awardees have worked close to 100 hours over the course of 2 semesters for a 2 credit course and that the people sitting in the audience aren't the "masses" working for grades, but those that realize the importance of their work and the service they are rendering to the nation, not out of pity, charity or kindness, but out of a feeling that every person in the country deserves as much as his country can give him.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;14. I escort the guests down from the stage towards the refreshments. Dr. Sinhval refuses to leave the stage before me (as is his right, being the Chief Guest of the Event). This is an indirect slap to my face.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;15. Katiyar Sir and the other Guests chitchat over refreshments but Dr. Sinhval refuses to give an assurance that he will continue to help us in the future.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;16. The guests leave.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Let me make a few points here:&lt;/div&gt;&lt;div&gt;1. Why do I make such a big fuss about punctuality?&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; a) I realize the value of time. So do others.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; b) This is what happens when you're not punctual. I know this. That's why I care.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;2. Who is responsible for this mess?&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; a) I am - for leaving the management of critical aspects of such an important event to my juniors.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; b) Naga Sir - for doing the same.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; c) The new executive team - for not taking their responsibilities seriously.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;3. Who is not responsible for this mess?&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; a) The first yearites - You have done exactly what I had expected you to do. You will prioritize 1 hour of sleeping or lazing around in the name of studying over coming for the val function.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Don't you think that your seniors might have spent many more hours getting the permission for the Civil audi, tallying the attendance, getting the certificates printed, writing the names of the people, getting the mementos, arranging for refreshments etc? Aren't their examinations on the same days as all of you?&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; All you guys had to do was to get up and come over for one hour - one single hour away from your studies too finally see and understand what you have achieved as part of NSS, what other cells had done and why you should be proud of your work and give a farewell to the current team. Of course, most of you weren't interested.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;4. Who should bear the brunt of the consequences?&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;The NSS Team. They are now entrusted with the task of jumping through administrative hoops and loads of red tape to get permission for the simplest of things. By serving your self interests, you have inadvertently denied NSS a golden opportunity to have better relationships with the administration.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;In any case, there is no use crying over spilt milk. You have done what you had to and we did what we could to save face. That's all there is to it. Thanks everyone for a very "memorable" farewell. It affected me to the depths of my heart... really. Thanks a lot...&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Divye Kapoor&lt;/div&gt;&lt;div&gt;Ex-Joint Secretary&lt;/div&gt;&lt;div&gt;NSS&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-8556269972983368648?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2009/04/complete-story.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>19</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-6521944354165802022</guid><pubDate>Thu, 23 Apr 2009 16:47:00 +0000</pubDate><atom:updated>2009-04-23T22:17:57.597+05:30</atom:updated><title>BUGS in DK's soul</title><description>Recently received via &lt;a href="http://fakemail.info"&gt;fakemail.info&lt;/a&gt;:&lt;div class="gmail_quote"&gt;DK&amp;#39;s soul has bugs too!!!! Thats why its in Beta...&lt;/div&gt;&lt;div class="gmail_quote"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_quote"&gt;Thanks for the obvious creativity guys, you really cracked me up. :-)&lt;/div&gt;  &lt;div class="gmail_quote"&gt;The other mails were also fun, but some were unpublishable.&lt;/div&gt;&lt;div class="gmail_quote"&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="gmail_quote"&gt;Keep mailing... Love to see your quote of the day in my inbox.&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-6521944354165802022?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2009/04/bugs-in-dks-soul.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-3596711288860607231</guid><pubDate>Wed, 11 Mar 2009 09:58:00 +0000</pubDate><atom:updated>2009-03-11T15:55:34.615+05:30</atom:updated><title>Google moving towards the "Google OS"</title><description>&lt;a href="http://google-code-updates.blogspot.com/2009/02/announcing-native-client-security.html"&gt;Google Code Blog: Announcing the Native Client Security Contest&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google is moving slowly but surely towards its much hyped (but never confirmed) "Google OS". Google has just announced the &lt;a href="http://google-code-updates.blogspot.com/2009/02/announcing-native-client-security.html"&gt;Google Native Client Security Contest&lt;/a&gt; which challenges students and professionals from around the globe to have a look at the Google Native Client (or &lt;a href="http://code.google.com/p/nativeclient/"&gt;NaCl&lt;/a&gt; as it is better known in the &lt;a href="http://nativeclient.googlecode.com/svn/trunk/nacl/googleclient/native_client/documentation/examples.html#eg-hello"&gt;docs&lt;/a&gt;) to find bugs and vulnerabilities. The person who identifies the maximum number of bugs  can receive (in typical Google fashion) upto $ 2^13 . Great chance for all you hackers out there to earn some real m00lah.&lt;br /&gt;&lt;br /&gt;However, its not the money that has caught my eye in this contest. The most eye popping thing about this piece of software are the screenshots that show how a full fledged 3D game - Quake, is running right inside of a browser. Its no wonder that Google claims that it will revolutionize the degree of interactivity available inside of a browser. Have a look at the screenshot below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_c0e2zFuzsT0/SbeQnmP5e6I/AAAAAAAAAIg/f6R9sbQUouA/s1600-h/quake-200.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 201px; height: 218px;" src="http://1.bp.blogspot.com/_c0e2zFuzsT0/SbeQnmP5e6I/AAAAAAAAAIg/f6R9sbQUouA/s320/quake-200.png" alt="" id="BLOGGER_PHOTO_ID_5311873295463316386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another thing that you should consider doing is reading the &lt;a href="http://nativeclient.googlecode.com/svn/trunk/nacl/googleclient/native_client/documentation/nacl_paper.pdf"&gt;research paper &lt;/a&gt;of the people who built this sandbox. The've gone to great lengths to ensure security of their sandbox by using static code analysis, code flow control and syscall interception. Its really worth your time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-3596711288860607231?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2009/03/google-moving-towards-google-os.html</link><author>noreply@blogger.com (Divye)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_c0e2zFuzsT0/SbeQnmP5e6I/AAAAAAAAAIg/f6R9sbQUouA/s72-c/quake-200.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-3012487002308447938</guid><pubDate>Mon, 23 Feb 2009 19:46:00 +0000</pubDate><atom:updated>2009-02-24T01:40:03.348+05:30</atom:updated><title>GMail has bugs too! That's why it's in Beta.</title><description>Check out the image below. A rare bug in the GMail interface.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_c0e2zFuzsT0/SaMCekeX1iI/AAAAAAAAAIY/p8XUvBBHoPg/s1600-h/GMail+Bug.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_c0e2zFuzsT0/SaMCekeX1iI/AAAAAAAAAIY/p8XUvBBHoPg/s400/GMail+Bug.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-3012487002308447938?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2009/02/gmail-has-bugs-too-thats-why-its-in.html</link><author>noreply@blogger.com (Divye)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_c0e2zFuzsT0/SaMCekeX1iI/AAAAAAAAAIY/p8XUvBBHoPg/s72-c/GMail+Bug.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-1018542520588181163</guid><pubDate>Sat, 20 Dec 2008 19:12:00 +0000</pubDate><atom:updated>2008-12-21T00:53:03.520+05:30</atom:updated><title>My match with Vishwanathan Anand</title><description>&lt;style&gt; &amp;lt;!--  /* Font Definitions */  @font-face  {font-family:&amp;quot;Cambria Math&amp;quot;;  panose-1:2 4 5 3 5 4 6 3 2 4;  mso-font-charset:1;  mso-generic-font-family:roman;  mso-font-format:other;  mso-font-pitch:variable;  mso-font-signature:0 0 0 0 0 0;} @font-face  {font-family:Calibri;  panose-1:2 15 5 2 2 2 4 3 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face  {font-family:&amp;quot;Arial Black&amp;quot;;  panose-1:2 11 10 4 2 1 2 2 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:647 0 0 0 159 0;} @font-face  {font-family:Garamond;  panose-1:2 2 4 4 3 3 1 1 8 3;  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:647 0 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-parent:&amp;quot;&amp;quot;;  margin-top:0in;  margin-right:0in;  margin-bottom:10.0pt;  margin-left:0in;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;  mso-bidi-theme-font:minor-bidi;} .MsoChpDefault  {mso-style-type:export-only;  mso-default-props:yes;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;;  mso-bidi-theme-font:minor-bidi;} .MsoPapDefault  {mso-style-type:export-only;  margin-bottom:10.0pt;  line-height:115%;} @page Section1  {size:8.5in 11.0in;  margin:1.0in 1.0in 1.0in 1.0in;  mso-header-margin:.5in;  mso-footer-margin:.5in;  mso-paper-source:0;} div.Section1  {page:Section1;} --&amp;gt; &lt;/style&gt;  &lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial Black&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;On the sidelines of the &lt;a href="http://www.paniit2008.org/"&gt;PanIIT Alumini meet&lt;/a&gt; being held at &lt;a href="http://www.iitm.ac.in/"&gt;IIT Madras&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Viswanathan_Anand"&gt;Vishwanathan Anand&lt;/a&gt; - World Champion of Chess put in an appearance and played 14 boards of chess in a rapid mode of play. This was the sequence of moves played at table 4 by Narendranath (a 2000ish rated player and captain of the IITM chess team whom I met while playing chess at the InterIIT sports meet held earlier). It was real fun. Have a look.&lt;/span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial Black&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;White:&lt;/span&gt;&lt;span style="font-family: &amp;quot;Garamond&amp;quot;,&amp;quot;serif&amp;quot;;"&gt; Vishwanathan Anand&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Arial Black&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Black: &lt;/span&gt;&lt;span style="font-family: &amp;quot;Garamond&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Narendranath (IITM)/Divye Kapoor(IITR)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;1. e4 c5&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;; Sicilian Defense&lt;br /&gt;2. Nf3 Nc6&lt;br /&gt;3. Bb5 a6&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;; push the bishop&lt;br /&gt;4. Bxc6 bxc6 &amp;nbsp;; have a doubled pawn&lt;br /&gt;5. O-O d5&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;; try opening the doubled pawn&lt;br /&gt;6. d3 Bg4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; try pinning the Knight&lt;br /&gt;7. h3 Bh5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; push back the bishop&lt;br /&gt;8. Nc3 d4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; push the Knight and block the center&lt;br /&gt;9. Na4 b3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Knight threatens entry&lt;br /&gt;10. Bg5 h6&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Push the Bishop&lt;br /&gt;11. Bxf6 Qxf6 ; Bishop v/s Knight exchange&lt;br /&gt;12. g4 Bg6&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Break the pin on the Knight&lt;br /&gt;13. Kg2 h5&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Support the white pawns&lt;br /&gt;14. g5 Qf4&amp;nbsp;&amp;nbsp;&amp;nbsp; ; &lt;br /&gt;15. Qd2 Qc7&amp;nbsp;&amp;nbsp; ; Push back the Black Queen&lt;br /&gt;16. Nh4 Bh7&amp;nbsp;&amp;nbsp; ; Push back the Black Bishop&lt;br /&gt;17. f4 Bd6&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Develop the Black Bishop&lt;br /&gt;18. Nb2 Kd7&amp;nbsp;&amp;nbsp; ; Break Black's Castling&lt;br /&gt;19. Nc4 Raf8&amp;nbsp; ; Bring rooks into play&lt;br /&gt;20. a4 Qb8&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Start supporting the White Knight at the hole at b6&lt;br /&gt;21. a5&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Match abandoned due to lack of time.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-1018542520588181163?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/12/my-match-with-vishwanathan-anand.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-2258429582565516993</guid><pubDate>Tue, 11 Nov 2008 15:56:00 +0000</pubDate><atom:updated>2008-11-12T02:52:10.347+05:30</atom:updated><title>Is Heysan.com a clickjacking attack, virus dropper or something else?</title><description>For those of you who have been regularly using &lt;a href="http://mail.google.com/mail"&gt;GMail&lt;/a&gt;, the recent arrival of unexplained chats from your friends might have piqued your curiosity. A chat lands up in your GMail Inbox claiming to have been sent to you by one of your friends bearing some sort of cheesy one liners and that you should click on the link to view them. Something like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_c0e2zFuzsT0/SRmwOubakEI/AAAAAAAAAFw/JZnmUuiR5RA/s1600-h/heysan_chat.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_c0e2zFuzsT0/SRmwOubakEI/AAAAAAAAAFw/JZnmUuiR5RA/s320/heysan_chat.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Though usually I'm highly suspicious of these sorts of clicks, I went ahead and clicked it. (After all, Firefox, my favourite web browser has quite a decent track record as far as security is concerned).The site that opened up looked like:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_c0e2zFuzsT0/SRmxcWgeOsI/AAAAAAAAAF4/F8n9E-fJWhA/s1600-h/heysan.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://3.bp.blogspot.com/_c0e2zFuzsT0/SRmxcWgeOsI/AAAAAAAAAF4/F8n9E-fJWhA/s320/heysan.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;Now, I'm not going to be giving up my Google Account password to any site that just asks for it. No Way! Not a Chance! Not even if it boasts of the &lt;a href="http://talk.google.com/"&gt;Google Talk&lt;/a&gt; logo. But then, there are all kinds of people in the world and some are likely to enter their Google ids and passwords due to ignorance. In my opinion, this site is a fraud that is directly and obviously obtaining access to userids and passwords of GMail accounts and using them to perpetuate a mass mailing campaign from within the comfortable confines of your GMail inbox. The fact that there exists a hidden link to &lt;a href="http://admob.com/" target="_blank"&gt;admob.com&lt;/a&gt; (a highly &lt;a href="http://en.wikipedia.org/wiki/SEO"&gt;SEO&lt;/a&gt;ed advert site - see image) by means of a 1px x 1px image, bolsters my gut feeling about this site. Beware all of you who get a link to &lt;a href="http://heysan.com/" target="_blank"&gt;heysan.com&lt;/a&gt; - I think that its just the tip of a very large iceberg. Recent reports of a &lt;a href="http://www.webmonkey.com/blog/Hackers_are_Watching_You:_Flash_Clickjacking_Vulnerability_Exposes_Webcams_and_Mics"&gt;click based vulnerability in all browsers&lt;/a&gt; is a further cause for tension. Be on your toes everyone! More information on &lt;a href="http://www.webmonkey.com/blog/A_Look_at_the__Clickjacking__Web_Attack_and_Why_You_Should_Worry"&gt;clickjacking is available here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The hidden links on the GTalk page is:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_c0e2zFuzsT0/SRmx3x4pTZI/AAAAAAAAAGA/Z6WIOinoTBU/s1600-h/hidden_links_heysan.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_c0e2zFuzsT0/SRmx3x4pTZI/AAAAAAAAAGA/Z6WIOinoTBU/s320/hidden_links_heysan.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;And the heysan.com home page looks like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_c0e2zFuzsT0/SRmyAj4fqvI/AAAAAAAAAGI/sRCpcyV4wEQ/s1600-h/heysan_home.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_c0e2zFuzsT0/SRmyAj4fqvI/AAAAAAAAAGI/sRCpcyV4wEQ/s320/heysan_home.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;All links on this page lead to login areas of different popular e-mail and IM sites. So beware the casual web surfer: this does not augur well for the web. Currently, the best known safety solution is to install the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/722"&gt;NoScript addon for Firefox &lt;/a&gt;and use it to disable iframes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-2258429582565516993?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/11/is-heysancom-clickjacking-attack-or.html</link><author>noreply@blogger.com (Divye)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_c0e2zFuzsT0/SRmwOubakEI/AAAAAAAAAFw/JZnmUuiR5RA/s72-c/heysan_chat.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>11</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-8751419824940679612</guid><pubDate>Thu, 09 Oct 2008 19:04:00 +0000</pubDate><atom:updated>2008-10-10T00:39:51.480+05:30</atom:updated><title>Permutations of a string containing duplicates (C++ Version)</title><description>&lt;div dir="ltr"&gt;Have you ever thought of how to generate and display/print all possible permutations of a string (containing duplicate characters) such that every legal permutation appears atmost once in the final output, without taking a humungous amount of memory to keep track of all the permutations you have generated? This particular function utilizes a cool STL algorithm and generates all possible permutations of a string only once (whether the original string contained duplicates or not). &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;int dup_permute(char *str, size_t length) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int count = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::sort(str, str+length);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ++count;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt;&amp;nbsp; str &amp;lt;&amp;lt; '\n';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(std::next_permutation(str, str+length));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return count;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of course, since the major work of this function is being done in the C++ standard library, an explanation of the standard library functions is in order. &lt;br /&gt;First up is the &lt;b&gt;std::sort &lt;/b&gt;function. Located in the &amp;lt;algorithm&amp;gt; header, true to its name, it sorts the given range of elements (in this case the string, specified by pointers to its first and last elements). &lt;b&gt;std::next_permutation&lt;/b&gt; is a tough one to deal with. The working of this function is too convoluted to explain in a couple of sentences, so, I would recommend you look up &lt;a href="http://www.cplusplus.com/reference/algorithm/next_permutation.html"&gt;this reference&lt;/a&gt; and this &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163513.aspx"&gt;MSDN article&lt;/a&gt;. In short, next_permutation generates the next lexicographically ordered permutation of the given elements using no more than a constant amount of extra space. All that work is done using comparison, swapping and reversing a subset of elements in the array itself. Also, since there is no copying involved, this function is blazing fast. So, the next time someone asks for all permutations of a string, forget about recursion and look at this iterative version. Not only is it correct for the distinct elements case, it works even when the string does contain duplicates. If you liked it, don't forget to leave a comment.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-8751419824940679612?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/10/permutations-of-string-containing.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>8</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-6519481052405289775</guid><pubDate>Wed, 17 Sep 2008 17:53:00 +0000</pubDate><atom:updated>2008-09-17T23:40:25.343+05:30</atom:updated><category domain='http://www.blogger.com/atom/ns#'>internship</category><category domain='http://www.blogger.com/atom/ns#'>computers</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>microsoft</category><title>Selected!!!</title><description>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ximep2008.org/newpage/microsoft-logo.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.ximep2008.org/newpage/microsoft-logo.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;After 5 hours of mind wrenching tension and reams of code later, I've finally been selected for the internship programme at the Microsoft India Development Center (better known as &lt;a href="http://www.microsoft.com/India/MSIDC/default.aspx"&gt;Microsoft IDC&lt;/a&gt;). The internship is going to last for atleast 8 weeks and I'll be getting accomodation for 15 days and travelling expenses in addition to my internship stipend. Looking forward to going to Hyderabad, anybody going to meet me there?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(85, 26, 139); text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(85, 26, 139); text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.liquidmatrix.org/blog/wp-content/uploads/2008/05/microsoft_logo.jpg"&gt;&lt;img src="http://www.liquidmatrix.org/blog/wp-content/uploads/2008/05/microsoft_logo.jpg" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 200px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-6519481052405289775?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/09/selected.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-2097181814823349151</guid><pubDate>Wed, 17 Sep 2008 17:48:00 +0000</pubDate><atom:updated>2008-09-18T23:18:39.185+05:30</atom:updated><title>The 'Said' Problem</title><description>I came across this cool piece of text on a patents website.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"The computer-readable medium of claim 23 wherein &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; workspace is used by a database system to create a &lt;i&gt;plurality&lt;/i&gt; of run files, each of which contains a &lt;i&gt;plurality&lt;/i&gt; of variable length records from &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; set of variable length records, as sorted by &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; database system using &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; workspace, &lt;b&gt;said &lt;/b&gt;step of selectively removing comprises writing a next of the &lt;i&gt;plurality&lt;/i&gt; of variable length records that are stored in &lt;i&gt;&lt;b&gt;said &lt;/b&gt;&lt;/i&gt;workspace out to a run file in a predetermined order, &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; method further having computer-executable instructions for performing steps comprising:&lt;/blockquote&gt;&lt;blockquote&gt;determining that &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; set of variable length records is greater in size than &lt;i&gt;&lt;b&gt;said &lt;/b&gt;&lt;/i&gt;predetermined fixed extent of &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; workspace;&lt;/blockquote&gt;&lt;blockquote&gt;creating one or more run files on a data storage medium; and writing out to &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; run file only those variable length record selected by &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; step of selectively removing subsequent to determining that &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; set of variable length records is greater in size than &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; predetermined fixed extent of &lt;i&gt;&lt;b&gt;said&lt;/b&gt;&lt;/i&gt; workspace. "&lt;/blockquote&gt;&lt;br /&gt;Now we know why we need lawyers for legalese, don't we? ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-2097181814823349151?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/09/said-problem.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-6420223953146706217</guid><pubDate>Mon, 08 Sep 2008 18:03:00 +0000</pubDate><atom:updated>2008-09-08T23:41:51.650+05:30</atom:updated><title>Easter Egg in Google Chrome</title><description>&lt;div class="mobile-photo"&gt;&lt;a href="http://1.bp.blogspot.com/_c0e2zFuzsT0/SMVo-8aqCLI/AAAAAAAAAEc/NzjwwC7zxuw/s1600-h/chrome_crash-719886.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5243712771721922738" src="http://1.bp.blogspot.com/_c0e2zFuzsT0/SMVo-8aqCLI/AAAAAAAAAEc/NzjwwC7zxuw/s320/chrome_crash-719886.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;Try typing about:crash in the title bar of &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt; and see this cute cross eyed robot! :-)&lt;br /&gt;Of course, you do know by now that Chrome is hottest new entrant on the browser block, don't you? Well, now you do. :-D&lt;br /&gt;&lt;br /&gt;Have a look at &lt;a href="http://blogs.zdnet.com/carroll/?p=1874"&gt;this review &lt;/a&gt;of Chrome on ZDNet.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-6420223953146706217?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/09/easter-egg-in-google-chrome.html</link><author>noreply@blogger.com (Divye)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_c0e2zFuzsT0/SMVo-8aqCLI/AAAAAAAAAEc/NzjwwC7zxuw/s72-c/chrome_crash-719886.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-7093217308529159611</guid><pubDate>Sat, 02 Aug 2008 06:33:00 +0000</pubDate><atom:updated>2008-12-10T07:57:39.144+05:30</atom:updated><title>in.com - India on the world stage</title><description>&lt;div dir="ltr"&gt;Its rather rare that you come across a site with content really geared towards Indians with a look and feel matching any world class website. Take a quick look at the layout and source code of sites such as &lt;a href="http://www.ibnlive.com/"&gt;CNN-IBN&lt;/a&gt; and &lt;a href="http://www.aajtak.com/"&gt;Aaj Tak&lt;/a&gt; and you will realize that we are really retards as far as decent site layouts and navigation is concerned. However, &lt;a href="http://www.in.com/"&gt;in.com&lt;/a&gt; was a really refreshing change. The interface is quick and snazzy and the site runs on blazing fast servers - in fact, I would go as far as to state that I had a better experience with their quick registration and speedy interface than I had with GMail on Google servers. Oh and just not to forget, they've gone onto internet overdrive and I'm constantly receiving targeted ads that lead me to their site. Well, what can I say - you have me hooked!  :-)&lt;br /&gt;&lt;br /&gt;The first thing that I tried out was their radio service - its awesome! Have a look at the screenshot below:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_c0e2zFuzsT0/SJQAb3gWoRI/AAAAAAAAADo/MVGrQItNs1A/s1600-h/radio+-+in_com.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_c0e2zFuzsT0/SJQAb3gWoRI/AAAAAAAAADo/MVGrQItNs1A/s400/radio+-+in_com.jpg" alt="" id="BLOGGER_PHOTO_ID_5229805546040107282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Despite it being an obvious ripoff from &lt;a href="http://last.fm/"&gt;last.fm&lt;/a&gt;, I really don't mind. They've got more Indian songs in such an accessible format that it took me less than 10 seconds to start listening to &lt;i&gt;Kabhi Kabhi Aditi&lt;/i&gt;. The best part of it is that its free and delivers songs on demand and their Bollywood song collection beats the living daylights out of any other service on the internet. Thats not to say that they are lagging in the english songs department - there's plenty of fare for all metal and rock addicts. A point to note is that I did not receive any lag while switching songs and there were no annoying "&lt;i&gt;buffering...&lt;/i&gt;" issues. A quick traceroute showed me that its because they are hosting the site on dedicated servers on the VSNL backbone. That gives a really stellar experience for Indians. All that money that's gone into making the site is really being spent intelligently.&lt;br /&gt;&lt;br /&gt;The mail was not bad at all - a complete GMail ripoff - right down to the drop down contacts list. Have a look:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_c0e2zFuzsT0/SJQAr41d2hI/AAAAAAAAADw/_YFdB2S2vq0/s1600-h/mail-in_com.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_c0e2zFuzsT0/SJQAr41d2hI/AAAAAAAAADw/_YFdB2S2vq0/s400/mail-in_com.jpg" alt="" id="BLOGGER_PHOTO_ID_5229805821275003410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The cool colour combination, the smooth fonts and especially the news and radio services makes me feel that I'll be visiting it much more often. Also, the short and sweet id I registered for - divye at in dot com is the icing on the cake. I loved their service and if you are an Indian (or even otherwise), you will too. So, what are you waiting for? Rush!!! Go &lt;span style="font-size:78%;"&gt;(listen to)&lt;/span&gt; &lt;i&gt;Talli&lt;/i&gt; on this site ;-)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-7093217308529159611?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/08/incom-india-on-world-stage.html</link><author>noreply@blogger.com (Divye)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_c0e2zFuzsT0/SJQAb3gWoRI/AAAAAAAAADo/MVGrQItNs1A/s72-c/radio+-+in_com.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-3334360916010521709</guid><pubDate>Thu, 31 Jul 2008 08:40:00 +0000</pubDate><atom:updated>2008-07-31T14:25:29.647+05:30</atom:updated><title>Enjoy Everything You Do</title><description>&lt;div dir="ltr"&gt;Live the life of a dolphin,&lt;br /&gt;Travel the world without fear,&lt;br /&gt;Whether to the top of a mountain,&lt;br /&gt;Or where the water ain't clear.&lt;br /&gt;&lt;br /&gt;Fear not to push the ceiling,&lt;br /&gt;Try to reach for the sky,&lt;br /&gt;Go with the flow if you want to,&lt;br /&gt;Or be left high and dry.&lt;br /&gt;&lt;br /&gt;Speak your words with feeling,&lt;br /&gt;Enjoy everything you do. &lt;br /&gt;Play from dawn to the evening,&lt;br /&gt;Is that not everything you do?&lt;br /&gt;&lt;br /&gt;Follow the world in its footsteps,&lt;br /&gt;Or make the world follow you.&lt;br /&gt;Do everything with feeling.&lt;br /&gt;Enjoy everything you do.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-3334360916010521709?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/07/enjoy-everything-you-do.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-8166625081176103730</guid><pubDate>Thu, 31 Jul 2008 08:34:00 +0000</pubDate><atom:updated>2008-07-31T14:04:12.337+05:30</atom:updated><title>Bird of Fire</title><description>&lt;div dir="ltr"&gt;Fly, Fly, Fly little bird in the sky.&lt;br&gt;You own the heavens - the Earth and the Sky.&lt;br&gt;Lie, Lie, Lie, asleep in the clouds,&lt;br&gt;Free from cares, from worldly bounds.&lt;br&gt;You creature of mirth, of joy abound.&lt;br&gt; &lt;br&gt;Live, Live, Live, a life full of dreams,&lt;br&gt;Unchecked by dearth of form or means.&lt;br&gt;Pray, Pray, Pray for a life full of song,&lt;br&gt;For finding a rhythm to play along.&lt;br&gt;You creature of milk, to heavens belong.&lt;br&gt;&lt;br&gt; Say, Say, Say, the words in your heart,&lt;br&gt;Bring a smile with a kind remark.&lt;br&gt;Day, day, day a day in your life,&lt;br&gt;Opens a door from formless night.&lt;br&gt;You warrior of words, of shape and light.&lt;br&gt;&lt;br&gt;Inspired by - &lt;i&gt;To a Skylark&lt;/i&gt; by P. B. Shelly&lt;br&gt;  &lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-8166625081176103730?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/07/bird-of-fire.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-7539982090694294982</guid><pubDate>Mon, 21 Jul 2008 10:32:00 +0000</pubDate><atom:updated>2008-12-10T07:57:39.402+05:30</atom:updated><title>Wordle and SEO</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_c0e2zFuzsT0/SIRpRYasBNI/AAAAAAAAADI/_ik90unk7zA/s1600-h/wordle+-+Dr+Kapoors+Clinic.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_c0e2zFuzsT0/SIRpRYasBNI/AAAAAAAAADI/_ik90unk7zA/s400/wordle+-+Dr+Kapoors+Clinic.jpg" alt="" id="BLOGGER_PHOTO_ID_5225417214989698258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;An image is worth a thousand words. This image is a tag cloud&lt;br /&gt;generated by &lt;a href="http://wordle.net/"&gt;Wordle&lt;/a&gt; from the text at&lt;br /&gt;&lt;a href="http://www.drkapoorsclinic.com/"&gt;http://www.drkapoorsclinic.com&lt;/a&gt; . I don't need to tell you&lt;br /&gt;how such a map is helpful for &lt;a href="http://en.wikipedia.org/wiki/SEO" title="Search Engine Optimization"&gt;SEO&lt;/a&gt; - do I?&lt;br /&gt;&lt;br /&gt;And yes: despite my earlier post on &lt;a href="http://divyekapoor.blogspot.com/2007/08/mac-vs-vista.html"&gt;Mac v/s Vista&lt;/a&gt; - that *is* a screenshot taken from my laptop running Vista. You might call me a hypocrite, I just call myself a pragmatist - if you can't beat 'em, join 'em.  ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-7539982090694294982?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/07/wordle-and-seo.html</link><author>noreply@blogger.com (Divye)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_c0e2zFuzsT0/SIRpRYasBNI/AAAAAAAAADI/_ik90unk7zA/s72-c/wordle+-+Dr+Kapoors+Clinic.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-1701090198348169697</guid><pubDate>Fri, 18 Jul 2008 10:10:00 +0000</pubDate><atom:updated>2008-07-18T19:16:31.142+05:30</atom:updated><title>Walking through your first template metaprogram in C++</title><description>From the Wikipedia article on Metaprogramming:&lt;br /&gt;&lt;blockquote&gt;Metaprogramming is the writing of computer programs that write or manipulate other programs (or themselves) as their data, or that do part of the work at compile time that is otherwise done at run time. In many cases, this allows programmers to get more done in the same amount of time as they would take to write all the code manually.&lt;/blockquote&gt;Unfortunately, metaprogramming is not directly supported by C++ and resources on template metaprogramming are few and far between. I'll try to document my knowledge of metaprogramming as I learn it and hope that it proves useful for one such as myself hunting the web for information.&lt;br /&gt;&lt;br /&gt;First, lets get the preliminaries out of the way:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Templates are used to create generic code (but you already know that, don't you?)&lt;br /&gt;Code like:&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;" &gt;template&lt;/span&gt;&lt;typename style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" t=""&gt;&lt;/typename&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&amp;lt;typename T&amp;gt;&lt;/span&gt; &lt;span style=";font-family:&amp;quot;;" &gt;std::string to_string(T const &amp;amp; object) {&lt;br /&gt;    return object.to_string();&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt; is used to allow the to_string function to be called on all objects that have a to_string() member function. &lt;/li&gt;&lt;li&gt;Template specializations are created to handle certain datatypes in a special manner (or in technospeak - to provide a custom instantiation of generic code)&lt;br /&gt;So, code like:&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;" &gt;template&amp;lt;&amp;gt;&lt;/span&gt; &lt;span style=";font-family:&amp;quot;;" &gt;std::string to_string&amp;lt;int&amp;gt;(int I) {&lt;/span&gt; &lt;span style=";font-family:&amp;quot;;" &gt;    std::ostringstream o;&lt;/span&gt; &lt;span style=";font-family:&amp;quot;;" &gt;    o &amp;lt;&amp;lt; I;&lt;/span&gt; &lt;span style=";font-family:&amp;quot;;" &gt;    return o.str();&lt;/span&gt; &lt;span style=";font-family:&amp;quot;;" &gt;}&lt;/span&gt; ensures that calls to &lt;span style=";font-family:&amp;quot;;" &gt;to_string&lt;/span&gt; that take an int for a parameter will use the second definition of &lt;span style=";font-family:&amp;quot;;" &gt;to_string&lt;/span&gt; and not the more generic first definition. This allows us to provide a string representation of an int even though it does not have a member function named to_string. Thus, the body of a templated piece of code can be changed completely from its generic counterpart in a template specialization.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The compiler always chooses the most specialized definition of a function. This is somewhat akin to function overloading. So, given a choice between &lt;span style=";font-family:&amp;quot;;" &gt;to_string&amp;lt;t&amp;gt;&lt;/span&gt; and &lt;span style=";font-family:&amp;quot;;" &gt;to_string&amp;lt;int&amp;gt;&lt;/span&gt;, it will always choose &lt;span style=";font-family:&amp;quot;;" &gt;to_string&amp;lt;int&amp;gt;&lt;/span&gt; for an integer parameter.&lt;/li&gt;&lt;/ol&gt;Well, how does all this help?&lt;br /&gt;It allows us to do a compile time recursion and that's what I'm going to show you.&lt;br /&gt;&lt;br /&gt;Look at this piece of code:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;template&amp;lt;int N&amp;gt;&lt;br /&gt;struct factorial {&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;   static const long value = N*factorial&amp;lt;N-1&amp;gt;::value;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;};&lt;/div&gt;&lt;br /&gt;Doesn't that look dandy! Its that same old factorial function again! So, what's new? Firstly, notice that instead of templating the structure via a typename, we have chosen to template it over a compile time constant. So, creating an object of this structure will require code such as:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;factorial&amp;lt;5&amp;gt; five_factorial;&lt;/div&gt;But why would you want an empty object? Remember: static structure and class variables do not occupy any space in objects and &lt;span style=";font-family:&amp;quot;;" &gt;factorial&amp;lt;N&amp;gt;&lt;/span&gt; has only static members. So, what's the use of the static member?&lt;br /&gt;The static member allows us to directly access values that are calculated at compile time. In essence, you can think of it as the return value of the computation. Before we move further into the analysis, let me answer a couple of questions that can arise:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Where's the computation taking place? &lt;/li&gt;&lt;ul&gt;&lt;li&gt;It is taking place at compile time when the template is initialized/instantiated and its being done by the compiler while the templated code is being compiled. Effectively, the compiling process is the runtime for template metaprogramming.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Where's the recursion in the code? &lt;/li&gt;&lt;ul&gt;&lt;li&gt;The instantiation of factorial&amp;lt;N&amp;gt; requires the value of factorial&amp;lt;n-1&amp;gt;::value which is of-course a static member in factorial&amp;lt;N-1&amp;gt;. So, this template is also instatiated and the recursion takes place.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;Sharp programmers might have noticed that there is no base case in this piece of code: You're right!&lt;br /&gt;So, here's the base case:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;template&amp;lt;&amp;gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;struct factorial&amp;lt;0&amp;gt; {&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;    static const long value = 1; &lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;};&lt;/div&gt;&lt;br /&gt;So, when the compiler tries to instantiate &lt;span style=";font-family:&amp;quot;;" &gt;factorial&amp;lt;1&amp;gt;&lt;/span&gt; and comes across &lt;span style=";font-family:&amp;quot;;" &gt;factorial&amp;lt;0&amp;gt;::value&lt;/span&gt;, it will choose this base case and terminate the recursion. Once all the constants have been determined, they are multiplied by the compiler and the result is stored in the resulting executable. So, the value of 5! can be used at runtime without any computation of any sort, all it requires of you is to substitute &lt;span style=";font-family:&amp;quot;;" &gt;factorial&amp;lt;5&amp;gt;::value&lt;/span&gt; wherever you need it.&lt;br /&gt;&lt;br /&gt;A side-effect of this evaluation is that all lower factorial structures are also instantiated. Thus, when you instantiate &lt;span style=";font-family:&amp;quot;;" &gt;factorial&amp;lt;5&amp;gt;&lt;/span&gt;, you get for free the values of &lt;span style=";font-family:&amp;quot;;" &gt;factorial&amp;lt;4&amp;gt;&lt;/span&gt;, &lt;span style=";font-family:&amp;quot;;" &gt;factorial&amp;lt;3&amp;gt;&lt;/span&gt; etc. Also, use of &lt;span style=";font-family:&amp;quot;;" &gt;factorial&amp;lt;4&amp;gt; &lt;/span&gt;later in the program will not cause additional template instantiations because C++ compilers follow a single template instantiation rule: viz. no template will be instantiated more than once. This allows for a very important optimization: memoization that's right memoization and not memorization (though the two are pretty similar). You can have a look at the Wikipedia entry on memoization for info, but for the impatient, it allows you to code a fibonacci number generator like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;template&amp;lt;int N&amp;gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;struct fibonacci_term {&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;    static const int value = fibonacci_term&amp;lt;n-1&amp;gt;::value + fibonacci_term&amp;lt;n-2&amp;gt;::value;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;};&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;template&amp;lt;&amp;gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;struct fibonacci_term&amp;lt;1&amp;gt; {&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;   static const int value = 1;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;};&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;template&amp;lt;&amp;gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;struct fibonacci_term&amp;lt;0&amp;gt; {&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;    static const int value = 0;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;};&lt;/div&gt;&lt;br /&gt;If you had coded an analogous recursive function for evaluation at runtime, you should have been spanked by your computer science/engineering professors because that's the worst way to evaluate the fibonacci series as it has a time complexity of O(2^n) which is exponential in the size of the problem. However, because of the one template instantiation rule, its perfectly alright to do this at compile time. While evaluating &lt;span style=";font-family:&amp;quot;;" &gt;fibonacci_term&lt;n-1&gt;::value&lt;/n-1&gt;&lt;/span&gt; , the compiler has already instantiated &lt;span style=";font-family:&amp;quot;;" &gt;fibonacci_term&lt;n-2&gt;&lt;/n-2&gt;&lt;/span&gt; and that instantiation is simply looked up from a table, thus saving computation time and making the compile time program linear in time and space complexity. &lt;br /&gt;&lt;br /&gt;Meta-programming is not just about compile time computations and tricks like this. Its far greater application lies in the capability of manipulation of the C++ type system. Most metaprogramming techniques are applied to make libraries hide their implementations better and allow you to write simpler, cleaner code without reams of types in angle brackets.&lt;br /&gt;&lt;br /&gt;Type manipulation tricks are best left to another blog entry. For now, you can check out:&lt;br /&gt;[1] C++ Template Metaprogramming - Concepts, Tools and Techniques from Boost and beyond&lt;br /&gt;    This is a book by the authors of the &lt;a href="http://www.boost.org/doc/libs/1_35_0/libs/mpl/doc/index.html"&gt;Boost.MPL&lt;/a&gt; (the Boost Meta-Programming Library). The MPL has loads of tools to make metaprogramming easier as well as hacks to work around the deficiencies in various C++ compilers.&lt;br /&gt;[2] &lt;a href="http://www.boost.org/doc/libs/1_35_0/libs/type_traits/doc/html/index.html"&gt;The Boost TypeTraits library&lt;/a&gt; - This library makes type manipulation a breeze, thanks to the consistent interface and excellent documentation.&lt;br /&gt;&lt;br /&gt;Hope you liked it. Comments always welcome.&lt;br /&gt;&lt;br /&gt;The files for the examples are listed below. All of them have been compiled and tested using the Visual C++ 2005 compiler and should work with most other compilers. In case you have troubles, let me know.&lt;br /&gt;[1] &lt;a href="http://divye-kapoor.drkapoorsclinic.com/files/metaprogramming/factorial.cpp"&gt;factorial.cpp&lt;/a&gt;&lt;br /&gt;[2] &lt;a href="http://divye-kapoor.drkapoorsclinic.com/files/metaprogramming/fibonacci.cpp"&gt;fibonacci.cpp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The commplete source code including makefiles can be found &lt;a href="http://divye-kapoor.drkapoorsclinic.com/files/metaprogramming/metaprogramming.zip"&gt;here&lt;/a&gt;. A Jamfile is included for those who use Bjam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-1701090198348169697?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/07/walking-through-your-first-template.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-2576123677399393418</guid><pubDate>Sun, 13 Jul 2008 20:45:00 +0000</pubDate><atom:updated>2008-07-14T02:20:52.099+05:30</atom:updated><title>I'm Back</title><description>Hey all,&lt;br /&gt;  Its been ages since I last posted on this blog and its been rather sometime since this blog had been taken off the internet. However, I'm back on the internet after being *really* busy at college and the blog is back online.&lt;br /&gt;   Well, in the time my blog was offline, I was completing my second year at college and in the summer vacations was developing a website for my &lt;a href="http://www.drkapoorsclinic.com/drakapoor.html"&gt;dad&lt;/a&gt; and &lt;a href="http://www.drkapoorsclinic.com/drjkapoor.html"&gt;mom's&lt;/a&gt; &lt;a href="http://www.drkapoorsclinic.com"&gt;Ultrasound clinic&lt;/a&gt;. You can see the final result at their home page: &lt;a href="http://www.drkapoorsclinic.com"&gt;http://www.drkapoorsclinic.com&lt;/a&gt; .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-2576123677399393418?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2008/07/im-back.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-8648150927368463684</guid><pubDate>Sat, 25 Aug 2007 15:25:00 +0000</pubDate><atom:updated>2007-08-25T23:20:53.046+05:30</atom:updated><title>Mac v/s Vista</title><description>With Apple now shifting to the Intel platform - the Mac has become another shark hungry for the market share being doled out by the beleaguered Microsoft Vista.&lt;br /&gt;To quote from the Apple web site:&lt;blockquote&gt;Why upgrade to Vista when you can upgrade to Mac? Especially when you can move all your stuff from an old PC to a shiny new Mac in less time than it takes to add the memory, hard disk space, and graphics card you’ll probably need to install Vista. Here are three easy ways to make your move.&lt;/blockquote&gt;That's a pretty strong statement coming from the Apple stable and yet another indication of the poor feedback offered by Vista users. Personally, I feel Vista is still just as secure as Windows XP from the user's point of view but more secure from the programmers viewpoint. The whole crux of the matter being that Microsoft forgot its end users while trying to implement new revolutionary (read: proprietary) technology for its programmers. With the .NET platform still stuck onto Windows due to the poor help offered by M$ in porting it to linux (for obvious reasons), Microsoft's credibility with the Open Source guys is going to the dogs - so much so that they have started an online campaign at &lt;a href="http://badvista.fsf.org/blog"&gt;http://badvista.fsf.org/blog&lt;/a&gt;. This is hot on the heels of Microsoft signing pacts with LG and Xandros that state that M$ will not prosecute them for any (perceived) patent violations for a period of 5 years,  a deal that is similar to the one signed with Novell last year. IMHO, this is yet another tactic to prevent linux adoption by implicitly spreading false and misleading information (also called &lt;a href="http://en.wikipedia.org/wiki/Fear%2C_uncertainty_and_doubt"&gt;FUD&lt;/a&gt;) about linux. Have a look at &lt;a href="http://www.eweek.com/article2/0,1759,2140955,00.asp"&gt;http://www.eweek.com/article2/0,1759,2140955,00.asp&lt;/a&gt; for more info.&lt;br /&gt;&lt;br /&gt;On a side note, its quite likely that Google is funding a hush-hush compilation of a linux distro to gain a foothold in the desktop space so more fireworks are likely soon. As it is, Google's new Google Desktop provides a sidebar for Win XP users, a combination with a good theming engine will give users lesser and lesser reason to upgrade to Windows Vista.&lt;br /&gt;&lt;br /&gt;For people interested in more technologies (muck?) coming from the Microsoft stables, have a look at the Visual Studio 2008 (Orcas) beta 2 and Windows Server 2008 beta available for free download from &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://www.microsoft.com/windowsserver2008/audsel.mspx"&gt;here&lt;/a&gt; respectively and decide for yourself. However, don't forget to check the minimum system requirements, most likely, your PC is obsolete for these "revolutionary" technologies. (And I thought the most basic function of an OS was interfacing between the user and the hardware at minimum resource cost. Guess I was wrong... ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-8648150927368463684?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2007/08/mac-vs-vista.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-8901255547036769169</guid><pubDate>Sat, 25 Aug 2007 14:20:00 +0000</pubDate><atom:updated>2007-08-25T20:11:43.486+05:30</atom:updated><title>ऑनलाइन video editing</title><description>Planning to make those college videos into cherished masterpieces? Have a look at the great online tools for editing video. Check out &lt;a href="http://www.readwriteweb.com/archives/video_editing_20_8_ways_to_remix_videos.php"&gt;this site&lt;/a&gt;. Give me a feedback on how you liked these tools.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-8901255547036769169?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2007/08/video-editing.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-225951114975338594</guid><pubDate>Fri, 13 Jul 2007 17:43:00 +0000</pubDate><atom:updated>2007-07-13T23:59:33.092+05:30</atom:updated><title>AJAX और हिंदी</title><description>हाँ! अब आप हिंदी में भी भी ब्लोग कर सकते हैं। गूगल में तो कुछ अलग ही बात है। इतनी आसानी से मैंने कभी हिंदी नही लिक्खी थी। चलो, इसी बहाने मेरी हिंदी कुछ और शुद्ध हो जायेगी।&lt;br /&gt;इस लेख का मुख्य उद्देश्य है आपको AJAX नामक टेक्नोलॉजी (इसे हिंदी में क्या कहते हैं?) के एक अंग से  परिचित करवाना। AJAX का पूर्ण नाम है Asynchronous Javascript and XML और इसी के मध्यम से मैं अभी इन्टरनेट के द्वारा ब्लॉगर के इस सुन्दर यन्त्र का फूलपूर्वक इस्तमाल कर रह हूँ।&lt;br /&gt;दरसल  AJAX द्वारा हम  Desktop जैसी look aur feel web applications को दे सकते हैं। पर आज के लिए बस इतना ही। अगले लेख में मैं इस &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/34173777-225951114975338594?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2007/07/blog-post.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-34173777.post-6648494254563608146</guid><pubDate>Thu, 12 Jul 2007 08:30:00 +0000</pubDate><atom:updated>2007-07-12T14:34:52.596+05:30</atom:updated><title></title><description>&lt;span style="font-size:130%;"&gt;Firefox in Firefox!&lt;/span&gt;&lt;br /&gt;Here's something of a "Do you know?" variety.&lt;br /&gt;One of the great things about Firefox is that its interface is highly modular and creating an extension or a plugin is as simple as editing xml files and writing Javascript code (things most web designers do on a daily basis).  Firefox renders its interface with the appropriate theme by evaluating an xml file. So effectively, Firefox renders itself by evaluating its own interface file and placing widgets as defined in it in a blank application window. Well, I just &lt;a href="http://developer.mozilla.org/en/docs/Building_an_Extension"&gt;came to know&lt;/a&gt; that it's possible to load Firefox within itself by asking it to evaluate its own interface using a&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt; chrome:// uri. Don't be surprised - just try typing &lt;a href="chrome://browser/content/browser.xul"&gt;chrome://browser/content/browser.xul&lt;/a&gt; in the address bar and see the results. The new interface is a fully functional Firefox!&lt;br /&gt;Now, for the more curious among you - the reason why this works is because the chrome:// uri is interpreted by the firefox engine as a reference to its chrome directory and the subsequent paths provided are used to navigate the inner tree structure. The xul file is interpreted as an interface and rendered as such, complete with all event handlers - giving you a complete browser within a browser. To see the innards of Firefox, open up the browser.jar in the chrome directory of your Firefox installation using any standard unzipping utility and look at content/browser/browser.js and content/browser/browser.xul to have a feel of how flexible my favourite browser actually is!&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34173777-6648494254563608146?l=divyekapoor.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://divyekapoor.blogspot.com/2007/07/firefox-in-firefox-heres-something-of.html</link><author>noreply@blogger.com (Divye)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item></channel></rss>