<?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-5110857384844141930</id><updated>2012-01-25T14:30:03.080+04:00</updated><category term='linux'/><category term='virtualization'/><category term='postgresql'/><category term='siggraph'/><category term='dot-net linq'/><category term='javascript'/><category term='Link Building'/><category term='java'/><category term='c-sharp'/><category term='graphics'/><category term='games'/><category term='conference'/><category term='asp-dot-net'/><category term='assembly'/><category term='oracle'/><category term='iphone'/><category term='css'/><category term='sql-server'/><category term='html'/><category term='internet'/><category term='history'/><category term='software-engineering'/><category term='windows'/><category term='dot-net'/><category term='llblgen'/><category term='hardware'/><title type='text'>Nitin's Tech Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default?start-index=101&amp;max-results=100'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>413</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-151557530580578946</id><published>2009-07-21T11:03:00.002+04:00</published><updated>2009-07-21T11:07:17.974+04:00</updated><title type='text'>I've Moved</title><content type='html'>I know you've all been wonder where I've been and what I've been doing.&lt;br /&gt;&lt;br /&gt;Over the past few months, I've been investigating WordPress as a blogging platform and have implemented it as the engine behind a financial news website. I've developed a couple of plugins and widgets for it, and there's some pretty good stuff that the WordPress folk are still putting in.&lt;br /&gt;&lt;br /&gt;In other news, to get my blog running on the WordPress engine, I've taken up a commercial hosting package and so am no longer blogging here. You can access my new blog at: &lt;a href="http://www.nitinkatkam.com/blog"&gt;http://www.nitinkatkam.com/blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-151557530580578946?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/151557530580578946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=151557530580578946' title='42 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/151557530580578946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/151557530580578946'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/07/ive-moved.html' title='I&apos;ve Moved'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>42</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7691328131621276053</id><published>2009-04-10T20:13:00.000+04:00</published><updated>2009-04-10T20:14:45.542+04:00</updated><title type='text'>Cache-Control Header</title><content type='html'>The Cache-Control HTTP header directive is used to specify the behavior of proxy servers or caches for caching data.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Public&lt;/strong&gt;&lt;br /&gt;This setting enables caching on shared as well as single-user caches&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Private&lt;/strong&gt;&lt;br /&gt;This setting disables caching on shared caches but allows caching on single-user caches&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;No-store&lt;/strong&gt;&lt;br /&gt;Prevents caching by storing to persistent storage&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;No-cache&lt;/strong&gt;&lt;br /&gt;Prevents caching entirely&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7691328131621276053?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7691328131621276053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7691328131621276053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7691328131621276053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7691328131621276053'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/04/cache-control-header.html' title='Cache-Control Header'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-5901553485367682919</id><published>2009-04-05T23:10:00.002+04:00</published><updated>2009-04-05T23:13:00.660+04:00</updated><title type='text'>Still Alive And Kickin'</title><content type='html'>I know what you're thinking. Why is this blog so alive even when I said it would be inactive. Well, yes, I did say it was inactive. It's mostly because I'm not spending as much time writing content for it - I'm spending more time on my new blog at &lt;a href="http://picometric.blogspot.com"&gt;http://picometric.blogspot.com&lt;/a&gt; . I still post to this blog because I've got so many visitors who still write back to me with encouraging messages and I've just got to give back by posting some content.&lt;br /&gt;&lt;br /&gt;Anyway, more from me soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-5901553485367682919?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/5901553485367682919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=5901553485367682919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5901553485367682919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5901553485367682919'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/04/still-alive-and-kickin.html' title='Still Alive And Kickin&apos;'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-258027110385294062</id><published>2009-04-05T14:57:00.000+04:00</published><updated>2009-04-05T14:58:10.315+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Link Building'/><title type='text'></title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_1240287"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/buzzstream/austin-seo-meetup-4109-with-buzzstream?type=powerpoint" title="Austin SEO Meetup 4/1/09 with BuzzStream"&gt;Austin SEO Meetup 4/1/09 with BuzzStream&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=meetuppresentation-090402124455-phpapp01&amp;rel=0&amp;stripped_title=austin-seo-meetup-4109-with-buzzstream" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=meetuppresentation-090402124455-phpapp01&amp;rel=0&amp;stripped_title=austin-seo-meetup-4109-with-buzzstream" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-258027110385294062?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/258027110385294062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=258027110385294062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/258027110385294062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/258027110385294062'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/04/austin-seo-meetup-4109-with-buzzstream.html' title=''/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7107453974061871401</id><published>2009-04-05T12:40:00.002+04:00</published><updated>2009-04-05T12:43:12.357+04:00</updated><title type='text'>An Architect Is...</title><content type='html'>I came across this on a set of slides on SlideShare, but only one of the seven slides had actual content so instead of embedded the entire presentation, I just posted this text:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A&lt;/span&gt;ccepting my responsibility as an architect, I will strive daily to learn and perfect my trade.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;R&lt;/span&gt;eadily will I defend my organization’s I.T. investments from complexity, our greatest enemy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C&lt;/span&gt;hanging requirements will not break my design for it will be flexible and able to change with the requirements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;H&lt;/span&gt;elping developers to understand the reasons for the architecture and seeking their input is of great importance to our success.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;I&lt;/span&gt; will never use acronyms or suggest technologies that are not pertinent to the problem at hand.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;T&lt;/span&gt;echnologies evolve and I know that solid architectures should accommodate and enable these evolutions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;E&lt;/span&gt;very day, I will strive to help our software achieve ideals that will make it flexible and easy to maintain.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C&lt;/span&gt;oncern for the success of my organization’s I.T. investments will drive me to make appropriate decisions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;T&lt;/span&gt;eaching others about my trade will be an overarching responsibility that I accept as a part of my duties.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7107453974061871401?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7107453974061871401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7107453974061871401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7107453974061871401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7107453974061871401'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/04/architect-is.html' title='An Architect Is...'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7371457802663783800</id><published>2009-04-05T09:11:00.001+04:00</published><updated>2009-04-05T09:11:31.201+04:00</updated><title type='text'>Twitter Tools For Recruiting</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_1240295"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/dennissmith/twittertools4recruiting?type=presentation" title="TwitterTools4Recruiting"&gt;TwitterTools4Recruiting&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=twitterpptdfwtrn041009-090402124706-phpapp01&amp;rel=0&amp;stripped_title=twittertools4recruiting" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=twitterpptdfwtrn041009-090402124706-phpapp01&amp;rel=0&amp;stripped_title=twittertools4recruiting" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7371457802663783800?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7371457802663783800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7371457802663783800' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7371457802663783800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7371457802663783800'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/04/twitter-tools-for-recruiting.html' title='Twitter Tools For Recruiting'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-941329533546090225</id><published>2009-04-05T08:36:00.000+04:00</published><updated>2009-04-05T08:37:06.509+04:00</updated><title type='text'>10 Social Media Resources for Executive Job Search</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_1242130"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/jennifermcclure/10-social-media-tools-for-executive-job-search-4-2009?type=powerpoint" title="10 Social Media Tools For Executive Job Search 4 2009"&gt;10 Social Media Tools For Executive Job Search 4 2009&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=10socialmediatoolsforexecutivejobsearch42009-090402182343-phpapp02&amp;rel=0&amp;stripped_title=10-social-media-tools-for-executive-job-search-4-2009" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=10socialmediatoolsforexecutivejobsearch42009-090402182343-phpapp02&amp;rel=0&amp;stripped_title=10-social-media-tools-for-executive-job-search-4-2009" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-941329533546090225?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/941329533546090225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=941329533546090225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/941329533546090225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/941329533546090225'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/04/10-social-media-resources-for-executive.html' title='10 Social Media Resources for Executive Job Search'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-1509459390531669169</id><published>2009-04-05T08:19:00.001+04:00</published><updated>2009-04-05T08:21:06.849+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PostgreSQL 8.4</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_1246887"&gt;&lt;br /&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=postgresql84tutorial-090403211619-phpapp01&amp;rel=0&amp;stripped_title=postgres-84-tutorial" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=postgresql84tutorial-090403211619-phpapp01&amp;rel=0&amp;stripped_title=postgres-84-tutorial" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-1509459390531669169?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/1509459390531669169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=1509459390531669169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1509459390531669169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1509459390531669169'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/04/postgresql-84.html' title='PostgreSQL 8.4'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-470078579239351932</id><published>2009-04-02T16:23:00.000+04:00</published><updated>2009-04-02T16:24:12.673+04:00</updated><title type='text'>Top-N query</title><content type='html'>I've been Googling for how you would implement a Top-N query with different databases and here's what I could find on a discussion thread at StackOverflow:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IBM DB2:&lt;/span&gt;&lt;br /&gt;SELECT * FROM emp FETCH FIRST 10 ROWS ONLY&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Informix, InterBase/Firebird:&lt;/span&gt;&lt;br /&gt;SELECT FIRST 10 * FROM emp&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MS SQL:&lt;/span&gt;&lt;br /&gt;SELECT TOP 10 * FROM emp&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MySQL, PostgreSQL, SQLite:&lt;/span&gt;&lt;br /&gt;SELECT * FROM emp LIMIT 10&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Oracle:&lt;/span&gt;&lt;br /&gt;SELECT * FROM emp WHERE ROWNUM &lt;= 10&lt;br /&gt;&lt;br /&gt;Unfortunately, ANSI-SQL doesn't provide any way to do this :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-470078579239351932?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/470078579239351932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=470078579239351932' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/470078579239351932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/470078579239351932'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/04/top-n-query.html' title='Top-N query'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2178997314174287899</id><published>2009-03-30T20:55:00.002+04:00</published><updated>2009-03-30T20:59:38.640+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Serve A Different Stylesheet To IE</title><content type='html'>I've been trying to get browser specific stylesheets without having to resort to server side code and, thanks to an IE feature, this was actually possible. Check out &lt;a href="http://picometric.blogspot.com/2009/03/ie-specific-htmlcss.html"&gt;my article on The Picometric&lt;/a&gt; on rendering IE-specific HTML/CSS:&lt;br /&gt;&lt;a href="http://tinyurl.com/css-for-ie"&gt;http://tinyurl.com/css-for-ie&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2178997314174287899?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2178997314174287899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2178997314174287899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2178997314174287899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2178997314174287899'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/03/serve-different-stylesheet-to-ie.html' title='Serve A Different Stylesheet To IE'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4177671333383381520</id><published>2009-03-30T19:10:00.002+04:00</published><updated>2009-03-30T19:12:10.867+04:00</updated><title type='text'>My New Blog</title><content type='html'>My new blog is up and running at &lt;br /&gt;&lt;a href="http://picometric.blogspot.com"&gt;http://picometric.blogspot.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's an attempt to fill in the void left by this blog going inactive. I hope to get your input on the new blog soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4177671333383381520?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4177671333383381520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4177671333383381520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4177671333383381520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4177671333383381520'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/03/my-new-blog.html' title='My New Blog'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7719342834371703898</id><published>2009-03-28T13:04:00.003+04:00</published><updated>2009-03-29T09:24:32.329+04:00</updated><title type='text'>Going Inactive</title><content type='html'>The number of posts I've been making to my blog has been dwindling down and it is time for the inevitable. All things that start must come to an end and here I go, giving my blog the InActive status. You can still go over all of my archived articles and I might post an entry or two every once in a while. I hope all of you have had as much fun reading my blog as I've had writing it. More from me, in the not too distant future.&lt;br /&gt;&lt;br /&gt;UPDATE: I'll be starting up a new blog later this week at &lt;a href="http://picometric.blogspot.com/"&gt;http://picometric.blogspot.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7719342834371703898?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7719342834371703898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7719342834371703898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7719342834371703898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7719342834371703898'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/03/taking-it-down-few-notches.html' title='Going Inactive'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3748556351567122085</id><published>2009-03-28T13:01:00.001+04:00</published><updated>2009-03-28T13:04:23.561+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Online Virus Check Against Multiple Engines</title><content type='html'>Do you want to double-check the results of your anti-virus to confirm what it tells you about a file on your system? Go to &lt;a href="http://www.virustotal.com"&gt;http://www.virustotal.com&lt;/a&gt; to check a file against multiple antivirus engines - they run your file through well over a dozen different antivirus engines and give you the results of the scan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3748556351567122085?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3748556351567122085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3748556351567122085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3748556351567122085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3748556351567122085'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/03/online-virus-check-against-multiple.html' title='Online Virus Check Against Multiple Engines'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3745724477558625371</id><published>2009-03-21T09:14:00.002+04:00</published><updated>2009-03-21T09:24:05.274+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Back Into Service: Thinkpad 600E, Presario 2132EA</title><content type='html'>I put my old IBM Thinkpad 600E and Compaq Presario 2132EA back into service. Here are the specs on the machines:&lt;br /&gt;&lt;br /&gt;IBM Thinkpad 600E:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://pc.watch.impress.co.jp/docs/article/990706/600e.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 462px; height: 446px;" src="http://pc.watch.impress.co.jp/docs/article/990706/600e.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Intel Pentium II 366MHz processor&lt;br /&gt;64MB RAM&lt;br /&gt;56kbps modem&lt;br /&gt;1 USB port, 1 VGA port, 1 parallel port, 1 serial port, 1 PS2 port, 1 IrDA port&lt;br /&gt;DVD-ROM drive (front-loading!!!)&lt;br /&gt;External floppy disk drive&lt;br /&gt;Crystal Audio&lt;br /&gt;&lt;br /&gt;Compaq Presario 2132EA:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://web.mobiguru.ru/web/photo/compaq_presario_2100_1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 240px; height: 233px;" src="http://web.mobiguru.ru/web/photo/compaq_presario_2100_1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Intel Pentium III 1 GHz processor&lt;br /&gt;384MB RAM&lt;br /&gt;56kbps modem, 100Mbps network interface&lt;br /&gt;2 USB ports (inaccessible), 1 VGA port, 1 parallel port, 1 PS2 port, 1 IrDA port&lt;br /&gt;DVD/CD-RW drive&lt;br /&gt;Internal floppy drive&lt;br /&gt;&lt;br /&gt;The problem with the Thinkpad is that it's too slow and doesn't have enough RAM to run a web browser. I can, however, use the USB port to connect to my ADSL router which effectively turns it into a network interface. The Presario, on the other hand, can get onto the 'net and do all kinds of stuff but the power connector is loose so I have to keep a paperweight on it, which makes the USB ports inaccessible. Also, the Spacebar and the 'B' keys on the keyboard don't work. The batteries on both laptops no longer work.&lt;br /&gt;&lt;br /&gt;My current setup has the Thinkpad running Windows 98 Second Edition. I've installed the Terminal Service Client for Windows, which enables me to connect to the Presario running Windows XP SP2 (I plan to upgrade to SP3 sometime soon). That solves the low resources problem of the Thinkpad as well as the keyboard and loose power connector problem of the Presario. I'm hoping to install a wireless USB interface on the Thinkpad so I'm not tied down to the ADSL router but that's a plan for later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3745724477558625371?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3745724477558625371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3745724477558625371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3745724477558625371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3745724477558625371'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/03/back-into-service-thinkpad-600e.html' title='Back Into Service: Thinkpad 600E, Presario 2132EA'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3937842246518582059</id><published>2009-03-18T10:48:00.001+04:00</published><updated>2009-03-18T10:51:17.749+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp-dot-net'/><title type='text'>The Case of The Polluting GridView</title><content type='html'>When I use a GridView control on my ASP.NET page, the TABLE tag generated automatically gets the attributes:&lt;br /&gt;cellspacing="0" rules="all" border="0" style="border-collapse:collapse;"&lt;br /&gt;&lt;br /&gt;I've tried using:&lt;br /&gt;gdPostedJobs.Attributes.CssStyle.Remove(HtmlTextWriterStyle.BorderCollapse);&lt;br /&gt;gdPostedJobs.Attributes.Remove("rules");&lt;br /&gt;&lt;br /&gt;...but they didn't seem to work so here's what I ended up doing.&lt;br /&gt;&lt;br /&gt;Getting Rid of the Rules="all" Attribute&lt;br /&gt;&lt;br /&gt;Simply set the GridLines property to None in the GridView tag. Example:&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&amp;lt;asp:gridview id="gridWExp" runat="server" gridlines="None"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Getting Rid of the CellSpacing="0" and style="border-collapse:collapse;" Attributes&lt;br /&gt;&lt;br /&gt;Set the CellSpacing attribute to -1 in the GridView tag. Example:&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&amp;lt;asp:gridview id="gridWExp" runat="server" gridlines="None" cellspacing="-1"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The border="0" attribute remained in the generated HTML and I guess the only way to remove it would be to inherit the GridView class and create my own control.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;See the &lt;a href="http://www.velocityreviews.com/forums/t121474-gridview-and-html-attributes.html"&gt;rant&lt;/a&gt; at VelocityReviews about the GridView&lt;br /&gt;&lt;br /&gt;PS: This is my 400&lt;sup&gt;th&lt;/sup&gt; post!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3937842246518582059?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3937842246518582059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3937842246518582059' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3937842246518582059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3937842246518582059'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/03/case-of-polluting-gridview.html' title='The Case of The Polluting GridView'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-8553933742538182108</id><published>2009-03-16T14:46:00.002+04:00</published><updated>2009-03-16T14:48:42.991+04:00</updated><title type='text'>Back from Holiday</title><content type='html'>I'm back from my 2-week long holiday! I've been busy last week with un-packing, taking care of stuff at work. It was lots of fun in a very retro way.&lt;br /&gt;&lt;br /&gt;Anyway, more from me soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-8553933742538182108?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/8553933742538182108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=8553933742538182108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8553933742538182108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8553933742538182108'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/03/back-from-holiday.html' title='Back from Holiday'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-1401366982147489442</id><published>2009-02-12T11:35:00.001+04:00</published><updated>2009-02-12T11:36:52.211+04:00</updated><title type='text'>Holiday</title><content type='html'>I'll be away on holiday for 2 weeks and I've got next week to finish all of the work assigned to me, so no new blog posts for a while. I'll try to sneak in a blog post or two if time permits, but I'm making no promises here. I hope you'll be back to read more from me on the 8th of March, 2009.&lt;br /&gt;&lt;br /&gt;Happy surfing and stay out of trouble!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-1401366982147489442?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/1401366982147489442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=1401366982147489442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1401366982147489442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1401366982147489442'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/holiday.html' title='Holiday'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7546811094069442764</id><published>2009-02-11T19:34:00.002+04:00</published><updated>2009-02-11T19:39:32.866+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Kindle 2 announced</title><content type='html'>Kindle 2, the new ebook reader, has been announced with lots of new features over it's older version. It's got 2GB of storage, has text-to-speech capabilities and can run PC-free with a 3G Internet connection. Kindle 2 costs $359.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7546811094069442764?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7546811094069442764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7546811094069442764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7546811094069442764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7546811094069442764'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/kindle-2-announced.html' title='Kindle 2 announced'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4107000020761878212</id><published>2009-02-10T13:19:00.001+04:00</published><updated>2009-02-10T13:19:38.246+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Default User Files in Linux</title><content type='html'>When you create a user account, the home directory of the user is pre-populated with files that are in the /etc/skel directory. This is useful for distributing a copy of the usage policy for your system to all new users. You can use the "-k &lt;span style="font-style:italic;"&gt;dir_name&lt;/span&gt;" option to specify an alternate directory of "-k /dev/null" if you do not wish to copy any files to the home directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4107000020761878212?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4107000020761878212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4107000020761878212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4107000020761878212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4107000020761878212'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/default-user-files-in-linux.html' title='Default User Files in Linux'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-6505650600431847077</id><published>2009-02-08T19:13:00.004+04:00</published><updated>2009-02-09T08:19:17.401+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux On Old Hardware: More Progress</title><content type='html'>After getting Turbo Linux 10 OEM to run on my computer, I decided to install ndiswrapper. To install ndiswrapper, I needed the kernel sources, which I obtained from the Turbo Linux 10 updates FTP link. I also used the RPMs to upgrade my kernel from 2.6.0test to 2.6.0-24.&lt;br /&gt;&lt;br /&gt;I set the KBUILD environment variable to my Linux kernel source directory with a:&lt;br /&gt;export KBUILD=/usr/src/linux-2.6.0&lt;br /&gt;...and ran "make" overnight, which compiled the kernel sources and ndiswrapper. After it was done with its buzzing, I did a "make uninstall" followed by a "make install". It would always fail on the installation with a:&lt;br /&gt;ndiswrapper install: cannot stat ndiswrapper.ko No such file or directory&lt;br /&gt;&lt;br /&gt;I then tried to set the KVERS variable, as I found the symbol in the Makefile within the drivers directory of ndiswrapper with the following:&lt;br /&gt;export KVERS=2.6.0-24&lt;br /&gt;&lt;br /&gt;That didn't seem to make much of a difference either as I still got the error. I also tried manually copying ndiswrapper.ko from the Linux source directory to the directory it was trying to install to. I did a Google search, but the only suggestion I could find was to do a manual copy and run make install again, but I already did that so it wasn't of any use to me.&lt;br /&gt;&lt;br /&gt;From the output, I can tell that the installation wants to copy ndiswrapper.ko from one directory to another, but I can't seem to tell which the source directory is. I'll run "make install" again and will look at the final output with a more analytical eye.&lt;br /&gt;&lt;br /&gt;UPDATE: I noticed it was leaving the /root/ndiswrapper-1.54/driver directory after the error, so I figured I had to put the ndiswrapper.ko in there. That got "make install" working without errors, but when I do a "modprobe ndiswrapper", I get a "FATAL: Module ndiswrapper not found".&lt;br /&gt;&lt;br /&gt;UPDATE: The ndiswrapper.ko was copied to the wrong directory... after I moved it, I did a "modinfo ndiswrapper" to ensure it was in the right place, followed by a "depmod -a" and a "modprobe ndiswrapper". Now, it complains "loadndisdriver: main(542): version&lt;br /&gt;1.9 doesn't match driver version -a". I think I should get a newer kernel to work with ndiswrapper 1.53.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-6505650600431847077?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/6505650600431847077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=6505650600431847077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6505650600431847077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6505650600431847077'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/linux-on-old-hardware-more-progress.html' title='Linux On Old Hardware: More Progress'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-1806913564711713614</id><published>2009-02-08T18:40:00.002+04:00</published><updated>2009-02-08T19:13:19.629+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>More Web Reference vs Service Reference</title><content type='html'>Today, a co-worker wanted to try creating a web reference instead of a service reference in Visual Studio. The result of his little experiment was interesting... we had a Guid typed parameter that we were passing to a function. The proxy class generated by adding the service reference maintained the Guid type, while the proxy class generated by adding the web reference had a string type instead.&lt;br /&gt;&lt;br /&gt;Also, in my previous post I mentioned that the service references (which uses "svcutil.exe" to generate the proxy classes) can only be used by .NET 3.5 clients, so older clients can only use web references (which uses "wsdl.exe" to generate the proxy classes).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-1806913564711713614?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/1806913564711713614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=1806913564711713614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1806913564711713614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1806913564711713614'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/more-web-reference-vs-service-reference.html' title='More Web Reference vs Service Reference'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2810574533513819506</id><published>2009-02-07T19:35:00.001+04:00</published><updated>2009-02-07T20:02:58.601+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux for Old Hardware</title><content type='html'>I have an old Thinkpad 600E, which is like a grand daddy to my Thinkpad T60. It's get a Pentium II 366MHz with 64MB RAM, an 8GB hard disk, a 56kbps modem, an IrDA port, a serial port, a parallel port, firewire, 1 USB port, and a DVD drive. I decided to bring it back to life for checking my email as it's small, portable, and a lot like a netbook.&lt;br /&gt;&lt;br /&gt;I decided to install some flavor of Linux on it, so I started off with Knoppix. Knoppix booted up from the LiveCD, but after installing it to the hard disk, it simply refused to boot up with all kinds of errors... first, there was a problem with DMA so I disabled the DMA and started it up again but it simply crashed at some other point in the startup process.&lt;br /&gt;&lt;br /&gt;I then tried Turbo Linux 10 Desktop OEM, which installed and booted up the computer. That was cool! An ancient beast running Linux to keep up with the new boyz. Since it doesn't have an ethernet adapter to connect to the wired LAN, I decided to get something to hook it up.&lt;br /&gt;&lt;br /&gt;I got a Siemens USB wireless adapter, which I regret because the only way to get it running on Linux is to use ndiswrapper. Using ndiswrapper isn't the actual problem, but the one I got with Knoppix on the LiveCD was probably too old to run the drivers while Turbo Linux simply doesn't include ndiswrapper. I tried installing ndiswrapper, but the kernel sources folder was missing a ".config" file, and I didn't find a copy in /boot/config as a forum-post suggested.&lt;br /&gt;&lt;br /&gt;I finally decided to go with something more recent so I got a copy of Sidux Linux, but that wouldn't even boot from the LiveCD.&lt;br /&gt;&lt;br /&gt;Anyway, I guess I'll have to just hope I can find a PCMCIA ethernet card supported by Linux (more specifically, by Turbo Linux 10, the only distro that would successfully boot).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2810574533513819506?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2810574533513819506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2810574533513819506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2810574533513819506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2810574533513819506'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/linux-for-old-hardware.html' title='Linux for Old Hardware'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-8212049030640014911</id><published>2009-02-06T11:22:00.001+04:00</published><updated>2009-02-06T11:25:10.808+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net linq'/><title type='text'>When an EntityCollection isn't an IEnumerable...</title><content type='html'>I usually convert all my entity collections to plain old Arrays and I use the List.ToArray method to make the conversion. I push the data into a List via the constructor by casting the needed data to an IEnumerable.&lt;br /&gt;&lt;br /&gt;This all goes well when I do a:&lt;br /&gt;var data = (from iterEntity in Db.Table&lt;br /&gt;  select iterEntity);&lt;br /&gt;&lt;br /&gt;I can do a:&lt;br /&gt;var myList = new List&lt;MyEntityType&gt;((IEnumerable&lt;MyEntityType&gt;)data);&lt;br /&gt;MyEntityType[] myArr = myList.ToArray();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However, when I select a set of related entities like so:&lt;br /&gt;var data = (from iterOtherEntity in Db.OtherTable&lt;br /&gt;  where iterOtherEntity.refId = 911&lt;br /&gt;  select iterOtherEntity.MyEntities);&lt;br /&gt;&lt;br /&gt;I can no longer cast data to an IEnumerable type, and so can't push data into a List via its constructor... I now have to write a foreach loop to do the same conversion to an array. :-(&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UPDATE: There is an AsEnumerable extension method that you could try on the EntityCollection object (data). I didn't get a chance to try it yet, but I will as soon as I boot up in Windows again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-8212049030640014911?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/8212049030640014911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=8212049030640014911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8212049030640014911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8212049030640014911'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/when-entitycollection-isnt-ienumerable.html' title='When an EntityCollection isn&apos;t an IEnumerable...'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-6963515699070586931</id><published>2009-02-04T14:43:00.002+04:00</published><updated>2009-02-04T14:47:46.758+04:00</updated><title type='text'>Are you trying to be funny, HAL?</title><content type='html'>Way back in the old days, we had a Dummy Operating System... it was just an application that run with an entry in Autoexec.bat and it said weird stuff when you tried to do anything - a "del &lt;filename&gt;" would result in a "I won't delete it. Delete it yourself!" and a "copy " would say "Copying is so not original. I don't want to copy. I want to create something new and original."&lt;br /&gt;&lt;br /&gt;Today, I came across a dummy ASP.NET error page that said: "System.ServiceModel.FaultException: Unable to cast a spell on class String". After amusing 404 messages, they now come up with funny error pages that look so much like the real thing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-6963515699070586931?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/6963515699070586931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=6963515699070586931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6963515699070586931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6963515699070586931'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/are-you-trying-to-be-funny-hal.html' title='Are you trying to be funny, HAL?'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2561877527183892726</id><published>2009-02-02T22:37:00.000+04:00</published><updated>2009-02-02T22:38:17.004+04:00</updated><title type='text'>What is JPEG 2000?</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_979656"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/guestd38f1/intopix-everything-about-jpeg2000?type=powerpoint" title="intoPIX - Everything about Jpeg2000"&gt;intoPIX - Everything about Jpeg2000&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=intopix-jpeg2000-handbook-1233576711946085-3&amp;stripped_title=intopix-everything-about-jpeg2000" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=intopix-jpeg2000-handbook-1233576711946085-3&amp;stripped_title=intopix-everything-about-jpeg2000" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/guestd38f1"&gt;guestd38f1&lt;/a&gt;. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/decoder"&gt;decoder&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/encoder"&gt;encoder&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2561877527183892726?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2561877527183892726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2561877527183892726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2561877527183892726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2561877527183892726'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/what-is-jpeg-2000.html' title='What is JPEG 2000?'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7171239108685615585</id><published>2009-02-02T22:31:00.001+04:00</published><updated>2009-02-02T22:31:49.655+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>OpenID Bootcamp Tutorial</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_82115"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/daveman692/openid-bootcamp-tutorial?type=presentation" title="OpenID Bootcamp Tutorial"&gt;OpenID Bootcamp Tutorial&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=openid-bootcamp-tutorial1947&amp;stripped_title=openid-bootcamp-tutorial" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=openid-bootcamp-tutorial1947&amp;stripped_title=openid-bootcamp-tutorial" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/daveman692"&gt;David Recordon&lt;/a&gt;. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/oscon"&gt;oscon&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/openid"&gt;openid&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7171239108685615585?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7171239108685615585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7171239108685615585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7171239108685615585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7171239108685615585'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/openid-bootcamp-tutorial.html' title='OpenID Bootcamp Tutorial'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-1110087845756501982</id><published>2009-02-02T22:00:00.001+04:00</published><updated>2009-02-02T22:00:59.202+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>New Features of Java 7 SE</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_972664"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/dogangoko/new-features-of-java7-se-presentation?type=powerpoint" title="New Features of Java7 SE"&gt;New Features of Java7 SE&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=java7-20090123-1233347827571136-1&amp;stripped_title=new-features-of-java7-se-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=java7-20090123-1233347827571136-1&amp;stripped_title=new-features-of-java7-se-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/dogangoko"&gt;dogangoko&lt;/a&gt;. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/java7sejava7javase"&gt;java7sejava7javase&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-1110087845756501982?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/1110087845756501982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=1110087845756501982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1110087845756501982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1110087845756501982'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/new-features-of-java-7-se.html' title='New Features of Java 7 SE'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-623311916752145324</id><published>2009-02-02T21:52:00.002+04:00</published><updated>2009-02-02T21:53:07.427+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Java readLine Problem</title><content type='html'>A problem with using the readLine method to read the contents of the file is that you never know whether the last line in the file has a line break at the end. The readLine method can return either due to a line break or due to the end of the file so when you don't know which, you can either add a line break in which case you could be adding an extra character to the file, or you can assume that there was no line break in which case you may be removing a character from the end of the file.&lt;br /&gt;&lt;br /&gt;If you're building a text editor (such as nText, an open-source project hosted on SourceForge... I committed a fix to the project already), checksum utility, or anything along those lines that are sensitive to the EOF/EOL issue, you really ought to stop using readLine and use a regular read with a character array instead.&lt;br /&gt;&lt;br /&gt;This could've been solved by including a readToEnd method that developers are more likely to want to use than the readLine method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-623311916752145324?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/623311916752145324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=623311916752145324' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/623311916752145324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/623311916752145324'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/java-readline-problem.html' title='Java readLine Problem'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2068557169681704954</id><published>2009-02-02T21:34:00.002+04:00</published><updated>2009-02-02T21:50:06.339+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Java 6 Combo Box-Gtk bug</title><content type='html'>Sun Java 6 has a bug that goes way back to November 2007. The problem is with using a combo box in GTK. A workaround is to use the metal look and feel instead and the fix is available only in beta of Java 7. The beta is still unstable so if you're looking for a fix for the bug, you'll have to wait till Java 7 goes RTM. That makes it 15 months and counting for a resolution to the bug.&lt;br /&gt;&lt;br /&gt;You can read more about it &lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6624717"&gt;here&lt;/a&gt; and &lt;a href="http://www.nabble.com/Working-with-netbeans-6.0-in-Linux-GTK-problem-td15101577.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here's the output I get when running the open-source nText editor with java 6 (1.6.0_10-b33).&lt;br /&gt;&lt;br /&gt;nitin@nitin-laptop:~/Desktop$ java -jar nText.jar &lt;br /&gt;&lt;br /&gt;(&amp;lt;unknown&amp;gt;:19134): Gtk-WARNING **: Attempting to add a widget with type GtkButton to a GtkComboBoxEntry (need an instance of GtkEntry or of a subclass)&lt;br /&gt;&lt;br /&gt;(&amp;lt;unknown&amp;gt;:19134): Gtk-CRITICAL **: gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed&lt;br /&gt;&lt;br /&gt;(&amp;lt;unknown&amp;gt;:19134): Gtk-CRITICAL **: gtk_paint_box: assertion `style-&amp;gt;depth == gdk_drawable_get_depth (window)' failed&lt;br /&gt;&lt;br /&gt;(&amp;lt;unknown&amp;gt;:19134): Gtk-CRITICAL **: gtk_paint_box: assertion `style-&amp;gt;depth == gdk_drawable_get_depth (window)' failed&lt;br /&gt;&lt;br /&gt;(&amp;lt;unknown&amp;gt;:19134): Gtk-CRITICAL **: gtk_paint_box: assertion `style-&amp;gt;depth == gdk_drawable_get_depth (window)' failed&lt;br /&gt;&lt;br /&gt;(&amp;lt;unknown&amp;gt;:19134): Gtk-CRITICAL **: gtk_paint_box: assertion `style-&amp;gt;depth == gdk_drawable_get_depth (window)' failed&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UPDATE: Java 7 is expected to go RTM in early 2010. That's an estimated 27 months before the bugfix is available for production systems :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2068557169681704954?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2068557169681704954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2068557169681704954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2068557169681704954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2068557169681704954'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/java-6-combo-box-gtk-bug.html' title='Java 6 Combo Box-Gtk bug'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3504292477741117529</id><published>2009-02-02T20:59:00.000+04:00</published><updated>2009-02-02T21:05:18.519+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><category scheme='http://www.blogger.com/atom/ns#' term='dot-net linq'/><title type='text'>Linq-to-Entities doesn't support Collection.Contains</title><content type='html'>My Linq-to-Entity woes just won't come to an end. I tried doing a query like:&lt;br /&gt;var rset = (from iterRow in db.TableA&lt;br /&gt; where myArray.Contains(iterRow.Id)&lt;br /&gt; select iterRow);&lt;br /&gt;&lt;br /&gt;...but I just get the exception along the lines of:&lt;br /&gt;LINQ to Entities does not recognize the method 'Boolean Contains(Int32)'&lt;br /&gt;method, and this method cannot be translated into a store expression.&lt;br /&gt;&lt;br /&gt;As the Linq to Entities framework (from .NET 3.5 SP1) still doesn't support the Contains method, that just one more thing that makes me wonder why the stars didn't reveal that Linq to SQL would be a better choice for my project.&lt;br /&gt;&lt;br /&gt;There's a solution suggested &lt;a href="http://www.velocityreviews.com/forums/t645784-linq-where-clause.html"&gt;here&lt;/a&gt; (scroll down to the post by Hongye Sun from Microsoft - no pun intended) that I didn't try out yet, but there is another post &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/39fd5799-4d34-4e4f-a39f-76f2fd20b195/"&gt;here&lt;/a&gt; saying the solution was successful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3504292477741117529?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3504292477741117529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3504292477741117529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3504292477741117529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3504292477741117529'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/linq-to-entities-doesnt-support.html' title='Linq-to-Entities doesn&apos;t support Collection.Contains'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-6565386439586697787</id><published>2009-02-02T16:27:00.000+04:00</published><updated>2009-02-02T16:29:24.971+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><category scheme='http://www.blogger.com/atom/ns#' term='dot-net linq'/><title type='text'>LINQ to Entity Joins</title><content type='html'>Joins with LINQ-to-Entity are pretty straightforward - you don't have to write join conditions manually!&lt;br /&gt;&lt;br /&gt;However, sometimes you do get an error that looks a little like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;An expression of type PkTableEntity is not allowed in a subsequent from clause in a query expression with source type System.Data.Objects.ObjectQuery&amp;lt;FkTableEntity&amp;gt;. Type inference failed in the call to SelectMany.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It simply means that you've put your tables in the wrong order. I did something like this:&lt;br /&gt;&lt;br /&gt;var rset = (from iterFkEntity in objDbEntities.FkTableEntity&lt;br /&gt; from iterPkEntity in iterFkEntity.PkTableEntities&lt;br /&gt; where iterPkEntity.ColumnA == 3&lt;br /&gt; select iterFkEntity);&lt;br /&gt;&lt;br /&gt;To correct it, I simply had to flip over the PkTable and the FkTable and turn it into:&lt;br /&gt;&lt;br /&gt;var rset = (from iterPkEntity in objDbEntities.PkTableEntity&lt;br /&gt; from iterFkEntity in iterPkEntity.FkTableEntities&lt;br /&gt; where iterPkEntity.ColumnA == 3&lt;br /&gt; select iterFkEntity);&lt;br /&gt;&lt;br /&gt;Re-compile and the error is gone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-6565386439586697787?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/6565386439586697787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=6565386439586697787' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6565386439586697787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6565386439586697787'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/linq-to-entity-joins.html' title='LINQ to Entity Joins'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3709379823743335372</id><published>2009-02-02T16:18:00.001+04:00</published><updated>2009-02-02T16:18:38.573+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp-dot-net'/><title type='text'>UpdatePanels are not a drop-in replacement for Panels</title><content type='html'>I always thought an UpdatePanel was just a regular Panel with AJAX capabilities. Yesterday, a co-worker tried setting the style (CSS) attribute on an UpdatePanel and it just dropped an ASP.NET error. You can apply the style attribute to Panels but not to UpdatePanels.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3709379823743335372?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3709379823743335372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3709379823743335372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3709379823743335372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3709379823743335372'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/02/updatepanels-are-not-drop-in.html' title='UpdatePanels are not a drop-in replacement for Panels'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2287436982400111680</id><published>2009-01-31T08:17:00.001+04:00</published><updated>2009-01-31T08:17:57.843+04:00</updated><title type='text'>10 Things You Might Not Know About MySQL</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_952968"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/koke/10-things-presentation?type=presentation" title="10 things you might not know about MySQL"&gt;10 things you might not know about MySQL&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=10-things-1232961540880664-1&amp;stripped_title=10-things-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=10-things-1232961540880664-1&amp;stripped_title=10-things-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/koke"&gt;Jorge Bernal&lt;/a&gt;. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/mysql"&gt;mysql&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2287436982400111680?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2287436982400111680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2287436982400111680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2287436982400111680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2287436982400111680'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/10-things-you-might-not-know-about.html' title='10 Things You Might Not Know About MySQL'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3283952868334759295</id><published>2009-01-31T08:11:00.001+04:00</published><updated>2009-01-31T08:11:56.576+04:00</updated><title type='text'>Customer Support Web 2.0 Style</title><content type='html'>If you've been calling up the customer helpline only to find yourself on hold for over 10 minutes waiting for the first-level tech support script monkey to ask you a bunch of totally unrelated questions, then you ought to check out &lt;a href="http://getsatisfaction.com/"&gt;GetSatisfaction.com&lt;/a&gt; . It's like a social network of users who use a product and more often than not, you'll also find staff who know what they're dealing with to pitch in and help out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3283952868334759295?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3283952868334759295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3283952868334759295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3283952868334759295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3283952868334759295'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/customer-support-web-20-style.html' title='Customer Support Web 2.0 Style'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-498342901511371929</id><published>2009-01-31T07:57:00.003+04:00</published><updated>2009-01-31T07:59:23.126+04:00</updated><title type='text'>Get People To Your Meetup on Meetup.com</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img4.meetupstatic.com/img/38851232548061/logo_82.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 82px; height: 54px;" src="http://img4.meetupstatic.com/img/38851232548061/logo_82.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;If you're getting complete strangers from your region together for a meetup on just about anything, check out &lt;a href="http://www.meetup.com"&gt;http://www.meetup.com&lt;/a&gt; . It helps organize the meets by keeping a count of how many people are visiting, hosting polls &amp; pictures, and pretty much anything you would want to do for a meet up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-498342901511371929?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/498342901511371929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=498342901511371929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/498342901511371929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/498342901511371929'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/get-people-to-your-meetup-on-meetupcom.html' title='Get People To Your Meetup on Meetup.com'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-58346372101688522</id><published>2009-01-31T07:42:00.000+04:00</published><updated>2009-01-31T07:44:08.235+04:00</updated><title type='text'>PostgreSQL vs MySQL</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_950410"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/nikhilkadadi29/greatdebate-postgres-vs-mysql-presentation?type=powerpoint" title="Greatdebate Postgres vs Mysql"&gt;Greatdebate Postgres vs Mysql&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=greatdebateenterprisedboct0708-1232852161078508-1&amp;stripped_title=greatdebate-postgres-vs-mysql-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=greatdebateenterprisedboct0708-1232852161078508-1&amp;stripped_title=greatdebate-postgres-vs-mysql-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/nikhilkadadi29"&gt;nikhilkadadi29&lt;/a&gt;. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/great"&gt;great&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/mysql"&gt;mysql&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-58346372101688522?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/58346372101688522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=58346372101688522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/58346372101688522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/58346372101688522'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/postgresql-vs-mysql.html' title='PostgreSQL vs MySQL'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-8716009109148810226</id><published>2009-01-31T07:37:00.002+04:00</published><updated>2009-01-31T07:41:26.169+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net linq'/><title type='text'>LINQ to SQL and Entity Framework</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_948634"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/AlexMerle/ling-to-sql-and-entity-framework-performance-analysis-presentation?type=powerpoint" title="Ling to SQL and Entity Framework performance analysis"&gt;Ling to SQL and Entity Framework performance analysis&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=l2s-and-ef-performance-analysis-1232787471654617-3&amp;stripped_title=ling-to-sql-and-entity-framework-performance-analysis-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=l2s-and-ef-performance-analysis-1232787471654617-3&amp;stripped_title=ling-to-sql-and-entity-framework-performance-analysis-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/AlexMerle"&gt;AlexMerle&lt;/a&gt;. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/programming"&gt;programming&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/orm"&gt;orm&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-8716009109148810226?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/8716009109148810226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=8716009109148810226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8716009109148810226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8716009109148810226'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/linq-to-sql-and-entity-framework.html' title='LINQ to SQL and Entity Framework'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2052881055607521560</id><published>2009-01-31T00:31:00.000+04:00</published><updated>2009-01-31T00:32:04.600+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software-engineering'/><title type='text'>UML Use Case - Includes vs Extends</title><content type='html'>A couple of developers I know asked me about the includes and the extends for use cases. "includes" is used when the included use case is always executed as a part of another user case. "extends" is used when a use case is executed as a part of another only when an exceptional condition occurs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2052881055607521560?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2052881055607521560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2052881055607521560' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2052881055607521560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2052881055607521560'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/uml-use-case-includes-vs-extends.html' title='UML Use Case - Includes vs Extends'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-8422823174023222681</id><published>2009-01-29T22:11:00.000+04:00</published><updated>2009-01-29T22:12:48.285+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>More Linq2Entities From The Real World</title><content type='html'>I've built a WCF service that takes as a parameter an entity object with a reference to another entity (a foreign key-primary key relationship). When I try adding it to the database (context object) with LINQ, I get the following exception:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-color: green"&gt;The object cannot be added to the ObjectStateManager because it already has an EntityKey. Use ObjectContext.Attach to attach an object that has an existing key.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I tried manually attaching the entity reference, but that didn't seem to work either so I finally had to get the primary key value of the reference, re-fetch the object from the database and set the reference again with the newly-retrieved object.&lt;br /&gt;&lt;br /&gt;They make this so much harder than it should be :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-8422823174023222681?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/8422823174023222681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=8422823174023222681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8422823174023222681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8422823174023222681'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/more-linq2entities-from-real-world.html' title='More Linq2Entities From The Real World'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-9084652166825309870</id><published>2009-01-28T14:13:00.002+04:00</published><updated>2009-01-28T14:35:16.068+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>WCF in the Real World - a case of two definitions for a class</title><content type='html'>I've been using 2 WCF web services on my project - Service1.svc returns an entity object which I have to pass to Service2.svc. Now, after I add a service reference to both in Visual Studio, I get 2 classes - Service1.Entity and Service2.Entity and I can't cast one to the other.&lt;br /&gt;&lt;br /&gt;The solution is to either take the properties of one class and put it into another within the client-side code, or put the class into a class library used at both the server and the client side. At the client side, you simply have to add a reference to the DLL before you add the service reference to prevent svcutil from creating the class in a new namespace.&lt;br /&gt;&lt;br /&gt;UPDATE: You can find more about it &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/f31155d4-b50d-4b8e-988f-a91a55d399fa/"&gt;here&lt;/a&gt; and &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/e16f0508-4dcc-49c4-946c-3c1df8afea9b/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-9084652166825309870?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/9084652166825309870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=9084652166825309870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/9084652166825309870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/9084652166825309870'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/wcf-in-real-world-case-of-two.html' title='WCF in the Real World - a case of two definitions for a class'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2558621353315364730</id><published>2009-01-27T13:34:00.001+04:00</published><updated>2009-01-27T13:34:49.603+04:00</updated><title type='text'>Firefox CacheIt Plugin</title><content type='html'>The &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1700"&gt;Firefox CacheIt plugin&lt;/a&gt; lets you view cached versions of pages - it comes in pretty handy if the original source server is not accessible or if you want to view an older copy of the page.&lt;br /&gt;&lt;br /&gt;CacheIt uses the Google Cache, Way-Back Machine, and the Coral (...and perhaps Dot Cache too?) caches to get cached copies of the page.&lt;br /&gt;&lt;br /&gt;I used the Way-Back Machine to get a copy of David's Diary on Getting a Girlfriend, a popular Internet diary/blog from the late 90s. David's account no longer exists on the server so the diary was lost forever till Way-Back Machine traveled back through time and space and fetched a copy for me :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2558621353315364730?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2558621353315364730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2558621353315364730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2558621353315364730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2558621353315364730'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/firefox-cacheit-plugin.html' title='Firefox CacheIt Plugin'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7927890306940621727</id><published>2009-01-26T08:37:00.002+04:00</published><updated>2009-01-27T08:15:20.687+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Increasing Wanda's Vocabulary</title><content type='html'>Wanda is the fortune-telling fish you can add onto your *nix menu bar. When you click on her, she displays a random quote from William Shakespeare, Mark Twain, or other humorous quotes and riddles. If you don't have it, right-click your menu bar, click Add to Panel, select Fish and click Add.&lt;br /&gt;&lt;br /&gt;Behind the scenes, Wanda relies on the "fortune" command line application that displays random quotes from the fortunes file located at /usr/share/games/fortunes. You can view a list of all messages used by fortune from the file /usr/share/games/fortunes/fortunes. To edit this file, do the following:&lt;br /&gt;&lt;br /&gt;cd /usr/share/games/fortunes&lt;br /&gt;sudo vi fortunes&lt;br /&gt;&lt;br /&gt;At this point, the vi editor starts up. If you aren't familiar with the vi editor, you can use gedit instead - type "gedit fortunes" instead of "vi fortunes". You have to end every entry with a "%" sign on a blank line. After you've edited and saved the file, type the following command&lt;br /&gt;&lt;br /&gt;sudo strfile fortunes fortunes.dat&lt;br /&gt;&lt;br /&gt;Now, Wanda (and the command-line fortune) will display the new messages which could be anything from the Java Factoid of the Day, or a quote from Star Wars - "Who's the more foolish: The fool, or the fool who follows him?".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7927890306940621727?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7927890306940621727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7927890306940621727' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7927890306940621727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7927890306940621727'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/increasing-wandas-vocabulary.html' title='Increasing Wanda&apos;s Vocabulary'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2698998360681333481</id><published>2009-01-25T15:29:00.003+04:00</published><updated>2009-01-25T15:31:34.880+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp-dot-net'/><title type='text'>HttpException: The Controls collection cannot be modified because the control contains code blocks</title><content type='html'>A team mate had a pretty odd error from ASP.NET that comes up like this...&lt;br /&gt;&lt;br /&gt;Server Error in '/LaaziWeb' Application.&lt;br /&gt;&lt;br /&gt;Stack Trace:&lt;br /&gt;&lt;br /&gt;[HttpException (0x80004005): The Controls collection cannot be modified because the control contains code blocks (i.e. &amp;lt;% ... %&amp;gt;).]&lt;br /&gt;   System.Web.UI.ControlCollection.Add(Control child) +8674071&lt;br /&gt;   System.Web.UI.PageTheme.SetStyleSheet() +478&lt;br /&gt;   System.Web.UI.Page.OnInit(EventArgs e) +8694828&lt;br /&gt;   System.Web.UI.Control.InitRecursive(Control namingContainer) +333&lt;br /&gt;   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +378&lt;br /&gt;&lt;br /&gt;The error was a little hard to put a finger on, but I eventually traced it to a script that used a &amp;lt;%= txtBox1.ClientID %&amp;gt; with a document.getElementById. The script was in the HEAD section of the page and to make the exception disappear, I moved the script into the BODY section.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2698998360681333481?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2698998360681333481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2698998360681333481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2698998360681333481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2698998360681333481'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/httpexception-controls-collection.html' title='HttpException: The Controls collection cannot be modified because the control contains code blocks'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2929467115086348537</id><published>2009-01-25T14:43:00.001+04:00</published><updated>2009-01-25T14:43:51.435+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Cooliris: Web Image Viewer</title><content type='html'>A co-worker introduced me to the &lt;a href="http://www.cooliris.com/"&gt;Cooliris&lt;/a&gt;, a remarkably cool image browser for web galleries. It gives you an slightly iPhone-like view of the gallery and goes a step further in diminishing the boundary between what's on the web and what's on your desktop.&lt;br /&gt;&lt;br /&gt;I went onto the Cooliris website with Firefox running over Ubuntu 8.10, and I got a "Cooliris is not supported on this browser." :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2929467115086348537?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2929467115086348537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2929467115086348537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2929467115086348537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2929467115086348537'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/cooliris-web-image-viewer.html' title='Cooliris: Web Image Viewer'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-1227705033474141725</id><published>2009-01-23T23:34:00.000+04:00</published><updated>2009-01-23T23:35:10.184+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Seagate firmware upgrade wreaks havoc with 500GB HDDs</title><content type='html'>The firmware upgrade Seagate provides to fix the problem with 1TB Barracuda drives seems to work, except that when you've got the 500GB Barracuda, it bricks your disk.&lt;br /&gt;&lt;br /&gt;It's yet another case of lack of testing... their test engineers probably weren't curious enough to think "What if we tried the firmware on a system that also has 500GB drives?" Unlike what many people imagine, test engineers are more than just script monkeys - they've got to figure out ways to break something that seems to work perfectly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-1227705033474141725?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/1227705033474141725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=1227705033474141725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1227705033474141725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1227705033474141725'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/seagate-firmware-upgrade-wreaks-havoc.html' title='Seagate firmware upgrade wreaks havoc with 500GB HDDs'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2914568396392325638</id><published>2009-01-23T23:24:00.000+04:00</published><updated>2009-01-23T23:25:35.266+04:00</updated><title type='text'>Starting off with GDB</title><content type='html'>The GNU Debugger is pretty handy when developing applications in C for the Linux platform. Using it is pretty simple...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Compiling for Debug&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Compile your program with gcc, adding a "-g" option to include debugging symbols&lt;br /&gt;&lt;br /&gt;Example: gcc -g nitin.c&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Run with Debugger&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Execute GDB, providing the executable as a parameter&lt;br /&gt;&lt;br /&gt;Example: gdb a.out&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Start Execution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Get into the main method by typing "start main" followed by any parameters&lt;br /&gt;&lt;br /&gt;Example: start main hello&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step Through&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Go line-by-line by typing "n" or "next"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Watch&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Display variable values using the "print" command&lt;br /&gt;&lt;br /&gt;Example: print argv[1]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Breakpoints&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Set a breakpoint with the "b" or "break" command followed by the filename:line number&lt;br /&gt;&lt;br /&gt;Example: b nitin.c:25&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Continue&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Run till the next breakpoint using "c" or "continue"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;End&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Press Ctrl+C to stop execution, and "q" or "quit" to close GDB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2914568396392325638?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2914568396392325638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2914568396392325638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2914568396392325638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2914568396392325638'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/starting-off-with-gdb.html' title='Starting off with GDB'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-6386470949686885551</id><published>2009-01-22T13:33:00.000+04:00</published><updated>2009-01-22T13:47:14.426+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>HOWTO: VPN from Ubuntu 8.10</title><content type='html'>I have a Microsoft Windows based network at the office and they've setup a VPN connection for me to be able to hook up to the servers to take care of a couple of ASP.NET applications and manage the server.&lt;br /&gt;&lt;br /&gt;Ever since I installed Ubuntu 8.10, I've been a bit disconnected from the office as I can only access the services exposed by the web gateway, so I finally decided to setup a VPN connection from Linux.&lt;br /&gt;&lt;br /&gt;I started off by clicking on the network icon on the top-right of the menu bar and then Configure VPN (under VPN Connections). The VPN tab had the Add button disabled so I went to the command prompt (Application, Accessories, Terminal) and typed the following command:&lt;br /&gt;sudo apt-get -y install network-manager-pptp&lt;br /&gt;&lt;br /&gt;I then entered my password (for the sudo), after which it downloads and installs PPTP support. To make sure Add button under VPN is now enabled, I also type the command:&lt;br /&gt;sudo NetworkManager restart&lt;br /&gt;&lt;br /&gt;Now, I simply click the network icon (from the top-right of the menu bar), click Configure VPN (under VPN Connections), I click the Add button, type in the IP address of the VPN server for the Gateway, my ActiveDirectory (from the Windows domain) username and password, followed by the domain name. I click the Advanced button and check the "Use Point-to-Point encryption (MPPE)" checkbox and click Ok on both dialog boxes.&lt;br /&gt;&lt;br /&gt;To connect to the VPN, I click the network icon and under VPN Connections, I select the VPN connection that I just created.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-6386470949686885551?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/6386470949686885551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=6386470949686885551' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6386470949686885551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6386470949686885551'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/howto-vpn-from-ubuntu-810.html' title='HOWTO: VPN from Ubuntu 8.10'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-5387918897616419081</id><published>2009-01-22T10:03:00.001+04:00</published><updated>2009-01-22T10:03:45.450+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp-dot-net'/><title type='text'>Going Multi-Lingual With Parallel Folders in ASP.NET</title><content type='html'>As with any other programming problem, there are many ways to go about serving pages in multiple language to your visitors. The approach I'm trying out is using a folder for each language (EN, HI etc) and getting pages from both folders to point to the same code behind file. ASP.NET does require you to place the code behind file outside the App_Code folder, which did seem a little odd to me at first.&lt;br /&gt;&lt;br /&gt;In the end, I ended up with a folder structure a little like this:&lt;br /&gt;en&lt;br /&gt;--Admin&lt;br /&gt;----Console.aspx&lt;br /&gt;--User&lt;br /&gt;----Listing.aspx&lt;br /&gt;hi&lt;br /&gt;--Admin&lt;br /&gt;----Console.aspx&lt;br /&gt;--User&lt;br /&gt;----Listing.aspx&lt;br /&gt;CodeBehind&lt;br /&gt;--Admin&lt;br /&gt;----Console.cs&lt;br /&gt;--User&lt;br /&gt;----Listing.cs&lt;br /&gt;&lt;br /&gt;You might want to try the globalization &amp; localization features in ASP.NET. They are totally awesome when you don't need to change the look of a page by much (think about changing left-to-right to right-to-left) when displaying the same page in a different language.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-5387918897616419081?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/5387918897616419081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=5387918897616419081' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5387918897616419081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5387918897616419081'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/going-multi-lingual-with-parallel.html' title='Going Multi-Lingual With Parallel Folders in ASP.NET'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2114257157866200574</id><published>2009-01-22T08:46:00.000+04:00</published><updated>2009-01-22T08:47:07.872+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Java OpenGL (JOGL)</title><content type='html'>I'm hoping to try out the Java OpenGL wrapper tonight. It's based on the JSR 231 spec. You can find some sample source code on Wikipedia at:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Java_OpenGL"&gt;http://en.wikipedia.org/wiki/Java_OpenGL&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can get the JOGL binaries for your platform on the JOGL site &lt;a href="https://jogl.dev.java.net/servlets/ProjectDocumentList?folderID=9260&amp;expandFolder=9260&amp;folderID=9260"&gt;here&lt;/a&gt;. It's for the May '08 release. If you've been working with the C API for OpenGL, the JOGL will seem pretty close, which makes it an easy transition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2114257157866200574?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2114257157866200574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2114257157866200574' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2114257157866200574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2114257157866200574'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/java-opengl-jogl.html' title='Java OpenGL (JOGL)'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-9162072653645093263</id><published>2009-01-22T08:28:00.001+04:00</published><updated>2009-01-22T08:33:23.618+04:00</updated><title type='text'>Finding OpenSource Developers</title><content type='html'>If you're looking for developers to work on your open source project, you ought to try posting to the Help Wanted section of SourceForge at:&lt;br /&gt;&lt;a href="https://sourceforge.net/people/"&gt;https://sourceforge.net/people/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-9162072653645093263?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/9162072653645093263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=9162072653645093263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/9162072653645093263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/9162072653645093263'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/finding-opensource-developers.html' title='Finding OpenSource Developers'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-164162649992725258</id><published>2009-01-20T21:05:00.002+04:00</published><updated>2009-01-20T21:13:44.755+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp-dot-net'/><title type='text'>ADO.NET Data Service</title><content type='html'>If you use LINQ, you'll definitely like ADO.NET Data Services. It lets you perform LINQ queries remotely so your database can be with a web server behind a firewall, and the client can access the database through the web server.&lt;br /&gt;&lt;br /&gt;The ADO.NET Data Service is a class that inherits from a DataService generic class (the context class is used for the generic type). Example:&lt;span style="color: green; font-face: 'Courier New';"&gt;&lt;br /&gt;public class WebDataService : DataService&amp;lt;NitinEntities&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The InitializeService method is used to set access privileges. Example:&lt;span style="color: green; font-face: 'Courier New';"&gt;&lt;br /&gt;public static void InitializeService(IDataServiceConfiguration config)&lt;br /&gt;{&lt;br /&gt;config.SetEntitySetAccessRule("*", EntitySetRights.All);&lt;br /&gt;config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can add additional methods that return the IQueryable generic type. Think of them as the equivalent of views over tables.&lt;br /&gt;&lt;br /&gt;The client application needs to have a service reference. After adding the reference, you'll find a context class (WebDataService.NitinEntities) that you can use. You can run LINQ queries over the context remotely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-164162649992725258?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/164162649992725258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=164162649992725258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/164162649992725258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/164162649992725258'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/adonet-data-service.html' title='ADO.NET Data Service'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3881086456882560206</id><published>2009-01-20T20:45:00.000+04:00</published><updated>2009-01-20T20:46:33.875+04:00</updated><title type='text'>Evolving SlideShare</title><content type='html'>SlideShare has been given a makeover - check out the new Embed feature. From too many icons and annoying hover-over DIVs that cover up icons, they went on to display Blogger, Facebook, Twitter and a "more" link.&lt;br /&gt;&lt;br /&gt;SlideShare is also integrated with Google authentication if you are posting to Blogger.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3881086456882560206?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3881086456882560206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3881086456882560206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3881086456882560206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3881086456882560206'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/evolving-slideshare.html' title='Evolving SlideShare'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2261899962158089930</id><published>2009-01-20T20:16:00.001+04:00</published><updated>2009-01-20T20:16:58.919+04:00</updated><title type='text'>Spring 3 MVC   CodeMash 2009</title><content type='html'>Check out this SlideShare Presentation: &lt;div style="width:425px;text-align:left" id="__ss_915100"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/kensipe/spring-mvc-code-mash09-presentation?type=powerpoint" title="Spring 3 MVC   CodeMash 2009"&gt;Spring 3 MVC   CodeMash 2009&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=spring-mvc-code-mash09a-1231894880943441-1&amp;stripped_title=spring-mvc-code-mash09-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=spring-mvc-code-mash09a-1231894880943441-1&amp;stripped_title=spring-mvc-code-mash09-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/mvc"&gt;mvc&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/spring"&gt;spring&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2261899962158089930?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2261899962158089930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2261899962158089930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2261899962158089930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2261899962158089930'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/spring-3-mvc-codemash-2009.html' title='Spring 3 MVC   CodeMash 2009'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-1949315106712642927</id><published>2009-01-20T11:28:00.000+04:00</published><updated>2009-01-20T11:29:14.524+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net linq'/><title type='text'>LINQ to Entity Trash</title><content type='html'>I know, I know, everyone's talking about usin LINQ to Entities instead of LINQ to SQL, but there's so much that simply doesn't work when using LINQ to Entities.&lt;br /&gt;&lt;br /&gt;First off, if you need to run a stored procedure that has nothing to do with any of the entities you are working with, the Entity framework simply can't handle it.&lt;br /&gt;&lt;br /&gt;Secondly, there's the lack of support for using Contains to mimic SQL's IN operator. (You can use the Contains method as the equivalent of SQL's LIKE)&lt;br /&gt;&lt;br /&gt;The Entity framework does have potential and version 2.0 is something I'm really looking forward to, but what I'm saying is that it is just not fully developed to use in all of your applications yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-1949315106712642927?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/1949315106712642927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=1949315106712642927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1949315106712642927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1949315106712642927'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/linq-to-entity-trash.html' title='LINQ to Entity Trash'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-942892042580549849</id><published>2009-01-19T22:09:00.000+04:00</published><updated>2009-01-19T22:09:00.305+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Quiz Engine: XML Parsing in Java</title><content type='html'>I've made up a port of the Quiz Engine in Java, and I've re-structured the source code repo to accomodate the port too. The XML parsing but in Java looks a little messy; I put it together as a hack to simply work.&lt;br /&gt;&lt;br /&gt;You can find it on sourceforge at:&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/quiz-engine/"&gt;https://sourceforge.net/projects/quiz-engine/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-942892042580549849?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/942892042580549849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=942892042580549849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/942892042580549849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/942892042580549849'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/quiz-engine-xml-parsing-in-java.html' title='Quiz Engine: XML Parsing in Java'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-6796070628431871529</id><published>2009-01-19T10:17:00.000+04:00</published><updated>2009-01-19T10:17:00.191+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>JAXP Switching Implementations</title><content type='html'>I was thinking about the kind of effort it would take to switch between different implementations underlying the JAXP API so I did a Google search and came across an article on the Sun website with the following. It basically means you can switch between JAXP implementations with absolutely zero code changes.&lt;br /&gt;&lt;span style="font-face: Courier New; color: green;"&gt;&lt;br /&gt;The factory APIs let you plug in an XML implementation offered by another vendor without changing your source code. The implementation you get depends on the setting of the javax.xml.parsers.SAXParserFactory, javax.xml.parsers.DocumentBuilderFactory, and javax.xml.transform.TransformerFactory system properties, using System.setProperties() in the code, &amp;lt;sysproperty key="..." value="..."/&amp;gt; in an Ant build script, or -DpropertyName="..." on the command line. The default values (unless overridden at runtime on the command line or in the code) point to Sun's implementation.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-6796070628431871529?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/6796070628431871529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=6796070628431871529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6796070628431871529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6796070628431871529'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/jaxp-switching-implementations_19.html' title='JAXP Switching Implementations'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2004251261737734174</id><published>2009-01-19T09:53:00.000+04:00</published><updated>2009-01-19T09:53:01.893+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>iText: A PDF library for Java/.NET</title><content type='html'>I've been trying the iText library lately. It makes generating PDFs quite simple. Check out this C# code snippet of inserting an image (JPEG, in this case) into a PDF:&lt;br /&gt;&lt;br /&gt;            Document doc = new Document();&lt;br /&gt;            PdfWriter pdf = PdfWriter.GetInstance(doc, new System.IO.FileStream("fileout.pdf", System.IO.FileMode.Create));&lt;br /&gt;            doc.Open();&lt;br /&gt;            doc.NewPage();&lt;br /&gt;&lt;br /&gt;            #region Getting my byte array&lt;br /&gt;            //You don't have to do this if you are using a database - read the image as a byte array from the database instead&lt;br /&gt;            FileStream fstream = new FileStream(@"C:\rosewhite.jpg", System.IO.FileMode.Open);&lt;br /&gt;            byte[] byteBuf = new byte[100000];&lt;br /&gt;            int actualSize = fstream.Read(byteBuf, 0, 100000);&lt;br /&gt;            byte[] byteBufNew = new Byte[byteBuf.Length];&lt;br /&gt;            for (int i = 0; i &lt; byteBuf.Length; i++)&lt;br /&gt;            {&lt;br /&gt;                byteBufNew[i] = byteBuf[i];&lt;br /&gt;            }&lt;br /&gt;            #endregion&lt;br /&gt;&lt;br /&gt;            //provide the byte array you got from the database in place of byteBufNew&lt;br /&gt;            doc.Add(new Jpeg(byteBufNew));&lt;br /&gt;            doc.Close();&lt;br /&gt;&lt;br /&gt;You can do lots of other stuff with iText too, such as inserting tables, add digital signatures, bookmarks etc. iText is a free library and can read more about it &lt;a href="http://www.lowagie.com/iText/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2004251261737734174?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2004251261737734174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2004251261737734174' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2004251261737734174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2004251261737734174'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/itext-pdf-library-for-javanet.html' title='iText: A PDF library for Java/.NET'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-357206865917978094</id><published>2009-01-18T22:41:00.001+04:00</published><updated>2009-01-18T22:41:11.226+04:00</updated><title type='text'>List of Software Development Methodologies</title><content type='html'>&lt;div&gt;&lt;br /&gt;  &lt;span style="font-size:14px;" class="slideshow-title"&gt;Software Project Methods&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;  From: &lt;a class="slideshow-author" href="http://www.slideshare.net/craigwbrown"&gt;craigwbrown&lt;/a&gt;,&lt;br /&gt;  &lt;span class="ago"&gt;2 days ago&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div class="slideshow-embed"&gt;&lt;div style="width:425px;text-align:left" id="__ss_923370"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/craigwbrown/software-project-methods-presentation?type=powerpoint" title="Software Project Methods"&gt;Software Project Methods&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=methodsnoopa-1232110331437350-2&amp;stripped_title=software-project-methods-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=methodsnoopa-1232110331437350-2&amp;stripped_title=software-project-methods-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/craigwbrown/software-project-methods-presentation?type=powerpoint" title="View Software Project Methods on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/pmi"&gt;pmi&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/pmbok"&gt;pmbok&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div class="slideshow-description"&gt;A summary of the more popular software develpment processes and methods.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;a class="slideshow-link" href="http://www.slideshare.net/craigwbrown/software-project-methods-presentation"&gt;SlideShare Link&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTIzMjMwNDAxNDY3MiZwdD*xMjMyMzA*MDY1MDA*JnA9MTAxOTEmZD*mbj1ibG9nZ2VyJmc9MSZ*PSZvPTlkNzU*OWE3MmM4NzRiOTJiYzdiNDIwNTIyN2UwNWQw.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-357206865917978094?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/357206865917978094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=357206865917978094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/357206865917978094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/357206865917978094'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/list-of-software-development.html' title='List of Software Development Methodologies'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4357570917099970941</id><published>2009-01-18T15:19:00.000+04:00</published><updated>2009-01-18T15:20:13.069+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>XML Parsing .NET Example</title><content type='html'>I spent about an hour yesterday cooking up a sample on XML parsing and I came up with a minimalist quiz engine. It reads an XML file, gets the users answers, and displays a score at the end.&lt;br /&gt;&lt;br /&gt;I've uploaded it onto SourceForge, so check it out at:&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/quiz-engine/"&gt;https://sourceforge.net/projects/quiz-engine/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4357570917099970941?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4357570917099970941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4357570917099970941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4357570917099970941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4357570917099970941'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/xml-parsing-net-example.html' title='XML Parsing .NET Example'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-1233256143273659622</id><published>2009-01-18T12:42:00.001+04:00</published><updated>2009-01-18T12:51:39.104+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>Entity Framework - Don't Forget to Detach</title><content type='html'>Often in the web programming model, we make use of disconnected data sets. When using LINQ-to-Entity to fetch data, you have to remember to call the Detach method of the context. If you do not detach the object, the context continues to maintain a reference which keeps it from being garbage collected.&lt;br /&gt;&lt;br /&gt;Here's an example:&lt;br /&gt;public Customer GetById(int aId) {&lt;br /&gt;DataEntities de = new DataEntities();&lt;br /&gt;var retVal = (from iterCust in de.Customers&lt;br /&gt;  where iterCust.Id = aId&lt;br /&gt;  select iterCust).FirstOrDefault();&lt;br /&gt;de.Detach(retVal); //detach the object from the context&lt;br /&gt;return retVal;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;You do not have to do this when you set the NoTracking MergeOption (set de.Customer.MergeOption).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-1233256143273659622?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/1233256143273659622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=1233256143273659622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1233256143273659622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1233256143273659622'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/entity-framework-dont-forget-to-detach.html' title='Entity Framework - Don&apos;t Forget to Detach'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2540494447232101016</id><published>2009-01-18T09:42:00.000+04:00</published><updated>2009-01-18T09:42:01.122+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>More On Writing XML In Java</title><content type='html'>After trying JDOM, I just had to check out the built-in XML features of the Java Development Kit. I used the Java API for XML Processing with the Apache Xerces underneath (included with Sun's JDK 6). Here's the sample I came up with:&lt;br /&gt;&lt;br /&gt;import javax.xml.parsers.*;&lt;br /&gt;import org.w3c.dom.*;&lt;br /&gt;import javax.xml.transform.*;&lt;br /&gt;import javax.xml.transform.dom.*;&lt;br /&gt;import java.io.*;&lt;br /&gt;import javax.xml.transform.stream.*;&lt;br /&gt;//SNIP&lt;br /&gt;DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();&lt;br /&gt;DOMImplementation di = dbf.newDocumentBuilder().getDOMImplementation();&lt;br /&gt;Document doc = di.createDocument("http://example.com/", "rootElement", null);&lt;br /&gt;Element el = doc.createElement("childElement");&lt;br /&gt;doc.getDocumentElement().appendChild(el);&lt;br /&gt;Transformer trans = TransformerFactory.newInstance().newTransformer();&lt;br /&gt;DOMSource ds = new DOMSource(doc);&lt;br /&gt;FileOutputStream fostr = new FileOutputStream("xmlout.xml");&lt;br /&gt;StreamResult strResult = new StreamResult(fostr);&lt;br /&gt;trans.transform(ds, strResult);&lt;br /&gt;fostr.flush();&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2540494447232101016?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2540494447232101016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2540494447232101016' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2540494447232101016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2540494447232101016'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/more-on-writing-xml-in-java.html' title='More On Writing XML In Java'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2239336242221297919</id><published>2009-01-17T11:10:00.000+04:00</published><updated>2009-01-17T11:11:21.239+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS Generic Fonts</title><content type='html'>When specifying fonts through CSS using the "font-family" attribute, you might have users who can't display some of the text correctly when they don't have the font you are using. Sure, you can provide multiple fonts with a comma separated list, but does it have to be so hard?&lt;br /&gt;&lt;br /&gt;CSS provides 5 generic fonts that you can provide at the end of the CSS list so you don't have to list every font in existence just to get your page to display in a particular way. The 5 generic fonts are: cursive, fantasy, monospace, sans-serif, and serif.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2239336242221297919?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2239336242221297919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2239336242221297919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2239336242221297919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2239336242221297919'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/css-generic-fonts.html' title='CSS Generic Fonts'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-891338206708966415</id><published>2009-01-17T10:28:00.001+04:00</published><updated>2009-01-17T10:31:17.240+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>Reflection in .NET</title><content type='html'>The Microsoft .NET Framework makes it really simple to dynamically load a type based on configuration info provided. It comes in pretty handy for building plug-in based systems.&lt;br /&gt;&lt;br /&gt;In today's code sample, we'll start off with a simple class:&lt;br /&gt;&lt;span style="font-family: Courier New; color: green;"&gt;&lt;br /&gt;namespace GateLib&lt;br /&gt;{&lt;br /&gt;    public class Neptune&lt;br /&gt;    {&lt;br /&gt;        public string GetAString()&lt;br /&gt;        {&lt;br /&gt;            return "Nile River";&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;After compiling the class into a class library (DLL), we start work on our code to call the class method. Let's build a console application for simplicity sake. Here's the code we put into the Main method:&lt;br /&gt;&lt;span style="font-family: Courier New; color: green;"&gt;&lt;br /&gt;            Assembly asm = Assembly.LoadFile(System.Environment.CurrentDirectory + "\\GateLib.dll");            &lt;br /&gt;            Type ty = asm.GetType("GateLib.Neptune");&lt;br /&gt;            MethodInfo meth = ty.GetMethod("GetAString");&lt;br /&gt;            ConstructorInfo ci = ty.GetConstructor(Type.EmptyTypes);&lt;br /&gt;            object obj = ci.Invoke(null);&lt;br /&gt;            object retval = meth.Invoke(obj, null);&lt;br /&gt;            Console.WriteLine(retval.ToString());&lt;br /&gt;            Console.Read();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In this code sample, I'm using the default constructor for the Neptune class that takes no parameters (notice the Type.EmptyTypes and the null in the ci.Invoke), and the method GetAString that takes no parameters (it's the null in the meth.Invoke).&lt;br /&gt;&lt;br /&gt;After compiling the console application, I place the class library in the same folder as the EXE, and execute the console application to get "Nile River" on-screen.&lt;br /&gt;&lt;br /&gt;I know it doesn't do much but it's just a start. You'll probably end up doing so much more with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-891338206708966415?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/891338206708966415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=891338206708966415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/891338206708966415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/891338206708966415'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/reflection-in-net.html' title='Reflection in .NET'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-8490432199715709229</id><published>2009-01-17T08:13:00.000+04:00</published><updated>2009-01-17T08:13:01.209+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>JDOM For Generating XML</title><content type='html'>As you've probably figured out from my blog, I'm an ASP.NET C# web developer who loves trying out alternative technologies. There has always got to be another way to do something and if there isn't, then it's time to fire up the IDE and write some open source software!&lt;br /&gt;&lt;br /&gt;After being pretty impressed with the XML API for writing XML documents with the Microsoft .NET Framework, I wanted to check out what Java had to offer. At the start, it was pretty confusing as there were so many different libraries and APIs so I didn't know what to pick. When I asked around, a developer suggested that I try out JDOM. &lt;a href="http://www.jdom.org/"&gt;JDOM&lt;/a&gt; is a pretty simple library for working with XML and is pretty close to Microsoft .NET's API. I decided to take it for a spin and here's what I came up with:&lt;br /&gt;&lt;br /&gt;import org.jdom.*;&lt;br /&gt;import java.io.*&lt;br /&gt;//SNIP&lt;br /&gt;Document doc = new Document();&lt;br /&gt;Element elroot = new Element("root");&lt;br /&gt;elroot.setText("This is the root");&lt;br /&gt;doc.addContent(elroot);&lt;br /&gt;output.XMLOutputter xo = new output.XMLOutputter();&lt;br /&gt;FileOutputStream fos = new FileOutputStream("xmlout.xml");&lt;br /&gt;xo.output(doc, fos);&lt;br /&gt;&lt;br /&gt;JDOM's simplicity makes it very appealing to use when dealing with small amounts of data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-8490432199715709229?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/8490432199715709229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=8490432199715709229' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8490432199715709229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8490432199715709229'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/jdom-for-generating-xml.html' title='JDOM For Generating XML'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-6168182467254708125</id><published>2009-01-16T10:50:00.000+04:00</published><updated>2009-01-16T10:50:00.726+04:00</updated><title type='text'>MS Office 14 Alpha Screenshots</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://media.arstechnica.com/journals/microsoft.media/500/microsoft_office.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; height: 90px;" src="http://media.arstechnica.com/journals/microsoft.media/500/microsoft_office.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;ArsTechnica has a couple of &lt;a href="http://arstechnica.com/journals/microsoft.ars/2009/01/15/leaked-first-office-14-screenshots"&gt;screenshots of MS Office 14&lt;/a&gt; from the Alpha version released earlier this week. The new version features the ribbon interface for Visio, the Office Anytime update (to purchase additional features), and a USB Office device option (to take MS Office with you to work when you don't have MS Office installed on another device?).&lt;br /&gt;&lt;br /&gt;There hasn't been a major shift from the Office 2007 interface, which is a big plus as firms don't have to re-train their staff to use a new interface.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-6168182467254708125?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/6168182467254708125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=6168182467254708125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6168182467254708125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6168182467254708125'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/ms-office-14-alpha-screenshots.html' title='MS Office 14 Alpha Screenshots'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4965323528514079540</id><published>2009-01-16T09:36:00.003+04:00</published><updated>2009-01-17T08:22:20.603+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Seagate's 1TB Barracuda Bug</title><content type='html'>Seagate has been experiencing problems with the 7200.11 Barracuda terabyte hard drives (ST31000340AS, but not the ST31000333AS). A defective firmware is the cause of the failure and the replacement drives that Seagate ships out have the same problem.&lt;br /&gt;&lt;br /&gt;On the Seagate website, they still have a &lt;a href="http://www.seagate.com/www/en-us/products/desktops/barracuda_hard_drives/barracuda_7200.11/"&gt;banner&lt;/a&gt; up (saying "The Barracuda 1 TB Drive in action") advertising their 1 terabyte model instead of the 1.5 terabyte model, which isn't affected by the bug. I don't know about them, but if I had a bigger hard drive, I'd switch all my banners to advertise the bigger one especially if the smaller one had a bug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4965323528514079540?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4965323528514079540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4965323528514079540' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4965323528514079540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4965323528514079540'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/seagates-1tb-barracuda-bug.html' title='Seagate&apos;s 1TB Barracuda Bug'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4988329852380327066</id><published>2009-01-16T09:36:00.001+04:00</published><updated>2009-01-16T09:36:37.159+04:00</updated><title type='text'>What's New for Developers in SQL Server 2008</title><content type='html'>&lt;div&gt;&lt;br /&gt;  &lt;span style="font-size:14px;" class="slideshow-title"&gt;SQL Server 2008 Overview&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;  From: &lt;a class="slideshow-author" href="http://www.slideshare.net/ukdpe"&gt;ukdpe&lt;/a&gt;,&lt;br /&gt;  &lt;span class="ago"&gt;1 month ago&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div class="slideshow-embed"&gt;&lt;div style="width:425px;text-align:left" id="__ss_837335"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/ukdpe/sql-server-2008-overview-presentation-837335?type=powerpoint" title="SQL Server 2008 Overview"&gt;SQL Server 2008 Overview&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=sql-server-2008-overview-1228959150094657-1&amp;stripped_title=sql-server-2008-overview-presentation-837335" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=sql-server-2008-overview-1228959150094657-1&amp;stripped_title=sql-server-2008-overview-presentation-837335" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/ukdpe/sql-server-2008-overview-presentation-837335?type=powerpoint" title="View SQL Server 2008 Overview on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/sql"&gt;sql&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/2008"&gt;2008&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div class="slideshow-description"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;a class="slideshow-link" href="http://www.slideshare.net/ukdpe/sql-server-2008-overview-presentation-837335"&gt;SlideShare Link&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTIzMjA4NDE3MzAyNCZwdD*xMjMyMDg*MTkwNzY5JnA9MTAxOTEmZD*mbj1ibG9nZ2VyJmc9MSZ*PSZvPTlkNzU*OWE3MmM4NzRiOTJiYzdiNDIwNTIyN2UwNWQw.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4988329852380327066?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4988329852380327066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4988329852380327066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4988329852380327066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4988329852380327066'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/whats-new-for-developers-in-sql-server.html' title='What&apos;s New for Developers in SQL Server 2008'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4942817444683055238</id><published>2009-01-16T08:24:00.001+04:00</published><updated>2009-01-16T08:24:08.076+04:00</updated><title type='text'>Using Frameworks With PHP</title><content type='html'>&lt;div&gt;&lt;br /&gt;  &lt;span style="font-size:14px;" class="slideshow-title"&gt;Rasmus, Think Again! Agile Framework == Happy Php Developer&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;  From: &lt;a class="slideshow-author" href="http://www.slideshare.net/arnoschn"&gt;arnoschn&lt;/a&gt;,&lt;br /&gt;  &lt;span class="ago"&gt;3 months ago&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div class="slideshow-embed"&gt;&lt;div style="width:425px;text-align:left" id="__ss_625122"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/arnoschn/rasmus-think-again-agile-framework-happy-php-developer-presentation-625122?type=powerpoint" title="Rasmus, Think Again! Agile Framework == Happy Php Developer"&gt;Rasmus, Think Again! Agile Framework == Happy Php Developer&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=rasmus-think-again-agile-framework-happy-php-developer-1222716601566030-9&amp;stripped_title=rasmus-think-again-agile-framework-happy-php-developer-presentation-625122" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=rasmus-think-again-agile-framework-happy-php-developer-1222716601566030-9&amp;stripped_title=rasmus-think-again-agile-framework-happy-php-developer-presentation-625122" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/arnoschn/rasmus-think-again-agile-framework-happy-php-developer-presentation-625122?type=powerpoint" title="View Rasmus, Think Again! Agile Framework == Happy Php Developer on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/comparison"&gt;comparison&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/phpbcnint08"&gt;phpbcnint08&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div class="slideshow-description"&gt;Talk was held during the PHP Conference in Barcelona (27.09.2008), which was also attended by Derick Rethans, Scott MacVicar and other international speakers. It shows the advantages of using a php framework vs. spaghetti code for web application development in an agile manner.&lt;br /&gt;A simple example based on the Akelos PHP Framework shows you how to implement a fulltext search in less than 20 minutes.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;a class="slideshow-link" href="http://www.slideshare.net/arnoschn/rasmus-think-again-agile-framework-happy-php-developer-presentation-625122"&gt;SlideShare Link&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTIzMjA3OTgxNTk1NSZwdD*xMjMyMDc5ODQwODk2JnA9MTAxOTEmZD*mbj1ibG9nZ2VyJmc9MSZ*PSZvPTlkNzU*OWE3MmM4NzRiOTJiYzdiNDIwNTIyN2UwNWQw.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4942817444683055238?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4942817444683055238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4942817444683055238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4942817444683055238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4942817444683055238'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/using-frameworks-with-php.html' title='Using Frameworks With PHP'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3067499053671759685</id><published>2009-01-15T21:46:00.002+04:00</published><updated>2009-01-15T21:51:53.745+04:00</updated><title type='text'>Hello World With GTK+ Programming</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Fixing the "Package gtk+-2.0 was not found in the pkg-config search path" error&lt;/span&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;getting the Hello World GTK+ example to compile&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Today, I thought I'd try my hand at GTK+ programming. Win32 GUI programming was fun, and I didn't go all the way till the edge of the world with it, but I wanted to try something different for more insight.&lt;br /&gt;&lt;br /&gt;I started off by looking at the Hello World GTK+ tutorial here, and tried compiling the following code.&lt;br /&gt;&lt;span style="color: green; font-family: Courier New;"&gt;&lt;br /&gt;#include &amp;lt;gtk/gtk.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int main (int argc, char *argv[] )&lt;br /&gt;{&lt;br /&gt;    GtkWidget *window;&lt;br /&gt;    &lt;br /&gt;    gtk_init (&amp;argc, &amp;argv);&lt;br /&gt;    &lt;br /&gt;    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);&lt;br /&gt;    gtk_widget_show  (window);&lt;br /&gt;    &lt;br /&gt;    gtk_main ();&lt;br /&gt;    &lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Compilation failed with the error "Package gtk+-2.0 was not found in the pkg-config search path" so I figured I didn't have the GTK+ development library. A quick search from the Synaptic Package Manager revealed that there was a libgtk2.0-dev package that I didn't have installed.&lt;br /&gt;&lt;br /&gt;As soon as I installed the package, compiled the source code and executed the program, a GTK+ window popped up! This could be a whole new beginning for me. Let's so how far it goes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3067499053671759685?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3067499053671759685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3067499053671759685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3067499053671759685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3067499053671759685'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/hello-world-with-gtk-programming.html' title='Hello World With GTK+ Programming'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3074243920909471940</id><published>2009-01-15T15:07:00.001+04:00</published><updated>2009-01-15T15:13:11.522+04:00</updated><title type='text'>A Sick Day Off From My Blog</title><content type='html'>Hi!&lt;br /&gt;&lt;br /&gt;I'm taking a sick day off from my blog today. Sorry, I'm just feeling under the weather.&lt;br /&gt;&lt;br /&gt;Hope you're having a good day out there.&lt;br /&gt;&lt;br /&gt;-Nitin&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3074243920909471940?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3074243920909471940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3074243920909471940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3074243920909471940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3074243920909471940'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/sick-day-off-from-my-blog.html' title='A Sick Day Off From My Blog'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4736670940625884877</id><published>2009-01-14T19:22:00.002+04:00</published><updated>2009-01-14T19:26:13.041+04:00</updated><title type='text'>Blogger Text Size</title><content type='html'>I seem to be having a problem with the text size on my blog. The first couple of articles on my blog look normal, but after the 3rd or 4th entry, the text size is small. I'm guessing it's a temporary thing that will go away just as mysteriously as it appeared.&lt;br /&gt;&lt;br /&gt;In the meanwhile, if you're finding it difficult to read the text, use your browser to increase the text size. Under the View menu of your browser, you'll have an Increase Text Size, or Zoom, or something similar.&lt;br /&gt;&lt;br /&gt;If the problem persists tomorrow, I'll see if I can create a workaround.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4736670940625884877?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4736670940625884877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4736670940625884877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4736670940625884877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4736670940625884877'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/blogger-text-size.html' title='Blogger Text Size'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-8332293226474061072</id><published>2009-01-14T09:56:00.001+04:00</published><updated>2009-01-14T09:56:05.450+04:00</updated><title type='text'>Introduction to OpenGL</title><content type='html'>                &lt;div&gt;&lt;br /&gt;                  &lt;span class="slideshow-title" style="font-size:14px;"&gt;SIGRAPH Asia 2008 Modern OpenGL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                  From: &lt;a href="http://www.slideshare.net/Mark_Kilgard" class="slideshow-author"&gt;Mark_Kilgard&lt;/a&gt;,&lt;br /&gt;                  &lt;span class="ago"&gt;4 days ago&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-embed"&gt;&lt;div style="width:425px;text-align:left" id="__ss_905245"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/Mark_Kilgard/sigraph-asia-2008-modern-opengl-presentation?type=powerpoint" title="SIGRAPH Asia 2008 Modern OpenGL"&gt;SIGRAPH Asia 2008 Modern OpenGL&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=sa2008modernopengl-1231549184153966-1&amp;stripped_title=sigraph-asia-2008-modern-opengl-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=sa2008modernopengl-1231549184153966-1&amp;stripped_title=sigraph-asia-2008-modern-opengl-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/Mark_Kilgard/sigraph-asia-2008-modern-opengl-presentation?type=powerpoint" title="View SIGRAPH Asia 2008 Modern OpenGL on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/gpu"&gt;gpu&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/kilgard"&gt;kilgard&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-description"&gt;A long-time implementer of OpenGL (Mark Kilgard, NVIDIA) and the system's original architect (Kurt Akeley, Microsoft) explain OpenGL's design and evolution. OpenGL's state machine is now a complex data-flow with multiple programmable stages. OpenGL practitioners can expect candid design explanations, advice for programming modern GPUs, and insight into OpenGL's future. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These slides were presented at SIGGRAPH Asia 2008 for the "Modern OpenGL: Its Design and Evolution" course.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Course abstract: OpenGL was conceived in 1991 to provide an industry standard for programming the hardware graphics pipeline. The original design has evolved considerably over the last 17 years. Whereas capabilities mandated by OpenGL such as texture mapping and a stencil buffer were present only on the world's most expensive graphics hardware back in 1991, now these features are completely pervasive in PCs and now even available in several hand-held devices. Over that time, OpenGL's original fixed-function state machine has evolved into a complex data-flow including several application-programmable stages. And the performance of OpenGL has increased from 100x to over 1,000x in many important raw graphics operations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this course, a long-time implementer of OpenGL and the system's original architect explain OpenGL's design and evolution.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You will learn how the modern (post-2006) graphics hardware pipeline is exposed through OpenGL. You will hear Kurt Akeley's personal retrospective on OpenGL's development. You will learn nine ways to write better OpenGL programs. You will learn how modern OpenGL implementations operate. Finally we discuss OpenGL's future evolution.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Whether you program with OpenGL or program with another API such as Direct3D, this course will give you new insights into graphics hardware architecture, programmable shading, and how to best take advantage of modern GPUs.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;a href="http://www.slideshare.net/Mark_Kilgard/sigraph-asia-2008-modern-opengl-presentation" class="slideshow-link"&gt;SlideShare Link&lt;/a&gt;&lt;br /&gt;                &lt;/div&gt;&lt;br /&gt;              &lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTIzMTkxMjU*MDg4OSZwdD*xMjMxOTEyNTU3MjU*JnA9MTAxOTEmZD*mbj1ibG9nZ2VyJmc9MSZ*PSZvPTlkNzU*OWE3MmM4NzRiOTJiYzdiNDIwNTIyN2UwNWQw.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-8332293226474061072?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/8332293226474061072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=8332293226474061072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8332293226474061072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8332293226474061072'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/introduction-to-opengl.html' title='Introduction to OpenGL'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7701592047154242512</id><published>2009-01-14T09:53:00.001+04:00</published><updated>2009-01-14T09:53:35.521+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software-engineering'/><title type='text'>Working with Multiple SVN Repositories</title><content type='html'>At work, I've got 2 source code repos (repositories) to work with - one that is common to all the projects in the firm, and the other that is project specific.&lt;br /&gt;&lt;br /&gt;Normally, that would mean I have to use 2 different repos, but instead we've got external references from our project-specific repo to the common repo so whenever I fetch the latest revision from the project-specific repo, the common repo is retrieved as a sub-folder.&lt;br /&gt;&lt;br /&gt;To create the external reference, I defined the "svn:externals" property and used the value format "&lt;Sub Folder Name&gt; &lt;Repo URL&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7701592047154242512?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7701592047154242512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7701592047154242512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7701592047154242512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7701592047154242512'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/working-with-multiple-svn-repositories.html' title='Working with Multiple SVN Repositories'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4792454767740309997</id><published>2009-01-13T21:53:00.001+04:00</published><updated>2009-01-13T21:53:44.508+04:00</updated><title type='text'>Open Source Bounties</title><content type='html'>If you're out of work and are looking for a software development job, you could think about becoming a software bounty hunter. It's fun, it's a paid opportunity, and you would be doing the open source community a whole lot of good.&lt;br /&gt;&lt;br /&gt;There are a couple of websites that list bounties, such as &lt;a href="http://www.opensourcexperts.com/bountylist.html"&gt;Open Source Experts&lt;/a&gt;, that you can look up for bounties. Bounties are usually small contributions by users for a feature that add up to form a larger bounty. Often, bounties are offered by firms to promote development in a particular area.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4792454767740309997?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4792454767740309997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4792454767740309997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4792454767740309997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4792454767740309997'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/open-source-bounties.html' title='Open Source Bounties'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4295866128644794448</id><published>2009-01-13T16:42:00.001+04:00</published><updated>2009-01-13T16:42:57.940+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Stuff People 'Paste'</title><content type='html'>I always thought the only text people posted on pastie.org and other similar sites was source code.&lt;br /&gt;&lt;br /&gt;While browsing through some of the 'pastes' today, I came across compiler output (pointing out errors reported by the compiler), diff output, configuration parameters, command line statements (possibly instructions), ASCII representations of directory tree structures, CSS, and some hexadecimal values.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4295866128644794448?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4295866128644794448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4295866128644794448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4295866128644794448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4295866128644794448'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/stuff-people-paste.html' title='Stuff People &apos;Paste&apos;'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-5512964285818309714</id><published>2009-01-13T09:16:00.000+04:00</published><updated>2009-01-13T09:18:09.118+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>MSN Web Messenger Ignorant</title><content type='html'>Every day, I use MSN's web messenger via Mozilla Firefox 3 on Ubuntu Linux to IM my co-workers at the office.&lt;br /&gt;&lt;br /&gt;When I surf to webmessenger.msn.com , MSN claims that it doesn't support my browser and suggests that I instead use: MS IE 5 or later, Netscape 7.1 or later, or Mozilla 1.6 or later, *running in MS Windows*.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vel48i2U1Yg/SWwj0jO4kWI/AAAAAAAAAas/LYrhrepWufI/s1600-h/WebMess_NoBrowserSupport.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_Vel48i2U1Yg/SWwj0jO4kWI/AAAAAAAAAas/LYrhrepWufI/s320/WebMess_NoBrowserSupport.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290643047971328354" /&gt;&lt;/a&gt;&lt;br /&gt;The web messenger works fine for me either way - I just ignore the message and click Start MSN Web Messenger.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-5512964285818309714?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/5512964285818309714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=5512964285818309714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5512964285818309714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5512964285818309714'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/msn-web-messenger-ignorant.html' title='MSN Web Messenger Ignorant'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Vel48i2U1Yg/SWwj0jO4kWI/AAAAAAAAAas/LYrhrepWufI/s72-c/WebMess_NoBrowserSupport.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-480020867128358057</id><published>2009-01-12T19:05:00.001+04:00</published><updated>2009-01-12T20:37:24.535+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Convincing People to Go Ubuntu</title><content type='html'>Yesterday, I got a co-worker to switch to Ubuntu 8.10 as a primary operating system. The Windows key-Tab for switching between windows had her impressed. We use Sun's VirtualBox to run Windows XP so we can work on Microsoft  Visual Studio 2008. The installation went perfectly well as both the partitions were primary partitions.&lt;br /&gt;&lt;br /&gt;Today, I convinced another co-worker to use Ubuntu - it was mostly the Compiz Fusion 3D desktop cube that did it for him. Running Sun's VirtualBox for Visual Studio made the deal. However, the installation didn't work - an error was reported at the partitioning phase and apparently, the installer doesn't re-size the extended partition to make room for itself.&lt;br /&gt;&lt;br /&gt;Windows is still a part of daily work though... it comes as a part of being in a team developing with the Microsoft .NET Framework 3.5.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-480020867128358057?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/480020867128358057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=480020867128358057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/480020867128358057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/480020867128358057'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/convincing-people-to-go-ubuntu.html' title='Convincing People to Go Ubuntu'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2945455666408542250</id><published>2009-01-12T15:21:00.000+04:00</published><updated>2009-01-12T15:21:01.001+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><title type='text'>VirtualBox Raw Disk Boot Fails</title><content type='html'>I tried to use a raw partition as a virtual disk and tried booting Windows XP. The farthest I could get was the boot loader followed by a text-mode progress bar on selecting Windows XP and it would just hang at that point.&lt;br /&gt;&lt;br /&gt;Booting Ubuntu 8.10 off the raw partition didn't go much further either - the bootloader just choked.&lt;br /&gt;&lt;br /&gt;I guess all I can do with a raw partition is use it alongside a virtual disk to access data :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2945455666408542250?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2945455666408542250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2945455666408542250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2945455666408542250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2945455666408542250'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/virtualbox-raw-disk-boot-fails.html' title='VirtualBox Raw Disk Boot Fails'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7799957119381983585</id><published>2009-01-12T08:19:00.000+04:00</published><updated>2009-01-12T08:19:00.765+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>Ping with .NET</title><content type='html'>.NET makes pinging a network host to check for availability a piece of cake.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 1: To start off with, import the namespaces System.Net.NetworkInformation and System.Net&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;using System.Net.NetworkInformation;&lt;br /&gt;using System.Net;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 2: Instantiate the Ping class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ping p = new Ping();&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 3: Call the Send method of the Ping object with the hostname as the parameter. Store the return value as a PingReply object.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;PingReply pr = p.Send(@"www.google.com");&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 4: From the PingReply object, obtain the ping status from the Status property, the time from sending the ping request to getting the ping reply in milliseconds from the RoundtripTime property, and the IP address of the host from the Address property.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;IPStatus status = pr.Status; //IPStatus.Success&lt;br /&gt;IPAddress ipAddr = pr.Address;&lt;br /&gt;long pingTime = pr.RoundtripTime;&lt;br /&gt;&lt;br /&gt;The IPStatus enumeration has many different values to describe the problem, if any does occur. For a simple check, you can simply compare the value with IPStatus.Success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7799957119381983585?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7799957119381983585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7799957119381983585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7799957119381983585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7799957119381983585'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/ping-with-net.html' title='Ping with .NET'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-8027110466336997615</id><published>2009-01-11T21:46:00.000+04:00</published><updated>2009-01-11T21:47:35.327+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>DNS Query from .NET</title><content type='html'>Resolving a host name to an IP address (or several IP addresses) has never been simpler - .NET provides the GetHostAddresses method for the System.Net.Dns class that returns an array of IPAddress objects.&lt;br /&gt;&lt;br /&gt;Here's a debugger view:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWowm47jLmI/AAAAAAAAAak/qX_JCIWAeOQ/s1600-h/DotNetDns.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 54px;" src="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWowm47jLmI/AAAAAAAAAak/qX_JCIWAeOQ/s320/DotNetDns.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290094156975386210" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-8027110466336997615?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/8027110466336997615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=8027110466336997615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8027110466336997615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8027110466336997615'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/dns-query-from-net.html' title='DNS Query from .NET'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Vel48i2U1Yg/SWowm47jLmI/AAAAAAAAAak/qX_JCIWAeOQ/s72-c/DotNetDns.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7888294188208853871</id><published>2009-01-11T20:15:00.000+04:00</published><updated>2009-01-11T20:16:13.890+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><title type='text'>VirtualBox Guest Resizing</title><content type='html'>When running Windows XP in VirtualBox within a window, I noticed I could only set the resolution up to 800x600 (Display Properties | Settings), which had me disappointed. But, when I turned to a co-worker's screen, I saw a maximized VirtualBox window entirely filled with the Windows XP host and then my jaw dropped!&lt;br /&gt;&lt;br /&gt;I set VirtualBox to full-screen on my system and I had the Windows XP guest doing a 1280x800 (the max. for my notebook's LCD panel).&lt;br /&gt;&lt;br /&gt;I'm so loving VirtualBox now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7888294188208853871?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7888294188208853871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7888294188208853871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7888294188208853871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7888294188208853871'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/virtualbox-guest-resizing.html' title='VirtualBox Guest Resizing'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2084303710049566272</id><published>2009-01-11T15:09:00.000+04:00</published><updated>2009-01-11T15:10:25.072+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp-dot-net'/><title type='text'>WCF services on IIS 7</title><content type='html'>If you're moving your ASP.NET WCF services from IIS 6 to IIS 7, you might not have the SVC handlers added and the 404.3 error might show up: &lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;HTTP Error 404.3 - Not Found&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This fix is to simply need to register the service models with IIS 7. To do this, you have to execute "ServiceModelReg.exe -i" from within %windir%\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation (leave out the 64 if you're running a 32-bit version of Windows)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2084303710049566272?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2084303710049566272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2084303710049566272' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2084303710049566272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2084303710049566272'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/wcf-services-on-iis-7.html' title='WCF services on IIS 7'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-8757215716873318424</id><published>2009-01-10T22:46:00.001+04:00</published><updated>2009-01-10T22:46:58.244+04:00</updated><title type='text'>Measuring Blog Success</title><content type='html'>                &lt;div&gt;&lt;br /&gt;                  &lt;span class="slideshow-title" style="font-size:14px;"&gt;A Framework for Measuring Blog Success&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                  From: &lt;a href="http://www.slideshare.net/gregverdino" class="slideshow-author"&gt;gregverdino&lt;/a&gt;,&lt;br /&gt;                  &lt;span class="ago"&gt;2 years ago&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-embed"&gt;&lt;div style="width:425px;text-align:left" id="__ss_223171"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/gregverdino/a-framework-for-measuring-blog-success?type=powerpoint" title="A Framework for Measuring Blog Success"&gt;A Framework for Measuring Blog Success&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=a-framework-for-measuring-blog-success-119993303162279-4&amp;stripped_title=a-framework-for-measuring-blog-success" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=a-framework-for-measuring-blog-success-119993303162279-4&amp;stripped_title=a-framework-for-measuring-blog-success" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/gregverdino/a-framework-for-measuring-blog-success?type=powerpoint" title="View A Framework for Measuring Blog Success on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/2-0"&gt;2.0&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/web"&gt;web&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-description"&gt;A framework and recommended "starter tool kit" for measuring and understanding the success of your blog.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;a href="http://www.slideshare.net/gregverdino/a-framework-for-measuring-blog-success" class="slideshow-link"&gt;SlideShare Link&lt;/a&gt;&lt;br /&gt;                &lt;/div&gt;&lt;br /&gt;              &lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTIzMTYxMzE4MjI4MSZwdD*xMjMxNjEzMjExMzkwJnA9MTAxOTEmZD*mbj1ibG9nZ2VyJmc9MSZ*PSZvPWQxYmM5Yzc5NmY*MjRkNmI4ZjIyMzcyNWNhOGIxNTg5.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-8757215716873318424?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/8757215716873318424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=8757215716873318424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8757215716873318424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/8757215716873318424'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/measuring-blog-success.html' title='Measuring Blog Success'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-6416470105158435651</id><published>2009-01-10T22:30:00.002+04:00</published><updated>2009-01-11T20:23:08.315+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software-engineering'/><title type='text'>Agile Software Development Overview</title><content type='html'>&lt;div&gt;&lt;br /&gt;                  &lt;span class="slideshow-title" style="font-size:14px;"&gt;Agile Software Development Overview&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                  From: &lt;a href="http://www.slideshare.net/srogers74" class="slideshow-author"&gt;srogers74&lt;/a&gt;,&lt;br /&gt;                  &lt;span class="ago"&gt;14 hours ago&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-embed"&gt;&lt;div style="width:425px;text-align:left" id="__ss_905471"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/srogers74/agile-software-development-overview-presentation?type=powerpoint" title="Agile Software Development Overview"&gt;Agile Software Development Overview&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=agile-software-development-overview-1231560734008086-2&amp;stripped_title=agile-software-development-overview-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=agile-software-development-overview-1231560734008086-2&amp;stripped_title=agile-software-development-overview-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/srogers74/agile-software-development-overview-presentation?type=powerpoint" title="View Agile Software Development Overview on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/development"&gt;development&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/software"&gt;software&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-description"&gt;A high-level snap shop of Agile concepts.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;a href="http://www.slideshare.net/srogers74/agile-software-development-overview-presentation" class="slideshow-link"&gt;SlideShare Link&lt;/a&gt;&lt;br /&gt;                &lt;/div&gt;&lt;br /&gt;              &lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTIzMTYxMjE*NjY4NyZwdD*xMjMxNjEyMTk2MjY1JnA9MTAxOTEmZD*mbj1ibG9nZ2VyJmc9MSZ*PSZvPWQxYmM5Yzc5NmY*MjRkNmI4ZjIyMzcyNWNhOGIxNTg5.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-6416470105158435651?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/6416470105158435651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=6416470105158435651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6416470105158435651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6416470105158435651'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/agile-software-development-overview.html' title='Agile Software Development Overview'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-3002114346450878714</id><published>2009-01-10T11:22:00.002+04:00</published><updated>2009-01-10T11:28:59.181+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp-dot-net'/><title type='text'>ListView On An EntityDataSource - Not As 'Smart'</title><content type='html'>Hooking up the ListView control to an LinqDataSource is really cool - the ListView can tell that a column is an identity column so the textbox for inserting the ID is automatically removed.&lt;br /&gt;&lt;br /&gt;However, using the ListView with an EntityDataSource seems to be a less-intelligent solution as the textbox for inserting IDs is displayed again, although the value is ignored. If you think that's bad, wait till you try using it with a table that has a foreign key reference. :-P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-3002114346450878714?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/3002114346450878714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=3002114346450878714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3002114346450878714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/3002114346450878714'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/listview-on-entitydatasource-not-as.html' title='ListView On An EntityDataSource - Not As &apos;Smart&apos;'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2255839571586883403</id><published>2009-01-09T22:50:00.001+04:00</published><updated>2009-01-09T22:52:29.279+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp-dot-net'/><title type='text'>ListView: A GridView With Insert Capabilities</title><content type='html'>When building applications with ASP.NET, the GridView control is particularly useful in displaying and editing data. However, the GridView lacks the ability to create new entries. That's where the ListView control from ASP.NET 3.5 provides useful. When used with the Grid layout, the ListView control provides an additional row at the bottom of the grid to insert new rows. It also provides an enhanced paging user interface.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Vel48i2U1Yg/SWecqh6GWVI/AAAAAAAAAac/h7SHS-cFVpA/s1600-h/ListView_as_Grid.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 50px;" src="http://2.bp.blogspot.com/_Vel48i2U1Yg/SWecqh6GWVI/AAAAAAAAAac/h7SHS-cFVpA/s320/ListView_as_Grid.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5289368541840431442" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2255839571586883403?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2255839571586883403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2255839571586883403' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2255839571586883403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2255839571586883403'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/listview-gridview-with-insert.html' title='ListView: A GridView With Insert Capabilities'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Vel48i2U1Yg/SWecqh6GWVI/AAAAAAAAAac/h7SHS-cFVpA/s72-c/ListView_as_Grid.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-605090379107845849</id><published>2009-01-09T22:25:00.001+04:00</published><updated>2009-01-09T22:25:43.104+04:00</updated><title type='text'>Palm Pre WebOS</title><content type='html'>Palm unveiled the new WebOS which powers the Palm Pre smart phone. Applications for the Palm WebOS can be built with standard web development tools, which means you can carry forward your HTML and Javascript skills to the platform.&lt;br /&gt;&lt;br /&gt;From a user's perspective, the focus of the WebOS seems to be convergence - it provides the ability to merge emails from multiple mailboxes, combine multiple contact lists (MS Outlook, GMail etc) with social networks such as Facebook, and calendars. It enables users to run multiple applications simultaneously, switching between them just as one would switch between multiple browser tabs.&lt;br /&gt;&lt;br /&gt;The Palm Pre itself packs quite a punch with bluetooth, 802.11g WiFi, GPS, 8GB storage, accelerometer, touch screen and a sliding keyboard. Palm Pre units will be available to Sprint customers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-605090379107845849?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/605090379107845849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=605090379107845849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/605090379107845849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/605090379107845849'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/palm-pre-webos.html' title='Palm Pre WebOS'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-133084529573792834</id><published>2009-01-09T21:35:00.001+04:00</published><updated>2009-01-09T21:43:52.840+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Microsoft Windows 7 Beta Download</title><content type='html'>The beta release of Windows 7 was made available for download on the Microsoft website &lt;a href="http://technet.microsoft.com/en-us/evalcenter/dd353205.aspx"&gt;here&lt;/a&gt;. The Microsoft website was down for quite a while as users hit the site hoping to get ahead of the crowd and claim one of the 2.5 million activation keys.&lt;br /&gt;&lt;br /&gt;Copies of the beta are also available on torrent networks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-133084529573792834?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/133084529573792834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=133084529573792834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/133084529573792834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/133084529573792834'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/microsoft-windows-7-beta-download.html' title='Microsoft Windows 7 Beta Download'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-5296038567662264391</id><published>2009-01-09T20:07:00.001+04:00</published><updated>2009-01-09T20:07:47.029+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Google Chrome 2 Pre-beta</title><content type='html'>Google's Chrome browser has reached the pre-beta stage of version 2.0. The new version aims to make the browser more complete and narrow the gap with competing browsers by offering form field autocompletion, page-level zoom, browser profiles, and browser-script support.&lt;br /&gt;&lt;br /&gt;To get access to the v2.0 pre-beta release, download the channel changer from &lt;a href="http://dev.chromium.org/getting-involved/dev-channel"&gt;here&lt;/a&gt; and use it to change your browser channel from Stable to Developer Preview.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-5296038567662264391?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/5296038567662264391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=5296038567662264391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5296038567662264391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5296038567662264391'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/google-chrome-2-pre-beta.html' title='Google Chrome 2 Pre-beta'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2634583690474916106</id><published>2009-01-09T16:14:00.001+04:00</published><updated>2009-01-09T16:14:02.769+04:00</updated><title type='text'>The Most Shameless Apple Knockoffs</title><content type='html'>                &lt;div&gt;&lt;br /&gt;                  &lt;span class="slideshow-title" style="font-size:14px;"&gt;The Most Shameless Apple Knockoff&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                  From: &lt;a href="http://www.slideshare.net/candyweb" class="slideshow-author"&gt;candyweb&lt;/a&gt;,&lt;br /&gt;                  &lt;span class="ago"&gt;3 weeks ago&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-embed"&gt;&lt;div style="width:425px;text-align:left" id="__ss_845435"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/candyweb/the-most-shameless-apple-knockoff-presentation?type=powerpoint" title="The Most Shameless Apple Knockoff"&gt;The Most Shameless Apple Knockoff&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=themostshamelessappleknockoffsv2-1229332539628408-2&amp;stripped_title=the-most-shameless-apple-knockoff-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=themostshamelessappleknockoffsv2-1229332539628408-2&amp;stripped_title=the-most-shameless-apple-knockoff-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/candyweb/the-most-shameless-apple-knockoff-presentation?type=powerpoint" title="View The Most Shameless Apple Knockoff on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/applemac"&gt;applemac&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/mac"&gt;mac&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-description"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;a href="http://www.slideshare.net/candyweb/the-most-shameless-apple-knockoff-presentation" class="slideshow-link"&gt;SlideShare Link&lt;/a&gt;&lt;br /&gt;                &lt;/div&gt;&lt;br /&gt;              &lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTIzMTUwMzExNTE3NSZwdD*xMjMxNTAzMTQ*MTkwJnA9MTAxOTEmZD*mbj1ibG9nZ2VyJmc9MSZ*PSZvPWQxYmM5Yzc5NmY*MjRkNmI4ZjIyMzcyNWNhOGIxNTg5.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2634583690474916106?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2634583690474916106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2634583690474916106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2634583690474916106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2634583690474916106'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/most-shameless-apple-knockoffs.html' title='The Most Shameless Apple Knockoffs'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-5677412078437666365</id><published>2009-01-09T16:04:00.005+04:00</published><updated>2009-01-11T20:22:43.786+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><title type='text'>Remote Desktop on VirtualBox 2.10</title><content type='html'>The remote desktop display feature in Sun Virtual Box 2.10 is really cool. I plan on using it to install virtual machines on old laptops and desktops for running Linux. As I don't have the space to put up the old computers, I can simply stow them away in a cupboard and access them remotely.&lt;br /&gt;&lt;br /&gt;If you haven't read the manual, here's how you can setup remote desktop access...&lt;br /&gt;&lt;br /&gt;With the virtual machine turned off, go to the settings for the virtual machine and go to the Remote Display section. Keep the enable VRDP server checkbox checked, enter a Server Port (3389 is already taken, if you've enabled Remote Desktop from Windows, select Authentication Method "Null" (for private networks only; this allows anyone to connect from the network without using a password), and click Ok.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Vel48i2U1Yg/SWc9aNlgrcI/AAAAAAAAAaM/hEy0BlL6m9Q/s1600-h/vbox_rdp.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 290px;" src="http://2.bp.blogspot.com/_Vel48i2U1Yg/SWc9aNlgrcI/AAAAAAAAAaM/hEy0BlL6m9Q/s320/vbox_rdp.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5289263807902821826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When running the virtual machine, you can go to the Devices menu to toggle Remote Display, if it isn't already turned on.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Vel48i2U1Yg/SWc-BH5Q6oI/AAAAAAAAAaU/-Rkp5fo881k/s1600-h/vbox_rdp2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 274px;" src="http://2.bp.blogspot.com/_Vel48i2U1Yg/SWc-BH5Q6oI/AAAAAAAAAaU/-Rkp5fo881k/s320/vbox_rdp2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5289264476389960322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can now connect to the virtual machine using the standard Windows Remote Desktop client.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-5677412078437666365?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/5677412078437666365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=5677412078437666365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5677412078437666365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5677412078437666365'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/remote-desktop-on-virtualbox-210.html' title='Remote Desktop on VirtualBox 2.10'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Vel48i2U1Yg/SWc9aNlgrcI/AAAAAAAAAaM/hEy0BlL6m9Q/s72-c/vbox_rdp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7773368371542602025</id><published>2009-01-08T20:55:00.000+04:00</published><updated>2009-01-08T21:25:28.441+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Beej's IP v6 C-Programming Guide</title><content type='html'>I did a Google search today, hoping to revive my C socket programming skills and came across Beej's guide. Those of you who learned C programming around my time would remember Beej's guide as the best quickstart guide to C Socket programming that ever was.&lt;br /&gt;&lt;br /&gt;Well, now Beej's guide just got better. Last month, the guide was updated to include a section on implementing IP v6 so you can fire up your browser to surf to &lt;a href="http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html"&gt;this&lt;/a&gt; URL and print yourself a copy of the guide to hold along your screen while you re-discover your C socket programming abilities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7773368371542602025?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7773368371542602025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7773368371542602025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7773368371542602025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7773368371542602025'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/beejs-ip-v6-c-programming-guide.html' title='Beej&apos;s IP v6 C-Programming Guide'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-5206429644042015955</id><published>2009-01-08T12:55:00.004+04:00</published><updated>2009-01-08T13:03:29.460+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dot-net'/><title type='text'>Asynchronous Service Calls</title><content type='html'>When adding a service reference, Microsoft Visual Studio 2008 only generates synchronous method calls to the services. You can easily change this by clicking the Advanced button, and...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWXAC9T4UZI/AAAAAAAAAZ8/Wu1AQBw9MNk/s1600-h/AsyncSvc_AddSvcRef.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 265px;" src="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWXAC9T4UZI/AAAAAAAAAZ8/Wu1AQBw9MNk/s320/AsyncSvc_AddSvcRef.png" border="0" alt="Add Service Reference dialog box" id="BLOGGER_PHOTO_ID_5288844494466732434" /&gt;&lt;/a&gt;&lt;br /&gt;...checking the Generate asynchronous operations checkbox.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Vel48i2U1Yg/SWXAL48phyI/AAAAAAAAAaE/P6JxV9XG-oo/s1600-h/AsyncSvc_Advanced.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 304px;" src="http://4.bp.blogspot.com/_Vel48i2U1Yg/SWXAL48phyI/AAAAAAAAAaE/P6JxV9XG-oo/s320/AsyncSvc_Advanced.png" border="0" alt="Check the generate asynchronous operations checkbox" id="BLOGGER_PHOTO_ID_5288844647914374946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It now generates the Begin*, End* and *Async methods for you to call from your application.&lt;br /&gt;&lt;br /&gt;If you've already added the service references, you do not have to remove-and-add them to generate the asynchronous proxy methods - instead, right click the service reference and select "Configure Service Reference".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-5206429644042015955?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/5206429644042015955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=5206429644042015955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5206429644042015955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5206429644042015955'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/asynchronous-service-calls.html' title='Asynchronous Service Calls'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Vel48i2U1Yg/SWXAC9T4UZI/AAAAAAAAAZ8/Wu1AQBw9MNk/s72-c/AsyncSvc_AddSvcRef.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-1148943365427257931</id><published>2009-01-08T08:54:00.000+04:00</published><updated>2009-01-08T08:55:08.832+04:00</updated><title type='text'>OLPC Moves To Windows</title><content type='html'>I know the news of the OLPC (One Laptop Per Child) shipping with Windows last November would've come as a shock to most of you because you wouldn't expect to wake up one morning and read it in the paper - it would seem too much like a prank somebody was playing on you.&lt;br /&gt;&lt;br /&gt;OLPC now goes a step further by pulling out of the Sugar project and cutting down on staffing. However, on the positive side, the OLPC is also aiming at a model where it can distribute laptops for free - the "$0 laptop"! You can find a statement by Nicholas Negropon &lt;a href="http://wiki.laptop.org/go/The_OLPC_Wiki"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-1148943365427257931?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/1148943365427257931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=1148943365427257931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1148943365427257931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/1148943365427257931'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/olpc-moves-to-windows.html' title='OLPC Moves To Windows'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4469883912862425413</id><published>2009-01-07T22:23:00.001+04:00</published><updated>2009-01-07T22:23:19.370+04:00</updated><title type='text'>Introducing IBM Lotus Notes and Domino 8.5</title><content type='html'>                &lt;div&gt;&lt;br /&gt;                  &lt;span class="slideshow-title" style="font-size:14px;"&gt;Introducing IBM Lotus Notes and Domino 8.5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                  From: &lt;a href="http://www.slideshare.net/tcoustenoble" class="slideshow-author"&gt;tcoustenoble&lt;/a&gt;,&lt;br /&gt;                  &lt;span class="ago"&gt;23 hours ago&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-embed"&gt;&lt;div style="width:425px;text-align:left" id="__ss_894863"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/tcoustenoble/introducing-ibm-lotus-notes-and-domino-85-presentation-894863?type=powerpoint" title="Introducing IBM Lotus Notes and Domino 8.5"&gt;Introducing IBM Lotus Notes and Domino 8.5&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=introducing-ibm-lotus-notes-and-domino-85-slideshow-1231267606343259-1&amp;stripped_title=introducing-ibm-lotus-notes-and-domino-85-presentation-894863" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=introducing-ibm-lotus-notes-and-domino-85-slideshow-1231267606343259-1&amp;stripped_title=introducing-ibm-lotus-notes-and-domino-85-presentation-894863" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/tcoustenoble/introducing-ibm-lotus-notes-and-domino-85-presentation-894863?type=powerpoint" title="View Introducing IBM Lotus Notes and Domino 8.5 on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/ibm"&gt;ibm&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/lotus"&gt;lotus&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;div class="slideshow-description"&gt;http://www.ibm.com/lotus/notesanddomino&lt;br /&gt;&lt;br /&gt;With IBM Lotus Notes and Domino 8.5, world-class business e-mail and collaboration take another exciting step forward, offering new approaches to enhance efficiency and creativity, while extending the value of current investments.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;a href="http://www.slideshare.net/tcoustenoble/introducing-ibm-lotus-notes-and-domino-85-presentation-894863" class="slideshow-link"&gt;SlideShare Link&lt;/a&gt;&lt;br /&gt;                &lt;/div&gt;&lt;br /&gt;              &lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTIzMTM1MjUzNTA*NiZwdD*xMjMxMzUyNTY1NjQwJnA9MTAxOTEmZD*mbj1ibG9nZ2VyJmc9MSZ*PSZvPWQxYmM5Yzc5NmY*MjRkNmI4ZjIyMzcyNWNhOGIxNTg5.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4469883912862425413?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4469883912862425413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4469883912862425413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4469883912862425413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4469883912862425413'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/introducing-ibm-lotus-notes-and-domino.html' title='Introducing IBM Lotus Notes and Domino 8.5'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-2438666344918341951</id><published>2009-01-07T22:19:00.001+04:00</published><updated>2009-01-07T22:19:45.617+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>2 Terabyte SD-XC card announced</title><content type='html'>The SDXC card format was announced today at the Consumer Electronics Show 2009. The new format would support capacities of up to 2 terabytes and a transfer rate of 300MB/s.&lt;br /&gt;&lt;br /&gt;The SDXC specification will be published at sometime around March 2009. The SDIO and SDHC specifications will also be updated to enable higher data transfer rates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-2438666344918341951?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/2438666344918341951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=2438666344918341951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2438666344918341951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/2438666344918341951'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/2-terabyte-sd-xc-card-announced.html' title='2 Terabyte SD-XC card announced'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-4917669919612153465</id><published>2009-01-07T13:50:00.002+04:00</published><updated>2009-01-07T14:20:26.482+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>CES 2009</title><content type='html'>The Consumer Electronics Show 2009 is on in Las Vegas and CNET has been covering the new products on &lt;a href="http://ces.cnet.com/"&gt;its website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Among the announcements are the CES are&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;BlackBerry Curve 8900 availability from T-Mobile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The light-weight device includes Bluetooth, GPS and WiFi capabilities but lacks 3G. It has a 3.2MP camera and supports microSD/SDHC cards of up to 16GB.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Asus Eee PC T91 announced&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Asus Eee PC T91 features a GPS receiver, TV tuner, and an FM transmitter mated with a 9-inch display, Windows XP and Intel's Atom processor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;HP Pavilion DV2 - the AMD Neo Debut&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hewlett-Packard brings about a new genre of portable computers, somewhere between netbooks and notebooks. This may be just another marketing gimmick to add a larger screen to a netbook, but it gives choice to the consumer and that's what the CES hopes to achieve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-4917669919612153465?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/4917669919612153465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=4917669919612153465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4917669919612153465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/4917669919612153465'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/ces-2009.html' title='CES 2009'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-7905135961783488536</id><published>2009-01-07T13:43:00.001+04:00</published><updated>2009-01-07T13:43:38.490+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Dr. Dobb's Journal and PC Magazine To Go Web-Only</title><content type='html'>Dr. Dobb's Journal is going eco-friendly (eco- in ecology, as well as eco- in economy) by going web-only so I guess you can hang on to the last print edition of Dr. Dobb's Journal - it might be worth something (with all the stuff on eBay these days, who knows?) :-P&lt;br /&gt;&lt;br /&gt;PC Magazine is going web-only too! After you've been served the January edition of PC Magazine, there won't be any more of the print editions of PC Magazine.&lt;br /&gt;&lt;br /&gt;The idea of having a web edition seems great, mostly because you can get timely news. With a print edition, you have to wait till the next issue to read about current happenings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-7905135961783488536?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/7905135961783488536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=7905135961783488536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7905135961783488536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/7905135961783488536'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/dr-dobbs-journal-and-pc-magazine-to-go.html' title='Dr. Dobb&apos;s Journal and PC Magazine To Go Web-Only'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-5795764548261247587</id><published>2009-01-06T23:42:00.011+04:00</published><updated>2009-01-07T00:20:17.991+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp-dot-net'/><title type='text'>QuickStart: Spring.NET Dependency Injection With ASP.NET</title><content type='html'>Spring.NET is a .NET port of the popular Spring framework for Java, and is most commonly used for implementing dependency injection in applications. In today's example, I'll demonstrate the usage of Spring.NET for defining a validator onto an ASP.NET page.&lt;br /&gt;&lt;br /&gt;Let's start off by creating an ASP.NET Web Application Project. (Click the images to enlarge them and view the code snippets)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 1: Add References to Spring.Core and Spring.Web&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vel48i2U1Yg/SWO0N_moZxI/AAAAAAAAAZE/NKK5kDTs_as/s1600-h/springnet_0.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 133px; height: 49px;" src="http://1.bp.blogspot.com/_Vel48i2U1Yg/SWO0N_moZxI/AAAAAAAAAZE/NKK5kDTs_as/s320/springnet_0.png" border="0" alt="Add Spring.Core and Spring.Web Reference" id="BLOGGER_PHOTO_ID_5288268539967858450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can download the &lt;a href="http://k.nitin.r.googlepages.com/SpringNetBinaries-1.2.0.7z"&gt;binaries for Spring.NET 1.2.0 here&lt;/a&gt; and add references to Spring.Core and Spring.Web&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 2: Declare the spring sectionGroup in the configSections of the web.config file&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Vel48i2U1Yg/SWO03K4IufI/AAAAAAAAAZM/5bbTnPZBGwk/s1600-h/springnet_1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 38px;" src="http://2.bp.blogspot.com/_Vel48i2U1Yg/SWO03K4IufI/AAAAAAAAAZM/5bbTnPZBGwk/s320/springnet_1.png" border="0" alt="Spring.NET sectionGroup in the ASP.NET web.config" id="BLOGGER_PHOTO_ID_5288269247368706546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Declare the context and objects sections within the spring sectionGroup in the web.config file. The context section is used to define the configuration for the Spring IoC container and the objects section is used to define objects.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 3: Add the spring configuration to the web.config file&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWO2enULbmI/AAAAAAAAAZU/oUDllIUwUfU/s1600-h/springnet_2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 105px;" src="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWO2enULbmI/AAAAAAAAAZU/oUDllIUwUfU/s320/springnet_2.png" border="0" alt="IoC container declaration in web.config" id="BLOGGER_PHOTO_ID_5288271024529043042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the context section, refer to the objects resource within the spring section of the ASP.NET Web.config file. Within objects, define the validation group NameValidation containing a required validator. Inject an instance of NameValidation to the NameValidator property of the Default.aspx page.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 4: Declare the PageHandlerFactory HTTP handler and the WebSupportModule HTTP module in the web.config&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWO3F7c2DBI/AAAAAAAAAZc/8CeFvudFzvQ/s1600-h/springnet_3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 54px;" src="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWO3F7c2DBI/AAAAAAAAAZc/8CeFvudFzvQ/s320/springnet_3.png" border="0" alt="PageHandlerFactory HTTP handler" id="BLOGGER_PHOTO_ID_5288271699948997650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWO3PXDAEJI/AAAAAAAAAZk/fpwbMe1GFxk/s1600-h/springnet_4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 31px;" src="http://3.bp.blogspot.com/_Vel48i2U1Yg/SWO3PXDAEJI/AAAAAAAAAZk/fpwbMe1GFxk/s320/springnet_4.png" border="0" alt="WebSupportModule HTTP module" id="BLOGGER_PHOTO_ID_5288271861975617682" /&gt;&lt;/a&gt;&lt;br /&gt;Assuming you are working with a pre-IIS 7 web application server, you can declare the PageHandlerFactory HTTP handler and the WebSupportModule HTTP module as indicated above.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 5: Add a textbox and button to your page&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vel48i2U1Yg/SWO3o_-8D3I/AAAAAAAAAZs/2FNyGUa-v5A/s1600-h/springnet_5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 113px;" src="http://1.bp.blogspot.com/_Vel48i2U1Yg/SWO3o_-8D3I/AAAAAAAAAZs/2FNyGUa-v5A/s320/springnet_5.png" border="0" alt="Test user interface for Spring.NET validation" id="BLOGGER_PHOTO_ID_5288272302461161330" /&gt;&lt;/a&gt;&lt;br /&gt;Create the user interface to enter a name on the page.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 6: Add the necessary 'plumbing'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Vel48i2U1Yg/SWO4Lfuea2I/AAAAAAAAAZ0/vh3SRFclgiY/s1600-h/springnet_6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 250px;" src="http://1.bp.blogspot.com/_Vel48i2U1Yg/SWO4Lfuea2I/AAAAAAAAAZ0/vh3SRFclgiY/s320/springnet_6.png" border="0" alt="Adding the code-behind" id="BLOGGER_PHOTO_ID_5288272895097596770" /&gt;&lt;/a&gt;&lt;br /&gt;Create a Name property wrapper for the textbox created in Step 5. Add the NameValidator property. Define the button event handler to validate the data in the textbox and display the validation status.&lt;br /&gt;&lt;br /&gt;Run the application! When the user leaves the textbox blank, the validation returns false; else it returns true.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-5795764548261247587?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/5795764548261247587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=5795764548261247587' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5795764548261247587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/5795764548261247587'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/springnet-dependency-injection-with.html' title='QuickStart: Spring.NET Dependency Injection With ASP.NET'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Vel48i2U1Yg/SWO0N_moZxI/AAAAAAAAAZE/NKK5kDTs_as/s72-c/springnet_0.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5110857384844141930.post-6920934524539247096</id><published>2009-01-06T20:50:00.003+04:00</published><updated>2009-01-06T20:57:18.185+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Lenovo Adds Wii-Style Controller</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://images.dailytech.com/nimage/9983_lenovoallinone.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 295px;" src="http://images.dailytech.com/nimage/9983_lenovoallinone.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Lenovo will be displaying it's new IdeaCentre A600 at the CES with a Wii-style controller. The controller will be used for more than just gaming though - you can also use it as a mouse. It can be configured with a terabyte of hard disk storage and a blu-ray DVD drive, but unfortunately it doesn't come with 8GB RAM as an option :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5110857384844141930-6920934524539247096?l=knitinr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knitinr.blogspot.com/feeds/6920934524539247096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5110857384844141930&amp;postID=6920934524539247096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6920934524539247096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5110857384844141930/posts/default/6920934524539247096'/><link rel='alternate' type='text/html' href='http://knitinr.blogspot.com/2009/01/lenovo-adds-wii-style-controller.html' title='Lenovo Adds Wii-Style Controller'/><author><name>Nitin Reddy Katkam</name><uri>http://www.blogger.com/profile/09612217398194148324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_Vel48i2U1Yg/SUkxX5ePzKI/AAAAAAAAAGc/cNTDMVaNLKY/S220/03062008(003).jpg'/></author><thr:total>0</thr:total></entry></feed>
