<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3007560041977372155</id><updated>2011-11-18T16:20:03.967+05:30</updated><category term='xbox 360'/><category term='UEFA 2008'/><category term='seting up XP from scrtach'/><category term='RROD'/><category term='browsers'/><category term='Ninja Gaiden2'/><category term='GOOG Chrome'/><title type='text'>Gaurav</title><subtitle type='html'>TECH, GAME, LIFE, POLITICS, Any thing in the universe, Wanna Talk Wanna Debate?</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-479580572660334664</id><published>2009-06-07T23:00:00.000+05:30</published><updated>2009-06-07T23:17:25.190+05:30</updated><title type='text'>Flexible End Points</title><content type='html'>&lt;p&gt;As far as i understood the whole concept of having ESOA/WOSA was to have the ability to define the endpoints seamlessly and flexibly to provide for varied connectivity and design options.&lt;/p&gt;  &lt;p&gt;Unfortunately the world found out theoretically this was good, but when IT projects and corporations started to implement the ideal way, they had to many hang-ups of the people who shipped ‘Predefined’ endpoints.&lt;/p&gt;  &lt;p&gt;These architectures make sense to have multiple endpoints for multiple usages and not single end points for multiple usage. Though the Business layer could/should mostly be single implementation but the end-point definitions should definitely never be the same.&lt;/p&gt;  &lt;p&gt;The notion of a single end-point is completely wrong from my point of view,and i strongly feel against shipping predefined end-points in enterprise apps, unless you have peripheral software using them.&lt;/p&gt;  &lt;p&gt;Why to ever spend the time and effort to deliver endpoints in a way that you “think”-&amp;gt; “Assume” should be defined? the whole problem why the ESOA theory was broken in real world is just that these is not easy way, unlike the .Net world to define usable endpoints.&lt;/p&gt;  &lt;p&gt;I believe large organizations are still trying to misuse SOA by restricting the SOA development, and instead they should focus on reducing the TCD (Total Cost of Development) on the customer side.&lt;/p&gt;  &lt;p&gt;I have seen to many products being innovated and failing in my short span of 4 years and i am still amazed that the hardliners still refuse to see the truth.&lt;/p&gt;  &lt;p&gt;Bottom line: there should be no restrictions on End point definitions and no interlinking of Business to end point definition.&lt;/p&gt;  &lt;p&gt;Until this is fixed by the bigger corporations, the customers to adapt to their needs will continue to opt in for cheaper, alternatives of custom developments, and soon the smaller enterprises will over through the tight sales grip of the bigger corporations.&lt;/p&gt;  &lt;p&gt;The answer should be simple having 3 basic business layers:&lt;/p&gt;  &lt;p&gt;1. Customer/Product Specific End point definition (REST/SOAP/XML)&lt;/p&gt;  &lt;p&gt;2. Customer / Product specific, coding and customization options&lt;/p&gt;  &lt;p&gt;3. Standard Business Logic/Intelligence.&lt;/p&gt;  &lt;p&gt;I really do not see the need to design any visual modlling tools or any of this, writing code is anyways the eases and the unavoidable choice.&lt;/p&gt;  &lt;p&gt;currently this is how i feel, i see this as a simple approach rather than a bigger more “imaginative approach” which companies are taking nowadays and just not helping on the final result of&lt;/p&gt;  &lt;p&gt;1. Low TCD&lt;/p&gt;  &lt;p&gt;2. Low TCO&lt;/p&gt;  &lt;p&gt;3. High ROI&lt;/p&gt;  &lt;p&gt;What should be provided for low TCD is good Caching frameworks/ good Business objects layer, and standard flexibility to achieve Reliable and state full messaging.&lt;/p&gt;  &lt;p&gt;Where do Automated code generation and visual modeling fit in then?&lt;/p&gt;  &lt;p&gt;It its in the business layer, where you will model the, business process because that is the only complex part of the entire application.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-479580572660334664?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/479580572660334664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=479580572660334664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/479580572660334664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/479580572660334664'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2009/06/flexible-end-points.html' title='Flexible End Points'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-8018692613026051877</id><published>2008-10-12T01:17:00.002+05:30</published><updated>2008-10-12T13:48:40.482+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='xbox 360'/><category scheme='http://www.blogger.com/atom/ns#' term='RROD'/><title type='text'>RROD on XBOX 360 and fixed it ?</title><content type='html'>&lt;p&gt;So, day before yesterday I got the Red Ring Of Death on my 360, I have already got it replaced once earlier and since the box was purchased in Singapore, the only way for me to get replacement is either to go to Singapore  and physically get it replaced or, Bear one way shipping charges to Australia to get it repaired, and both the options not being actually feasible, So finally I feel MSFT actually forced me to buy some crap piece and cheated me out of my money!&lt;/p&gt;&lt;p&gt;There are no Official Microsoft Service Centers in India, and they do not replace it, if i have not bought it here! damn wouldn't a global warranty help?&lt;/p&gt;&lt;p&gt;Then i started to think, if I can't fix it my self now I lose my money and will not buy the XBOX again for sure.&lt;/p&gt;&lt;p&gt;Then, I let my inner self take control and got my screw driver kit out and opened up the box, cleaned up a bit of dust and let it cool down.&lt;/p&gt;&lt;p&gt;Hooked it on without the hard disk all worked fine, and then, plugged in the HDD immediately RROD,&lt;/p&gt;&lt;p&gt;Had my head in my hands and suddenly my wife who was scouring over the net for a easy solution, Found this &lt;a href="http://www.lunabean.com/news/20070516_interesting_cure_for_the_xbox.php" target="_blank"&gt;guy's article&lt;/a&gt; and his seemingly stupid video - &lt;/p&gt;&lt;p&gt;&lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:3bf7d2d7-9405-47f0-8641-c660f247e5a1" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cCHZqZDTp6Y&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/cCHZqZDTp6Y&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I told my wife not to be stupid and continued on my efforts, with out yielding any results always add the HDD and the RROD is back.&lt;/p&gt;&lt;p&gt;Then I let her Try, she did and it worked fine ! and now I am left thinking what can a little Heat fix? &lt;/p&gt;&lt;p&gt;&lt;a href="http://twitpic.com/fg04" title="Xbox revival after ROR on TwitPic"&gt;&lt;img src="http://twitpic.com/show/thumb/fg04.jpg" width="150" height="150" alt="Xbox revival after ROR on TwitPic"&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;What was broken, and should i buy any new XBOX games ! had it running for 6 hrs after that playing Devil May cry, Ninja Gaiden , Marvel Ultimate alliance etc, and worked great! so keeping my fingers crossed ! but shit I feel I have a sword hanging over my head! I hate Microsoft for doing this to me!, I figure if the console really die I will buy a PSP.&lt;/p&gt;&lt;p&gt;In the mean time SPORE is now available in stores for on 199 bucks! So maybe I go back to my laptop, but i guess I will install UBUNTU, just  in case Vista dies as well!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-8018692613026051877?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/8018692613026051877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=8018692613026051877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/8018692613026051877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/8018692613026051877'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/10/rrod-on-xbox-360-and-fixed-it.html' title='RROD on XBOX 360 and fixed it ?'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-6947640576983581077</id><published>2008-10-07T00:55:00.001+05:30</published><updated>2008-10-07T00:55:23.395+05:30</updated><title type='text'>Some Ideas - 2</title><content type='html'>&lt;p&gt;Ok the next Idea is, thought I will write it down anyways and people could kinda use it, is provide effective service via Twitter, for example I am facing a problem with Twirl, and i just write to @twirl you are giving me problem - so and so, they should be able to come back with a solution, this would be hotter than a stupid call center.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-6947640576983581077?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/6947640576983581077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=6947640576983581077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/6947640576983581077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/6947640576983581077'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/10/some-ideas-2.html' title='Some Ideas - 2'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-6149293341974159691</id><published>2008-10-02T00:03:00.001+05:30</published><updated>2008-10-02T00:03:49.609+05:30</updated><title type='text'>Some Ideas</title><content type='html'>&lt;p&gt;Recently I have been thinking, at least once again after 4 years, of continuous work i am at a stage where I am thinking and not about work but what would make me happy.&lt;/p&gt; &lt;p&gt;So i got these Ideas -&lt;/p&gt; &lt;p&gt;1. Now a days, we are used to two things - Tagging, and search. I have never used, remembered any location, or organized any file/e-mail since desktop search came in. &lt;/p&gt; &lt;p&gt;Why? - cause it is simpler easier rather than keeping use less information in my head where i need more ram for processing space.&lt;/p&gt; &lt;p&gt;I have never sorted any e-mail, sine i have installed windows desktop search, and at home never sorted any file, since i got Google desktop.&lt;/p&gt; &lt;p&gt;So what do i want now -&lt;/p&gt; &lt;p&gt;I want to be able to read, see a file and TAG/Categorize it and just leave it at that.&lt;/p&gt; &lt;p&gt;After that when i launch the explorer, instead of folders I should see the categories, and files in those categories, instead of knowing the location of the files.&lt;/p&gt; &lt;p&gt;So the files can be every where, any where, on the web or the desktop, and one file in multiple categories and i think that is the openly way life would be simpler, further&lt;/p&gt; &lt;p&gt;I want to code it so that it also has integration with bookmark-ing services like Del-icio.us, etc so that i see them also and can go to a web page directly, just as if it was a normal file.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I am planning to write such an explorer, but once again dunno where to start, hope i really do this application and do not end like my previous projects where after writing about a 1/3rd of the application i found it on the net ! :)&lt;/p&gt; &lt;p&gt;What do you think of such an idea, I think i should get it patented :)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;So this is my idea number one which i will start to write let's see what happens :)&lt;/p&gt; &lt;p&gt;Later for my other ideas.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-6149293341974159691?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/6149293341974159691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=6149293341974159691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/6149293341974159691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/6149293341974159691'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/10/some-ideas.html' title='Some Ideas'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-868755405125365546</id><published>2008-09-03T22:41:00.003+05:30</published><updated>2008-09-03T23:08:01.130+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><category scheme='http://www.blogger.com/atom/ns#' term='GOOG Chrome'/><title type='text'>A new Browser but not new enough</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;  &lt;p&gt;So Okay, I expect there to be millions of blogs already as there are already millions of Tweets on the new Over Grown Kid in the fray - Google's latest offering - &lt;a target="_blank" href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt;.&lt;/p&gt;  &lt;p style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;A browser intended for Geek's? &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Definitely not, if it was it would already support all of FireFox's Plugin.&lt;/p&gt;  &lt;p&gt;At-least have something more than Gears - like integrated UI themes for Google's offerings, &lt;a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/6076"&gt;Better GMAIL 2&lt;/a&gt; for example is great with FFX why not something of the shelve with Chrome?&lt;/p&gt;  &lt;p&gt;So what is better in Chrome rather than the king browser IE 8 beta 2 or the prince waiting to take the throne - Fire fox?&lt;/p&gt;  &lt;p&gt;Nothing but Hype ! each tab is rendered in different process they say so memory management is better, well - good but hear me again without the add-ins in FFX 3 it is not relevant. I can still restart my browser.&lt;/p&gt;  &lt;p&gt;So although the Chrome does take lesser memory, but i can afford for FFX to take more.&lt;/p&gt;  &lt;p&gt;Google's - bread and butter is  Ad's so i think i will not see an ad-blocker for Chrome anytime soon as they might start pushing ads some other way.&lt;/p&gt;  &lt;p&gt;There are already al lot of blogs out there, about chrome, so i am just going to write my opinion.&lt;/p&gt;  &lt;p&gt;Web applications is ok, but what we need is capability to run them faster, Gears for example does not rend the rendering faster, it seems use less to me because. if i use it in reader for example, all the JavaScript all with all the data which i am viewing is downloaded and cached, why not just the rendering JavaScript? why do i have to go online to fetch new RSS content?&lt;/p&gt;  &lt;p&gt;With Chrome one would expect that the rendering is done on the client always with only layout updates being downloaded, but noooo......, first download the JavaScript and then render it? how is it any faster?&lt;/p&gt;  &lt;p&gt;Ok so Chrome has a custom built JavaScript VM and so? what do i gain? probably a little better Memory management.&lt;/p&gt;  &lt;p&gt;Now if some rendering was improved that would make a geek's head turn.&lt;/p&gt;  &lt;p&gt;If you look at the &lt;a target="_blank" href="http://www.google.com/googlebooks/chrome/"&gt;Chrome Comic&lt;/a&gt; they say, JavaScript has a problem that it is synchronous, so we start a new process? well one way you said we want to redefine the web 2.0 applications and then you do a work around by creating newer processes? and that to if we are using Google products then there is no new process, but the same one is used , hmmm I dunno why!.&lt;/p&gt;  &lt;p&gt;For better Web 2.0 I would just use Silver Light!&lt;/p&gt;  &lt;p&gt;Chrome has , as it already claims , best features of existing browsers,some of the visible ones -&lt;/p&gt;  &lt;p&gt;1. speed dial of Opera,&lt;/p&gt;  &lt;p&gt;2. Incognito mode from IE 8,&lt;/p&gt;  &lt;p&gt;3. Fire fox? Nothing - why not let me think,,Google currently supports it  till some time in 2011?&lt;/p&gt;  &lt;p&gt;IT says this is an open source project? isn't fire fox the same for goggle?&lt;/p&gt;  &lt;p&gt;The way I see it this browser is touted to be the FireFox killer rather than the IE (!E 6 still has some 65% market share :) )killer, if only if , the way I see it they allow "most" of the existing FFX pluggins to be natively portable to Chrome, And i expect that to be a next Wise move.&lt;/p&gt;  &lt;p&gt;So basically Chrome does not stand the fact that it is targeted for geek's and nerds, it seems as a marketing gimmick to me to leach and find out what is today's innovative generation. entrepreneurs up-to, browsing reading and then use that info.&lt;/p&gt;  &lt;p style="font-weight: bold;"&gt;&lt;span style="font-size:180%;"&gt;Okay so is Google chrome for your Average User -&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;No! damn those guys (me included) "DO NOT CARE" what is happening under the hood.&lt;/p&gt;  &lt;p&gt;We are used to having a different search box, a different menu bar, a "RSS reader" (lol chrome either has this broken or it does not have it) .&lt;/p&gt;  &lt;p&gt;Well the sites i visited some of them 5% of them did not work with Chrome! so what does Chrome Expect? Website creators to start caring and writing special code for Chrome as well, Give me a break!&lt;/p&gt;  &lt;p&gt;What i believe Google could have done better by cleaning the engine inside FFX3 and gone ahead with it's creativity rather than giving me another Browser. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;For me Until I get all the Plug-ins that I use in FFX i will not use Chrome, and even if all the pluggins come in, then I would want faster rendering for at-least the Google pages and products.&lt;/p&gt;  &lt;p&gt;right now I am experiencing trouble using Chrome, no spell checker, web-site navigation breaks most of the time, the laptop touch pad is able to scroll down but not able to scroll back up!&lt;/p&gt;  &lt;p&gt;And damn - they don't want me to report bugs! at least i would have expected a dialog box through some about dialog where i could write to them the pain i faced.&lt;/p&gt;  &lt;p&gt;Anyway's now is not the time for me to abandon FFX, but will wait and watch how chrome grows up to be.&lt;/p&gt;  &lt;p&gt;Right now i will bid adieu to chrome- because this is what I fel Google is trying to snoop around like Yahoo! started to do, snoop tooo much, now we need some one to replace Google.&lt;/p&gt;&lt;p&gt;I know I use all of googles service for free, and hence I have no right to complain, well, maybe somethings need to change.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-868755405125365546?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/868755405125365546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=868755405125365546' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/868755405125365546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/868755405125365546'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/09/new-browser-but-not-new-enough.html' title='A new Browser but not new enough'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-6378553508644698875</id><published>2008-07-31T10:33:00.001+05:30</published><updated>2008-07-31T10:33:21.619+05:30</updated><title type='text'>My tryst with WCF- page 1</title><content type='html'>&lt;p&gt;Started by typing in Google- "introduction to WCF" and "Learning WCF", was immediately asked to buy books and I said fuck Google.&lt;/p&gt; &lt;p&gt;Then I thought what the hell and wrote down Learning "wcf in c# vs2008" and thankfully msdn site link came up, no idea why the "Sites:" tag in Google search does not work any more for me especially i have noticed a decrease in the first page of MSN links popping up, my preferred search engine is changing i think i better change the engine it self.&lt;/p&gt; &lt;p&gt;Any ways found a couple of stupid weblogs and then i thought I should right one in a way I understand and decided to copy it from msdn.&lt;/p&gt; &lt;p&gt;So this is my personal notebook on my tryst with WCF, like I used to take notes in college when i think i learnt a lot and now I try to do so again, using the web as my note book, and also like in college we had friends helping learn each other I hope my friends in the Cloud will help me learn as well.&lt;/p&gt; &lt;p&gt;first handy link to msdn-&amp;gt;&lt;a title="http://msdn.microsoft.com/en-us/library/aa480190.aspx" href="http://msdn.microsoft.com/en-us/library/aa480190.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa480190.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;my initial understanding on WCF- &lt;/p&gt; &lt;p&gt;1. WCF is a cool standard by Microsoft (now on referred to as MSFT), to do away with so many standards that they previously brought in and just work with one standard that works in any scenario/hosting.&lt;/p&gt; &lt;p&gt;Good so whom did you hire to come up with this idea MSFT?&lt;/p&gt; &lt;p&gt;2. the WCF service spec is similar to a WSDL spec namely there has to be an address, a Binding (portType) , maybe this can be optional is i do not want to used typed proxies?, and finally the Contract or in the case of WCF simply and logically put the Interface.&lt;/p&gt; &lt;p&gt;3. WCF is defined in System.ServiceModel.*&lt;/p&gt; &lt;p&gt;4. Quoted from MSDN so that I remember for interviews ;)- &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;"ABC" means that writing (and configuring) a WCF service is always a three-step process: &lt;/p&gt; &lt;ul&gt; &lt;li&gt;You define a contract and implement it on a service  &lt;li&gt;You choose or define a service binding that selects a transport along with quality of service, security and other options  &lt;li&gt;You deploy an endpoint for the contract by binding it (using the binding definition, hence the name) to a network address.  &lt;li&gt;All the above 3 points are independent of each other!&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;p&gt;5. we have the ability to create a WCF contract from an existing WSDL using the Svcutil.exe -- this is an option I will not concentrate on for now.&lt;/p&gt; &lt;p&gt;6. Similar to writing a webservice we write a WCF service - the interface is decorated with the [ServiceContract] and all the web methods in a Webservice as [OperationContract] before the method name.&lt;/p&gt; &lt;p&gt;7. instead of directly creating serializable classes we use "XML Format-able classes" which are very easy to hand code, these classes can be referred to as Data Contracts. Advantage is These should be faster to use than the XML Serializable classes and further we get version-ing&amp;nbsp; support and basically the it is easier faster and simpler to create such data contracts.&lt;/p&gt; &lt;p&gt;The class is decorated with the [DataContract]&amp;nbsp; and the individual properties as [DataMember]. &lt;/p&gt; &lt;p&gt;The good thing about WCF is that it is almost like ESB/EJB 3.0 where we use POJO to create SOA artifacts similarly here we use plain C# classes in my case to achieve SOA.&lt;/p&gt; &lt;p&gt;ok now i try to do this stuff, &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Open VS2008  &lt;li&gt;File-&amp;gt; New Project -&amp;gt; and select WCF service library (this was the only project i figured out would work for me right now)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/gjain81/SJFHg5cttWI/AAAAAAAAANs/uB4c9DVFZdM/Wiki00081.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="170" alt="Wiki-0008" src="http://lh5.ggpht.com/gjain81/SJFHh8CEwZI/AAAAAAAAANw/CPRudNGC-gE/Wiki0008_thumb.png" width="240" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;and Voila VS generates for me an excellent example.( I love the Modern IDE's as I am from a background of writing code and descriptors in a notepad and then zipping stuff together and putting the files in a directory to deploy, man nowadays everything is right click and done !).  &lt;li&gt;So I have a solution with an APP.config, the sample contract IService1.cs and the implementation of the contract in Service1.cs&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/gjain81/SJFHkK4b7qI/AAAAAAAAAN0/_PQAC9gxhYc/Wiki00101.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="240" alt="Wiki-0010" src="http://lh6.ggpht.com/gjain81/SJFHl3zpC7I/AAAAAAAAAN4/3TzZeu9Fuyk/Wiki0010_thumb.png" width="198" border="0"&gt;&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;the Service Contract and the Data Contract example code is great now i need to add some sample code so I add my operation which will take in a name and append Hello to it.  &lt;li&gt;code of the IService1.cs interface -&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System;&lt;br&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;System.Collections.Generic;&lt;br&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;System.Linq;&lt;br&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;System.Runtime.Serialization;&lt;br&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;System.ServiceModel;&lt;br&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt;System.Text;&lt;br&gt;&lt;br&gt;&lt;span style="color: blue"&gt;namespace&lt;/span&gt;WcfServiceLibraryHelloWorld&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green"&gt;// NOTE: If you change the interface name "IService1" here, you must also update the reference to "IService1" in App.config.&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;ServiceContract&lt;/span&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public interface &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IService1&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: #2b91af"&gt;OperationContract&lt;/span&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;string &lt;/span&gt;GetData(&lt;span style="color: blue"&gt;int &lt;/span&gt;value);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: #2b91af"&gt;OperationContract&lt;/span&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;CompositeType &lt;/span&gt;GetDataUsingDataContract(&lt;span style="color: #2b91af"&gt;CompositeType &lt;/span&gt;composite);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green"&gt;// TODO: Add your service operations here&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Done :- adde my one operation here&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;OperationContract&lt;/span&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;String &lt;/span&gt;HelloToYou(&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;name);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green"&gt;// Use a data contract as illustrated in the sample below to add composite types to service operations&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;DataContract&lt;/span&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public class&lt;/span&gt;&lt;span style="color: #2b91af"&gt;CompositeType&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;bool &lt;/span&gt;boolValue = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;string&lt;/span&gt;stringValue = &lt;span style="color: #a31515"&gt;"Hello "&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: #2b91af"&gt;DataMember&lt;/span&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public bool &lt;/span&gt;BoolValue&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;get&lt;/span&gt;{ &lt;span style="color: blue"&gt;return&lt;/span&gt;boolValue; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;set&lt;/span&gt;{ boolValue = &lt;span style="color: blue"&gt;value&lt;/span&gt;; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: #2b91af"&gt;DataMember&lt;/span&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public string&lt;/span&gt;StringValue&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;get&lt;/span&gt;{ &lt;span style="color: blue"&gt;return&lt;/span&gt;stringValue; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;set&lt;/span&gt;{ stringValue = &lt;span style="color: blue"&gt;value&lt;/span&gt;; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I will try to use the other properties for a datamember such as &lt;b&gt;IsOptional&lt;/b&gt;, &lt;b&gt;MustUnderstand &lt;/b&gt;, &lt;b&gt;VersionAdded&lt;/b&gt;&amp;nbsp; later, once i have a server and a client in place.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Not to forget we can also specify the messageContract etc for advanced stuff, again right now that's not my moto, //TODO:- test it later&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Will continue my learning &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-6378553508644698875?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/6378553508644698875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=6378553508644698875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/6378553508644698875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/6378553508644698875'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/07/my-tryst-with-wcf-page-1.html' title='My tryst with WCF- page 1'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/gjain81/SJFHh8CEwZI/AAAAAAAAANw/CPRudNGC-gE/s72-c/Wiki0008_thumb.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-2037717214994942183</id><published>2008-07-04T22:57:00.000+05:30</published><updated>2008-07-04T22:58:22.259+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='seting up XP from scrtach'/><title type='text'>Essentials after a re-format</title><content type='html'>&lt;p&gt;So as it happened, we have an old Acer travel mate 4150, and my wife wants to give it to her younger brother.&lt;/p&gt;  &lt;p&gt;So as I used to be the smart ass in computer installs and configurations I told my wife I would do it.&lt;/p&gt;  &lt;p&gt;So since it has only 512 MB ram the choice was either Ubantu or Win XPSP2. Had to chose XP against my wish.&lt;/p&gt;  &lt;p&gt;So quickly picked up the Licensed CD and formatted the entire 60GB hard-disk to 2 partitions one for a page file (2GB) and the other for the windows.&lt;/p&gt;  &lt;p&gt;Immediately after the 45 minute install I installed the SP3 installation.&lt;/p&gt;  &lt;p&gt;Then what are the default software I should have without which I can not use the laptop?&lt;/p&gt;  &lt;p&gt;1. obviously the drivers as the default XP was not picking up the&amp;#160; WLAN :( so all the drivers.&lt;/p&gt;  &lt;p&gt;2. then came the updates - boy running Windows updates took 45 minutes again with my Internet connection ut WTF isn't IE 7 and WM11 already in SP3? and also why not the &amp;gt;Net runtimes WTF is MSFT doing.&lt;/p&gt;  &lt;p&gt;3. &lt;a href="http://www.filehippo.com/"&gt;FileHippo&lt;/a&gt; to get the latest versions of &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;a. &lt;a href="http://www.ccleaner.com/" target="_blank"&gt;CCleaner&lt;/a&gt; - a must tool to clean up the temporary files and keep windows lean and mean.This is a tool I let windows run every time windows shuts down.&lt;/p&gt;    &lt;p&gt;b. As soon as I opened the Web I felt Shit! where is FireFox so immediately download &lt;a href="http://en-us.www.mozilla.com/en-US/firefox/" target="_blank"&gt;FireFox&lt;/a&gt; from &lt;a href="http://www.filehippo.com/"&gt;FileHippo&lt;/a&gt; and whoa got some peace, other wise how will I manage the downloads? But since I got firefox I have to customize it first.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;I need &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1865" target="_blank"&gt;AdBlock&lt;/a&gt; Plus &lt;/li&gt;      &lt;li&gt;I need Flash Block &lt;/li&gt;      &lt;li&gt;I need TwitterFox &lt;/li&gt;      &lt;li&gt;I need Download Helper to download all those cool Flash videos from the sites who don't allow me to save them by default. &lt;/li&gt;      &lt;li&gt;I like PicLens so I need that as well :) &lt;/li&gt;      &lt;li&gt;And Finally Delicious Bookmarks add-on, why does firefox still have it's own Bookmarks any ways? &lt;/li&gt;      &lt;li&gt;Further I need plug ins&amp;#160; for all Adobe, real and quicktime crap. Why isn't all this available by default? maybe make the download fatter but these other proprietary ass-holes provide some lite versions of their software which does not ask for registration and stuff and also does not require, me to download 22 mb of software :( &lt;/li&gt;      &lt;li&gt;Well I guess one more Firefox theme and then I am done. &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;c. Okay already 2 hours past I need to install more software. Unzip utility - &lt;a href="http://www.filehippo.com/download_7-zip/" target="_blank"&gt;7.zip&lt;/a&gt; a cool free program again from filehippo (i really like this site)&lt;/p&gt;    &lt;p&gt;d. so next I need is an Antivirus program so this fucking red cross goes away and does not annoy me any more my default choice is &lt;a href="http://www.filehippo.com/download_antivir/" target="_blank"&gt;Avira&lt;/a&gt;, and run it to get the update anti virus files. this is one of the best anti virus software I have ever used and believe me from 1998 todate I have used almost ever anti virus software which makes the system pretty slow and this is the only antivirus which helped me remove a once very deadly virus which I have forgotten now :).&lt;/p&gt;    &lt;p&gt;Already windows updates is starting to react again! why the fuck did i not get all the updates in one shot!.&lt;/p&gt;    &lt;p&gt;e. so I need my messengers I still do not like any one software which integrates, (like Trillian) all of these so i use the individual messengers&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://www.filehippo.com/download_google_talk/" target="_blank"&gt;Google Talk,&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.filehippo.com/download_yahoo_messenger/" target="_blank"&gt;Yahoo messenger&lt;/a&gt;, &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.filehippo.com/download_msn_messenger/" target="_blank"&gt;Windows live messenger&lt;/a&gt; - though almost none of my friends are on this. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;well I will come back to file hippo later for &lt;a href="http://www.filehippo.com/download_utorrent/" target="_blank"&gt;uTorrent&lt;/a&gt;,&lt;a href="http://www.filehippo.com/download_klite_codec_pack/" target="_blank"&gt;K-Lite Codec Pack&lt;/a&gt;, and the CD burner - &lt;a href="http://www.filehippo.com/download_deepburner/" target="_blank"&gt;Deep burner&lt;/a&gt; etc. but right now &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;4. with that done comes the most important tool Office and I need MS Office 2007 - ultimate editionso I find out where is the Office DVD case and install it, there goes another hour. Damn!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5. already 5 hours just installing stuff, I forget I should have put in the time to be more exact :). what else do I need now? okay so since some one else is going to use this Pc and not me better put in &lt;a href="http://www.freedownloadmanager.org/" target="_blank"&gt;FDM- free download manager&lt;/a&gt; so that if the poor guy uses IE, then he has at least a good download helper, actually the best.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;well now it is all done and I need to just put in the CD burner software &lt;a href="http://www.filehippo.com/download_deepburner/" target="_blank"&gt;Deep burner&lt;/a&gt;&amp;#160; and test that the blue tooth works, and give it to my Wife so that she can approve my work :) because anyway's the laptop has to go to her brother.&lt;/p&gt;  &lt;p&gt;Finally that is done as well and got a bit criticism for the partitioning and then no Kiss! bad anyway's this is just to help me so I do not have to think about it in the future.&lt;/p&gt;  &lt;p&gt;It would help now that I should actually create an image For this PC so I do not have to do this re-install ever again, but makes no sense , whenever that happens again things and versions would have changed.&lt;/p&gt;  &lt;p&gt;Maybe there should be a service which would scan my software likes and usage and then when I run it on a different computer takes care of installing and configuring the same, that way I could customize and log-in or desktop to feel almost the same! I think File hippo could easily do so.&lt;/p&gt;  &lt;p&gt;BTW fucking Windows just found fucking 16 more updates WTBF!!!!!!!!!!!!!!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-2037717214994942183?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/2037717214994942183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=2037717214994942183' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/2037717214994942183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/2037717214994942183'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/07/essentials-after-re-format.html' title='Essentials after a re-format'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-167831381367841765</id><published>2008-07-03T09:10:00.001+05:30</published><updated>2008-07-28T13:01:53.799+05:30</updated><title type='text'>My code for your review and thoughts</title><content type='html'>&lt;p&gt;I wrote this class a year and a half back thinking to solve a problem which i faced in my project.&lt;/p&gt;  &lt;p&gt;The problem-&lt;/p&gt;  &lt;p&gt;there are multiple classes in the application none  of which I want to interact with I get a reference to.&lt;/p&gt;  &lt;p&gt;For example -&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/gjain81/SGxKEkIwycI/AAAAAAAAAMc/W9cVV9DybQc/s1600-h/image%5B8%5D.png"&gt;&lt;img style="border: 0px none ;" alt="image" src="http://lh5.ggpht.com/gjain81/SGxKFlCmFRI/AAAAAAAAAMg/rhmI-_660dM/image_thumb%5B4%5D.png?imgmax=800" border="0" height="206" width="240" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In this case I have no way to communicate between these objects, although these classes are doing actions on a Common object for a common object they are not aware of each other.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;So since the underlying object on which they are working upon is the same, in most of the cases there would be data which has been calculated by Class1 and can be reused in class2.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;There could be many alternate ways to handle this situation such as &lt;/p&gt;  &lt;p&gt;1. implement a singleton wrapper around each of these classes/Data objects which can be shared&lt;/p&gt;  &lt;p&gt;2. Implement events by declaring the shared data as properties so that we can use notify in to update the data.&lt;/p&gt;  &lt;p&gt;3. Ask the underlying object to provide me a reference to the instance of the other class(es) and then use the data directly from there.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Well all these approaches seemed very time consuming to implement and involved to much work and I thought of a simpler way out -&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; GJ.Test.DataAccessor &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;sealed&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Key : IDisposable&lt;span class="lnum"&gt;&lt;br /&gt;   8:  &lt;/span&gt;    { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; String windowId;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; String objectType; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Key(Int32 windowId, Type objectType)  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.windowId = windowId.ToString();  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.objectType = objectType.FullName;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Key(String guid, Type objectType)  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.windowId = guid;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.objectType = objectType.FullName; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        }  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; IDisposable Members &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; IDisposable.Dispose() &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;        { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.objectType = &lt;span class="kwrd"&gt;null&lt;/span&gt;; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;            GC.SuppressFinalize(&lt;span class="kwrd"&gt;this&lt;/span&gt;);  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;        } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;    } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;sealed&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DataAccessor : IDisposable &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;    { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; variables to make the &lt;span class="kwrd"&gt;class&lt;/span&gt; singleton  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;volatile&lt;/span&gt; DataAccessor instance;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt; syncRoot = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt;();  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; variables &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; SortedDictionary&amp;lt;String, SortedDictionary&amp;lt;String, Object&amp;gt;&amp;gt; dataStoreByWindowId =  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;            &lt;span class="kwrd"&gt;new&lt;/span&gt; SortedDictionary&amp;lt;String, SortedDictionary&amp;lt;String, &lt;span class="kwrd"&gt;object&lt;/span&gt;&amp;gt;&amp;gt;(); &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; Constructor  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;        &lt;span class="rem"&gt;//Constructor made private as per the singleton pattern&lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; DataAccessor() { }  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; Properties  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; DataAccessor Instance  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;        {  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;            get &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;            {  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (instance == &lt;span class="kwrd"&gt;null&lt;/span&gt;)  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  62:  &lt;/span&gt;                { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  63:  &lt;/span&gt;                    &lt;span class="rem"&gt;//locking to make it safe in multi threads&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  64:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;lock&lt;/span&gt; (syncRoot)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  65:  &lt;/span&gt;                    { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  66:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;if&lt;/span&gt; (instance == &lt;span class="kwrd"&gt;null&lt;/span&gt;)  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  67:  &lt;/span&gt;                        { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  68:  &lt;/span&gt;                            instance = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataAccessor(); &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  69:  &lt;/span&gt;                        } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  70:  &lt;/span&gt;                    } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  71:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  72:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  73:  &lt;/span&gt;                } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  74:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; instance; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  75:  &lt;/span&gt;            } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  76:  &lt;/span&gt;        } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  77:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  78:  &lt;/span&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt; &lt;br /&gt;&lt;span class="lnum"&gt;  79:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  80:  &lt;/span&gt;&lt;br /&gt;&lt;span class="lnum"&gt;  81:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Boolean setObj(Key key, Object obj) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  82:  &lt;/span&gt;        { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  83:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  84:  &lt;/span&gt;            &lt;span class="kwrd"&gt;lock&lt;/span&gt; (syncRoot) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  85:  &lt;/span&gt;            {  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  86:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.dataStoreByWindowId.ContainsKey(key.windowId)) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  87:  &lt;/span&gt;                { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  88:  &lt;/span&gt;                    SortedDictionary&amp;lt;String, Object&amp;gt; addNew;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  89:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.dataStoreByWindowId.TryGetValue(key.windowId, &lt;span class="kwrd"&gt;out&lt;/span&gt; addNew))  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  90:  &lt;/span&gt;                    { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  91:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;if&lt;/span&gt; (addNew.ContainsKey(key.objectType)) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  92:  &lt;/span&gt;                        { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  93:  &lt;/span&gt;                            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  94:  &lt;/span&gt;                        } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  95:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  96:  &lt;/span&gt;                        { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  97:  &lt;/span&gt;                            addNew.Add(key.objectType, obj); &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  98:  &lt;/span&gt;                            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  99:  &lt;/span&gt;                        }  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 100:  &lt;/span&gt;                    } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 101:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 102:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 103:  &lt;/span&gt;                } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 104:  &lt;/span&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 105:  &lt;/span&gt;                {  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 106:  &lt;/span&gt;                    SortedDictionary&amp;lt;String, Object&amp;gt; addNew = &lt;span class="kwrd"&gt;new&lt;/span&gt; SortedDictionary&amp;lt;String, &lt;span class="kwrd"&gt;object&lt;/span&gt;&amp;gt;();  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 107:  &lt;/span&gt;                    addNew.Add(key.objectType, obj);  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 108:  &lt;/span&gt;                    dataStoreByWindowId.Add(key.windowId, addNew);  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 109:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 110:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 111:  &lt;/span&gt;                } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 112:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 113:  &lt;/span&gt;            }&lt;br /&gt;&lt;span class="lnum"&gt;118:  &lt;/span&gt;          &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 119:  &lt;/span&gt;        } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 120:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 121:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Object getObj(Key key)  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 122:  &lt;/span&gt;        {&lt;span class="rem"&gt;//add lock after understanding implications of return from inside it.&lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 123:  &lt;/span&gt;            &lt;span class="kwrd"&gt;lock&lt;/span&gt; (syncRoot)  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 124:  &lt;/span&gt;            { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 125:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (dataStoreByWindowId.ContainsKey(key.windowId)) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 126:  &lt;/span&gt;                { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 127:  &lt;/span&gt;                    SortedDictionary&amp;lt;String, Object&amp;gt; dataStoreByObjectType;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 128:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (dataStoreByWindowId.TryGetValue(key.windowId, &lt;span class="kwrd"&gt;out&lt;/span&gt; dataStoreByObjectType)) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 129:  &lt;/span&gt;                    {  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 130:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;if&lt;/span&gt; (dataStoreByObjectType.ContainsKey(key.objectType)) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 131:  &lt;/span&gt;                        { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 132:  &lt;/span&gt;                            Object obj; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 133:  &lt;/span&gt;                            &lt;span class="kwrd"&gt;if&lt;/span&gt; (dataStoreByObjectType.TryGetValue(key.objectType, &lt;span class="kwrd"&gt;out&lt;/span&gt; obj)) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 134:  &lt;/span&gt;                            { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 135:  &lt;/span&gt;                                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 136:  &lt;/span&gt;                            } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 137:  &lt;/span&gt;                        } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 138:  &lt;/span&gt;                    } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 139:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 140:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 141:  &lt;/span&gt;                }  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 142:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 143:  &lt;/span&gt;            }  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 144:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 145:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 146:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 147:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 148:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 149:  &lt;/span&gt;   &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 150:  &lt;/span&gt;   &lt;span class="lnum"&gt;&lt;br /&gt;151:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 152:  &lt;/span&gt;        } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 153:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 154:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Boolean clearObjByWindowId(Int32 windowId) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 155:  &lt;/span&gt;        { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 156:  &lt;/span&gt;            &lt;span class="kwrd"&gt;lock&lt;/span&gt; (syncRoot)  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 157:  &lt;/span&gt;            { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 158:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.clearObjByWindowId(windowId.ToString()); &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 159:  &lt;/span&gt;            }  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 160:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 161:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 162:  &lt;/span&gt;        } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 163:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Boolean clearObjByWindowId(String windowId) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 164:  &lt;/span&gt;        { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 165:  &lt;/span&gt;            &lt;span class="kwrd"&gt;lock&lt;/span&gt; (syncRoot) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 166:  &lt;/span&gt;            { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 167:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (dataStoreByWindowId.ContainsKey(windowId)) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 168:  &lt;/span&gt;                { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 169:  &lt;/span&gt;                    SortedDictionary&amp;lt;String, Object&amp;gt; temp; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 170:  &lt;/span&gt;                    dataStoreByWindowId.TryGetValue(windowId, &lt;span class="kwrd"&gt;out&lt;/span&gt; temp); &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 171:  &lt;/span&gt;                    temp.Clear();  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 172:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; dataStoreByWindowId.Remove(windowId); &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 173:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 174:  &lt;/span&gt;               } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 175:  &lt;/span&gt;            } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 176:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 177:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 178:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 179:  &lt;/span&gt;        } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 180:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 181:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Boolean clearByKey(Key key) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 182:  &lt;/span&gt;        {&lt;br /&gt;&lt;span class="lnum"&gt; 183:  &lt;/span&gt;            &lt;span class="kwrd"&gt;lock&lt;/span&gt; (syncRoot) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 184:  &lt;/span&gt;            { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 185:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (dataStoreByWindowId.ContainsKey(key.windowId)) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 186:  &lt;/span&gt;                { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 187:  &lt;/span&gt;                    SortedDictionary&amp;lt;String, Object&amp;gt; dataStoreByObjectType;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 188:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (dataStoreByWindowId.TryGetValue(key.windowId, &lt;span class="kwrd"&gt;out&lt;/span&gt; dataStoreByObjectType))  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 189:  &lt;/span&gt;                    { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 190:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;if&lt;/span&gt; (dataStoreByObjectType.ContainsKey(key.objectType))  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 191:  &lt;/span&gt;                        {  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 192:  &lt;/span&gt;                            &lt;span class="kwrd"&gt;return&lt;/span&gt; dataStoreByObjectType.Remove(key.objectType); &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 193:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 194:  &lt;/span&gt;                        }  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 195:  &lt;/span&gt;                    } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 196:  &lt;/span&gt;                } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 197:  &lt;/span&gt;            }  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 198:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 199:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 200:  &lt;/span&gt;        } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 201:  &lt;/span&gt;   &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 202:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 203:  &lt;/span&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; IDisposable Members &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 204:  &lt;/span&gt;  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 205:  &lt;/span&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; IDisposable.Dispose() &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 206:  &lt;/span&gt;        { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 207:  &lt;/span&gt;            &lt;span class="kwrd"&gt;lock&lt;/span&gt; (syncRoot) &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 208:  &lt;/span&gt;            { &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 209:  &lt;/span&gt;                &lt;span class="kwrd"&gt;this&lt;/span&gt;.dataStoreByWindowId = &lt;span class="kwrd"&gt;null&lt;/span&gt;; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 210:  &lt;/span&gt;            } &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 211:  &lt;/span&gt;        } &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 212:  &lt;/span&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 213:  &lt;/span&gt;    }  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 214:  &lt;/span&gt;} &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 215:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;Well the only issue with using this class is that &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1. you have to use the same key and you can access the object from any class.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2. you have to clean up , and that too for efficiency purposes at a point when you know that there will be no one requiring the data any more. This was easy in my application as this was always known to be on class.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;3. The clean up needs to be done else there may too much redundant data in the memory.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;and may be some more, but basically using this class requires the programmer to be smart and actually helped me save a lot of time to implement it the other way around.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;As i see it over today a year down the line I am thinking is this good? what are further pit falls that I have not seen, and BTW why should I even do it any other way ? this is surely faster (to code on) :).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Any comments, suggestions would be appreciated :).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-167831381367841765?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/167831381367841765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=167831381367841765' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/167831381367841765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/167831381367841765'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/07/my-code-for-your-review-and-thoughts.html' title='My code for your review and thoughts'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/gjain81/SGxKFlCmFRI/AAAAAAAAAMg/rhmI-_660dM/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-2943643100669161907</id><published>2008-06-18T07:15:00.001+05:30</published><updated>2008-06-18T07:15:13.096+05:30</updated><title type='text'>What if all the fee services became paid?</title><content type='html'>&lt;p&gt;I was just thinking, all the major part of our life which is connected also revolves around &amp;quot;Free&amp;quot; services, some of them have a commercial aspect which interacts with us asking for payment but most of them don't.&lt;/p&gt;  &lt;p&gt;And just wonder if these companies after shouting free free, and making us addicted to the same, now say Limited features only, if you want the full gamut pay up! that would cause the death of the web.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hence i would like to ensure that this free community survives and to do my part in it, i will click on all the adds on such sites like orkut/facebook/blogspot/live so that these services can be kept free, further i will even go to the mozilla site and click on adds there so that they can get some money from my side :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Keep up the great experience.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-2943643100669161907?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/2943643100669161907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=2943643100669161907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/2943643100669161907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/2943643100669161907'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/06/what-if-all-fee-services-became-paid.html' title='What if all the fee services became paid?'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-3364044158172435925</id><published>2008-06-16T00:31:00.001+05:30</published><updated>2008-06-16T00:31:09.045+05:30</updated><title type='text'>ESOA/SAP</title><content type='html'>&lt;p&gt;What the heck SAP started it's SOA story about 7 years Ago and, I guess so did the rest of the world.And when you search over the Internet to learn about majority of SOA you only find links that point to SAP's documentation, funnily though every body in the world advertises that they are SOA GOD's, Guru's what not, and where is the product that they ship? who has used it? &lt;/p&gt;  &lt;p&gt;Only SAP has done that built ubiquitous systems that customers use, extend and praise. Also excellent easy to understand documentation which no one else ha done. Why I Write this in my blog?&amp;#160; I am trying to find out some details about SOA and there is no other link than an SAP link which gives me information! and my only intent is I do not want to read SAP documentation :).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;No matter what any one would say I do believe that most of the worlds best developers do work in SAP with SAP :)&lt;/p&gt;  &lt;p&gt;regards&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-3364044158172435925?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/3364044158172435925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=3364044158172435925' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/3364044158172435925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/3364044158172435925'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/06/esoasap.html' title='ESOA/SAP'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-6351046580595812110</id><published>2008-06-09T02:37:00.001+05:30</published><updated>2008-06-09T02:37:36.276+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='xbox 360'/><category scheme='http://www.blogger.com/atom/ns#' term='UEFA 2008'/><title type='text'>France Beat Germany in EURO 2008 2-0</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Well :) it hasn't happened yet but might happen :). &lt;/p&gt;  &lt;p&gt;Ever want to get inside the TV and play the damn game your self? beat up the coach and take his place?&lt;/p&gt;  &lt;p&gt;Or better yet beat up the entire crowd booing your team and tell them if It were up to me, we would have won :) ?&lt;/p&gt;  &lt;p&gt;Well now EA gives you a chance to do just that, with the Aptly timed release of The Euro 2008 game, (the demo in my case :) ).&lt;/p&gt;  &lt;p&gt;You take on the persona of the team you want to be with the team that you chose, and kick some real nuts :), I need to hook the XBOX to my laptop to give you the graphical details like the guys on techtree :) but until you see those just believe me the game is marvelous and awesome.&lt;/p&gt;  &lt;p&gt;The Sound the Stadium the effects and the ball control, not to mention the poor AI, make it one hell of a game :(, (the sad smiley depicts I am going to lose another Rs 2000 odd when I buy this :) ).&lt;/p&gt;  &lt;p&gt;I need to get some one over to try the team play, but I can just imagine it will be great.&lt;/p&gt;  &lt;p&gt;This is like heaven, watch the matches in the night and play them in the day, life just can't get better, and when your boss is actually not in office for 3 days :)&lt;/p&gt;  &lt;p&gt;I hope more games could come out exactly when the season starts and with the same players.&lt;/p&gt;  &lt;p&gt;What would be more&amp;#160; amazing you know? what if EA could feed in the actual results that happen on the field into the xbox system home?&lt;/p&gt;  &lt;p&gt;Like- Ronney gets injured on the field, well sad he gets injured in your game as well ?&lt;/p&gt;  &lt;p&gt;Czech won, well they just became stronger in the game as well?&lt;/p&gt;  &lt;p&gt;Could you play a live tournament against the actual teams? man live feedback would be so great so the game would almost mean Me taking part in UEFA 2008, wow now when we have such cool stuff would I say we have some serious gaming programmers, till then there are only crappy single minded AI engines :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Meanwhile let me go and check if some one will help me patent this idea :).&lt;/p&gt;  &lt;p&gt;regards&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-6351046580595812110?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/6351046580595812110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=6351046580595812110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/6351046580595812110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/6351046580595812110'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/06/france-beat-germany-in-euro-2008-2-0.html' title='France Beat Germany in EURO 2008 2-0'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-4332526622001842217</id><published>2008-06-09T01:10:00.001+05:30</published><updated>2008-06-09T01:10:26.216+05:30</updated><title type='text'>"Norton anti virus is known to cause such problems if you have it please disable it or remove it " :)</title><content type='html'>&lt;p&gt;Wow! how in the world can some web-site make such a statement ! isn't it some kind of blatant insult to some one publicly for which you could otherwise be sued?&lt;/p&gt;  &lt;p&gt;Well I guess Face book apps and inturn facebook better take care of this :). putting such a warning and not only that advertising another Anti- virus solution which I could use instead of this one, is just going to make people really &amp;quot;remove&amp;quot; Norton Antivirius, because people of the Facebook generation are not all techies, and seeing something so serious on a hugely popular website at least would have made me immediately remove my Norton Anti virus.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It would have been better if these guys would have called some one up in Norton and said &amp;quot;hey guys you have this bug, fix it&amp;quot; and not dis the poor guys out publically.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I personally do not use norton my self but what the heck, you see Name-calling every where and now here as well? , it is just as damn frustrating.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I think norton guys should sue this application just for the heck of it, man you try this experiment, have any non techie go to face book, use circle of trust and ask them if they would by Norton anti-virus they would say - &amp;quot;it causes problems&amp;quot; -- hell this is a great way to put a company out of business.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What if they had put- &amp;quot;if you have IE 7 please remove it and use FireFox or something?&amp;quot; - Microsoft that may happen no? oh because you own Face book :)&lt;/p&gt;  &lt;p&gt;Regards&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;P.S. - the views stated above are mine and only mine and i do not wish to incriminate anyone ! :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-4332526622001842217?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/4332526622001842217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=4332526622001842217' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/4332526622001842217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/4332526622001842217'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/06/anti-virus-is-known-to-cause-such.html' title='&amp;quot;Norton anti virus is known to cause such problems if you have it please disable it or remove it &amp;quot; :)'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-2804944247137388417</id><published>2008-06-08T02:41:00.001+05:30</published><updated>2008-06-08T02:41:58.972+05:30</updated><title type='text'>How to write a DVD Ripper</title><content type='html'>&lt;p&gt;Hi I am trying to understand how DVD reading and Writing works.Basically because I am fed up of not having a decent ripper in the market available for free and the ones which are free are very slow. I want to convert my DVD collection to divx and store them on my hard disk and get rid of the clutter.&lt;/p&gt;  &lt;p&gt;Have been on the Internet for&amp;#160; past 2 days trying to look up some resources and the best I could find was the &lt;a href="http://www.eggheadcafe.com/software/aspnet/30745783/windows-media-framework-s.aspx"&gt;.Net media Framework&lt;/a&gt; on this weblog. and some more crap on &lt;a href="http://mediacoder.sourceforge.net/wiki/index.php/Windows_Media_Video"&gt;mediacoder&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Seems very complicated, also I read about the java Media framework, but I am not able to get a complete picture of where do I start from ? do need to write such stuff in python ? I thought Python would be the best choice for such a thing but Alas! I can not find any details!.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;So if any of you good Samaritans get a chance to help me out please do :)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Regards&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-2804944247137388417?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/2804944247137388417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=2804944247137388417' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/2804944247137388417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/2804944247137388417'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/06/how-to-write-dvd-ripper.html' title='How to write a DVD Ripper'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3007560041977372155.post-8178774570781857185</id><published>2008-06-08T01:00:00.000+05:30</published><updated>2008-06-08T01:19:51.105+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='xbox 360'/><category scheme='http://www.blogger.com/atom/ns#' term='Ninja Gaiden2'/><title type='text'>Ninja Gaiden II--- WOW!!!</title><content type='html'>I downloaded the Ninja Gaiden II demo today, after touching my xbox 360 after a fortnight, and found some new demo's to be waiting, this being the first i could download today and man the game is cool.&lt;br /&gt;&lt;br /&gt;The graphics are much more sharper than DOA and the story line is just good to play through :).&lt;br /&gt;&lt;br /&gt;There is a special agent Sonia searching for Ryu Hyabusa at a swords smith shop and suddenly the Black Spider Ninja gang attacks and takes her away, infornt of Hyabusa.&lt;br /&gt;&lt;br /&gt;Hyabusa sets out on his journey and there is some good Hack and slash. The moves are pretty cool and smooth along with techniques like running on the wall or burning all your enimies in one go.&lt;br /&gt;&lt;br /&gt;The Camera movement is a bit sad as in such a game one would expect to have a 360 degree view, but iwas let down on this aspect when there were 3 archers shooting at me for about 5 minutes while i contuned with the game, finally i was able to find a spot from where i could see them and shoot them down.&lt;br /&gt;&lt;br /&gt;The wepon attache is pretty good, you have a sword, and a wepon i liked the most the Eclipse Sythe, cool and huge just hack and slash, and enjoy the blood :).&lt;br /&gt;&lt;br /&gt;The cool part which i liked was when you cut of your enimies arm or leg, then press Y on the controller to see a nice in action finisher.&lt;br /&gt;&lt;br /&gt;Some other problems if you complete the demo once and want to play it again, you get bored with the game movies and the starting of the game, you can't skip it. Maybe it is like this because this is a Demo, but i would hate such a thing in the actual game.&lt;br /&gt;&lt;br /&gt;The sets derive out the DOA areana's on the surface but there is good graphics around as you jump though wells and walk on walls to proceed.&lt;br /&gt;&lt;br /&gt;I just can't wait to buy the game dvd this is going to be an awsome time pass :).&lt;br /&gt;Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3007560041977372155-8178774570781857185?l=gjain81.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gjain81.blogspot.com/feeds/8178774570781857185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3007560041977372155&amp;postID=8178774570781857185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/8178774570781857185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3007560041977372155/posts/default/8178774570781857185'/><link rel='alternate' type='text/html' href='http://gjain81.blogspot.com/2008/06/ninja-gaiden-ii-wow.html' title='Ninja Gaiden II--- WOW!!!'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/00002587408918131234</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_u0BS_o0FoZg/SI1wJyICjzI/AAAAAAAAANk/OVj9AMYlW18/S220/DSC00009.JPG'/></author><thr:total>0</thr:total></entry></feed>
