<?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-2580407331877610996</id><updated>2012-02-02T21:35:25.709+05:30</updated><category term='Licenses'/><category term='Redhat'/><category term='advanced linux programming'/><category term='gdb'/><category term='linux programming'/><category term='hardware information'/><category term='modprobe'/><category term='passive ftp'/><category term='Matrix Cellular'/><category term='Amazon SQS'/><category term='url rewrite'/><category term='Iptables'/><category term='ActiveMQ'/><category term='MCollective'/><category term='GNU'/><category term='lshw'/><category term='ip_conntrack_ftp'/><category term='lsusb'/><category term='LFS'/><category term='user-agent'/><category term='make'/><category term='Australia'/><category term='Linux From Scratch'/><category term='FTP'/><category term='camstudio'/><category term='Linux'/><category term='Hadoop'/><category term='active ftp'/><category term='Playstation 3'/><category term='Travelogue'/><category term='RabbitMQ'/><category term='gcc'/><category term='redirect'/><category term='haproxy'/><category term='Puppet'/><category term='meminfo'/><category term='lspci'/><category term='cpuinfo'/><category term='EC2'/><category term='Automation'/><category term='R.I. Pienaar'/><title type='text'>Free Souls (Don't LiVe to GeEk; GeEk to LiVe)</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default?start-index=101&amp;max-results=100'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>197</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1141048398213318196</id><published>2011-12-23T12:02:00.000+05:30</published><updated>2011-12-23T12:02:39.689+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='MCollective'/><category scheme='http://www.blogger.com/atom/ns#' term='R.I. Pienaar'/><category scheme='http://www.blogger.com/atom/ns#' term='RabbitMQ'/><category scheme='http://www.blogger.com/atom/ns#' term='Puppet'/><category scheme='http://www.blogger.com/atom/ns#' term='ActiveMQ'/><title type='text'>MCollective using a vhost other than / with RabbitMQ</title><content type='html'>We'd recently began using &lt;a href="http://puppetlabs.com/mcollective/"&gt;MCollective&lt;/a&gt; along with &lt;a href="http://puppetlabs.com/"&gt;Puppet&lt;/a&gt; in our setup. &lt;a href="http://puppetlabs.com/mcollective/"&gt;MCollective&lt;/a&gt; is a framework to build server orchestration or parallel job execution systems. We had MCollective running with &lt;a href="http://activemq.apache.org/"&gt;ActiveMQ&lt;/a&gt; as MOM for management of our EC2 infrastructure, however for our setup at &lt;a href="http://www.softlayer.com/"&gt;Softlayer&lt;/a&gt; we decided to go ahead and make use of &lt;a href="http://www.rabbitmq.com/"&gt;RabbitMQ&lt;/a&gt; as our MOM.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://www.devco.net/"&gt;R.I. Pienaar&lt;/a&gt; we were quickly able to get solution to some of our issues and very recently one of our developers suggested that we should be making use of a separate vhost for use of mcollective. Seems like a great idea, we all thought ! However after discussions on &lt;a href="http://groups.google.com/group/mcollective-users"&gt;mcollective user group&lt;/a&gt; we found that stomp connector provided with mcollective, by default doesn't allow for passing of host header information to &lt;a href="http://www.rabbitmq.com/"&gt;RabbitMQ&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devco.net/"&gt;R.I. Pienaar&lt;/a&gt; once again came as a saviour and suggested some changes to our stomp connector which now allow us to make use of /mcollective as a vhost while communicating with &lt;a href="http://www.rabbitmq.com/"&gt;RabbitMQ&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So here is a change we made to /usr/libexec/mcollective/mcollective/connector/stomp.rb (This location can change with distribution).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;@connection = connector.new(user, password, host, port, true, 5, {"accept-version" =&amp;gt; '1.0,1.1', "host" =&amp;gt; "/mcollective\"})&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/2580407331877610996-1141048398213318196?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1141048398213318196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1141048398213318196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1141048398213318196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1141048398213318196'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2011/12/mcollective-using-vhost-other-than-with.html' title='MCollective using a vhost other than / with RabbitMQ'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5411811892088581173</id><published>2011-03-18T22:33:00.000+05:30</published><updated>2011-03-18T22:33:02.622+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='haproxy'/><category scheme='http://www.blogger.com/atom/ns#' term='url rewrite'/><category scheme='http://www.blogger.com/atom/ns#' term='user-agent'/><category scheme='http://www.blogger.com/atom/ns#' term='redirect'/><title type='text'>User-Agent based redirect in haproxy</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-I1cpV9AOx0M/TYOQIJSivhI/AAAAAAAAScI/oUViXekJjYw/s1600/logo-med.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://lh6.googleusercontent.com/-I1cpV9AOx0M/TYOQIJSivhI/AAAAAAAAScI/oUViXekJjYw/s1600/logo-med.png" /&gt;&lt;/a&gt;&lt;/div&gt;We've been using &lt;a href="http://haproxy.1wt.eu/"&gt;haproxy&lt;/a&gt; as our loadbalancer for quite sometime now&amp;nbsp; and I'd say it's been more than wonderful. We've been using it for serving around 2 million page-views per day and it's been pretty good at handling that kind of HTTP traffic. Recently we decided to launch our mobile site and the idea was to allow users to visit our website through normal URL that we use for our website, however upon detection of user-agent we wanted to rewrite the URL to something else. We knew that &lt;a href="http://haproxy.1wt.eu/"&gt;haproxy&lt;/a&gt; was able to parse and identify HTTP Headers and hence we were pretty positive about the idea of using haproxy to do the redirection, however to our surprise, &lt;a href="http://haproxy.1wt.eu/"&gt;haproxy 1.3&lt;/a&gt; doesn't allow for conditional rewrites and the worst aspect of it is that it doesn't even complain about implementing conditional rewrites, instead it silently ignores the condition and implements the rewrite to every request.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;So we finally decided to migrate to &lt;a href="http://haproxy.1wt.eu/download/1.4/"&gt;haproxy 1.4&lt;/a&gt; and we use following configuration to setup conditional redirect:&lt;br /&gt;&lt;br /&gt;1) Create new ACL to identifiy user-agent:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;acl mobile_user_agent hdr_sub(User-Agent) -i iphone&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;2) We didn't want to redirect any requests for .css, .js, .bmp, .jpg, .png, .jpeg, .gif and .ico so created a new ACL&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;acl is_static_file url_reg .*\.(css|js)\?[0-9.]+&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;acl is_static_img url_reg .*\.(png|bmp|jpg|jpeg|gif|ico)\?[0-9a-z.]+&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;acl is_static url_reg .*\.(css|js|png|bmp|jpg|jpeg|gif|ico)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;3) If request was for /mobile/* we didn't want to redirect so yet another ACL :)&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;acl is_mobile url_reg ^\/mobile.*&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;4) Do a URL rewrite as follows:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;reqrep ^([^\ ]*)\ /(.*)&amp;nbsp;&amp;nbsp; \1\ /mobile/\2 if iphone !is_static_file !is_static_img !is_static !is_mobile&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;So now any request coming from a mobile device for any thing other than .css, .js, .png, .gif, .bmp, .jpg, .jpeg, ico will be redirected to /mobile/&lt;original_url&gt;.&lt;/original_url&gt;&lt;br /&gt;&lt;br /&gt;So a request like www.abc.com/pqr will become www.abc.com/mobile/pqr !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5411811892088581173?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5411811892088581173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5411811892088581173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5411811892088581173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5411811892088581173'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2011/03/user-agent-based-redirect-in-haproxy.html' title='User-Agent based redirect in haproxy'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-I1cpV9AOx0M/TYOQIJSivhI/AAAAAAAAScI/oUViXekJjYw/s72-c/logo-med.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2487899022268099153</id><published>2011-03-14T19:38:00.000+05:30</published><updated>2011-03-14T19:38:14.779+05:30</updated><title type='text'>Access mongodb collection through shell script</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-CQSK5kqPPe8/TX4hHwNkbzI/AAAAAAAASbk/KsVlrpmJgzM/s1600/mongodb.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="66" src="https://lh6.googleusercontent.com/-CQSK5kqPPe8/TX4hHwNkbzI/AAAAAAAASbk/KsVlrpmJgzM/s200/mongodb.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;We've been using mongodb for quite some time for various purpose, like newsfeed, analytics etc. Recently a need was found to setup a monitoring for some queries to mongodb and unlike MySQL I was not able to find any means to query the database collection. However a quick look at help of mongo yielded a nice solution. We can put series of statements that we execute at mongo shell inside a .js file and finally execute :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;mongo &lt;filename&gt;.js&lt;/filename&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2487899022268099153?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2487899022268099153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2487899022268099153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2487899022268099153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2487899022268099153'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2011/03/access-mongodb-collection-through-shell.html' title='Access mongodb collection through shell script'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-CQSK5kqPPe8/TX4hHwNkbzI/AAAAAAAASbk/KsVlrpmJgzM/s72-c/mongodb.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7886358299493316622</id><published>2011-03-13T17:31:00.001+05:30</published><updated>2011-03-13T17:33:01.604+05:30</updated><title type='text'>Regex handling is indeed black magic</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-ELe3xn1TfCE/TXyyZ_bJhoI/AAAAAAAASbY/yFfDdVfrPIk/s1600/regular_expressions.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 316px; height: 320px;" src="http://3.bp.blogspot.com/-ELe3xn1TfCE/TXyyZ_bJhoI/AAAAAAAASbY/yFfDdVfrPIk/s320/regular_expressions.png" alt="" id="BLOGGER_PHOTO_ID_5583533797624350338" 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/2580407331877610996-7886358299493316622?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7886358299493316622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7886358299493316622' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7886358299493316622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7886358299493316622'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2011/03/regex-handling-is-indeed-black-magic.html' title='Regex handling is indeed black magic'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ELe3xn1TfCE/TXyyZ_bJhoI/AAAAAAAASbY/yFfDdVfrPIk/s72-c/regular_expressions.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2677137404131079578</id><published>2011-03-13T07:48:00.002+05:30</published><updated>2011-03-13T08:01:33.270+05:30</updated><title type='text'>Mathematicians Vs. Computer Scientists</title><content type='html'>I always had this confusion in my mind about what Computer Scientists do. We've mathematicians who are usually associated with design of algorithms and than we have electronics wizards who are designing computers of today and tommorrow. This thinking always confused about relevance of Computer Science as a subject. However while reading an article about Parsing, I came across this note by Authors (Dick Grune and Ceriel J.H. Jacobs).&lt;br /&gt;&lt;br /&gt;"There is a considerable difference between a mathematician's view of world and a computer scientist's. To a mathematician all structures are static: they have always been and always be; the only time dependence is that we just haven't discovered all of them yet. The computer scientist is concerned with (and fascinated by) the continuous creation, combination, separation and destruction of structures: time is of essence. In the hands of a mathematician, the Peano axioms create the integers without reference to time, but if a computer scientist uses them to implement integer addition, he finds that they describe a slow process, which is why he'll be looking for a efficient approach. In this respect the computer scientist has more in common with physicist and chemist; like these, he cannot do without a solid basis in several branches of applied mathematics, but, like these, he is willing (and often virtually obliged) to take on faith certain theorems handed over to him by mathematicians. Without rigor of mathematics all science would collapse, but not all inhabitants of a building need to know all the spars and griders that keep it upright. Factoring off certain knowledge to specialists reduces intellectual complexity of a task, which is one of the things computer science is about."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2677137404131079578?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2677137404131079578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2677137404131079578' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2677137404131079578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2677137404131079578'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2011/03/mathematicians-vs-computer-scientists.html' title='Mathematicians Vs. Computer Scientists'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1209835691615524715</id><published>2011-03-03T01:33:00.002+05:30</published><updated>2011-03-03T01:45:17.946+05:30</updated><title type='text'>Rules about Roman Numerals</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-rRz0fl5wpjg/TW6lSdFUibI/AAAAAAAASaA/GaRAorpP5Jo/s1600/roman.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 200px; height: 154px;" src="http://2.bp.blogspot.com/-rRz0fl5wpjg/TW6lSdFUibI/AAAAAAAASaA/GaRAorpP5Jo/s200/roman.jpg" alt="" id="BLOGGER_PHOTO_ID_5579578724821797298" border="0" /&gt;&lt;/a&gt;While reading about regular expressions, found few interesting things about Roman Numerals today.&lt;br /&gt;&lt;br /&gt;In Roman Numerals there are 7 characters which are repeated and combined in various different ways to represent numbers.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I = 1&lt;/li&gt;&lt;li&gt;V = 5&lt;/li&gt;&lt;li&gt;X = 10&lt;/li&gt;&lt;li&gt;L = 50&lt;/li&gt;&lt;li&gt;C = 100&lt;/li&gt;&lt;li&gt;D = 500&lt;/li&gt;&lt;li&gt;M = 1000&lt;/li&gt;&lt;/ul&gt;Following are general rules for constructing Roman numerals:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Characters are additive. I is 1, II is 2 and III is 3. VI is 6, VII is 7 and VIII is 8.&lt;/li&gt;&lt;li&gt;Tens characters (I, X, C and M) can be repeated upto 3 times. &lt;/li&gt;&lt;li&gt;At 9, we need to subtract from the next highest tens character.&lt;/li&gt;&lt;li&gt;The five characters can not be repeated. &lt;/li&gt;&lt;li&gt;Roman numerals are always written highest to lowest, and read left to right, so the order of characters matters very much.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1209835691615524715?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1209835691615524715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1209835691615524715' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1209835691615524715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1209835691615524715'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2011/03/rules-about-roman-numerals.html' title='Rules about Roman Numerals'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-rRz0fl5wpjg/TW6lSdFUibI/AAAAAAAASaA/GaRAorpP5Jo/s72-c/roman.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-6621769396975606923</id><published>2011-02-22T10:27:00.002+05:30</published><updated>2011-02-22T10:28:08.051+05:30</updated><title type='text'>Puppetizing Amazon EC2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-t3gPwLNWqho/TWJqifMDaGI/AAAAAAAASZg/W1kyB4XcF88/s1600/puppet.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 183px; height: 85px;" src="http://1.bp.blogspot.com/-t3gPwLNWqho/TWJqifMDaGI/AAAAAAAASZg/W1kyB4XcF88/s200/puppet.jpg" alt="" id="BLOGGER_PHOTO_ID_5576136429358245986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Vru8Vnl_9RI/TWJqY5Uz_zI/AAAAAAAASZY/L-mKhSQF5to/s1600/aws.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 134px; height: 71px;" src="http://3.bp.blogspot.com/-Vru8Vnl_9RI/TWJqY5Uz_zI/AAAAAAAASZY/L-mKhSQF5to/s200/aws.jpg" alt="" id="BLOGGER_PHOTO_ID_5576136264575614770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;style&gt; &lt;!--  /* Font Definitions */ @font-face  {font-family:"Courier New";  panose-1:2 7 3 9 2 2 5 2 4 4;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;} @font-face  {font-family:Calibri;  panose-1:2 15 5 2 2 2 4 3 2 4;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;} @font-face  {font-family:Cambria;  panose-1:2 4 5 3 5 4 6 3 2 4;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;}  /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin-top:0cm;  margin-right:0cm;  margin-bottom:10.0pt;  margin-left:0cm;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-ascii-font-family:Cambria;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Cambria;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Cambria;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} h1  {mso-style-link:"Heading 1 Char";  mso-style-next:Normal;  margin-top:24.0pt;  margin-right:0cm;  margin-bottom:0cm;  margin-left:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan lines-together;  page-break-after:avoid;  mso-outline-level:1;  font-size:16.0pt;  font-family:"Times New Roman";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:major-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:major-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:major-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:major-bidi;  color:#345A8A;  mso-font-kerning:0pt;  mso-bidi-font-weight:bold;} h2  {mso-style-link:"Heading 2 Char";  mso-style-next:Normal;  margin-top:10.0pt;  margin-right:0cm;  margin-bottom:0cm;  margin-left:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan lines-together;  page-break-after:avoid;  mso-outline-level:2;  font-size:13.0pt;  font-family:"Times New Roman";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:major-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:major-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:major-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:major-bidi;  color:#4F81BD;  mso-bidi-font-weight:bold;} a:link, span.MsoHyperlink  {mso-style-noshow:yes;  color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {mso-style-noshow:yes;  color:purple;  text-decoration:underline;  text-underline:single;} span.Heading1Char  {mso-style-name:"Heading 1 Char";  mso-style-locked:yes;  mso-style-link:"Heading 1";  mso-ansi-font-size:16.0pt;  mso-bidi-font-size:16.0pt;  font-family:Calibri;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:major-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:major-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:major-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:major-bidi;  color:#345A8A;  font-weight:bold;} span.Heading2Char  {mso-style-name:"Heading 2 Char";  mso-style-locked:yes;  mso-style-link:"Heading 2";  mso-ansi-font-size:13.0pt;  mso-bidi-font-size:13.0pt;  font-family:Calibri;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:major-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:major-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:major-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:major-bidi;  color:#4F81BD;  font-weight:bold;} @page Section1  {size:595.0pt 842.0pt;  margin:49.65pt 90.0pt 72.0pt 90.0pt;  mso-header-margin:35.4pt;  mso-footer-margin:35.4pt;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt; &lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */ table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-ascii-font-family:Cambria;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Cambria;  mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:shapedefaults ext="edit" spidmax="1026"&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:shapelayout ext="edit"&gt;   &lt;o:idmap ext="edit" data="1"&gt;  &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;  &lt;!--StartFragment--&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;h2 style="text-align: center;"&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2 style="text-align: justify;"&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2 style="text-align: justify;"&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2 style="text-align: justify;"&gt;For those who aren't there yet ?&lt;/h2&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;a href="http://aws.amazon.com/ec2/"&gt;&lt;span style="font-family:Calibri;"&gt;Amazon EC2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt; is a cloud computing service from Amazon. Using various mechanisms like API, Web Console, Command Line tools, one can reap benefits of IAAS facility provided by Amazon.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;a href="http://www.puppetlabs.com/"&gt;&lt;span style="font-family:Calibri;"&gt;Puppet&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt; is systems configuration management software developed by Puppet Labs (Formally Reductive Labs). Puppet provides a framework to simplify the majority of technical tasks that System Administrators perform. It provides a declarative language, which can be used to express system configuration.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2 style="text-align: justify;"&gt;Why bother about Puppet? Didn't we have ghost do same job for us in real server scenario. And since I learnt about EC2, so there is concept of AMIs as well !&lt;/h2&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;Yeah, AMIs are great way to package a group of software and configuration files on top of an Operating System, but that's all that's there about them. With development in today's circumstances going Agile, we see a lot of changes in configurations and software installed on a system. Re creation of AMIs at regular intervals is definitely not the coolest thing one would like to do. Imagine running 10 webservers on EC2, which were spawned using a private custom AMI with httpd package pre-installed and configuration built into the AMI. During the course of day, developers made changes to the code base and also added some features, which required 10 changes to the configuration of httpd. This situation is nothing less than a nightmare for system administrators when deployments go out in Agile fashion. Our imaginary circumstance would require 10 changes to AMIs and we'd be required to propagate these changes to either 10 existing servers, 10 times or re spawn 10 servers every time a deployment went out to production.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2 style="text-align: justify;"&gt;Puppet comes to our rescue !&lt;/h2&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;With puppet these changes are done using it's declarative language in a file called recipe. So in our setup, we make required changes to the recipe and push the code change to puppetmaster server and puppet client on the webservers connect to puppetmaster after a specified interval (default=30 minutes) and pull the new configuration. Puppet allows designing a setup where in machines are classified under various roles and we can write down configuration for these roles using the declarative language of Puppet.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2 style="text-align: justify;"&gt;Cloud and Puppet&lt;/h2&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;EC2 instances can be spawned using command line tools (provided by &lt;/span&gt;&lt;a href="http://docs.amazonwebservices.com/AmazonEC2/gsg/2006-06-26/"&gt;&lt;span style="font-family:Calibri;"&gt;ec2-api-tools&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;) and we've created a set of shell scripts wrappers around these commands to start of new instances on EC2 and assign them some role through which the instances will get configured using appropriate puppet recipe.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;How did we do it ?&lt;/h2&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;a href="http://www.slideshare.net/"&gt;Slideshare&lt;/a&gt; has been using EC2 for building up it’s conversion stack and as most sysadmins will agree, performance of machines tend to degrade after they’ve been operational for a certain amount of time. We’ve tried to kill this problem by designing conversion stack where new machines on EC2 are spawned at regular interval and old instances are killed. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;We've setup a puppet server on one EC2 instance and used Apache proxy to proxy through multiple instances of puppetmasterd running on different ports. We've also reconfigured init script for puppetmasterd to allow for stop and start of puppetmasterd service on different ports using well known &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;/etc/init.d/&lt;service_name&gt; start/stop&lt;/service_name&gt;&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt; syntax.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;Puppet client by default tries to connect to a host named puppet on port 8140 and hence we've setup firewall settings for this host to allow connection to be established on 8140 port and setup apache to listen on 8140 port. Apache than proxies the request to puppetmasterd server running on different ports in backend. This allows for easy scaling of the setup.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;Puppet server is configured to automatically self sign the certificate request by the client and this allows new clients to connect directly to puppetmaster and get required configuration.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;We’ve also created a separate set of private AMIs which we use to fire up adhoc instances in times of high load on our regular instances. These instances are meant to be running for a small time duration and have all the software and configuration baked into the AMI itself. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;We’ve created our own home grown scripts which spawn instances on EC2 at regular intervals and code on these machines take care of killing the machine after a fixed time.&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt;&lt;/o:p&gt;Following is excerpt of the script which we use to spawn different instances. Role of the instance is passed on as argument to the script:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#!/bin/bash&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#Place request for spot instance&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;ec2-request-spot-instances $AMI -n $NUM_INSTANCES -p $PRICE -t $TYPE -k $KEY_PAIR --group $SECURITY_GROUP &gt; /tmp/ec2_spot_instance_request&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;SIR_REQUEST=`cat /tmp/ec2_spot_instance_request | cut -f 2`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;rm -f /tmp/ec2_spot_instance_request&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#Capture status of request. Initially request has STATUS=open and we need it to be active in order to continue&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;STATUS=`ec2-describe-spot-instance-requests | grep $SIR_REQUEST | cut -f 6`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#We won't want to wait till infinity for instance to spawn up. Our threshold is 5 minutes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;COUNT=1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#This variable checks if instance is spot or regular&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;IS_SPOT=1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#Wait for spot instance request to succeed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;REQUIRED_STATUS="active"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;while [ $STATUS != $REQUIRED_STATUS ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;sleep 60 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;STATUS=`ec2-describe-spot-instance-requests | grep $SIR_REQUEST | cut -f 6`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;if [ $COUNT -gt 5 ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;     &lt;/span&gt;IS_SPOT=0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;     &lt;/span&gt;break&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;fi&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;COUNT=`expr $COUNT + 1`&lt;span style=""&gt;     &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;done&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;if [ $IS_SPOT -eq 1 ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;INSTANCE_ID=`ec2-describe-spot-instance-requests | grep $SIR_REQUEST | cut -f 12`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;#Kill spot instance request we made earlier&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;ec2-cancel-spot-instance-requests $SIR_REQUEST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;#Spawn up a regular instance&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;ec2-run-instances $AMI -n $NUM_INSTANCES -t $TYPE -k $KEY_PAIR --group $SECURITY_GROUP &gt; /tmp/ec2_instance_request&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;INSTANCE_ID=`cat /tmp/ec2_instance_request | tail -1 | cut -f2`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;STATUS=`cat /tmp/ec2_instance_request | tail -1 | cut -f6`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;rm -f /tmp/ec2_instance_request&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;REQUIRED_STATUS="running"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;while [ $STATUS != $REQUIRED_STATUS ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;     &lt;/span&gt;sleep 60&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;     &lt;/span&gt;STATUS=`ec2-describe-instances $INSTANCE_ID | tail -1 | cut -f6`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;done&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;fi&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;sleep 120&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#Instance is now active. Capture data associated with instance like instance-id, external and internal dns.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;INSTANCE_EXTERNAL_DNS=`ec2-describe-instances $INSTANCE_ID | tail -1 | cut -f 4`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;INSTANCE_INTERNAL_HOSTNAME=`ec2-describe-instances $INSTANCE_ID | tail -1 | cut -f 5 | cut -f 1 -d'.' `&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#We need to do the record keeping&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;echo "`date`: $INSTANCE_ID: $INSTANCE_EXTERNAL_DNS: $INSTANCE_INTERNAL_HOSTNAME: PDF2SWF" &gt;&gt; $DB_FILE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#If we are not able to get internal hostname within next 1 minutes for some reason then quit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;while [ -z $INSTANCE_INTERNAL_HOSTNAME ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;COUNT=`expr $COUNT + 1 `&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;sleep 10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;INSTANCE_INTERNAL_HOSTNAME=`ec2-describe-instances $INSTANCE_ID | tail -1 | cut -f 5 | cut -f 1 -d'.' `&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;INSTANCE_EXTERNAL_DNS=`ec2-describe-instances $INSTANCE_ID | tail -1 | cut -f 4`&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;if [ $COUNT -ge 6 ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;     &lt;/span&gt;exit 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;fi&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;done&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#Configure puppetmaster to associate relevant class with node&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;$SCP root@$PUPPET_MASTER:/etc/puppet/manifests/nodes.pp /tmp/nodes.pp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;grep $INSTANCE_INTERNAL_HOSTNAME /tmp/nodes.pp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;if [ $? -eq 0 ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;sed "/$INSTANCE_INTERNAL_HOSTNAME/d" /tmp/nodes.pp &gt; /tmp/newnodes.pp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;     &lt;/span&gt;mv /tmp/newnodes.pp /tmp/nodes.pp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;fi&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;echo "node $INSTANCE_INTERNAL_HOSTNAME { include $1 }" &gt;&gt; /tmp/nodes.pp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;$SCP /tmp/nodes.pp root@$PUPPET_MASTER:/tmp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;$SSH root@$PUPPET_MASTER "mv /tmp/nodes.pp /etc/puppet/manifests/nodes.pp"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;rm -f /tmp/nodes.pp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;$SSH root@$INSTANCE_EXTERNAL_DNS "cat /tmp/puppet_host &gt;&gt; /etc/hosts"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;#Install puppet on newly built ec2 host&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-family:courier new;"&gt;$SSH root@$INSTANCE_EXTERNAL_DNS "apt-get -y install puppet"&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;This script tries to spawn spot instances on EC2 (&lt;/span&gt;&lt;a href="http://www.jonathanboutelle.com/gaming-the-amazon-spot-market"&gt;&lt;span style="font-family:Calibri;"&gt;for more details about spot instances, refer to this wonderful article by Jonathan Boutelle, CTO, Slideshare&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;). Since availability of spot instances is not certain and we wanted our script to spawn up a instance in stipulated time, so we decided to set a time limit of 5 minutes, to wait for ascertaining availability of spot instance. If we don't get a spot instance in 5 minutes, we spawn&lt;span style=""&gt;  &lt;/span&gt;up a regular instance instead.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;Once an instance has been spawned we do some record keeping tasks and add an entry for puppet server in &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;/etc/hosts&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt; file of the node. Puppet client by default tries to connect to a host named puppet and hence our entry in &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;/etc/hosts&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt; looks like follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;XXX.XXX.XXX.XXX&lt;span style=""&gt; &lt;/span&gt;puppet&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;Finally we make an entry for this newly spawned node in &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;nodes.pp&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt; on puppet master. This is a tricky part as DNS on EC2 reassigns previously assigned hostname to a new node and this can cause duplicate entries in &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;nodes.pp&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt; also many a times it so happens that we are able to spawn off an instance however the script is unable to get hostname using &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;ec2-api-tools&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt; and this can cause an invalid entry to appear in &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;nodes.pp&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt;. We've tried to circumvent these errors by implementing few error checks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;There are several improvements that can be made to existing setup. We are relying on DNS service of EC2 and this causes lots of issues while identifying instances in cases of&lt;span style=""&gt;  &lt;/span&gt;troubleshooting errors. This can be resolved by setting up a home grown DNS server on EC2. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family:Calibri;"&gt;We’ve tried to setup a nagios monitoring system on EC2 as well to monitor our services running on cloud. This can be very useful as most of the monitoring facilities provided by Amazon are pretty basic and are more oriented towards system health checks rather than service health checks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;!--EndFragment--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-6621769396975606923?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/6621769396975606923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=6621769396975606923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6621769396975606923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6621769396975606923'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2011/02/puppetizing-amazon-ec2_22.html' title='Puppetizing Amazon EC2'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-t3gPwLNWqho/TWJqifMDaGI/AAAAAAAASZg/W1kyB4XcF88/s72-c/puppet.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8786945782170921992</id><published>2011-01-23T17:55:00.004+05:30</published><updated>2011-01-23T18:04:21.246+05:30</updated><title type='text'>Python source code editing using vim</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/TTwfq6K48sI/AAAAAAAASWA/fkdt013Fpro/s1600/canvas.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 136px; height: 46px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/TTwfq6K48sI/AAAAAAAASWA/fkdt013Fpro/s200/canvas.png" alt="" id="BLOGGER_PHOTO_ID_5565358061552988866" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_kpglEYwtRpk/TTwfwpj_dLI/AAAAAAAASWI/byYYL4F3WKg/s1600/vim_header.gif"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 124px; height: 31px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/TTwfwpj_dLI/AAAAAAAASWI/byYYL4F3WKg/s200/vim_header.gif" alt="" id="BLOGGER_PHOTO_ID_5565358160174085298" border="0" /&gt;&lt;/a&gt;Recently found myself handling a bit of python code and not being able to use a GUI environment, it wasn't very easy to code using standard vim editor. Googled a bit and found few nice tips for enabling auto indent, syntax highlighting, and best of the best autocompletion of module details.&lt;br /&gt;&lt;br /&gt;For autocomplete feature you'll need to get pydiction installed. The .vim files and supporting files are available at &lt;a href="http://www.vim.org/scripts/script.php?script_id=850"&gt;http://www.vim.org/scripts/script.php?script_id=850&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally my ~/.vimrc file looks like following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;filetype plugin on&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;set nocompatible&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;syntax on&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;set background=light&lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;set showmatch&lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;set ignorecase&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;set showmode&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;set ts=4&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;set sw=4&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;set autoindent&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;set smartindent&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;let g:pydiction_location = '/usr/local/share/pydiction/complete-dict'&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-8786945782170921992?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8786945782170921992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8786945782170921992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8786945782170921992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8786945782170921992'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2011/01/python-source-code-editing-using-vim.html' title='Python source code editing using vim'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/TTwfq6K48sI/AAAAAAAASWA/fkdt013Fpro/s72-c/canvas.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8307290813049979543</id><published>2010-08-03T22:58:00.002+05:30</published><updated>2010-08-03T23:18:06.011+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon SQS'/><title type='text'>Monitor Amazon SQS Queue length</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/TFhWKI7_4mI/AAAAAAAAPxc/SKs6V1rPSrY/s1600/aws_logo.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 116px; height: 47px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/TFhWKI7_4mI/AAAAAAAAPxc/SKs6V1rPSrY/s200/aws_logo.jpg" alt="" id="BLOGGER_PHOTO_ID_5501241677030875746" border="0" /&gt;&lt;/a&gt;We make quite a bit of use of &lt;a href="http://aws.amazon.com/sqs/"&gt;Amazon SQS&lt;/a&gt; for some of critical applications at our setup and as per our monitoring requirements I wanted to make sure that we get SQS queue lengths being monitored through &lt;a href="http://www.nagios.org/"&gt;Nagios&lt;/a&gt;. I had earlier made use of &lt;a href="http://code.google.com/p/boto/"&gt;boto library&lt;/a&gt; during one of our unsuccessful attempts at using &lt;a href="http://hadoop.apache.org/"&gt;Hadoop&lt;/a&gt; for some analytics project. However this time around I was able to make good use of boto libraries to get the count of messages in a SQS queue with just few lines of codes. Following is code snippet used to get count of number of messages in a SQS queue:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;import sys&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;from boto.sqs.connection import SQSConnection&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;conn=SQSConnection('AWS_ACCESS_KEY_ID','AWS_SECRET_KEY')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;q=conn.get_queue(sys.argv[1])&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;attrib = q.get_attributes("ApproximateNumberOfMessages")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print int(attrib['ApproximateNumberOfMessages'])&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order to use the above code snippet, just follow following steps:&lt;br /&gt;&lt;br /&gt;1. Install boto. To quickly setup boto, get latest boto source code from &lt;a href="http://code.google.com/p/boto/"&gt;http://code.google.com/p/boto/&lt;/a&gt;. Extact the compressed file and do a &lt;span style="font-family: courier new;font-size:85%;" &gt;python setup.py install&lt;/span&gt; as root.&lt;br /&gt;2. Copy paste the above code to a temporary file say &lt;span style="font-family: courier new;font-size:85%;" &gt;/tmp/test.py.&lt;/span&gt; Replace '&lt;span style="font-size:85%;"&gt;&lt;span&gt;AWS_ACCESS_KEY_ID'&lt;/span&gt; &lt;span style="font-size:100%;"&gt;and&lt;/span&gt; &lt;span style="font-size:85%;"&gt;'AWS_SECRET_KEY'&lt;/span&gt; &lt;span style="font-size:100%;"&gt;with relevant details.&lt;br /&gt;3. Execute the code snippet using : &lt;span style="font-size:85%;"&gt;python test.py [SQS_QUEUE_NAME]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/2580407331877610996-8307290813049979543?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8307290813049979543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8307290813049979543' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8307290813049979543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8307290813049979543'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/08/monitor-amazon-sqs-queue-length.html' title='Monitor Amazon SQS Queue length'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/TFhWKI7_4mI/AAAAAAAAPxc/SKs6V1rPSrY/s72-c/aws_logo.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-3380962528426469479</id><published>2010-06-21T00:23:00.003+05:30</published><updated>2010-06-21T00:55:28.898+05:30</updated><title type='text'>Transfer instance from one EC2 account to other</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/TB5q8_YPduI/AAAAAAAAPpE/g0PG_NHJJT4/s1600/aws_logo.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 116px; height: 47px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/TB5q8_YPduI/AAAAAAAAPpE/g0PG_NHJJT4/s200/aws_logo.jpg" alt="" id="BLOGGER_PHOTO_ID_5484938992221648610" border="0" /&gt;&lt;/a&gt;Recently we decided to migrate our instances to a newly created EC2 account. I was assigned the task of migration and initially my impression of work was that it would only involve fiddling with aws credentials and I'd be done. However I couldn't have been any wrong. Migration of instances from one EC2 account to new one was a job in itself for me. Following are the steps which I had to follow to migrate the instances:&lt;br /&gt;&lt;br /&gt;1. Create AWS key pair for new account.&lt;br /&gt;2. Create X.509 certificate for new account.&lt;br /&gt;&lt;br /&gt;There are separate procedures which I too to migrate Linux and Windows instances.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Linux instance migration:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Copy X.509 certificate to some directory on instance which we want to migrate. I copied private key and certificate to &lt;span style="font-family:courier new;"&gt;/opt/ec2/keys&lt;/span&gt; directory.&lt;br /&gt;&lt;br /&gt;2. Login to instance.&lt;br /&gt;&lt;br /&gt;3. Download and extract &lt;span style="font-family:courier new;"&gt;ec2-ami-tools&lt;/span&gt; to &lt;span style="font-family:courier new;"&gt;/opt/ec2&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;4. Set a variable &lt;span style="font-family:courier new;"&gt;EC2_HOME:&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; export EC2_HOME=/opt/ec2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. Set &lt;span style="font-family:courier new;"&gt;PATH: export PATH=$PATH:$EC2_HOME/bin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6. Bundle the instance:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ec2-bundle-vol -d /mnt -k /opt/ec2/keys/pk-XXX.pem -c /opt/ec2/keys/cert-XXX.pem -u XXXXXXXXX -e /opt/ec2 -s 10000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For details of using &lt;span style="font-family:courier new;"&gt;ec2-bundle-vol&lt;/span&gt;, use &lt;span style="font-family:courier new;"&gt;--help&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7. Upload bundle: before uploading bundle I create a S3 bucket called &lt;span style="font-family:courier new;"&gt;ami_from_other_account&lt;/span&gt; on my newly created account.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ec2-upload-bundle -b ami_from_other_account -m /mnt/image.manifest.xml -a XXXXX -s XXXXXX&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;8. Register the AMI: in order to register the AMI we need &lt;span style="font-family:courier new;"&gt;ec2-api-tools&lt;/span&gt; and they need to be setup properly. One needs &lt;span style="font-family:courier new;"&gt;JRE&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;JAVA_HOME&lt;/span&gt; variable appropriately set. I had setup &lt;span style="font-family:courier new;"&gt;ec2-api-tools&lt;/span&gt; on my machine. I had also copied private key and certificate files to &lt;span style="font-family:courier new;"&gt;/opt/ec2/keys&lt;/span&gt; on my machine&lt;br /&gt;The private key and Certificate are one's for newly created account.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ec2-register ami_from_other_account/image.manifest.xml -K /opt/ec2/keys/pk-XXX.pem -C /opt/ec2/keys/cert-XXX.pem -n AMI-Blah-Blah-Blah.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Windows instance migration:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Download and extract &lt;span style="font-family:courier new;"&gt;ec2-ami-tools&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;ec2-api-tools&lt;/span&gt; to &lt;span style="font-family:courier new;"&gt;/opt/ec2 directory&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;2. Download private key and certificate file to &lt;span style="font-family:courier new;"&gt;/opt/ec2/keys&lt;/span&gt;&lt;br /&gt;3. Share AMI of existing Windows instance with other user.&lt;br /&gt;&lt;br /&gt;4. Run the instance thru new user account.&lt;br /&gt;&lt;br /&gt;5. I created a S3 bucket called &lt;span style="font-family:courier new;"&gt;win_fac&lt;/span&gt; to hold my new AMI files&lt;br /&gt;&lt;br /&gt;6. Bundle running instance&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ec2-bundle-instance i-XXXX -b win_fac -o AWS_ACCESS_KEY -w AWS_SECRET_KEY&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7. Register new AMI&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ec2-register win_fac/image.manifest.xml -K /opt/ec2/keys/pk-XXX.pem -C  /opt/ec2/keys/cert-XXX.pem -n WIN_AMI.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-3380962528426469479?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/3380962528426469479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=3380962528426469479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3380962528426469479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3380962528426469479'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/06/transfer-instance-from-one-ec2-account.html' title='Transfer instance from one EC2 account to other'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/TB5q8_YPduI/AAAAAAAAPpE/g0PG_NHJJT4/s72-c/aws_logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4418234366116890507</id><published>2010-04-25T20:29:00.002+05:30</published><updated>2010-04-25T20:34:08.480+05:30</updated><title type='text'>Penalty of living a digital life</title><content type='html'>Got my gmail accnt compromised yesterday. WTF ! even Mac isn't safe .... The account remained in compromised state for 8 minutes and damage was done in that period. Everyone in my contact list was sent some sort of SPAM message. Worst was that my boss in one of my earlier company received a mail from me asking him "Would you love to try out Viagra !". Though I sent an apology but still it made me realize what kind of world am I living in and yeah I'm 10 x more cautious now.&lt;br /&gt;Even sent a mail to Mr. Jobs about this :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4418234366116890507?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4418234366116890507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4418234366116890507' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4418234366116890507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4418234366116890507'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/04/penalty-of-living-digital-life.html' title='Penalty of living a digital life'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2919508617791425926</id><published>2010-04-16T14:58:00.001+05:30</published><updated>2010-04-16T15:01:40.478+05:30</updated><title type='text'>Regular Expression builder.</title><content type='html'>Found a real nice tool in form of http://rubular.com/ It served as a life saver while I was struggling with regular expression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2919508617791425926?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2919508617791425926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2919508617791425926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2919508617791425926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2919508617791425926'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/04/regular-expression-builder.html' title='Regular Expression builder.'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2946556500665716388</id><published>2010-04-13T12:26:00.001+05:30</published><updated>2010-05-23T21:21:09.113+05:30</updated><title type='text'>Configuring puppet with mongrel and apache load balancer</title><content type='html'>We've been using EC2 quite a bit now for running some services which needs machines to be spawned up on daily basis. This kind of setup is a real pain if it was all to be handled manually. Our backend engineers were smart to design an automated setup using custom AMI which can configure themself using shell scripts. However this meant that upgrading to new versions would be a PITA. Idea of using puppet seem really useful in such situations and I decided to go for installation of puppetmaster on EC2.&lt;br /&gt;&lt;br /&gt;Following are the steps I followed to configure puppetmaster with mongrel running behind apache load balancer (I was using plain vanilla CentOS 5.4 AMI):&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Install puppet-server by following steps mentioned in &lt;a href="http://ifireball.wordpress.com/docs/howto-install-puppet-on-centos-50/"&gt;http://ifireball.wordpress.com/docs/howto-install-puppet-on-centos-50/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Edit /etc/sysconfig/puppet and add following statement to end of file:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PUPPETMASTER_PORTS=( 18140 18141 18142 18143 )&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Install mongrels : &lt;span style="font-family:courier new;"&gt;yum install rubygem-mongrel&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Install apache and mod_ssl : &lt;span style="font-family:courier new;"&gt;yum install httpd &amp;amp;&amp;amp; yum install mod_ssl&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create a file &lt;span style="font-family:courier new;"&gt;/etc/httpd/conf.d/puppet.conf&lt;/span&gt; with following content:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Listen 8140&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;proxy&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       BalancerMember http://127.0.0.1:18140&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       BalancerMember http://127.0.0.1:18141&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       BalancerMember http://127.0.0.1:18142&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       BalancerMember http://127.0.0.1:18143&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/proxy&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;virtualhost&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       SSLEngine On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       SSLCipherSuite SSLv2:-LOW:-EXPORT:RC4+RSA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       SSLCertificateFile /var/lib/puppet/ssl/certs/puppet.compute-1.internal.pem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/puppet.compute-1.internal.pem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       SSLCACertificateFile /var/lib/puppet/ssl/ca/ca_crt.pem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       SSLVerifyClient optional&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       SSLVerifyDepth 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       SSLOptions +StdEnvVars&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       &amp;lt;location&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               SetHandler balancer-manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               Order allow,deny&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               Allow from all&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       &amp;lt;/location&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       ProxyPass / balancer://puppetmaster/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       ProxyPassReverse / balancer://puppetmaster/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       ProxyPreserveHost On&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       ErrorLog /var/log/httpd/balancer_error_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       CustomLog /var/log/httpd/balancer_access_log combined&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       CustomLog /var/log/httpd/balancer_ssl_requests "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/virtualhost&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Edit /etc/init.d/puppetmaster :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:100%;" &gt;#!/bin/bash&lt;br /&gt;# puppetmaster  This shell script enables the puppetmaster server.&lt;br /&gt;#&lt;br /&gt;# Author:       Duane Griffin &lt;d.griffin@psenterprise.com face="courier new"&gt;&lt;br /&gt;#&lt;br /&gt;# chkconfig: - 65 45&lt;br /&gt;#&lt;br /&gt;# description: Server for the puppet system management tool.&lt;br /&gt;# processname: puppetmaster&lt;br /&gt;&lt;br /&gt;PATH=/usr/bin:/sbin:/bin:/usr/sbin&lt;br /&gt;export PATH&lt;br /&gt;&lt;br /&gt;lockfile=/var/lock/subsys/puppetmaster&lt;br /&gt;&lt;br /&gt;# Source function library.&lt;br /&gt;. /etc/rc.d/init.d/functions&lt;br /&gt;&lt;br /&gt;if [ -f /etc/sysconfig/puppetmaster ]; then&lt;br /&gt; . /etc/sysconfig/puppetmaster&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;PUPPETMASTER_OPTS=""&lt;br /&gt;[ -n "$PUPPETMASTER_MANIFEST" ] &amp;amp;&amp;amp; PUPPETMASTER_OPTS="--manifest=${PUPPETMASTER_MANIFEST}"&lt;br /&gt;if [ -n "$PUPPETMASTER_PORTS" ]; then&lt;br /&gt; PUPPETMASTER_OPTS="$PUPPETMASTER_OPTS --servertype=mongrel"&lt;br /&gt;elif [ -n "$PUPPETMASTER_PORTS" ]; then&lt;br /&gt;    PUPPETMASTER_OPTS="${PUPPETMASTER_OPTS} --masterport=${PUPPETMASTER_PORTS[0]}"&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;[ -n "$PUPPETMASTER_LOG" ] &amp;amp;&amp;amp; PUPPETMASTER_OPTS="${PUPPETMASTER_OPTS} --logdest=${PUPPETMASTER_LOG}"&lt;br /&gt;PUPPETMASTER_OPTS="${PUPPETMASTER_OPTS} \&lt;br /&gt; ${PUPPETMASTER_EXTRA_OPTS}"&lt;br /&gt;&lt;br /&gt;RETVAL=0&lt;br /&gt;&lt;br /&gt;prog=puppetmasterd&lt;br /&gt;PUPPETMASTER=/usr/sbin/$prog&lt;br /&gt;&lt;br /&gt;start() {&lt;br /&gt; echo -n $"Starting puppetmaster: "&lt;br /&gt;&lt;br /&gt; # Confirm the manifest exists&lt;br /&gt; if [ -r $PUPPETMASTER_MANIFEST ]; then&lt;br /&gt;      if [ -n "$PUPPETMASTER_PORTS" ]; then&lt;br /&gt;          for ((i=0; i&lt;4; masterport="${PUPPETMASTER_PORTS[$i]}" pidfile="/var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid" ret="$?;" retval="$ret" retval="$?" i="0;" ret="$?;" retval="$ret" retval="$?" i="0;" ret="$?;" retval="$ret" retval="$?"&gt; &lt;/d.griffin@psenterprise.com&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-family: courier new;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;span style="font-family: courier new;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2946556500665716388?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2946556500665716388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2946556500665716388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2946556500665716388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2946556500665716388'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/04/configuring-puppet-with-mongrel-and.html' title='Configuring puppet with mongrel and apache load balancer'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8384891827631224843</id><published>2010-04-06T19:08:00.003+05:30</published><updated>2010-04-07T20:19:42.777+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Puppet'/><category scheme='http://www.blogger.com/atom/ns#' term='Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='EC2'/><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop'/><title type='text'>Create AMI from existing EC2 instance.</title><content type='html'>There are times when we've configured an EC2 instance as per our requirements and we find need to create an AMI from the very instance. Recently I found this as a requirement while automating hadoop setup on EC2. We are using clouder-hadoop AMI for booting up hadoop cluster. However these machines need some additional softwares and we wanted to manage the setup using puppet.&lt;br /&gt;&lt;br /&gt;So our requirement was to have an AMI with puppet installed and /etc/hosts containing entry corresponding to puppet master. We also wanted puppet to startup during bootup so that every software needed for our purpose was installed before machine was put to production use.&lt;br /&gt;&lt;br /&gt;We followed following steps to get an AMI for our purpose:&lt;br /&gt;&lt;br /&gt;1. Launch an EC2 instance using cloudera-hadoop AMI. Install puppet and configure /etc/hosts as per our requirement. We'll presume our instance id to be &lt;span style="font-weight: bold;"&gt;i-6666&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Log off from the EC2 instance we just created.&lt;br /&gt;&lt;br /&gt;3. On our machine we download ec2-ami-tools.zip and ec2-api-tools.zip&lt;br /&gt;&lt;br /&gt;4. Create a directory ~/ec2&lt;br /&gt;&lt;br /&gt;5. Extract ec2-ami-tools.zip and ec2-api-tools.zip to ~/ec2.&lt;br /&gt;&lt;br /&gt;6. Copy EC2's PEM encoded X.509 certificate named something like cert-xxxxxxx.pem and PEM encoded RSA private key named something like pk-xxxxxxx.pem to ~/ec2. We can get these by logging to Amazon Web Services account at http://aws.amazon.com.&lt;br /&gt;&lt;br /&gt;7. Setup following environment variables (I'm on Mac OS X, you might need to modify your bash_profile accordingly)&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;# Setup Amazon EC2 Command-Line Tools&lt;br /&gt;export EC2_HOME=~/.ec2&lt;br /&gt;export PATH=$PATH:$EC2_HOME/bin&lt;br /&gt;export EC2_PRIVATE_KEY=`ls $EC2_HOME/pk-*.pem`&lt;br /&gt;export EC2_CERT=`ls $EC2_HOME/cert-*.pem`&lt;br /&gt;export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;8. Source the bash_profile.  &lt;span style="font-family:courier new;"&gt;source ~/.bash_profile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;9. Execute the command ec-bundle-instance. This command helps create an AMI from existing EC2 instance, bundle it and deploy it on S3. Following is an e.g. of the command in action:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;ec2-bundle-instance i-6666 -b mybucket -p hadoopami -o &lt;aws_access_key&gt; -w &lt;aws_secret_key&gt;&lt;/aws_secret_key&gt;&lt;/aws_access_key&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mybucket is name of S3 bucket and aws_access_key and aws_secret_key are Access Key ID and AWS Secret Access Key for the owner of the Amazon S3 bucket.&lt;br /&gt;&lt;br /&gt;10. The above process takes some time and once done the EC2 instance will reboot. We can track the progress using&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ec2-describe-bundle-tasks&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;11. Once image has been uploaded to S3 we need to register the image. We do so using &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ec2-register&lt;/span&gt;&lt;/span&gt;. Following is an e.g. of command in action:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ec2-register mybucket/hadoop-ami&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/2580407331877610996-8384891827631224843?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8384891827631224843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8384891827631224843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8384891827631224843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8384891827631224843'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/04/create-ami-from-existing-ec2-instance.html' title='Create AMI from existing EC2 instance.'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1989091604673441026</id><published>2010-03-29T22:38:00.002+05:30</published><updated>2010-03-29T22:41:52.007+05:30</updated><title type='text'>Email Spam Facts (By Rackspace Hosting)</title><content type='html'>&lt;p&gt; &lt;img alt="" height="450" src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-01.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-01.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-01.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-01.jpg" width="490" /&gt;&lt;br&gt; &lt;img alt="" src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-02.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-02.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-02.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-02.jpg" /&gt;&lt;br&gt; &lt;img alt="" height="450" src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-03.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-03.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-03.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-03.jpg" width="490" /&gt;&lt;br&gt; &lt;img alt="" height="550" src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-04.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-04.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-04.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-04.jpg" width="590" /&gt;&lt;br&gt; &lt;img alt="" height="450" src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-04-02.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-04-02.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-04-02.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-04-02.jpg" width="490" /&gt;&lt;br&gt; &lt;img alt="" height="450" src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-05.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-05.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-05.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-05.jpg" width="490" /&gt;&lt;br&gt; &lt;img alt="" height="531" src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-06.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-06.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-06.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-06.jpg" width="490" /&gt;&lt;br&gt; &lt;img alt="" height="450" src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-wordle.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-wordle.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-wordle.jpg" _cke_saved_src="http://c1136032.cdn.cloudfiles.rackspacecloud.com/SPAM-wordle.jpg" width="490" /&gt;&lt;br&gt; &lt;p&gt; &lt;a href="http://www.rackspace.com/apps/email_hosting/exchange_hosting/" _cke_saved_href="http://www.rackspace.com/apps/email_hosting/exchange_hosting/" _cke_saved_href="http://www.rackspace.com/apps/email_hosting/exchange_hosting/" _cke_saved_href="http://www.rackspace.com/apps/email_hosting/exchange_hosting/"&gt;Hosted Exchange&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/2580407331877610996-1989091604673441026?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1989091604673441026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1989091604673441026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1989091604673441026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1989091604673441026'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/03/email-spam-facts-by-rackspace-hosting.html' title='Email Spam Facts (By Rackspace Hosting)'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4049171006906155669</id><published>2010-02-25T15:47:00.001+05:30</published><updated>2010-04-08T16:02:43.763+05:30</updated><title type='text'>Green Buildings the future of homes and workplaces</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt; You might have recently heard about grren buildings or sustainable buildings. I thought let me just put some light on the same. According to Wikipedia &lt;span style="font-weight: bold;"&gt;G&lt;/span&gt;&lt;b&gt;reen &lt;/b&gt;or &lt;b&gt;sustainable building&lt;/b&gt;, is the practice of creating structures and using processes that are environmentally responsible and resource-efficient throughout a building's life-cycle: from siting to design, construction, operation, maintenance, renovation, and deconstruction. This practice expands and complements the classical building design concerns of economy, utility, durability, and comfort&lt;span style="text-decoration: underline;"&gt;. &lt;/span&gt;&lt;sup id="cite_ref-epa.gov_0-0" class="reference"&gt;&lt;a href="http://en.wikipedia.org/wiki/Green_building#cite_note-epa.gov-0"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;p&gt;New technology is constantly being developed for the same though the main goals of green buildings are  reduce the overall impact of the built environment on human health and the natural environment by &lt;/p&gt;&lt;ul&gt;&lt;li&gt;efficiently use of energy, water, and other resources&lt;/li&gt;&lt;li&gt;Protecting occupant health and improving employee productivity&lt;/li&gt;&lt;li&gt;Reducing waste, pollution and saving enviroment&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;sup id="cite_ref-epa.gov_0-1" class="reference"&gt;&lt;a href="http://en.wikipedia.org/wiki/Green_building#cite_note-epa.gov-0"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;How ever the green buildings are subject to certain standards in every country.  In India they are called Griha and have been drawn up by TERI and LEED together forming Indian Green building council.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Some of the certified green buildings in india are Mahindra Splendour in Mumbai, ITC Green Centre in Gurgaon, CII-Sohrabji Godrej Green Business Centre in Hyderabad, Olympia Tech Park in Chennai, Technopolis in Kolkata.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Recently the &lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Arial,sans-serif; font-size: small;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.punemirror.in/index.aspx?page=article&amp;amp;sectid=2&amp;amp;contentid=20100223201002232319583124be4b2da&amp;amp;sectxslt"&gt;Suzlon One Earth Global Headquarters at Hadapsar&lt;/a&gt;, designed by Christopher Benninger, was chosen as the best corporate building by the Architects, Engineers and Surveyors’ Association (AESA). The building was termed as one of the greenest and most energy efficient building world over.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Arial,sans-serif; font-size: small;"&gt;With developments like this India surely will emerge as the one of coolest destinations for green buildings world over. &lt;span class="Apple-converted-space"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4049171006906155669?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4049171006906155669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4049171006906155669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4049171006906155669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4049171006906155669'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/02/green-buildings-future-of-homes-and.html' title='Green Buildings the future of homes and workplaces'/><author><name>sms</name><uri>http://www.blogger.com/profile/03554054238627195716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7640770963759025944</id><published>2010-02-20T16:55:00.002+05:30</published><updated>2010-02-20T16:57:34.567+05:30</updated><title type='text'>Mantra for Startups !</title><content type='html'>Recently found this wonderful article by Paul Graham about startups (http://www.paulgraham.com/start.html).&lt;br /&gt;&lt;br /&gt;Definitely learned a thing or two from it and hope it will guide me to a better decision making process in years to come :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-7640770963759025944?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7640770963759025944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7640770963759025944' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7640770963759025944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7640770963759025944'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/02/mantra-for-startups.html' title='Mantra for Startups !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1072815595022327634</id><published>2010-02-07T20:43:00.002+05:30</published><updated>2010-02-07T21:37:34.378+05:30</updated><title type='text'>If you are using SQUID then MySAR is a must have</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.squid.de/SQUID_LOGO.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 123px; height: 58px;" src="http://www.squid.de/SQUID_LOGO.gif" alt="" border="0" /&gt;&lt;/a&gt;Since a long time I've been thinking of using a tool which can help me analyze usage of my proxy server i.e. Squid. I've a network of around 500 hosts and the entire traffic comes thru my proxy and I was just inquisitive to know what my users been doing :)&lt;br /&gt;&lt;br /&gt;Earlier I was using webalizer to generate analysis of the Squid log, however the problem with webalizer is that it's able to generate an efficient analysis after a day. So the latest record that I can see is of yesterday. However my requirement was to view the present log and this is where I stumbled upon mysar (MySQL SQUID Access Report). This tool parses the access_log file generated by Squid and stores the content of the file in a mysql database. It allows for log rotation without worrying about loosing older data. I've set the record life for 60 days and hence I can view the reports for last 60 days, though my log rotation happens every week.&lt;br /&gt;&lt;br /&gt;The web interface of mysar is pretty simple and powerful. One can customize the display to his/her preference. I like to view the report with most byte consuming host first :)&lt;br /&gt;&lt;br /&gt;Since it's usage I've been able to identify patterns of web usage in my setup and have been able to formulate a more efficient policy which has allowed me to manage my setup more efficiently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1072815595022327634?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1072815595022327634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1072815595022327634' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1072815595022327634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1072815595022327634'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2010/02/if-you-are-using-squid-then-mysar-is.html' title='If you are using SQUID then MySAR is a must have'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5190242239557316514</id><published>2009-12-08T14:46:00.001+05:30</published><updated>2009-12-09T14:52:12.562+05:30</updated><title type='text'>Climate Change: think more about it</title><content type='html'>I am sure by now all of you must have heard about Cop15.  If you have not, then here is a brief backgrounder courtesy Wikipedia. “The United Nations Framework Convention on Climate Change (UNFCCC or FCCC) is an international environmental treaty produced at the United Nations Conference on Environment and Development (UNCED), informally known as the &lt;a href="http://en.wikipedia.org/wiki/Earth_Summit"&gt;Earth Summit&lt;/a&gt;, held in Rio de Janeiro from 3 to 14 June 1992. The objective of the treaty is to stabilize greenhouse gas concentrations in the atmosphere at a level that would prevent dangerous anthropogenic interference with the climate system.”&lt;br /&gt;&lt;br /&gt;The Rio summit has been followed up by several similar summits known as COP (Conferences of the Parties) as the treaty itself sets no mandatory limits on greenhouse gas emissions for individual countries and contains no enforcement mechanisms. These summits decided updates (called "protocols") that would set mandatory emission limits. The principal update is the &lt;a href="http://en.wikipedia.org/wiki/Kyoto_Protocol"&gt;Kyoto Protocol&lt;/a&gt; on Climate Change (1997), or COP 3 which has become much better known than the UNFCCC itself.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/COP_15"&gt;COP 15&lt;/a&gt; is currently taking place in Copenhagen, Denmark from 7 December to 18 December 2009.&lt;br /&gt;&lt;br /&gt;The overall goal for the COP 15/MOP 5 United Nations Climate Change Conference in Denmark was to establish an ambitious global climate agreement for the period from 2012 when the first commitment period under the Kyoto Protocol expires.&lt;br /&gt;&lt;br /&gt;Now I know all of us people interested in technology do know about climate change. We have seen it around us. The weather is getting unpredictable. Himalayas, specifically Uttaranchal where I have spent my teenage is seeing Glaciers shrink at an alarming rate. I think we all should think , analyze and then share our views about this serious matter. If we talk about India in particular, we have some good thoughts about it. Like we want to have 15 per cent of all our energy consumption from renewable energy by 2020. But it is a hard target and we need to consider all our alternatives to meet this target. For a more detailed discussion on the same , check this link &lt;a href="http://www.green-global.net/blog.aspx"&gt;Green Global&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5190242239557316514?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5190242239557316514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5190242239557316514' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5190242239557316514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5190242239557316514'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/12/climate-change-think-more-about-it.html' title='Climate Change: think more about it'/><author><name>sms</name><uri>http://www.blogger.com/profile/03554054238627195716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-6040238433344685354</id><published>2009-12-07T11:52:00.002+05:30</published><updated>2009-12-07T11:56:58.175+05:30</updated><title type='text'>What's with shooting a photograph ?</title><content type='html'>Ever since I was a kid, I'd an interest in photography. Earlier we'd a B&amp;amp;W camera from which we upgraded ourself to a Color camera and now to Panasonic FZ28. However I always used to think what makes a good photograph ? Is it the quality of camera which is solely responsible for it or does it also depend upon the knowledge of concerned person who is taking the photograph ? Recently got a chance to read &lt;a href="http://www.morguefile.com/docs/Jodie_Coston:_Lesson_1"&gt;online lessons on photography by Jodie Coston&lt;/a&gt; and life has never been so colorful for me ever since. It's a wonderful series of lectures which allow beginners to learn nitty gritty details like shutter speeds, exposure, aperture, lens, focus etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-6040238433344685354?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/6040238433344685354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=6040238433344685354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6040238433344685354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6040238433344685354'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/12/whats-with-shooting-photograph.html' title='What&apos;s with shooting a photograph ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-3253718168704449901</id><published>2009-09-05T17:06:00.003+05:30</published><updated>2009-09-05T17:09:48.092+05:30</updated><title type='text'>Presentations on Ted</title><content type='html'>Watched a wonderful presentations by &lt;a href="http://www.ted.com/talks/ken_robinson_says_schools_kill_creativity.html"&gt;Ken Robinson&lt;/a&gt; and &lt;a href="http://www.ted.com/talks/elizabeth_gilbert_on_genius.html"&gt;Elizabeth Gilbert&lt;/a&gt;  on &lt;a href="http://www.ted.com"&gt;Ted&lt;/a&gt; today. Both are must watch for every human being.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ted.com"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 111px; height: 118px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SqJN3-UKkbI/AAAAAAAAGmI/BmMcrYWPrac/s200/ted.jpeg" alt="" id="BLOGGER_PHOTO_ID_5377946529049514418" 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/2580407331877610996-3253718168704449901?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/3253718168704449901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=3253718168704449901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3253718168704449901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3253718168704449901'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/09/presentations-on-ted.html' title='Presentations on Ted'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/SqJN3-UKkbI/AAAAAAAAGmI/BmMcrYWPrac/s72-c/ted.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1372057600362580388</id><published>2009-09-05T17:01:00.002+05:30</published><updated>2009-09-05T17:06:13.663+05:30</updated><title type='text'>Broadband over Power Lines</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SqJNG6iiGRI/AAAAAAAAGmA/MrJx4Fg6_RA/s1600-h/grid.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 56px; height: 71px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SqJNG6iiGRI/AAAAAAAAGmA/MrJx4Fg6_RA/s200/grid.jpeg" alt="" id="BLOGGER_PHOTO_ID_5377945686222444818" border="0" /&gt;&lt;/a&gt;I was just wondering if we can manage data transmission over a power cable and landed up at a &lt;a href="http://www.carbonmetrics.eu/Broadband%20over%20Power%20Lines.php"&gt;page from CarbonMetrics&lt;/a&gt;. If what is mentioned in the page can be implemented then time is not far away when we can see every corner of this planet connected by high speed communication network.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1372057600362580388?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1372057600362580388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1372057600362580388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1372057600362580388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1372057600362580388'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/09/broadband-over-power-lines.html' title='Broadband over Power Lines'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/SqJNG6iiGRI/AAAAAAAAGmA/MrJx4Fg6_RA/s72-c/grid.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4400216405450706755</id><published>2009-09-01T18:32:00.002+05:30</published><updated>2009-09-01T18:36:43.643+05:30</updated><title type='text'>What's with infinity ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/Sp0cQd4N8AI/AAAAAAAAGjo/6yhC9eRnazM/s1600-h/infinity.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 82px; height: 48px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/Sp0cQd4N8AI/AAAAAAAAGjo/6yhC9eRnazM/s200/infinity.jpeg" alt="" id="BLOGGER_PHOTO_ID_5376484599374147586" border="0" /&gt;&lt;/a&gt;As has always been the case I got stuck up at problem of defining countable and uncountable sets. This time though I had wikipedia and other resources on Internet to help me out, yet I was not able to comprehend the Cantor's diagonalization argument clearly, until I read an article &lt;a href="http://www.mathacademy.com/pr/minitext/infinity/"&gt;Infinity: You can't get there from here at www.mathacademy.com&lt;/a&gt;. One of the few good articles for layman to understand about the concepts of infinity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4400216405450706755?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4400216405450706755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4400216405450706755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4400216405450706755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4400216405450706755'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/09/whats-with-infinity.html' title='What&apos;s with infinity ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/Sp0cQd4N8AI/AAAAAAAAGjo/6yhC9eRnazM/s72-c/infinity.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5351328501325406442</id><published>2009-09-01T15:19:00.002+05:30</published><updated>2009-09-01T15:53:01.014+05:30</updated><title type='text'>Cardinality of Power Set</title><content type='html'>Took some time off to give lectures on Logic and Proof Theory to students enrolled at FPGDST course at C-DAC, Mumbai. It was a wonderful experience and I must say I learnt a lot through this experience. During a session on Set Theory we were discussing PowerSets. Now we all know that a Power Set is a set of all subsets of a set. Or if stated in language of sets:&lt;br /&gt;&lt;br /&gt;Given a set S = {x1,x2,...,xn}, the power set P(S) is set of all subsets of S.&lt;br /&gt;&lt;br /&gt;Now just after the definition of Power Set was given I found my slide to contain a seemingly easy statement about cardinality of a power set. And it said that if S has n elements then P(S) will have 2^n elements. That's pretty obvious isn't it ? But I don't know why, I decided to proove the statement and boy it wasn't that easy a job and it has been a week and I am still struggling to find a decent proof for the same. Will revert back with a proof as soon as I get one which satisfies me. Till then have fun with mathematics :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5351328501325406442?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5351328501325406442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5351328501325406442' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5351328501325406442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5351328501325406442'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/09/cardinality-of-power-set.html' title='Cardinality of Power Set'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8118870418386674416</id><published>2009-08-10T15:21:00.002+05:30</published><updated>2009-08-11T08:34:27.265+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Matrix Cellular'/><category scheme='http://www.blogger.com/atom/ns#' term='Playstation 3'/><category scheme='http://www.blogger.com/atom/ns#' term='Australia'/><title type='text'>Saving money for a playstation 3</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: georgia;"&gt;My friend Ruchir is pursuing his masters in hotel management from AIHS, Canberra . He seems to be calling me quite often from his cell phone unlike several of my other friends abroad who just chat with me on net using &lt;/span&gt;&lt;a style="font-family: georgia;" href="http://www.google.com/talk"&gt;gtalk&lt;/a&gt;&lt;span style="font-family: georgia;"&gt; or yahoo. When I asked him his secret, he told me that his parents had bought him a &lt;/span&gt;&lt;a style="font-family: georgia;" href="http://www.matrix.in/"&gt;matrix&lt;/a&gt;&lt;span style="font-family: georgia;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;Pre Activated mobile connection when he went to Australia last year for his masters. And recently he just renewed his subscription for a second year under a plan called &lt;/span&gt;&lt;span style="font-family: georgia;font-family:&amp;quot;;font-size:100%;"  &gt;cap 29 plan which gives him a talk time value of around 180 Australian $ on pa&lt;/span&gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;yment of just 29$ which also is incidentally paid by his parents in India. This allows him to make international calls of around 5 minutes everyday for free. And I thought he must be spending a bomb making all these calls. So guys think smart and find money saving deals like this and spend your cash on other more essential necessities like the latest &lt;a href="http://www.us.playstation.com/PS3"&gt;PS 3&lt;/a&gt;. &lt;/span&gt;&lt;p style="font-family: georgia;"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-8118870418386674416?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8118870418386674416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8118870418386674416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8118870418386674416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8118870418386674416'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/08/saving-money-for-playstation-3.html' title='Saving money for a playstation 3'/><author><name>sms</name><uri>http://www.blogger.com/profile/03554054238627195716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8165014989957391489</id><published>2009-07-29T14:18:00.002+05:30</published><updated>2009-07-29T14:29:01.093+05:30</updated><title type='text'>Firefox Memory Management</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SnAPQlG-eBI/AAAAAAAAEJA/iYZ5egTQCbU/s1600-h/images.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 65px; height: 65px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SnAPQlG-eBI/AAAAAAAAEJA/iYZ5egTQCbU/s200/images.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363803933711955986" border="0" /&gt;&lt;/a&gt;As a user and as a systems administrator, I've seen many people fuming over the fact that their Firefox installation seems to be running very slow and is even making machines go for a toss. A wonderful article on how to reduce memory usage in Firefox can be found at &lt;a href="http://kb.mozillazine.org/Memory_Leak"&gt;Mozillazine's Knowledge Base&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-8165014989957391489?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8165014989957391489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8165014989957391489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8165014989957391489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8165014989957391489'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/firefox-memory-management.html' title='Firefox Memory Management'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/SnAPQlG-eBI/AAAAAAAAEJA/iYZ5egTQCbU/s72-c/images.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-9120978232176710665</id><published>2009-07-20T23:58:00.004+05:30</published><updated>2009-07-21T00:04:36.844+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Licenses'/><category scheme='http://www.blogger.com/atom/ns#' term='Redhat'/><title type='text'>Some facts about RHEL License.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SmS4DQ3Me6I/AAAAAAAAEBM/Op07ygiuiZE/s1600-h/redhat_logo.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 109px; height: 121px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SmS4DQ3Me6I/AAAAAAAAEBM/Op07ygiuiZE/s200/redhat_logo.jpeg" alt="" id="BLOGGER_PHOTO_ID_5360611822683323298" border="0" /&gt;&lt;/a&gt;Here is what I learnt from one of my friend about RHEL License and this shows why we can't download iso images and copy the media to distribute RHEL.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;font-size:85%;"  &gt;" Except for a few components provided by third parties (for example, Java) all the code in Red Hat products is open source and licensed under the GPL (or a similar license, such as the LGPL, BSD, MIT). So one always has free access to the source code. However, Red Hat does not provide free access to the binaries of Red Hat Enterprise Linux, and these, combined with an annual subscription to Red Hat Network&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;font-size:85%;"  &gt;, access to upgrades, and a selected support services, are the components that Red Hat bundles into each Red Hat Enterprise Linux solution. Since every Red Hat Enterprise Linux product includes support for the system on which it is installed, Red Hat supplies the products with a per-system usage/support subscription. This simple model ensures that systems which use Red Hat Enterprise Linux are able to access the maintenance, services and product upgrades to which they are entitled. Of course, as mentioned before, this has no impact on one's access to the Red Hat Enterprise Linux source code."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So in summary we can conclude that RHEL = Linux Kernel + GPL/LGPL/MIT etc. licensed software + Support + RHEL art work and logos&lt;br /&gt;&lt;br /&gt;The last component of RHEL is registered product of Redhat and this is included in the iso images and thus we can't copy RHEL disks and also can't download 'em from Internet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-9120978232176710665?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/9120978232176710665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=9120978232176710665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/9120978232176710665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/9120978232176710665'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/some-facts-about-rhel-license.html' title='Some facts about RHEL License.'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/SmS4DQ3Me6I/AAAAAAAAEBM/Op07ygiuiZE/s72-c/redhat_logo.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7751085653639942259</id><published>2009-07-19T13:27:00.002+05:30</published><updated>2009-07-19T13:29:41.542+05:30</updated><title type='text'>Fiddling with colors :)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SmLSVZANE4I/AAAAAAAAEAs/6NEEDIopXsM/s1600-h/P1030063.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SmLSVZANE4I/AAAAAAAAEAs/6NEEDIopXsM/s400/P1030063.JPG" alt="" id="BLOGGER_PHOTO_ID_5360077771455140738" 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/2580407331877610996-7751085653639942259?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7751085653639942259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7751085653639942259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7751085653639942259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7751085653639942259'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/fiddling-with-colors.html' title='Fiddling with colors :)'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/SmLSVZANE4I/AAAAAAAAEAs/6NEEDIopXsM/s72-c/P1030063.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8227629170754285047</id><published>2009-07-19T13:19:00.002+05:30</published><updated>2009-07-19T13:27:03.251+05:30</updated><title type='text'>Disable CPU cores in a multicore system.</title><content type='html'>Got my hands on new Dell R710 server today and this is an awesome machine, with huge power underneath. It's powered by two Intel Xeon Quad Core CPU's and has 8 GB of DDR3 RAM inside it. However as has been the story in past, with Intel focusing more on Quad Core CPU's, Dual cores are slowly moving out of the market and this has raised a peculiar situation. As most of the software vendors tend to sell their products based upon licenses which are socket based or CPU based, so it is upto discretion of the vendor, if they decide to consider one Quad Core CPU to be a single CPU or 4 CPU's. With cost of software licenses running into lakhs of rupees, this is a real serious matter. However there is a provision for users to disable some of the CPU core, if they want to. With Dell R710, the provision is available in BIOS setup itself and one can disable upto 2 cores on a Quad core machine. However with IBM, the case isn't so, as they don't allow for this feature. Windows 2003/2008/XP/Vista/7, however allow users to disable some of the cores on multicore CPU. To use this capability, one has to run '&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;msconfig&lt;/span&gt;&lt;/span&gt;' and then goto Boot section. In advanced section, one can choose to decide how many CPUs do they wish to enable. But considering the monopoly, some of the vendors have in software market, for instance Oracle in Enterprise Database, it would be interesting to see how they react to such situations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-8227629170754285047?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8227629170754285047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8227629170754285047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8227629170754285047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8227629170754285047'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/disable-cpu-cores-in-multicore-system.html' title='Disable CPU cores in a multicore system.'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7840423408992118830</id><published>2009-07-12T15:43:00.002+05:30</published><updated>2009-07-12T15:45:38.936+05:30</updated><title type='text'>Amazing Hand Art !</title><content type='html'>While searching for some techniques for origami I landed up at a blog which had a collection of photographs of hand art by Guido Daniele. Visit &lt;a href="http://freshpics.blogspot.com/2007/01/amazing-hand-painting-art.html"&gt;Freshpics&lt;/a&gt; to get a view of the amazing work done by this great artist.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-7840423408992118830?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7840423408992118830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7840423408992118830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7840423408992118830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7840423408992118830'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/amazing-hand-art.html' title='Amazing Hand Art !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-993124304177588270</id><published>2009-07-10T15:22:00.006+05:30</published><updated>2009-07-12T10:34:24.849+05:30</updated><title type='text'>How to swap two variables without using third variable ?</title><content type='html'>Swap routine is perhaps one of the most common routine we find in many programming books. Almost every book related to high level programming language carries a page about how to swap contents of two variables. It's generally explained as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;a=5, b=7  //two variables which are to be swapped&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;temp = a //temp is our temporary variable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;a = b        //this makes variable a contain value of variable b&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;b = temp //b contains value of temp which is containing original value of a&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;However there is a method by which we can easily swap the values of these variables without making use of third variable and the answer lies in logic theory. Exclusive-OR operation can be used to accomplish this task as follows:&lt;br /&gt;&lt;br /&gt;A = A x B&lt;br /&gt;B = A x B&lt;br /&gt;A = A x B&lt;br /&gt;&lt;br /&gt;In above equations, x is denoting XOR operation.&lt;br /&gt;&lt;br /&gt;For e.g. if A = 5 and B = 3 then we can write them in binary as A = 0000 0101, B = 0000 0011&lt;br /&gt;=&gt; A = A x B = 0000 0110&lt;br /&gt;=&gt; B = A x B = 0000 0110 x 0000 0011 = 0000 0101 =  5&lt;br /&gt;and A = A x B = 0000 0110 x 0000 0101 = 0000 0011 = 3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-993124304177588270?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/993124304177588270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=993124304177588270' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/993124304177588270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/993124304177588270'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/how-to-swap-two-variables-without-using.html' title='How to swap two variables without using third variable ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2259888899905917915</id><published>2009-07-08T11:01:00.002+05:30</published><updated>2009-07-08T11:07:11.885+05:30</updated><title type='text'>DIY - LCD System</title><content type='html'>Few days back, had an idea to build a custom LCD display panel for my newly built computer. I wanted to use this panel to display all sorts of things like my current system statistics, my playlists etc. and I was lucky to find a DIY guide for this purpose at &lt;a href="http://www.overclockers.com.au/techstuff/a_diy_lcd/lcd.shtml"&gt;Overclockers&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2259888899905917915?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2259888899905917915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2259888899905917915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2259888899905917915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2259888899905917915'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/diy-lcd-system.html' title='DIY - LCD System'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8450471006894180302</id><published>2009-07-07T15:00:00.004+05:30</published><updated>2009-07-07T15:22:18.319+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='passive ftp'/><category scheme='http://www.blogger.com/atom/ns#' term='active ftp'/><category scheme='http://www.blogger.com/atom/ns#' term='Iptables'/><category scheme='http://www.blogger.com/atom/ns#' term='modprobe'/><category scheme='http://www.blogger.com/atom/ns#' term='ip_conntrack_ftp'/><title type='text'>Connecting to remote FTP site through IPtables</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/SlMame92J3I/AAAAAAAADuA/PeZfKz0bIms/s1600-h/linux.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 50px; height: 60px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/SlMame92J3I/AAAAAAAADuA/PeZfKz0bIms/s200/linux.jpeg" alt="" id="BLOGGER_PHOTO_ID_5355653630323468146" border="0" /&gt;&lt;/a&gt;We'd recently installed a Linux based Proxy/Gateway server and we'd used iptables to manage the firewall aspect of the server. However even though we'd port 21 open on this firewall, we were not able to initiate a data session to remote FTP site. Although connect and authentication sessions were happily working, but when a data session command like ls was issued, the client just couldn't connect to remote host. Solution to the problem was understood, after we read the &lt;a href="http://www.ietf.org/rfc/rfc959.txt"&gt;RFC for FTP&lt;/a&gt;. The problem rested on design of FTP protocol. FTP can work in two modes, namely active and passive. Following figure illustrates the difference between the two:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SlMZFAoumwI/AAAAAAAADt4/ILqABuuq-RA/s1600-h/FTPPasvPort.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 252px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SlMZFAoumwI/AAAAAAAADt4/ILqABuuq-RA/s320/FTPPasvPort.gif" alt="" id="BLOGGER_PHOTO_ID_5355651955734518530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So as illustrated in figure above the connection request to FTP server is made at port 21 and hence we were able to connect to remote host. However the data connection is established by server in an active connect mode. In this mode the server tries to connect to a port &gt; 1024 on client side. Moreover server originates this request from port 20. This means that iptables or any other firewall would need to allow connect from port 20 of remote host to port &gt; 1023. This can be a security risk at times and hence need for passive mode is felt.&lt;br /&gt;&lt;br /&gt;In passive mode, client tries to connect to a port &gt; 1023 on server. The client generates this request from port &gt; 1023. Now if we enable &lt;span style="font-family: courier new;font-size:85%;" &gt;ip_conntrack_ftp&lt;/span&gt; module via &lt;span style="font-family: courier new;font-size:85%;" &gt;modprobe&lt;/span&gt;, then we can easily connect to remote FTP site and also initiate the data transfer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-8450471006894180302?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8450471006894180302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8450471006894180302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8450471006894180302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8450471006894180302'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/connecting-to-remote-ftp-site-through.html' title='Connecting to remote FTP site through IPtables'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kpglEYwtRpk/SlMame92J3I/AAAAAAAADuA/PeZfKz0bIms/s72-c/linux.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8532568836560505108</id><published>2009-07-07T10:11:00.003+05:30</published><updated>2009-07-07T12:29:54.817+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware information'/><category scheme='http://www.blogger.com/atom/ns#' term='cpuinfo'/><category scheme='http://www.blogger.com/atom/ns#' term='meminfo'/><category scheme='http://www.blogger.com/atom/ns#' term='lsusb'/><category scheme='http://www.blogger.com/atom/ns#' term='lspci'/><category scheme='http://www.blogger.com/atom/ns#' term='lshw'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Hardware report in Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SlLyMQ5k-SI/AAAAAAAADtg/VprBPmyIfec/s1600-h/linux.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 69px; height: 83px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SlLyMQ5k-SI/AAAAAAAADtg/VprBPmyIfec/s200/linux.jpeg" alt="" id="BLOGGER_PHOTO_ID_5355609199405758754" border="0" /&gt;&lt;/a&gt;Few days back one of my friend came up to me and asked if I can tell him a command to view details of hardware on his Linux machine. Given my knowledge all I could recall was, using &lt;span style="font-size:85%;"&gt;/proc/cpuinfo&lt;/span&gt; to get information about CPU, using &lt;span style="font-size:85%;"&gt;/proc/meminfo&lt;/span&gt; to get information about Memory and using commands like &lt;span style="font-size:85%;"&gt;lspci&lt;/span&gt; and &lt;span style="font-size:85%;"&gt;lsusb&lt;/span&gt; to get information about PCI and USB devices. However yesterday just out of curiosity I looked up at my system and found a command &lt;span style="font-size:85%;"&gt;lshw&lt;/span&gt;. This command helps in generating entire system report and provides good enough details about various components of the system. It was even able to find out vendor id for my optical drive ! One thing which I couldn't decipher though was the fact that the command always complained about running under root credentials. Why would such a command have to be executed under root credentials ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-8532568836560505108?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8532568836560505108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8532568836560505108' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8532568836560505108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8532568836560505108'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/hardware-report-in-linux.html' title='Hardware report in Linux'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/SlLyMQ5k-SI/AAAAAAAADtg/VprBPmyIfec/s72-c/linux.jpeg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5362035394219582937</id><published>2009-07-02T13:42:00.004+05:30</published><updated>2009-07-02T14:07:08.956+05:30</updated><title type='text'>Understanding fstab</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/SkxwvcBt-QI/AAAAAAAADtY/KMA3O_Tj6BA/s1600-h/linux.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 65px; height: 78px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/SkxwvcBt-QI/AAAAAAAADtY/KMA3O_Tj6BA/s200/linux.jpeg" alt="" id="BLOGGER_PHOTO_ID_5353778017316239618" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/etc/fstab&lt;/span&gt;&lt;/span&gt; contains information about all partitions and storage devices on the computer. It contains information about where the partitions and storage devices should be mounted and how. Following is  sample from &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;fstab&lt;/span&gt;&lt;/span&gt; file:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/dev/hda1  /                ext3   defaults              1 1&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;/dev/hdb1   /music          ext3   defaults            1 2 &lt;/span&gt; &lt;span style="font-family:courier new;"&gt;/dev/fd0   /media/floppy  auto  ro,noauto,user,exec 0 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;fstab&lt;/span&gt;&lt;/span&gt; file is divided into 6 columns where first is device name, second is mount point, third is filesystem, fourth is mount options, fifth is dump option, and sixth is filesystem check option.&lt;br /&gt;&lt;br /&gt;The option &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;auto&lt;/span&gt;&lt;/span&gt; in filesystem type simply means that filesystem type is automatically detected.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mount options:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;auto and noauto:&lt;/span&gt; with &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;auto&lt;/span&gt;&lt;/span&gt; option the device is mounted automatically. with &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;noauto&lt;/span&gt;&lt;/span&gt; option, device can be mounted only explicitly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;user and nouser:&lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;user&lt;/span&gt;&lt;/span&gt; option allows normal user to mount the device, whereas &lt;span style=";font-family:courier new;font-size:85%;"  &gt;nouser&lt;/span&gt; lets only root mount the device. &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;nouser&lt;/span&gt;&lt;/span&gt; is default.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;exec and noexec:&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;exec&lt;/span&gt; lets one execute binaries residing on that partition, while &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;noexec&lt;/span&gt;&lt;/span&gt; blocks that. &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;exec&lt;/span&gt;&lt;/span&gt; is the default option&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ro:&lt;/span&gt; mount readonly&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;rw:&lt;/span&gt; mount filesystem read-write.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sync and async:&lt;/span&gt; &lt;span style="font-size:85%;"&gt;sync&lt;/span&gt; means that when a command is issued to say copy a file to filesystem, then changes are physically written to device at same time. However with &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;async&lt;/span&gt;&lt;/span&gt; changes can be made to physical device at some later stage. &lt;span style=";font-family:courier new;font-size:85%;"  &gt;async&lt;/span&gt; is default option. With removable devices like floppy disks, one should make use of &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;sync&lt;/span&gt;&lt;/span&gt; option, as generally users try to remove the disk without unmounting the device, which can result in data corruption.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;default:&lt;/span&gt; uses the default options, that are &lt;span style=";font-family:courier new;font-size:85%;"  &gt;rw, suid, dev, exec, auto, nouser&lt;/span&gt; and &lt;span style=";font-family:courier new;font-size:85%;"  &gt;async&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fifth column in &lt;span style=";font-family:courier new;font-size:85%;"  &gt;fstab&lt;/span&gt; is &lt;span style="font-weight: bold;"&gt;dump&lt;/span&gt; option. &lt;span style=";font-family:courier new;font-size:85%;"  &gt;dump&lt;/span&gt; checks it and uses the number to decide if a filesystem should be backed up. If set to 0, the filesystem is ignored.&lt;br /&gt;&lt;br /&gt;Sixth column in &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;fstab&lt;/span&gt;&lt;/span&gt; is &lt;span style="font-weight: bold;"&gt;fsck&lt;/span&gt; option. &lt;span style=";font-family:courier new;font-size:85%;"  &gt;fsck&lt;/span&gt; looks at sixth column to determine in which order the filesystems should be checked. If it's 0, the filesystem won't be checked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5362035394219582937?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5362035394219582937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5362035394219582937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5362035394219582937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5362035394219582937'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/07/etcfstab-contains-information-about-all.html' title='Understanding fstab'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kpglEYwtRpk/SkxwvcBt-QI/AAAAAAAADtY/KMA3O_Tj6BA/s72-c/linux.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4427679302965258243</id><published>2009-06-30T19:02:00.006+05:30</published><updated>2009-06-30T19:25:10.971+05:30</updated><title type='text'>Decibel's Naagin - The Lady Cobra !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SkoY0G0qq_I/AAAAAAAADtQ/-rHBdZmHXPU/s1600-h/decibel_logo.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 57px; height: 53px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SkoY0G0qq_I/AAAAAAAADtQ/-rHBdZmHXPU/s200/decibel_logo.jpg" alt="" id="BLOGGER_PHOTO_ID_5353118390547033074" border="0" /&gt;&lt;/a&gt;Heard Nagin by Decibel last night and ever since have been glued to the song. Sexcellent work on 6 strings by Ripple. The history of band and the song is available at &lt;a href="http://decibelindia.blogspot.com/"&gt;Decibel's Blog.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Following is a rocking performance by the band @ IIT-D Rock Fest.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/mVMEzrXJaM8&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/mVMEzrXJaM8&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;br /&gt;&lt;br /&gt;And if I've heard correct then there is part 2 of the song as well, titled "Naagin - The Lady with No Bra !"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4427679302965258243?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4427679302965258243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4427679302965258243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4427679302965258243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4427679302965258243'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/06/decibels-naagin-lady-cobra.html' title='Decibel&apos;s Naagin - The Lady Cobra !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/SkoY0G0qq_I/AAAAAAAADtQ/-rHBdZmHXPU/s72-c/decibel_logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2567742527667699486</id><published>2009-06-19T20:43:00.003+05:30</published><updated>2009-06-19T20:45:09.696+05:30</updated><title type='text'>Trek to Bheemashankar (Maharashtra)</title><content type='html'>&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="300" height="200" flashvars="host=picasaweb.google.com&amp;captions=1&amp;hl=en_US&amp;feat=flashalbum&amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmail2mayank%2Falbumid%2F5347419390778390801%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2567742527667699486?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2567742527667699486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2567742527667699486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2567742527667699486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2567742527667699486'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/06/trek-to-bheemashankar-maharashtra.html' title='Trek to Bheemashankar (Maharashtra)'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5326635872402627634</id><published>2009-06-19T18:48:00.003+05:30</published><updated>2009-06-19T18:54:17.379+05:30</updated><title type='text'>My new machine</title><content type='html'>Thanks to Mother India Part III, a.k.a. Gayatri ma'am, I got myself a new machine (Mother India Part I is my mum and Part II is my aunt !) . The specs are wonderful at Celeron 2.3 GHz., 512 MB RAM and a 40 GB hard disk .  Got to get Linux From Scratch installed on this machine tonight along with some softwares from BLFS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5326635872402627634?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5326635872402627634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5326635872402627634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5326635872402627634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5326635872402627634'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/06/my-new-machine.html' title='My new machine'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5447597506892639059</id><published>2009-06-10T20:00:00.002+05:30</published><updated>2009-06-10T20:07:48.534+05:30</updated><title type='text'>Is free reporting really Free Memory ?</title><content type='html'>Today while looking at a system we found that free command was reporting too much memory usage while ps -aux was showing something different all together. So where was this additional memory been reported by free as used up was being used. Well the answer to this question is fairly simple if we are to blame software developers, cauz' all the memory that wasn't been displayed as free but was not been used by processes either was memory which wasn't freed up by processes which had died earlier. Now this is pretty bad and we needed to find a way to get over this issue and following trick mentioned in &lt;a href="http://mige.blogspot.com/"&gt;Mige Mengenai's blog&lt;/a&gt; helped us out.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;1. dd if=/dev/zero of=junk bs=10MB count=200 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;2. rm -f junk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well yessssssssss! All that needed to be done was this and we were able to free around 300 MB of memory ! Well what exactly happened was that command #1 tried to create a 2000MB file and as we were having very less memory left, it tried to get all available memory and there was lot of swapping in and out done as well. Finally when file was created we were left with a clean free memory space. Atleast that's what I understood by the entire process. Nyways thanks to Mige for a wonderful trick :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5447597506892639059?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5447597506892639059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5447597506892639059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5447597506892639059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5447597506892639059'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/06/is-free-reporting-really-free-memory.html' title='Is free reporting really Free Memory ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5399864733267990848</id><published>2009-06-09T14:04:00.002+05:30</published><updated>2009-06-09T14:52:15.559+05:30</updated><title type='text'>Price Lists of Computer Peripherals</title><content type='html'>Thanks to Vaidy, I came to know of following two sites from where I can get price lists of various Computer peripherals:&lt;br /&gt;&lt;br /&gt;1. http://www.theitwares.com&lt;br /&gt;2. http://www.deltapage.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5399864733267990848?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5399864733267990848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5399864733267990848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5399864733267990848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5399864733267990848'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/06/price-lists-of-computer-peripherals.html' title='Price Lists of Computer Peripherals'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-604933946501091554</id><published>2009-06-09T13:44:00.002+05:30</published><updated>2009-06-09T13:48:07.636+05:30</updated><title type='text'>ODT vs. DOC</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/Si4arvrN_SI/AAAAAAAADYo/_JX53AnVPNg/s1600-h/images.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 87px; height: 118px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/Si4arvrN_SI/AAAAAAAADYo/_JX53AnVPNg/s320/images.jpeg" alt="" id="BLOGGER_PHOTO_ID_5345239146569792802" border="0" /&gt;&lt;/a&gt;With Open Document Format now almost a standard, it won't be too long when Microsoft will start providing support for these formats. However until that day comes, Sun has a solution for people who can't wait for Microsoft to take a stance on Open Document Format. Sun has provided a plugin called &lt;a href="http://www.sun.com/software/star/odf_plugin/get.jsp" class="external text" title="ftp://fs.cdacmumbai.in/software/Essential_Tools/odp-3.1-bin-windows-en-US.exe" rel="nofollow"&gt;ODF Plugin for Microsoft Office&lt;/a&gt;, and this plugin allows users of Microsoft Office software suite to open and edit documents in Open Document Format.&lt;br /&gt;&lt;p&gt;For a quick comparison of ODF/ODT against DOC, visit &lt;a href="http://3monkeyweb.com/3monkeys/2006/12/29/openoffice-odfodt-compared-to-microsoft-word-doc/" class="external text" title="http://3monkeyweb.com/3monkeys/2006/12/29/openoffice-odfodt-compared-to-microsoft-word-doc/" rel="nofollow"&gt;3 Monkeys&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/2580407331877610996-604933946501091554?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/604933946501091554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=604933946501091554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/604933946501091554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/604933946501091554'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/06/odt-vs-doc.html' title='ODT vs. DOC'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/Si4arvrN_SI/AAAAAAAADYo/_JX53AnVPNg/s72-c/images.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8503606446376689216</id><published>2009-06-04T21:53:00.003+05:30</published><updated>2009-06-04T21:56:59.919+05:30</updated><title type='text'>TFTP on a Linux NAT box.</title><content type='html'>Apart from following instructions in article about running &lt;a href="http://techynfreesouls.blogspot.com/2009/05/m-ris-through-linux-dhcpd.html"&gt;M$ RIS/WDS through Linux dhcpd server&lt;/a&gt; we also need to configure iptables for allowing tftp server running on Linux server to serve the clients. And mind you, running tftp server on a Linux box with multiple interfaces and iptables handling routing, is a real pain. However netfilter has two modules ip_conntrac_tftp and ip_nat_tftp which are just what doctor would've advised for this scenario. Just a modprobe ip_conntrac_tftp and modprobe ip_nat_tftp does the job for us and now we can happily run tftp server on a natted linux machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-8503606446376689216?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8503606446376689216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8503606446376689216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8503606446376689216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8503606446376689216'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/06/tftp-on-linux-nat-box.html' title='TFTP on a Linux NAT box.'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8501213517109133367</id><published>2009-06-02T22:19:00.001+05:30</published><updated>2009-06-02T22:20:34.259+05:30</updated><title type='text'>And here is another one !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SiVYTK2HvzI/AAAAAAAADYg/ycu8M1tOkNM/s1600-h/new_print.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SiVYTK2HvzI/AAAAAAAADYg/ycu8M1tOkNM/s320/new_print.jpg" alt="" id="BLOGGER_PHOTO_ID_5342773619297074994" 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/2580407331877610996-8501213517109133367?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8501213517109133367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8501213517109133367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8501213517109133367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8501213517109133367'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/06/and-here-is-another-one.html' title='And here is another one !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/SiVYTK2HvzI/AAAAAAAADYg/ycu8M1tOkNM/s72-c/new_print.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2362227463470919509</id><published>2009-06-02T13:36:00.003+05:30</published><updated>2009-06-02T13:40:23.855+05:30</updated><title type='text'>A new T Design !</title><content type='html'>With a pack of Iron On Transfer Papers this is what I came up with on my newly bought T Shirt:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SiTeAqEfVrI/AAAAAAAADYY/-9tzrfXwouw/s1600-h/woznjobs.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 302px; height: 320px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SiTeAqEfVrI/AAAAAAAADYY/-9tzrfXwouw/s320/woznjobs.jpg" alt="" id="BLOGGER_PHOTO_ID_5342639160842737330" 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/2580407331877610996-2362227463470919509?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2362227463470919509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2362227463470919509' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2362227463470919509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2362227463470919509'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/06/new-t-design.html' title='A new T Design !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/SiTeAqEfVrI/AAAAAAAADYY/-9tzrfXwouw/s72-c/woznjobs.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7378726708659383556</id><published>2009-05-31T17:14:00.004+05:30</published><updated>2009-05-31T17:22:52.819+05:30</updated><title type='text'>Is Windows XP secure without a password ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SiJvAXDKPgI/AAAAAAAADYQ/LZqJ5eSxjl8/s1600-h/windows.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 116px; height: 116px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SiJvAXDKPgI/AAAAAAAADYQ/LZqJ5eSxjl8/s200/windows.jpeg" alt="" id="BLOGGER_PHOTO_ID_5341954159992782338" border="0" /&gt;&lt;/a&gt;Found a new target machine today with IP address: 79.113.131.224 . Now this machine is running Windows XP and has local administrator password set to blank. I always thought that this was a big security risk. But today I was proven wrong as remote access to a machine with blank password is not possible and you are always presented with a screen saying "You are unable to logon because of account restrictions". This is the way M$ is trying to protect it's poor customers who've forgotten to set their administrator passwords but haven't forgotten o hook up their machine to Internet ! Anyone interested in working on getting into the remote machine can connect to the above mentioned IP through Remote Desktop session.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-7378726708659383556?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7378726708659383556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7378726708659383556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7378726708659383556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7378726708659383556'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/is-windows-xp-secure-without-password.html' title='Is Windows XP secure without a password ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/SiJvAXDKPgI/AAAAAAAADYQ/LZqJ5eSxjl8/s72-c/windows.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2731773333816661432</id><published>2009-05-31T15:59:00.001+05:30</published><updated>2009-05-31T16:00:37.421+05:30</updated><title type='text'>n00b vs. newb</title><content type='html'>&lt;a href="http://www.urbandictionary.com/define.php?term=noob"&gt;Here is a nice article explaining the difference&lt;/a&gt; :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2731773333816661432?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2731773333816661432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2731773333816661432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2731773333816661432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2731773333816661432'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/n00b-vs-newb.html' title='n00b vs. newb'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5846744298783052958</id><published>2009-05-31T12:23:00.002+05:30</published><updated>2009-05-31T12:37:16.306+05:30</updated><title type='text'>BING !!!</title><content type='html'>Despite several attempts it seems that Microsoft has not been able to take on Google as far as Web Services go and Bing is latest attempt by M$ to take on Google.  Bing  is a shift by M$ from it's traditional Live Search. The technology behind Bing is provided by a company called Powerset which was recently acquired by the software giant. The service is going to be provided for Beta testing from 1st June 2009 and will be available at &lt;a href="http://www.bing.com"&gt;www.bing.com&lt;/a&gt; . Will Microsoft be able to take on Google in search arena is something which only time will tell. But the promotional video does promise a much better search experience. By the way on a lighter note, Bing stands for "But it's not Google !"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5846744298783052958?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5846744298783052958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5846744298783052958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5846744298783052958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5846744298783052958'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/bing.html' title='BING !!!'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-492772389418027200</id><published>2009-05-26T19:24:00.002+05:30</published><updated>2009-05-26T21:10:09.332+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>What's with Load average ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/ShwNR5FM9mI/AAAAAAAADYI/rE5XLVuZf0k/s1600-h/linux.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 113px; height: 124px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/ShwNR5FM9mI/AAAAAAAADYI/rE5XLVuZf0k/s200/linux.jpeg" alt="" id="BLOGGER_PHOTO_ID_5340157859186144866" border="0" /&gt;&lt;/a&gt;Today while setting up the gateway/proxy server a question raised as to how to analyze the performance of this new setup ? There is a nice small article available at &lt;a href="http://wiki.squid-cache.org/KnowledgeBase/PerformanceAnalysis"&gt;KnowledgeBase&lt;/a&gt; which explains this question. However upon reading the article we came to a place where the author had mentioned about sysstat. Now I've used sysstat for sometime now and uptime is a command which most *nix people are familiar with. But the big question this time was "How does the command actually gives the Load average ?". A bit of googling and we found a nice explanation at &lt;a href="http://immike.net/blog/2007/07/27/what-exactly-is-a-load-average/"&gt;Mike Malon's blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-492772389418027200?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/492772389418027200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=492772389418027200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/492772389418027200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/492772389418027200'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/whats-with-load-average.html' title='What&apos;s with Load average ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/ShwNR5FM9mI/AAAAAAAADYI/rE5XLVuZf0k/s72-c/linux.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1229583127394107816</id><published>2009-05-20T01:34:00.002+05:30</published><updated>2009-05-20T01:39:00.038+05:30</updated><title type='text'>M$ RIS through Linux DHCPD</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/ShMRxg5C_FI/AAAAAAAADWc/Eq2wEm5h1FU/s1600-h/LinWin.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 98px; height: 116px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/ShMRxg5C_FI/AAAAAAAADWc/Eq2wEm5h1FU/s320/LinWin.jpeg" alt="" id="BLOGGER_PHOTO_ID_5337629525704637522" border="0" /&gt;&lt;/a&gt;Since the change in our network setup we'd to think about how RIS server could be intergrated with non MS DHCP server. We've migrated from MS DHCP server to dhcpd server running on RHEL 5. As we'd thought earlier, the process was not as easy as adding next-server and filename entry to /etc/dhcpd.conf. To make RIS work with non MS DHCP server we've to understand how RIS actually works. &lt;p&gt;The behavior of the RIS client is different depending on whether or not the RIS server and the DHCP server are the same machine. This distinction is significant, so we'll look at each case in theory, and then describe our situation. &lt;/p&gt;&lt;p&gt;Let's pretend for a minute that we're in an all-Microsoft environment - MS DHCP, MS RIS server. &lt;/p&gt;&lt;p&gt;Case 1:  The (MS) RIS server is the same box as the (MS) DHCP server. &lt;/p&gt; &lt;pre&gt; The client boots off the floppy or PXE BIOS, and sends out a DHCPDISCOVER request, via broadcast, asking for an&lt;br /&gt;IP address, netmask,gateway, maybe some other stuff (i.e., DNS, WINS, time servers, etc), and some information&lt;br /&gt;about the RIS server.&lt;br /&gt;The DHCP/RIS server then responds with a DHCPOFFER reply, offering a lease for an IP, netmask, gateway, maybe&lt;br /&gt;some other stuff, and also the hostname and IP address of the RIS server (which in this case is the same as the&lt;br /&gt;hostname/IP of the DHCP server) as well as the initial TFTP path to the boot file (which by default is \oschooser&lt;br /&gt;\i386\startrom.com).&lt;br /&gt;The client looks at the DHCPOFFER and notices that it contains both basic lease information (the IP, netmask,&lt;br /&gt;and so on) as well as the RIS-specific stuff.  Because the RIS stuff AND the basic stuff is in there, it 'knows'&lt;br /&gt;that the DHCP server also offers RIS service.&lt;br /&gt;The client then completes the DHCP handshake (sends a DHCPREQUEST asking to use that DHCPOFFERed lease, and gets&lt;br /&gt;a DHCPACK from the DHCP/RIS server confirming).  It then downloads the startrom.com file from the DHCP/RIS&lt;br /&gt;server at the path specified in the lease, and initiates the RIS process (so you start getting blue OSCML&lt;br /&gt;screens on your console).&lt;br /&gt;Off you go.&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Case #2:  The (MS) RIS server is on a different machine than the (MS) DHCP server. &lt;/p&gt; &lt;pre&gt; Again, the client boots off the floppy or PXE BIOS, and sends out a DHCPDISCOVER request, via broadcast, asking&lt;br /&gt;for an IP address, netmask, gateway, maybe some other stuff, and some information about the RIS server.&lt;br /&gt;The DHCP server then responds with a DHCPOFFER reply, with a lease for an IP, netmask, gateway, and maybe some&lt;br /&gt;other stuff, but no information about the RIS server.&lt;br /&gt;The RIS server *also* responds with a separate DHCPOFFER reply, which contains the hostname and IP address of&lt;br /&gt;the RIS server, and the initial TFTP path to the boot file.  But, this DHCPOFFER does *not* contain any&lt;br /&gt;basic information such as IP address, netmask, etc.&lt;br /&gt;The client looks at both offers and ignores the one from the RIS server, since it doesn't contain an IP,&lt;br /&gt;netmask, etc.  It completes the handshake for the lease offered by the DHCP server, and gets itself on the air.&lt;br /&gt;The client then sends out a *second* DHCPDISCOVER broadcast. The DHCP server responds as before. The RIS server&lt;br /&gt;responds as before. The client again looks at both offers.  This time it ignores the offer from the DHCP server&lt;br /&gt;(since it already has that information) and pulls the information it needs (the RIS-specific stuff) out of the&lt;br /&gt;lease offered by the RIS server - i.e., the hostname and IP of the RIS server and the path to the startrom.com&lt;br /&gt;file.  (I don't know if it bothers to complete the second handshake - I doubt it.)&lt;br /&gt;The client then uses that information to contact the RIS server, download the startrom.com file, and start the&lt;br /&gt;ball rolling.&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Now, alter the environment slightly: &lt;/p&gt;&lt;p&gt;Case #3: The RIS server and the DHCP server are on separate machines.  &lt;/p&gt; &lt;pre&gt; The client is on a different subnet than the RIS server or the DHCP server.(The DHCP and RIS servers can be on&lt;br /&gt;the same or different subnets from each other - doesn't matter.)  DHCPDISCOVER broadcast traffic is forwarded&lt;br /&gt;from the subnet where the client is, directly to the DHCP server (i.e, the RIS server does not hear any&lt;br /&gt;DHCPDISCOVER traffic from the client).&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;The DHCP server may or may not be running MS DHCP (in our case, it's running the dhcpd server on Linux). &lt;/p&gt; &lt;pre&gt; Again, the client boots off the floppy or PXE BIOS, and sends out a DHCPDISCOVER request, via broadcast, asking&lt;br /&gt;for an IP address, netmask, gateway, maybe some other stuff, and the information about the RIS server.&lt;br /&gt;Since the DHCPDISCOVER traffic is getting forwarded directly to the DHCP server, and the RIS server never hears&lt;br /&gt;it, the RIS server will never send the client a DHCPOFFER with information about itself.  So, the DHCP server&lt;br /&gt;must be configured to provide the RIS specific information in it's DHCPOFFERed lease, even though it's not&lt;br /&gt;running RIS.&lt;br /&gt;The DHCP server responds to the client with a DHCPOFFER reply, offering a lease for an IP, netmask, gateway,&lt;br /&gt;maybe some other stuff, as well as the hostname and IP address of the RIS server (which in this case is a&lt;br /&gt;*different* hostname/IP than the DHCP server) and also the initial TFTP path to the boot file.&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;BUG: &lt;/p&gt; &lt;pre&gt; Since the DHCPOFFERED lease contains both basic and the RIS-specific information (i.e., it looks like a lease&lt;br /&gt;offered by a DHCP server that's also running RIS), the client attempts to reconnect to the DHCP server to&lt;br /&gt;download the initial startrom.com file at the path specified in the lease.  It does this even though the lease&lt;br /&gt;tells it that the RIS server is on another box.&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;FIX:   &lt;/p&gt; &lt;pre&gt; Run TFTP on the DHCP server, and place a copy of startrom.com at the appropriate path. Once the client downloads&lt;br /&gt;the initial startrom.com file, it becomes smart enough to look at the information in the lease, and goes and&lt;br /&gt;talks to the real RIS server for the ntldr file and everything else.&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;NOTE:   &lt;/p&gt; &lt;pre&gt; The client expects to find startrom.com and ntldr at the same relative paths. That is, if the lease specifies&lt;br /&gt;that the path to startrom.com is \foo\bar\startrom.com, then in this situation the client downloads startrom.com&lt;br /&gt;from \\dhcp-server\tfptproot\foo\bar\startrom.com, and looks for ntldr at \\ris-server\reminst\foo\ba\ntldr (and&lt;br /&gt;NOT \\ris-server\reminst\OSChooser\i386\ntldr).&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;This is an important point as our DHCP server is not able to interpret the backslashes in the \OSChooser\i386 path  correctly.  We ended up putting startrom.com in the root TFTP directory on the DHCP server, which meant that we  also had to put a copy of ntldr at \\ris-server\reminst\ntldr. &lt;/p&gt;&lt;p&gt;Following are the configuration settings that had to be done for allowing existing MS RIS to work with Linux DHCP: &lt;/p&gt;&lt;p&gt;1. The global section of dhcpd.conf has following more entries: &lt;/p&gt; &lt;pre&gt; server-name "ris-server.domain";&lt;br /&gt;next-server &lt;ip-address of="" ris="" server=""&gt;;&lt;br /&gt;filename "startrom.com";&lt;br /&gt;&lt;/ip-address&gt;&lt;/pre&gt; &lt;p&gt;2. The files ntldr and startrom.n12 have also been copied from \\ris-server\reminst\OSChooser\i386 to \\ris-server\reminst. &lt;/p&gt;&lt;p&gt;3. TFTP server has been installed on gateway server and root of the tftp server is /tftpboot. This directory contains startrom.com file, which the DHCP server will provide to the client. The tftp service is being run through xinted and the configuration file for xinetd is /etc/xinetd.conf, while the configuration file for tftp is /etc/xinetd.d/tftp &lt;/p&gt;&lt;p&gt;4. /etc/hosts.allow had to be modified to allow clients from 192.161.0.0, 192.161.1.0 and 192.161.2.0 to access tftp services.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Thanks to Greg and Alex for sharing information about internal working of M$ RIS.&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/2580407331877610996-1229583127394107816?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1229583127394107816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1229583127394107816' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1229583127394107816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1229583127394107816'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/m-ris-through-linux-dhcpd.html' title='M$ RIS through Linux DHCPD'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/ShMRxg5C_FI/AAAAAAAADWc/Eq2wEm5h1FU/s72-c/LinWin.jpeg' height='72' width='72'/><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2048064076845970063</id><published>2009-05-17T18:40:00.002+05:30</published><updated>2009-05-17T18:50:31.668+05:30</updated><title type='text'>Wanna be a DJ ?</title><content type='html'>While googling for Digital Turntables I stumbled upon a small video presentation about Technics SL-DZ1200 Direct-Drive Digital Turntable.&lt;div&gt;&lt;object width="420" height="339"&gt;&lt;param name="movie" value="http://www.dailymotion.com/swf/x1kjp9"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.dailymotion.com/swf/x1kjp9" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="420" height="339"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.dailymotion.com/swf/x1kjp9"&gt;Technics SL-DZ1200 Digital Turntable&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;by &lt;a href="http://www.dailymotion.com/PeteRock"&gt;PeteRock&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Having seen the presentation an idea came across to me, as to why not have a software which allows me to use my Touchscreen panel as a digital turntable and upon googling it I found that ATTIGO TT, a futuristic DJ Turntable (TT) created by &lt;a href="http://www.scotthobbs.co.uk/"&gt;Scott Hobbs&lt;/a&gt;, a student at &lt;a href="http://www.dundee.ac.uk/"&gt;Dundee University, Scotland&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="302"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=961877&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=961877&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/961877"&gt;Final Product // ATTIGO TT&lt;/a&gt; from &lt;a href="http://vimeo.com/attigo"&gt;Scott Hobbs&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;As for aspiring DJs who don't have money to shelve out, you can try out &lt;a href="http://www.mixxx.org/"&gt;Mixxx&lt;/a&gt;. Mixxx is an open source digital music mixing software with oodles of features to satisfy your apetite.&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/2580407331877610996-2048064076845970063?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2048064076845970063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2048064076845970063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2048064076845970063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2048064076845970063'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/wanna-be-dj.html' title='Wanna be a DJ ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-6821613078619597002</id><published>2009-05-17T13:07:00.002+05:30</published><updated>2009-05-17T13:19:21.295+05:30</updated><title type='text'>Wolfram|Alpha is online !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/Sg_Ba2EaZnI/AAAAAAAADWU/-fr_IkmN1OA/s1600-h/WolframLogo.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 135px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/Sg_Ba2EaZnI/AAAAAAAADWU/-fr_IkmN1OA/s320/WolframLogo.jpg" alt="" id="BLOGGER_PHOTO_ID_5336696750392108658" border="0" /&gt;&lt;/a&gt;After &lt;a href="http://www.wolfram.com/products/mathematica/index.html"&gt;Mathematica&lt;/a&gt; and &lt;a href="http://www.wolframscience.com/"&gt;A New Kind of Science&lt;/a&gt; Stephen Wolfram is back with a very ambitious project called &lt;a href="http://www.wolframalpha.com/"&gt;&lt;span style="font-weight: bold;"&gt;Wolfram|Alpha&lt;/span&gt;&lt;/a&gt;. It's a distributed computing project which is going to give answers to various kind of queries a user puts through it's web based interface. As Stephen wrote in his &lt;a href="http://blog.wolframalpha.com/"&gt;Wolfram|Alpha blog&lt;/a&gt;, Alpha will run on 5 distributed colocation facilities.&lt;br /&gt;&lt;br /&gt;What computing power have they gathered in these facilities for launch day? &lt;cite&gt;Two supercomputers, just about 10,000 processor cores, hundreds of terabytes of disks, a heck of a lot of bandwidth, and what seems like enough air conditioning for the Sahara to host a ski resort.&lt;/cite&gt; &lt;p&gt;One of their launch partners, &lt;a href="http://www.rsystems.com/"&gt;R Systems&lt;/a&gt;, created the world’s 44th largest supercomputer (per the June 2008 TOP500 list). They call it the R Smarr. It will be running Wolfram|Alpha on launch day!&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.dell.com/"&gt;Dell&lt;/a&gt; is another of the launch partners with a data center full of quad-board, dual-processor, quad-core Harpertown servers. &lt;cite&gt;What does it all add up to? The ability to &lt;strong&gt;handle 175 million queries (yielding maybe a billion) per day&lt;/strong&gt;—over 5 billion queries (encompassing around 30 billion calculations) per month.&lt;/cite&gt;&lt;/p&gt;&lt;p&gt;Wolfram|Alpha is going to be one of the most computationally intensive websites on the Internet.&lt;br /&gt;&lt;cite&gt;&lt;/cite&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-6821613078619597002?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/6821613078619597002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=6821613078619597002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6821613078619597002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6821613078619597002'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/wolframalpha-is-online.html' title='Wolfram|Alpha is online !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/Sg_Ba2EaZnI/AAAAAAAADWU/-fr_IkmN1OA/s72-c/WolframLogo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7794119254214045970</id><published>2009-05-15T12:26:00.002+05:30</published><updated>2009-05-15T17:22:57.660+05:30</updated><title type='text'>Sysadmin Woes</title><content type='html'>&lt;a href="http://www.adrive.com/public/fdc0bc23b670a7d373586d998de21e5510872529c33561e4714b2b46c4298479.html"&gt;A nice and funny document which tries to see through the pain of a Sysadmin.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-7794119254214045970?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7794119254214045970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7794119254214045970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7794119254214045970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7794119254214045970'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/sysadmin-woes.html' title='Sysadmin Woes'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-3199163203891612648</id><published>2009-05-11T12:24:00.002+05:30</published><updated>2009-05-11T12:30:53.672+05:30</updated><title type='text'>Inside RAM</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SgfNFZkozVI/AAAAAAAADVY/qZolS-e3Iqc/s1600-h/article_logo.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 138px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SgfNFZkozVI/AAAAAAAADVY/qZolS-e3Iqc/s200/article_logo.gif" alt="" id="BLOGGER_PHOTO_ID_5334457776291237202" border="0" /&gt;&lt;/a&gt;Few days back during a discussion at office I heard about two different kinds of RAMs (yes yes we all know about SDRAMs and DDRs), one of 'em was ECC Registered and another was FBD. Now many people use technical jargons every now and then without actually understanding the details. So as usual google was there to help us morons, and after few clicks here and there I landed up at this &lt;a href="http://www.2cpu.com/articles/44_1.html"&gt;wonderful article about different types of RAMs&lt;/a&gt;. The article explains in easy to understand language about the features and difference between Unbuffered, Registered, ECC, ECC Registered and FBD memory modules.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-3199163203891612648?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/3199163203891612648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=3199163203891612648' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3199163203891612648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3199163203891612648'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/inside-ram.html' title='Inside RAM'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/SgfNFZkozVI/AAAAAAAADVY/qZolS-e3Iqc/s72-c/article_logo.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7113660824454364824</id><published>2009-05-10T21:23:00.001+05:30</published><updated>2009-05-10T21:23:32.989+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travelogue'/><title type='text'>Our Trip to Matheran</title><content type='html'>&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmail2mayank%2Falbumid%2F5282613910560209777%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-7113660824454364824?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7113660824454364824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7113660824454364824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7113660824454364824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7113660824454364824'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/our-trip-to-matheran.html' title='Our Trip to Matheran'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2127649890433223611</id><published>2009-05-10T21:22:00.003+05:30</published><updated>2009-05-10T21:25:08.412+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travelogue'/><title type='text'>Our Trip To Pindari Glacier</title><content type='html'>&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&amp;captions=1&amp;hl=en_US&amp;feat=flashalbum&amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmail2mayank%2Falbumid%2F5324786081452159073%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2127649890433223611?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2127649890433223611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2127649890433223611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2127649890433223611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2127649890433223611'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/our-trip-to-pindari-glacier.html' title='Our Trip To Pindari Glacier'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-6079619132046512086</id><published>2009-05-10T21:16:00.000+05:30</published><updated>2009-05-10T21:21:38.543+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travelogue'/><title type='text'>Our Trip To Alibaug</title><content type='html'>&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&amp;amp;captions=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmail2mayank%2Falbumid%2F5330887347213062113%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-6079619132046512086?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/6079619132046512086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=6079619132046512086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6079619132046512086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6079619132046512086'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/our-trip-to-alibaug.html' title='Our Trip To Alibaug'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8568317962940343840</id><published>2009-05-10T15:59:00.002+05:30</published><updated>2009-05-10T16:01:07.406+05:30</updated><title type='text'>My New T Logo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/Sgas4X4lf4I/AAAAAAAADU4/_YLGiFuYQfw/s1600-h/LogoT.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 158px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/Sgas4X4lf4I/AAAAAAAADU4/_YLGiFuYQfw/s400/LogoT.JPG" alt="" id="BLOGGER_PHOTO_ID_5334140893150936962" 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/2580407331877610996-8568317962940343840?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8568317962940343840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8568317962940343840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8568317962940343840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8568317962940343840'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/my-new-t-logo.html' title='My New T Logo'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/Sgas4X4lf4I/AAAAAAAADU4/_YLGiFuYQfw/s72-c/LogoT.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5100877534962610145</id><published>2009-05-06T15:59:00.003+05:30</published><updated>2009-05-06T16:20:18.033+05:30</updated><title type='text'>"lshw" one of the must have commands.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/SgFqq86m5AI/AAAAAAAADUk/M6TsDdIpO2U/s1600-h/mem.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 116px; height: 116px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/SgFqq86m5AI/AAAAAAAADUk/M6TsDdIpO2U/s320/mem.jpeg" alt="" id="BLOGGER_PHOTO_ID_5332660719922373634" border="0" /&gt;&lt;/a&gt;Today got a chance to setup a brand new server which will be used as a web-caching proxy and content filtering system at our setup. I wanted to pump in as much RAM as possible into the machine and asked my boss for memory upgrade and as always he came up with 2 DIMMS of 2 GB RAM modules. As the IBM eServer (this was the server where we were supposed to host our application) was having 1 GB of RAM already and there were 2 free slots, so we decided to plug in both the modules. One interesting thing about this setup was that we can't plugin memory modules here are there, just as we are used to in case of Desktop. It has a specific sequencing pattern which has to be followed. It requires one to plugin lower capacity modules first and higher capacity modules later (later here refers to being closer to CPU).&lt;br /&gt;&lt;br /&gt;Anyways after fitting in the RAM modules we were anxious to see our machine with 5 GB of RAM and I was really anxious to get OS up and running. The BIOS also showed us 5 GB of RAM installed and we were all happy. Finally the OS was also installed and I don't know why but we decided to check our memory utilitization. However as soon as we entered 'cat /proc/meminfo', we got a big shock as the OS was reporting to have 4 GB of RAM installed. It was at this moment did we realized that BIOS was making a fool of us all, as the maximum memory limit of a 32 bit machine is 4 GB and OS was correct at detecting it.&lt;br /&gt;&lt;br /&gt;So this brou&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SgFrS9QAjPI/AAAAAAAADUs/-Xj448XSvTk/s1600-h/cpu.jpeg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 126px; height: 86px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SgFrS9QAjPI/AAAAAAAADUs/-Xj448XSvTk/s200/cpu.jpeg" alt="" id="BLOGGER_PHOTO_ID_5332661407206903026" border="0" /&gt;&lt;/a&gt;ght us to next big question about determining if our machine was a 32 bit machine or a 64 bit one ? If manuals aren't there then how can one determine this ? And the answer to this question is lshw. It's a small nifty utility which reports hardware information and also determines if the machine is 64 bit or 32 bit. For more information about &lt;a href="http://ezix.org/software/lshw.html"&gt;lshw, visit it's website&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5100877534962610145?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5100877534962610145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5100877534962610145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5100877534962610145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5100877534962610145'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/lshw-one-of-must-have-commands.html' title='&quot;lshw&quot; one of the must have commands.'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kpglEYwtRpk/SgFqq86m5AI/AAAAAAAADUk/M6TsDdIpO2U/s72-c/mem.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-6270314655825802959</id><published>2009-05-03T16:51:00.002+05:30</published><updated>2009-05-03T17:27:17.816+05:30</updated><title type='text'>Argument list too long</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/Sf2Gh-2_DrI/AAAAAAAADTk/UAEryrbPI90/s1600-h/GNU.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 89px; height: 87px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/Sf2Gh-2_DrI/AAAAAAAADTk/UAEryrbPI90/s320/GNU.png" alt="" id="BLOGGER_PHOTO_ID_5331565452243963570" border="0" /&gt;&lt;/a&gt;When working on Linux, it seems that most of the utilities provided with coreutil package have some kind of limitation imposed upon 'em. Today I was trying to delete some files from one of our servers and as I issued the command &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;rm -f heldmsg-*&lt;/span&gt;&lt;/span&gt; I was surprised to see bash throwing me an error saying &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;-bash: /bin/rm: Argument list too long&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It initially seemed to me that it's a bug on part of coreutils package but upon googling I found that this wasn't the case and it's neither a bug of coreutils nor of bash. Actually it's an architecture limitation of Unix like operating systems. Further details about the issue are available at &lt;a href="http://www.gnu.org/software/coreutils/faq/coreutils-faq.html#Argument-list-too-long"&gt;GNU Core Utilities FAQs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Interestingly Linux kernel 2.6.23 doesn't suffer from this problem any more, as it has removed the classic ARG_MAX limitation. It will eventually propagate into the release software distributions which include it. However glibc's &lt;samp&gt;&lt;span class="command"&gt;getconf ARG_MAX&lt;/span&gt;&lt;/samp&gt; hasn't caught up yet and still reports a fixed value.&lt;br /&gt;&lt;br /&gt;Anyhow as for the solution to the problem of removal of the files, one solution is to use &lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;find&lt;/span&gt; &lt;/span&gt;command as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;find . -name 'heldmsg-*' | xargs -0 rm&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and another method is through a simple shell script:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;for x in *; do rm $x; done       &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/2580407331877610996-6270314655825802959?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/6270314655825802959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=6270314655825802959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6270314655825802959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6270314655825802959'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/argument-list-too-long.html' title='Argument list too long'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/Sf2Gh-2_DrI/AAAAAAAADTk/UAEryrbPI90/s72-c/GNU.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1114832041820696378</id><published>2009-05-03T15:14:00.003+05:30</published><updated>2009-05-03T15:19:44.957+05:30</updated><title type='text'>Mobility Modder</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/Sf1or_UUPsI/AAAAAAAADTc/WwTOj0QX0Cs/s1600-h/mbm.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 78px; height: 87px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/Sf1or_UUPsI/AAAAAAAADTc/WwTOj0QX0Cs/s320/mbm.jpg" alt="" id="BLOGGER_PHOTO_ID_5331532638816845506" border="0" /&gt;&lt;/a&gt;It has happened millions of times that I was looking for a driver update and though the chipset manufacturer reports of having a new version, my laptop vendor doesn't show it available on it's website. The biggest question here is, "What to do next ?". As most of the users are aware, a corrupt driver can be worst nightmare a user has to face. This is where Mobility Modder comes to rescue. It's a small nifty tool designed just for that purpose. For more details visit &lt;a href="http://www.driverheaven.net/modtool.php"&gt;Mobility Modder's webpage&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1114832041820696378?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1114832041820696378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1114832041820696378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1114832041820696378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1114832041820696378'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/mobility-modder.html' title='Mobility Modder'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/Sf1or_UUPsI/AAAAAAAADTc/WwTOj0QX0Cs/s72-c/mbm.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1195588081956167238</id><published>2009-05-03T13:58:00.003+05:30</published><updated>2009-05-03T14:02:01.664+05:30</updated><title type='text'>Bumptop is live</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/Sf1WXg2iK0I/AAAAAAAADTU/Cdj-2Cn3UV0/s1600-h/images.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 110px; height: 110px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/Sf1WXg2iK0I/AAAAAAAADTU/Cdj-2Cn3UV0/s320/images.jpeg" alt="" id="BLOGGER_PHOTO_ID_5331512495832181570" border="0" /&gt;&lt;/a&gt;Much awaited Bumptop 3D Desktop is live and available for download now. One can download the Free and Commercial version from &lt;a href="http://bumptop.com/download.php"&gt;Bumptop's Official Website&lt;/a&gt;. There is also a nice video explaining the features of this wonderful piece of software. Happy bumping !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1195588081956167238?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1195588081956167238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1195588081956167238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1195588081956167238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1195588081956167238'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/bumptop-is-live.html' title='Bumptop is live'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/Sf1WXg2iK0I/AAAAAAAADTU/Cdj-2Cn3UV0/s72-c/images.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4549923161377313460</id><published>2009-05-03T12:04:00.002+05:30</published><updated>2009-05-03T12:24:03.873+05:30</updated><title type='text'>National Knowledge Network</title><content type='html'>Few days back got information from our Executive Director about commissioning of &lt;a href="http://www.knowledgecommission.gov.in/"&gt;National Knowledge Network&lt;/a&gt; in India. All together it seems a very ambitious initiative by Government of India to interconnect educational and research institutions in India.&lt;br /&gt;&lt;br /&gt;This opens up all new possibilities for collaborative research and sharing of resources. However I am not too sure if it's going to be a success considering the kind of attitude I've seen among people who are into research. They are highly secretive about the research they are doing and moreover with availability of Internet sharing of resources (if it means sharing of thesis papers) was already possible. Yes this network does provide a means for Grid computing projects to happen more effectively but doesn't Garuda project already serve this purpose ?&lt;br /&gt;&lt;br /&gt;The only scope I feel this project has is in Virtual classrooms and Virtual libraries. However these projects are also going to be useful only if required applications are deployed on the network asap. Virtual classrooms aren't a big necessity for major colleges like IITs, IISc or NITs, instead they are more required for colleges in remote areas where there is lack of adequate faculty. If this network has to be successful then it has to reach those remote places in first place, as people from those places are going to be biggest consumers of the applications running on this network. Also virtual libraries are only going to be successful if we digitize the information contained in books. However this is going to raise several legal issues related to licensing and I'm not sure if management in most of the institutions would be interested in dealing with these issues.&lt;br /&gt;&lt;br /&gt;But if in case virtual classrooms do begin to run, then we've a great oppurtunity at our hands to design and develop communication technologies which provide high definition audio/video content, which can be used to deliver the media on the network. I guess Narendra is already feeling great about availability of a platform to deliver his &lt;a href="http://eduvid.techfandu.org/"&gt;Eduvid project&lt;/a&gt; :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4549923161377313460?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4549923161377313460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4549923161377313460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4549923161377313460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4549923161377313460'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/05/national-knowledge-network.html' title='National Knowledge Network'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7601861616390039853</id><published>2009-04-29T22:23:00.001+05:30</published><updated>2009-04-29T22:25:39.986+05:30</updated><title type='text'>Switchfoot - Lonely Nation</title><content type='html'>One hell of a fucking great song. Some thought provoking lyrics after a looooooong time.&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/l6bPXfi6Xx4&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/l6bPXfi6Xx4&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&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/2580407331877610996-7601861616390039853?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7601861616390039853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7601861616390039853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7601861616390039853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7601861616390039853'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/04/switchfoot-lonely-nation.html' title='Switchfoot - Lonely Nation'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-3162989434662476979</id><published>2009-04-29T22:02:00.003+05:30</published><updated>2009-04-29T22:13:51.012+05:30</updated><title type='text'>The Road to Reality</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.com/Road-Reality-Complete-Guide-Universe/dp/0679454438"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 161px; height: 161px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SfiDkEyxloI/AAAAAAAACrs/NqwLFJEXjq8/s200/41WRZZP314L._SL500_AA240_.jpg" alt="" id="BLOGGER_PHOTO_ID_5330154814778218114" border="0" /&gt;&lt;/a&gt;Was reading "The Road To Reality" by Roger Penrose today. Don't know why but after reading first few chapters a very disturbing thought came into mind. These thoughts make me feel really uncomfortable and I was confused once again. Am I doing right by trying to understand the details of how things work around me, or is it just that I'm wasting my time. I know it may sound absurd to many but this is a question which I keep on asking myself when I try to do something. Maybe it's fear of failure which makes me think like this, I don't know for sure but something is wrong deep inside somewhere. Got to find a solution for this before it gets too late. By the way the book is an excellent and must read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-3162989434662476979?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/3162989434662476979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=3162989434662476979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3162989434662476979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3162989434662476979'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/04/road-to-reality.html' title='The Road to Reality'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/SfiDkEyxloI/AAAAAAAACrs/NqwLFJEXjq8/s72-c/41WRZZP314L._SL500_AA240_.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2752145086275464983</id><published>2009-03-30T22:04:00.002+05:30</published><updated>2009-03-30T22:11:18.633+05:30</updated><title type='text'>Auto Complete in Vim</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SdD2GHrrGsI/AAAAAAAABqs/puyR1F7PPFU/s1600-h/images.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 124px; height: 124px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SdD2GHrrGsI/AAAAAAAABqs/puyR1F7PPFU/s320/images.jpeg" alt="" id="BLOGGER_PHOTO_ID_5319021744926431938" border="0" /&gt;&lt;/a&gt;Thanks to Rahul Sir, I remembered a long forgotten trick which is very helpful while coding using Vim. Autocomplete feature of Vim is a wonderful feature which allows for autocompletion of text which is currently being inserted inside Vim editor.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;To use autocomplete one must be in insert mode. Then press Ctrl and x to go to autocomplete mode. The next ctrl + ’some key’ sequence determines the output of autocomplete. Eg. ctrl + ‘p’ will search backwards in the file for the first matching text and insert that, while ctrl + ‘n’ searches forward in the file for the same. You can use ctrl + ‘f’ to insert files names present in&lt;/span&gt; current directory (useful when inserting header files).&lt;br /&gt;&lt;br /&gt;This feature becomes all more effective and efficient when dictionary is used along with Vim.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Ctrl+l Complete whole lines of text&lt;/span&gt;&lt;br /&gt;&lt;span&gt; Ctrl+n  Complete words from current buffe&lt;/span&gt;&lt;br /&gt;&lt;span&gt; Ctrl+k Complete words from dictionaries&lt;/span&gt;&lt;br /&gt;&lt;span&gt; Ctrl+t  Complete words from thesaurus&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Ctrl+i  Words from current and included files&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Ctrl+s  Spelling suggestions (Vim 7.0 and newer only)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2752145086275464983?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2752145086275464983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2752145086275464983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2752145086275464983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2752145086275464983'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/auto-complete-in-vim.html' title='Auto Complete in Vim'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/SdD2GHrrGsI/AAAAAAAABqs/puyR1F7PPFU/s72-c/images.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7580780960955172929</id><published>2009-03-29T09:27:00.002+05:30</published><updated>2009-03-29T09:31:30.597+05:30</updated><title type='text'>I Forgot My Windows XP Password !</title><content type='html'>Many a times it happens that user forgets his/her password and things bec&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/Sc7yhUDOs_I/AAAAAAAABqk/-9xSWWjQo4U/s1600-h/images.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 135px; height: 90px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/Sc7yhUDOs_I/AAAAAAAABqk/-9xSWWjQo4U/s320/images.jpeg" alt="" id="BLOGGER_PHOTO_ID_5318454864102994930" border="0" /&gt;&lt;/a&gt;ome really messed up when there is a single user i.e. administrator and user forgets the password for administrator account. However there is a way to reset the password and that too without using any particular software. All that's required is a bootable Windows XP CD and one just needs to follow the steps outlined in &lt;a href="http://pubs.logicalexpressions.com/pub0009/LPMArticle.asp?ID=305"&gt;an article by Vic Ferri&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-7580780960955172929?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7580780960955172929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7580780960955172929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7580780960955172929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7580780960955172929'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/i-forgot-my-windows-xp-password.html' title='I Forgot My Windows XP Password !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/Sc7yhUDOs_I/AAAAAAAABqk/-9xSWWjQo4U/s72-c/images.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1364733769610814611</id><published>2009-03-26T21:19:00.002+05:30</published><updated>2009-03-28T19:33:22.850+05:30</updated><title type='text'>Google's Power Supply Unit</title><content type='html'>Watch &lt;a href="http://www.youtube.com/watch?v=M5wfv7RE_J4"&gt;http://www.youtube.com/watch?v=M5wfv7RE_J4&lt;/a&gt; to get a glimpse of what's happening at Google as far as efficient data center setup is concerned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1364733769610814611?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1364733769610814611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1364733769610814611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1364733769610814611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1364733769610814611'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/googles-power-supply-unit.html' title='Google&apos;s Power Supply Unit'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-524548108138896098</id><published>2009-03-25T21:00:00.004+05:30</published><updated>2009-03-25T21:06:52.641+05:30</updated><title type='text'>Good discussion</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/ScpPL4tbgfI/AAAAAAAABqc/dVfZ2iARoSw/s1600-h/images.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 138px; height: 110px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/ScpPL4tbgfI/AAAAAAAABqc/dVfZ2iARoSw/s320/images.jpeg" alt="" id="BLOGGER_PHOTO_ID_5317149375684379122" border="0" /&gt;&lt;/a&gt;Had a good discussion about a project idea related to eLearning solution today with my colleagues. I really appreciate critical reviews of an idea and that's what I got from my friends today. Thanks a zillion to 'em for a great discussion and if that wasn't enough the day ended on a very informative article I read on &lt;a href="http://archives.emergic.org/collections/tech_talk_computing_for_the_next_billion.html"&gt;Rajesh Jain's Weblog on Emerging Technologies, Enterprises and Markets&lt;/a&gt;. Thanks a lot to Rajesh for providing the content. So what's next, is the question I got to ask myself tonight when I hit bed tonight :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-524548108138896098?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/524548108138896098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=524548108138896098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/524548108138896098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/524548108138896098'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/good-discussion.html' title='Good discussion'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/ScpPL4tbgfI/AAAAAAAABqc/dVfZ2iARoSw/s72-c/images.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-859740738201374118</id><published>2009-03-24T19:10:00.002+05:30</published><updated>2009-03-24T19:17:26.895+05:30</updated><title type='text'>Apache Proxy For SSL enabled sites</title><content type='html'>Somedays back I'd an opportunity to do proxy setup for Apache webserver and as if problems are my good company, I landed up with a problem today when I had to bring a SSL enabled site running in my setup, under the umberalla of unified URL namespace.&lt;br /&gt;&lt;br /&gt;However as with every problem associated with task of systems administration, this too had a pretty easy solution and this solution involved usage of SSLProxy which is a directive provided by mod_ssl module of Apache webserver.&lt;br /&gt;&lt;br /&gt;So all that's needed to be done is to enable the SSLEngine and specify proxy path of the urls as illustrated below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#Enable SSL Proxy&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SSLEngine On&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#Proxy paths&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ProxyPass /&lt;project_name&gt; &lt;project_url_with_https&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ProxyPassReverse /&lt;project_name&gt; &lt;project_url_with_https&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So now any one visiting &lt;span style="font-family: courier new;"&gt;&lt;my_site&gt;/&lt;project_name&gt;&lt;/span&gt; is taken to &lt;span style="font-family: courier new;"&gt;&lt;project_url_with_https&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;However I'm not sure why, but I'm unable to do a URL Rewrite as it was happening automatically with normal Apache Proxy. Will see to it and revert back in days to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-859740738201374118?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/859740738201374118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=859740738201374118' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/859740738201374118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/859740738201374118'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/apache-proxy-for-ssl-enabled-sites.html' title='Apache Proxy For SSL enabled sites'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-536324764844453894</id><published>2009-03-23T11:04:00.002+05:30</published><updated>2009-03-23T11:13:10.437+05:30</updated><title type='text'>Network Analysis using Overlook fing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/ScchL3w7dFI/AAAAAAAABqU/zUoIK-gWOBo/s1600-h/package-box-star.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 227px; height: 228px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/ScchL3w7dFI/AAAAAAAABqU/zUoIK-gWOBo/s320/package-box-star.png" alt="" id="BLOGGER_PHOTO_ID_5316254372965610578" border="0" /&gt;&lt;/a&gt;While searching for a utility which allows for scanning of entire local area network I found a small but very useful tool called Overlook-fing. The utility can be used for network and service discovery. Taking advantage of a brand new cross-platform network engine, it reaches an impressive discovery sharpness and speed: you’re going to discover your whole network in few seconds and generate customized real-time reports.&lt;br /&gt;&lt;br /&gt;Fing's smart discovery automatically detects the network type and uses the best technique to take the picture of it. The best results are surely achieved on Ethernet networks (Wireless ones included), where Fing is able to detect all network hosts, fire walled ones included, reaching 100% hit. The service discovery feature quickly detects active TCP services on a target host or network.&lt;br /&gt;&lt;br /&gt;The software is available for Windows, Linux and Mac. For more details visit &lt;a href="http://www.lookatlan.com/"&gt;www.lookatlan.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-536324764844453894?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/536324764844453894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=536324764844453894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/536324764844453894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/536324764844453894'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/network-analysis-using-overlook-fing.html' title='Network Analysis using Overlook fing'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/ScchL3w7dFI/AAAAAAAABqU/zUoIK-gWOBo/s72-c/package-box-star.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-6916618269029656247</id><published>2009-03-22T15:36:00.002+05:30</published><updated>2009-03-22T15:46:30.889+05:30</updated><title type='text'>How to test your Antivirus/AntiSpyware Solution ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/ScYPzWgVXmI/AAAAAAAABqM/HNOl6ePWVsQ/s1600-h/computer-virus-2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 201px; height: 146px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/ScYPzWgVXmI/AAAAAAAABqM/HNOl6ePWVsQ/s320/computer-virus-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5315953785046392418" border="0" /&gt;&lt;/a&gt;Few days back I was asked by my boss to evaluate some antivirus and anti-spyware solutions for our setup. As usual first step was to ask vendors to come up with their data sheets and as usual all of 'em hurried up with their emails and we were all very much excited to learn about all cool features they had to offer.&lt;br /&gt;&lt;br /&gt;However no matter how much features these solutions offer, like device control, application control, even NAC, at the end of day the key task they ought to perform is efficient detection of virus/worms/trojans/malwares and also removal of them. We also wanted to have a demo of the software solutions but this raised a question as to how to test these solutions to their limit. This lead me to &lt;a href="http://www.spycar.org/"&gt;Spycar&lt;/a&gt; and &lt;a href="http://www.eicar.org/"&gt;EICAR&lt;/a&gt; which provide test files to test the functionality of the antivirus/anti-spyware solutions. I don't know for sure as to how good these test files are, but atleast we've a starting point and I'll post how they fare in days to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-6916618269029656247?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/6916618269029656247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=6916618269029656247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6916618269029656247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6916618269029656247'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/how-to-test-your-antivirusantispyware.html' title='How to test your Antivirus/AntiSpyware Solution ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/ScYPzWgVXmI/AAAAAAAABqM/HNOl6ePWVsQ/s72-c/computer-virus-2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2481843269446090835</id><published>2009-03-22T12:22:00.002+05:30</published><updated>2009-03-22T12:32:23.823+05:30</updated><title type='text'>Handling fonts in Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/ScXiZxreKEI/AAAAAAAABqE/2EnHfh0BNl0/s1600-h/images.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 124px; height: 93px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/ScXiZxreKEI/AAAAAAAABqE/2EnHfh0BNl0/s320/images.jpeg" alt="" id="BLOGGER_PHOTO_ID_5315903867641014338" border="0" /&gt;&lt;/a&gt;This has been a cause of trouble for me ever since I started reading News portals. Some portals use specific fonts and this makes it difficult for browsers on Linux to render the page successfully.  The problem rests on the fact that browsers make use of fonts available on the system and as these portals require installation of particular fonts not available on Linux so it becomes impossible for rendering. So the key issue before me was to understand how to install fonts on Linux.&lt;br /&gt;&lt;br /&gt;Linux makes use of fontconfig library for font substitution when either entire fonts or individual characters are not present. If system is not having a particular font, it tries to display the content by making use of some other font. Applications in Linux looks in directories specified in &lt;i&gt;/etc/fonts/fonts.conf&lt;/i&gt; for location to search for a font.&lt;br /&gt;&lt;br /&gt;In order to install a new font on Linux box, you can do one of the following:&lt;br /&gt;&lt;pre&gt; # Copy font to one of the directories mentioned in &lt;i&gt;/etc/fonts/fonts.conf&lt;/i&gt;.&lt;br /&gt;# Issue command &lt;i&gt;fc-cache &lt;/i&gt;&lt;br /&gt;&lt;span&gt; # Restart the application and the font should be available to that application for use.&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;&lt;span&gt;OR &lt;/span&gt;&lt;/p&gt; &lt;pre&gt;&lt;span&gt; # Copy font to &lt;i&gt;~/.fonts&lt;/i&gt;&lt;br /&gt;# Issue command &lt;i&gt;fc-cache ~/.fonts&lt;/i&gt;&lt;br /&gt;# Restart the application.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;In second case the font changes are visible only to user in whose home directory the fonts have been installed, whereas in first case the changes are visible to all users on the machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2481843269446090835?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2481843269446090835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2481843269446090835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2481843269446090835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2481843269446090835'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/handling-fonts-in-linux.html' title='Handling fonts in Linux'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kpglEYwtRpk/ScXiZxreKEI/AAAAAAAABqE/2EnHfh0BNl0/s72-c/images.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-6916441596070266740</id><published>2009-03-22T10:13:00.002+05:30</published><updated>2009-03-22T10:28:13.883+05:30</updated><title type='text'>Gmail and PGP Keys !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/ScXFU5bHqvI/AAAAAAAABp8/MGNzOJHE-wU/s1600-h/logo.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 120px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/ScXFU5bHqvI/AAAAAAAABp8/MGNzOJHE-wU/s320/logo.jpg" alt="" id="BLOGGER_PHOTO_ID_5315871897983363826" border="0" /&gt;&lt;/a&gt;Thanks to Ashish Shukla whose mails on ILUGD were always PGP signed, I finally decided to have my own PGP key setup and integrate it with my personal email account on Gmail. The setup is fairly simple, all softwares I needed were there on my machine including &lt;a href="http://www.gnupg.org/"&gt;GnuPG&lt;/a&gt; and &lt;a href="http://seahorse.sf.net/"&gt;Seahorse&lt;/a&gt; (In case the softwares aren't available then they can be installed easily via apt or yum). One software missing on my machine was &lt;a href="http://getfiregpg.org/"&gt;FireGPG&lt;/a&gt;. It's a Mozilla Firefox extension which integrates with Gmail and allows for signing and encryption of mails easily. Once softwares are in place all that's required is to create a PGP key using Seahorse and start using FireGPG to sign and encrypt mails. An excellent tutorial on using GnuPG is available at&lt;a href="http://johnny.chadda.se/2007/01/24/how-to-send-secure-email-using-pgp/"&gt; Johnny Chadda's site.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-6916441596070266740?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/6916441596070266740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=6916441596070266740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6916441596070266740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6916441596070266740'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/gmail-and-pgp-keys.html' title='Gmail and PGP Keys !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/ScXFU5bHqvI/AAAAAAAABp8/MGNzOJHE-wU/s72-c/logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4262748268019979490</id><published>2009-03-16T19:28:00.002+05:30</published><updated>2009-03-16T19:34:50.228+05:30</updated><title type='text'>How to enable routing in Linux kernel ?</title><content type='html'>The Linux kernel by default doesn't allow for routing and it has to be enabled through sysctl. Edit /etc/sysctl.conf and set &lt;i&gt;net.ipv4.conf.default.accept_source_route = 1&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4262748268019979490?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4262748268019979490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4262748268019979490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4262748268019979490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4262748268019979490'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/how-to-enable-routing-in-linux-kernel.html' title='How to enable routing in Linux kernel ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2353227157071893555</id><published>2009-03-16T10:36:00.002+05:30</published><updated>2009-03-16T16:40:22.841+05:30</updated><title type='text'>Networking in Fedora 10</title><content type='html'>Got Fedora 10 installed on my machine today and Plymouth is great ! However once I'd booted into the environment I just couldn't connect to the network. Fedora 10 has NetworkManager which is used by default for maintaining network connections and also there is another service called network. Now one thing which really baffles me is "Why in the hell two services to do the same job ?". Anyways as I was new to this scheme of things I tried to restart network service quite a few times but all in vein. A bit of googling finally made me realise that this wasn't the way things were supposed to work and I had to first disable the NetworkManager service before I could make use of network service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2353227157071893555?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2353227157071893555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2353227157071893555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2353227157071893555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2353227157071893555'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/networking-in-fedora-10.html' title='Networking in Fedora 10'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5164486760306202847</id><published>2009-03-14T17:07:00.002+05:30</published><updated>2009-03-14T17:16:00.381+05:30</updated><title type='text'>Size of Swap Space</title><content type='html'>Enough is enough and I had heard too much of this idea of having swap space with size twice that of RAM. Now why in the hell do we have to have such a constraint ? I mean there has to be some reason behind it ( now this is ironical as I think we don't know reasons for most of the problems we tackle in day to day life, with computers ).&lt;br /&gt;&lt;br /&gt;A bit of googling and voilla I landed up at this &lt;a href="http://etbe.coker.com.au/2007/09/28/swap-space/"&gt;wonderful article by Russel Coker (etbe)&lt;/a&gt;. Thanks to author for this wonderful post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5164486760306202847?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5164486760306202847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5164486760306202847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5164486760306202847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5164486760306202847'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/size-of-swap-space.html' title='Size of Swap Space'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1060245447076149390</id><published>2009-03-12T12:58:00.003+05:30</published><updated>2009-03-12T14:56:17.716+05:30</updated><title type='text'>Finally we have our own Wiki !</title><content type='html'>Thanks to my boss, we finally got permission to host our own Wiki at office ! The installation was smooth and hasslefree. Just downloaded the mediawiki tar file from &lt;a href="http://www.mediawiki.org/wiki/Download"&gt;Mediawiki Site&lt;/a&gt; and installed the WAMP software on one of Windows 2003 server. Next step was to configure the httpd.conf file, as I already had IIS running on port 80. After setting the listening port to 8080, the time&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SbjVLKwYzQI/AAAAAAAABpc/M6ojpAJuGyY/s1600-h/MediaWiki.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 101px; height: 95px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SbjVLKwYzQI/AAAAAAAABpc/M6ojpAJuGyY/s320/MediaWiki.jpeg" alt="" id="BLOGGER_PHOTO_ID_5312230148326083842" border="0" /&gt;&lt;/a&gt; had come to configure the newly installed mediawiki, so I fired up the browser and pointed it to http://localhost:8080/wiki . Coool so the page says that mediawiki has been installed but hasn't been configured as of yet, so next step is to click on link which says "click here to setup the wiki". The background configuration script does an environment check for the first time to verify if everything is working as it should. Once a green signal is given we can easily go ahead and setup our new wiki. All we now need to do is to supply some information about wiki, like wiki name, administrator information, database information and some tweaking info about caching etc. and that's it, our new wiki is up and ready for edits :)&lt;br /&gt;&lt;br /&gt;Next step which I presume almost every wiki admin does for first time is to set the logo of his/her wiki by editing $wgLogo in LocalSettings.php and boy my wiki is ready to be presented to the world. Next thing which I wanted was to remove some of the links from navigation bar and also wanted to edit the disclaimer information. That's quite easy as well, just search for MediaWiki:Sidebar and you can edit the page you get in search result. You may even add a new link.&lt;br /&gt;&lt;br /&gt;Now the task ahead is to see how permissions are managed by MediaWiki and if we can integrate our existing Active Directory setup with Mediawiki for user authentication, and then the server will be up and ready for deployment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1060245447076149390?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1060245447076149390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1060245447076149390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1060245447076149390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1060245447076149390'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/finally-we-have-our-own-wiki.html' title='Finally we have our own Wiki !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/SbjVLKwYzQI/AAAAAAAABpc/M6ojpAJuGyY/s72-c/MediaWiki.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1819458053471240720</id><published>2009-03-09T16:42:00.002+05:30</published><updated>2009-03-09T19:08:54.364+05:30</updated><title type='text'>How can someone do this ?</title><content type='html'>Today missed the bus again in morning, well it had to inevitably happen as last night I hit bed too late at around 4:30 a.m. in morning, thanks to the wonderful book "God Created Integers ..." by Stephen Hawking. As usual I hired an auto, plugged in newly bought Creative EP-630 headphones into the ipod and started enjoying a brand new Monday morning. With Holi festivities nearing the roads seemed a bit empty and within no moments I was near H2O at Bandra. The signal was red and I saw few new born puppies enjoying a warm sunshine beneath a shed near the crossing. Suddenly few guys came and for no reason one of them kicked 2 of the poor little dogs. I just don't understand how can someone do such a thing ? It's not the first time I've seen such an incidence and I am sure something is seriously wrong with such people who try to show their power on helpless beings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1819458053471240720?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1819458053471240720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1819458053471240720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1819458053471240720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1819458053471240720'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/how-can-someone-do-this.html' title='How can someone do this ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2125953465279910476</id><published>2009-03-09T12:12:00.002+05:30</published><updated>2009-03-09T12:29:09.338+05:30</updated><title type='text'>Lockhart's Mathematical Lament</title><content type='html'>This post is regarding an article called A Mathematician's Lament by Paul Lockhart. Paul is a mathematics teacher at Saint Ann's School in Brooklyn, New York. It is, quite frankly, one of the best critiques of current education norms being followed at schools for teaching Mathematics. Written by a first-class research mathematician who elected to devote his teaching career to K-12 education.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SbS-IsDdQ7I/AAAAAAAABpU/DgNSwuHRsq0/s1600-h/lament.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 128px; height: 128px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SbS-IsDdQ7I/AAAAAAAABpU/DgNSwuHRsq0/s320/lament.png" alt="" id="BLOGGER_PHOTO_ID_5311078917050549170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Paul became interested in mathematics when he was about 14 (outside of the school math class, he points out) and read voraciously, becoming especially interested in analytic number theory. He dropped out of college after one semester to devote himself to math, supporting himself by working as a computer programmer and as an elementary school teacher. Eventually he started working with Ernst Strauss at UCLA, and the two published a few papers together. Strauss introduced him to Paul Erdos, and they somehow arranged it so that he became a graduate student there. He ended up getting a Ph.D. from Columbia in 1990, and went on to be a fellow at MSRI and an assistant professor at Brown. He also taught at UC Santa Cruz. His main research interests were, and are, automorphic forms and Diophantine geometry.&lt;p&gt; After several years teaching university mathematics, Paul eventually tired of it and decided he wanted to get back to teaching children. He secured a position at Saint Ann's School, where he says "I have happily been subversively teaching mathematics (the real thing) since 2000."&lt;/p&gt;&lt;p&gt; He teaches all grade levels at Saint Ann's (K-12), and says he is especially interested in bringing a mathematician's point of view to very young children. "I want them to understand that there is a playground in their minds and that that is where mathematics happens. So far I have met with tremendous enthusiasm among the parents and kids, less so among the mid-level administrators," he wrote in an email. Now where do you hear such a thing? But enough of my words. Read Paul's dynamite essay. It's a 25-page PDF file.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.maa.org/devlin/LockhartsLament.pdf"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Lockhart's Lament&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2125953465279910476?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2125953465279910476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2125953465279910476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2125953465279910476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2125953465279910476'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/lockharts-mathematical-lament.html' title='Lockhart&apos;s Mathematical Lament'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/SbS-IsDdQ7I/AAAAAAAABpU/DgNSwuHRsq0/s72-c/lament.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4148946854732488228</id><published>2009-03-07T16:31:00.002+05:30</published><updated>2009-03-07T16:37:51.102+05:30</updated><title type='text'>Why is 0^0 =1 ?</title><content type='html'>Seems like a naive question but I was definitely not sure about the reason behind the truth of&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SbJVbeA2JFI/AAAAAAAABpM/7NQsAx8ESjk/s1600-h/exponents.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 53px; height: 53px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SbJVbeA2JFI/AAAAAAAABpM/7NQsAx8ESjk/s200/exponents.jpg" alt="" id="BLOGGER_PHOTO_ID_5310400841024676946" border="0" /&gt;&lt;/a&gt; equation 0&lt;sup&gt;0&lt;/sup&gt; = 1, until I visited &lt;a href="http://betterexplained.com/articles/understanding-exponents-why-does-00-1/"&gt;betterexplained.com&lt;/a&gt; . It's one of those sites which tries to take mind away from usual ways of looking at things and it surely helped me understand reason behind the truth of the equation. The logic also made me clear about the logic behind finding answers to questions like "What's 2 &lt;sup&gt;1.5&lt;/sup&gt; ?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4148946854732488228?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4148946854732488228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4148946854732488228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4148946854732488228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4148946854732488228'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/why-is-00-1.html' title='Why is 0^0 =1 ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/SbJVbeA2JFI/AAAAAAAABpM/7NQsAx8ESjk/s72-c/exponents.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-6814282089862312168</id><published>2009-03-07T16:25:00.000+05:30</published><updated>2009-03-07T16:26:15.976+05:30</updated><title type='text'>Places in India I've Seen</title><content type='html'>&lt;img src="http://douweosinga.com/map/india?selected=070b1d1e050201172308060904141a1c181b031112" width="404" height="449" &gt;&lt;br/&gt;visited 21 states (60%)&lt;br/&gt;&lt;a href="http://douweosinga.com/projects/visited?region=india"&gt;Create your own visited map of India&lt;/a&gt; or &lt;a href="http://douweosinga.com/projects"&gt;another interesting project&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-6814282089862312168?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/6814282089862312168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=6814282089862312168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6814282089862312168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6814282089862312168'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/places-in-india-ive-seen.html' title='Places in India I&apos;ve Seen'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2189819693924271457</id><published>2009-03-05T18:16:00.003+05:30</published><updated>2009-03-05T18:26:05.395+05:30</updated><title type='text'>What's my Ethernet Device ?</title><content type='html'>This is one problem which I have been facing since quite a long time. Generally machines come with just one network interface card and Linux happily detects them as device eth0. Ho&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/Sa_LaawLB3I/AAAAAAAABpE/LixToER2kPQ/s1600-h/10___100m_Ethernet_Card.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 140px; height: 127px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/Sa_LaawLB3I/AAAAAAAABpE/LixToER2kPQ/s320/10___100m_Ethernet_Card.jpg" alt="" id="BLOGGER_PHOTO_ID_5309686140411512690" border="0" /&gt;&lt;/a&gt;wever with servers things become a bit complicated as they generally have 2 or more NICs and Linux detects these devices as eth0, eth1 and so on. Now if I'm going to a site with a server having 2 NICs and there is some problem in network configuration and thus I've to figure out which of the NICs is eth0 and which one is eth1, then with only a damn gloomy console, figuring out answer to this question is difficult, if not impossible.&lt;br /&gt;&lt;br /&gt;Here comes the utility called &lt;a href="http://freshmeat.net/projects/ethtool/"&gt;&lt;span style="font-weight: bold;"&gt;ethtool&lt;/span&gt;&lt;/a&gt;. I think every Linux admin should have this utility in his tool pack. This utility can be used to configure ethernet cards. One can even set the Transfer rate and duplex modes of the card. A real nice option of this command is &lt;span style="font-family: courier new;"&gt;-p&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;If we try out command &lt;span style="font-family: courier new;"&gt;"# ethtool -p eth1 "&lt;/span&gt; then if we monitor the network card physically, we can see lights blinking on the NIC. This way we can easily figure out which of the card is eth0 and which one is eth1 !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2189819693924271457?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2189819693924271457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2189819693924271457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2189819693924271457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2189819693924271457'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/whats-my-ethernet-device.html' title='What&apos;s my Ethernet Device ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/Sa_LaawLB3I/AAAAAAAABpE/LixToER2kPQ/s72-c/10___100m_Ethernet_Card.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-3644898872630958353</id><published>2009-03-04T13:07:00.003+05:30</published><updated>2009-03-04T13:17:21.039+05:30</updated><title type='text'>Gotta Be Somebody by Nickelback</title><content type='html'>This song for reasons I ain't sure about has touched me so deeply that I can't express in words. However this also raised a question which is quite philosophical in a way. Why do we &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/Sa4xwzKFGtI/AAAAAAAABo8/jel9X8T9eCo/s1600-h/nickelback-gotta-be-somebody.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 202px; height: 202px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/Sa4xwzKFGtI/AAAAAAAABo8/jel9X8T9eCo/s320/nickelback-gotta-be-somebody.jpg" alt="" id="BLOGGER_PHOTO_ID_5309235725152361170" border="0" /&gt;&lt;/a&gt;like certain kind of music at certain point of time ? I am yet to meet a person who doesn't appreciate good quality music and it's also a known fact that a person's taste for music keeps on changing with time. I still remember the days when I was a die hard MLTR fan but I've also been through times when all that I loved was hard core metal. Recently learnt from an article published in IEEE about some research group working on finding the reasons behind this question. Hope they come up with some reasoning soon.&lt;br /&gt;&lt;br /&gt;As for the song by Nickelback, it's simply amazing. The video is available on &lt;a style="font-weight: bold;" href="http://www.youtube.com/watch?v=vSnrVc9oqe0"&gt;YouTube!&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lyrics goes as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;This time, I wonder what it feels like&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;To find the one in this life, the one we all dream of&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;But dreams just aren't enough&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;So I'll be waiting for the real thing, I'll know it by the feeling&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;The moment when we're meeting, will play out like a scene&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Straight off the silver screen&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;So I'll be holding my own breath, right up 'til the end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Until that moment when, I find the one that I'll spend forever with&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'Cause nobody wants to be the last one there&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'Cause everyone wants to feel like someone cares&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Someone to love with my life in their hands&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's gotta be somebody for me like that&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'Cause nobody wants to do it on their own&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;And everyone wants to know they're not alone&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's somebody else that feels the same somewhere&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's gotta be somebody for me out there&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Tonight, out on the street, out in the moonlight&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;And dammit this feels too right, it's just like déjà vu&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Me standing here with you&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;So I'll be holding my own breath, could this be the end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Is it that moment when, I find the one that I'll spend forever with&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'Cause nobody wants to be the last one there&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'Cause everyone wants to feel like someone cares&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Someone to love with my life in their hands&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's gotta be somebody for me like that&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'Cause nobody wants to do it on their own&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;And everyone wants to know they're not alone&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's somebody else that feels the same somewhere&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's gotta be somebody for me out there&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;You can't give up, looking for a diamond in the rough&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;You never know, when it shows up, make sure you're holding on&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'Cause it could be the one, the one you're waiting on&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'Cause nobody wants to be the last one there&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;And everyone wants to feel like someone cares&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Someone to love with my life in their hands&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's gotta be somebody for me, ohhh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Nobody wants to do it on their own&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;And everyone wants to know they're not alone&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's somebody else that feels the same somewhere&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's gotta be somebody for me out there&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Nobody wants to be the last one there&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'Cause everyone wants to feel like someone cares&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's somebody else that feels the same somewhere&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;There's gotta be somebody for me out there&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-3644898872630958353?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/3644898872630958353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=3644898872630958353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3644898872630958353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3644898872630958353'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/03/gotta-be-somebody-by-nickelback.html' title='Gotta Be Somebody by Nickelback'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kpglEYwtRpk/Sa4xwzKFGtI/AAAAAAAABo8/jel9X8T9eCo/s72-c/nickelback-gotta-be-somebody.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4202066429091440570</id><published>2009-02-22T10:13:00.003+05:30</published><updated>2009-02-22T10:19:46.360+05:30</updated><title type='text'>Link to Learn Haskell</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SaDZJgBl6cI/AAAAAAAABo0/3SIOP_DK2v8/s1600-h/haskell.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 102px; height: 97px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SaDZJgBl6cI/AAAAAAAABo0/3SIOP_DK2v8/s200/haskell.jpeg" alt="" id="BLOGGER_PHOTO_ID_5305479118281107906" border="0" /&gt;&lt;/a&gt;For most of CS students Haskell seems wierd as it's drastically different from many other programming languages that they learn, like C,Java and even Assembly ! For all such people Eric Etheridge has compiled a tutorial &lt;a href="http://www.haskell.org/%7Epairwise/intro/intro.html"&gt;Haskell for C Programmers&lt;/a&gt;. This is an easy to follow manual and will surely help one understand the tit-bits of an otherwise seemingly difficult language.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4202066429091440570?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4202066429091440570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4202066429091440570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4202066429091440570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4202066429091440570'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/02/link-to-learn-haskell.html' title='Link to Learn Haskell'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/SaDZJgBl6cI/AAAAAAAABo0/3SIOP_DK2v8/s72-c/haskell.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5771450955595112240</id><published>2009-02-19T14:59:00.004+05:30</published><updated>2009-02-19T15:04:04.071+05:30</updated><title type='text'>Solution to Dynamic Double Dim. Array</title><content type='html'>Sometime back I had posted a problem regarding &lt;a href="http://techynfreesouls.blogspot.com/2008/11/dynamic-double-dimensional-array.html"&gt;dynamic allocation of double dimensional arrays&lt;/a&gt; and finally after a sufficiently large time finally solution to the problem has surfaced :) Thanks to Vinod Ji of C-DAC, Mumbai for his help. I'm not sure if I'd have cracked the solution without his guidance. Anyways following is the solution to the problem:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#include &amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;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;        FILE *fp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        char **word;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        char *str;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        int c,i=0,j=0;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        fp=fopen("input.txt","r");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        str=(char *)malloc(sizeof(char));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;//      word=(char **)malloc(sizeof(long)); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        word=0; //we couldv'e used above line instead.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        while ((c=getc(fp))!=EOF)&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;                if (c==' ' || c=='\t' || c=='\n')&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;                        str[i]='\0';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                        word=(char **)realloc(word,sizeof(long)*(j+1));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                        *(word+j)=(char *)malloc((strlen(str)+1)*sizeof(char));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                        strcpy(word[j],str);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                        j++;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                        str=(char *)malloc(sizeof(char));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                        i=0;&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;                else&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;                        str[i++]=c;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                        str=(char *)realloc(str,(i+1)*sizeof(char));&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;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        for(i=0;i&amp;lt;j;i++)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        printf ("%s\n",word[i]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        getchar();&lt;/span&gt;&lt;br /&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/2580407331877610996-5771450955595112240?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5771450955595112240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5771450955595112240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5771450955595112240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5771450955595112240'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/02/solution-to-dynamic-double-dim-array.html' title='Solution to Dynamic Double Dim. Array'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-3502116294808378961</id><published>2009-02-19T12:31:00.003+05:30</published><updated>2009-02-19T13:01:15.686+05:30</updated><title type='text'>Apache Web Server: Reverse Proxy</title><content type='html'>We've a setup where applications are hosted on various servers dispersed across different servers. Yesterday we came to know that our Executive Director wants a unified UR&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SZ0J9F-aJDI/AAAAAAAABos/ggJSnTsEwzc/s1600-h/apache.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 137px; height: 103px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SZ0J9F-aJDI/AAAAAAAABos/ggJSnTsEwzc/s320/apache.jpeg" alt="" id="BLOGGER_PHOTO_ID_5304406881292919858" border="0" /&gt;&lt;/a&gt;L namespace for all the applications. Specifically he wanted all applications to be accessible via http://&lt;domain_name&gt;[domain_name]/[product_name]&lt;product_name&gt; . I've seen &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;mod_alias and Redirect/Rewrite&lt;/span&gt;&lt;/span&gt; rules but for applications dispersed across different servers I had no clue how to go about it. This is where &lt;a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html"&gt;&lt;span style="font-weight: bold;"&gt;mod_proxy&lt;/span&gt;&lt;/a&gt; came to our rescue. &lt;/product_name&gt;&lt;/domain_name&gt;&lt;domain_name&gt;&lt;product_name&gt;This is a wonderful module which allows Apache to behave like a forward and reverse proxy. We can even implement caching using &lt;a href="http://httpd.apache.org/docs/2.2/mod/mod_cache.html"&gt;mod_cache&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Apache can be configured in both forward and reverse proxy (also known as gateway) mode.  An ordinary forward proxy sits between client and server. Client makes request for specific server through the proxy and the proxy server fetches content from server and passes it onto the client. In this mode of operation, client needs to be specifically configured. This mode is very much like using a proxy server to access Internet.&lt;br /&gt;&lt;br /&gt;A reverse proxy (or a gateway) on other hand is appears to client like an ordinary web server. No special configuration on client is required. The client makes ordinary request for content in the namespace of reverse proxy. The reverse proxy then decides where to send the request, and returns the content as if it's the origin.&lt;br /&gt;&lt;br /&gt;A typical usage of a reverse proxy is to provide Internet       users access to a server that is behind a firewall.  Reverse       proxies can also be used to balance load among several back-end       servers, or to provide caching for a slower back-end server.       In addition, reverse proxies can be used simply to bring       several servers into the same URL space.&lt;br /&gt;&lt;br /&gt;The forward proxy is activated using the ProxyRequests directive.  A reverse proxy is activated using the ProxyPass directive or the       &lt;code&gt;[P]&lt;/code&gt; flag to the RewriteRule directive.  It is       &lt;strong&gt;not&lt;/strong&gt; necessary to turn ProxyRequests on in order to       configure a reverse proxy.&lt;br /&gt;&lt;br /&gt;A basic configuration goes as follows:&lt;br /&gt;&lt;br /&gt;&lt;/product_name&gt;&lt;/domain_name&gt;&lt;div class="example"&gt;&lt;h3&gt;Forward Proxy&lt;/h3&gt;&lt;p&gt;&lt;code&gt;     ProxyRequests On&lt;br /&gt; ProxyVia On&lt;br /&gt;&lt;br /&gt; &lt;proxy&gt;&lt;br /&gt; &lt;span class="indent"&gt;       Order deny,allow&lt;br /&gt;   Deny from all&lt;br /&gt;   Allow from internal.example.com&lt;br /&gt; &lt;/span&gt;     &lt;/proxy&gt;     &lt;/code&gt;&lt;/p&gt;&lt;/div&gt;      &lt;div class="example"&gt;&lt;h3&gt;Reverse Proxy&lt;/h3&gt;&lt;p&gt;&lt;code&gt;     ProxyRequests Off&lt;br /&gt;&lt;br /&gt; &lt;proxy&gt;&lt;br /&gt; &lt;span class="indent"&gt;       Order deny,allow&lt;br /&gt;   Allow from all&lt;br /&gt; &lt;/span&gt;     &lt;/proxy&gt;&lt;br /&gt;&lt;br /&gt; ProxyPass /foo http://foo.example.com/bar&lt;br /&gt; ProxyPassReverse /foo http://foo.example.com/bar&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;This wonderful module has made a seemingly difficult task, a piece of cake for me :) Long live the author of module !&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/2580407331877610996-3502116294808378961?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/3502116294808378961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=3502116294808378961' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3502116294808378961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3502116294808378961'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/02/apache-web-server-reverse-proxy.html' title='Apache Web Server: Reverse Proxy'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/SZ0J9F-aJDI/AAAAAAAABos/ggJSnTsEwzc/s72-c/apache.jpeg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-8132388975031065645</id><published>2009-02-17T14:28:00.006+05:30</published><updated>2009-02-17T15:45:49.501+05:30</updated><title type='text'>Configure WDS for Live CD deployment</title><content type='html'>We have been using Windows Deployment Server (WDS) for installation of Windows and Linux operating systems since quite some time now. However with advent of Ubuntu and distributions based upon it, we had to find some way to allow Live CDs to boot directly from WDS. Today we finally managed to get the job done. Following additional tools are required for this purpose:&lt;br /&gt;&lt;br /&gt;1. NFS on Windows. (SFU 3.5 provides both server for NFS and client for NFS).&lt;br /&gt;&lt;br /&gt;Following steps are required to get Live CD boot off PXE through Windows Deployment Server:&lt;br /&gt;&lt;br /&gt;1. Extract the contents of iso image of Live CD to some location on Windows Deployment Server.&lt;br /&gt;(Let's assume location to be D:\Linux\live. Henceforth in this article, this location shall be referred to as $LINUXLIVE)&lt;br /&gt;&lt;br /&gt;2. Create following directories:&lt;br /&gt; a) &lt;span style="font-family:courier new;"&gt;$RIS_VOL\Setup\English\Images\Ubuntu&lt;/span&gt;&lt;br /&gt; b) &lt;span style="font-family:courier new;"&gt;$RIS_VOL\Setup\English\Images\Ubuntu\i386&lt;/span&gt;&lt;br /&gt; c) &lt;span style="font-family:courier new;"&gt;$RIS_VOL\Setup\English\Images\Ubuntu\i386\templates&lt;/span&gt;&lt;br /&gt; d) &lt;span style="font-family:courier new;"&gt;$RIS_VOL\Setup\English\Images\Ubuntu\i386\templates\pxelinux.cfg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Download netboot files for Ubuntu from &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;http://archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-i386/current/images/netboot/netboot.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Since my distribution if Gutsy so I'm using gutsy repo. In case of Hardy or Fiesty use appropriate netboot image. As a quick fix just replace gutsy in link above with hardy or fiesty :)&lt;br /&gt;&lt;br /&gt;4. Extract the downloaded netboot file to &lt;span style="font-family:courier new;"&gt;$RIS_VOL\Setup\English\Images\Ubuntu\i386\templates&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;5. Create a file called &lt;span style="font-family:courier new;"&gt;default&lt;/span&gt; in &lt;span style="font-family:courier new;"&gt;$RIS_VOL\Setup\English\Images\Ubuntu\i386\templates\pxelinux.cfg&lt;/span&gt; folder and add following content:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;DISPLAY ubuntu-installer/i386/boot-screens/boot.txt&lt;br /&gt;&lt;br /&gt;F1 ubuntu-installer/i386/boot-screens/f1.txt&lt;br /&gt;F2 ubuntu-installer/i386/boot-screens/f2.txt&lt;br /&gt;F3 ubuntu-installer/i386/boot-screens/f3.txt&lt;br /&gt;F4 ubuntu-installer/i386/boot-screens/f4.txt&lt;br /&gt;F5 ubuntu-installer/i386/boot-screens/f5.txt&lt;br /&gt;F6 ubuntu-installer/i386/boot-screens/f6.txt&lt;br /&gt;F7 ubuntu-installer/i386/boot-screens/f7.txt&lt;br /&gt;F8 ubuntu-installer/i386/boot-screens/f8.txt&lt;br /&gt;F9 ubuntu-installer/i386/boot-screens/f9.txt&lt;br /&gt;F0 ubuntu-installer/i386/boot-screens/f10.txt&lt;br /&gt;&lt;br /&gt;DEFAULT LiveDesktopCD&lt;br /&gt;&lt;br /&gt;LABEL install&lt;br /&gt;kernel ubuntu-installer/i386/linux&lt;br /&gt;append vga=normal initrd=ubuntu-installer/i386/initrd.gz --&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LABEL Ubuntu&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;kernel vmlinuz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;append initrd=initrd.gz boot=casper netboot=nfs nfsroot=&lt;ip_address_of_nfs_server&gt;:&lt;nfs_share_path&gt; --&lt;/span&gt;&lt;br /&gt;LABEL linux&lt;br /&gt;kernel ubuntu-installer/i386/linux&lt;br /&gt;append vga=normal initrd=ubuntu-installer/i386/initrd.gz --&lt;br /&gt;LABEL cli&lt;br /&gt;kernel ubuntu-installer/i386/linux&lt;br /&gt;append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=normal initrd=ubuntu-installer/i386/initrd.gz --&lt;br /&gt;&lt;br /&gt;LABEL expert&lt;br /&gt;kernel ubuntu-installer/i386/linux&lt;br /&gt;append priority=low vga=normal initrd=ubuntu-installer/i386/initrd.gz --&lt;br /&gt;LABEL cli-expert&lt;br /&gt;kernel ubuntu-installer/i386/linux&lt;br /&gt;append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false priority=low vga=normal initrd=ubuntu-installer/i386/initrd.gz --&lt;br /&gt;&lt;br /&gt;LABEL rescue&lt;br /&gt;kernel ubuntu-installer/i386/linux&lt;br /&gt;append vga=normal initrd=ubuntu-installer/i386/initrd.gz rescue/enable=true --&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PROMPT 1 &lt;/span&gt; &lt;span style="font-family:courier new;"&gt;TIMEOUT 0 &lt;/span&gt; &lt;/span&gt;&lt;br /&gt;6. Ensure that Server for NFS service is started on the machine running WDS.&lt;br /&gt;&lt;br /&gt;7. Right click on folder &lt;span style="font-family: courier new;"&gt;D:\Linux\live&lt;/span&gt; and select &lt;span style="font-family: courier new;"&gt;Sharing &amp;amp; Security&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;8. In &lt;span style="font-family:courier new;"&gt;NFS Sharing&lt;/span&gt; tab select &lt;span style="font-family:courier new;"&gt;Share this folder&lt;/span&gt; and also choose "&lt;span style="font-family:courier new;"&gt;Allow anonymous logon&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SZqMf9307OI/AAAAAAAABoc/SF0MsYEBPOU/s1600-h/wds_1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SZqMf9307OI/AAAAAAAABoc/SF0MsYEBPOU/s320/wds_1.JPG" alt="" id="BLOGGER_PHOTO_ID_5303705991994731746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9. Ensure that &lt;span style="font-family: courier new;"&gt;Everyone&lt;/span&gt; and &lt;span style="font-family: courier new;"&gt;Anonymous Logon&lt;/span&gt; have Full Control access to the folder which we have just shared using NFS.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/SZqNdxsJlmI/AAAAAAAABok/BW2Eq0Yvt2U/s1600-h/wds_2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/SZqNdxsJlmI/AAAAAAAABok/BW2Eq0Yvt2U/s320/wds_2.JPG" alt="" id="BLOGGER_PHOTO_ID_5303707053876418146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;10. Copy vmlinuz and initrd.img from &lt;span style="font-family: courier new;"&gt;$LINUXLIVE\casper&lt;/span&gt; to &lt;span style="font-family:courier new;"&gt;$RIS_VOL\Setup\English\Images\Ubuntu\i386\templates&lt;br /&gt;&lt;br /&gt;11. That's all that's required to be done and now we can PXE boot a machine and test the Live CD !&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/2580407331877610996-8132388975031065645?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/8132388975031065645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=8132388975031065645' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8132388975031065645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/8132388975031065645'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/02/configure-wds-for-live-cd-deployment.html' title='Configure WDS for Live CD deployment'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/SZqMf9307OI/AAAAAAAABoc/SF0MsYEBPOU/s72-c/wds_1.JPG' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-7762237086858285808</id><published>2009-02-15T10:05:00.003+05:30</published><updated>2009-02-15T11:14:12.860+05:30</updated><title type='text'>TAB</title><content type='html'>I never knew that a simple thing as TAB character would make me wake up for entire night. The problem arose when I was trying to figure out how expandtabs function behave in Pyt&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SZeqdS5LEwI/AAAAAAAABoM/mwy5H0QSykc/s1600-h/tab.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 137px; height: 103px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SZeqdS5LEwI/AAAAAAAABoM/mwy5H0QSykc/s320/tab.jpeg" alt="" id="BLOGGER_PHOTO_ID_5302894506516615938" border="0" /&gt;&lt;/a&gt;hon. My brother had asked me to find out how this function behaves and he never asks dumb questions :) So when I ran following code the surprise was infront of my eyes:&lt;br /&gt;&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;s='abcdef\tabc\ta'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print len(s)&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;x=s.expandtabs()&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;print x&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;print len(x)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In my opinion the output should have been :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;abcdef        abc        a&lt;br /&gt;12&lt;br /&gt;abcdef        abc        a&lt;br /&gt;17&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;But to my surprise this wasn't the case and the output I received was :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;abcdef  abc               a&lt;br /&gt;12&lt;br /&gt;abcdef  abc               a&lt;br /&gt;17&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Why in the hell is first tab space smaller then the second tab space ? This was the question which was making my mind go nuts. After looking up for the issue for about 2 hrs or so I finally got the answer to the problem and it lies in the way TAB space works.&lt;br /&gt;&lt;br /&gt;Tab space has different interpretations and these different interpretations are the reason for all the confusion I had in mind. Traditionally tab character meant "move to the right until the current column is a multiple of 8.''  In many other implementations like Windows and MAC editors the interpretation is same, except that multiples of 4 are used instead of multiples of 8. Yet another interpretation for ASCII character is to mean "indent to next tab stop", where tab stops are set arbitrarily, they might not be equally distanced from each other.&lt;br /&gt;&lt;br /&gt;Generally tabs are used for indentation purposes and considering the confusion we've with regards to it's implementation, it's advisable to use White Space for this purpose.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-7762237086858285808?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/7762237086858285808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=7762237086858285808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7762237086858285808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/7762237086858285808'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/02/tab.html' title='TAB'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/SZeqdS5LEwI/AAAAAAAABoM/mwy5H0QSykc/s72-c/tab.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-5990422308150896634</id><published>2009-02-09T20:31:00.002+05:30</published><updated>2009-02-09T20:39:43.600+05:30</updated><title type='text'>What's with time ?</title><content type='html'>Many a times I used to be confused with questions which referred to time. For e.g. a very common question which is asked in many competitive examinations is " If it's 11 o' clock now, then what'll be the time after 16 hours ?" &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SZBHGN9AEcI/AAAAAAAABoE/esHFc9umPAw/s1600-h/clock.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 121px; height: 121px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SZBHGN9AEcI/AAAAAAAABoE/esHFc9umPAw/s320/clock.jpeg" alt="" id="BLOGGER_PHOTO_ID_5300814933565379010" border="0" /&gt;&lt;/a&gt;Now this is a fairly simple problem but I don't know why, I always used to get my stomach turn upside down, having seen such problems. However today I found a nice way to tackle such problems. My approach lies with modular arithmetic. We use a clock cycle of 12 hrs so after every 12 hr the clock returns to 1 and so on. So we just add up 11 and 16 and get 27 (11+16=27) and finally we take 27mod(12) which is equal to 3. So after 16 hrs, clock will be indicating 3 o' clock. Another approach couldv'e been to take 16mod(12)=4, add 11 and 4 = 15 and take 15mod(12) = 3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-5990422308150896634?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/5990422308150896634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=5990422308150896634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5990422308150896634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/5990422308150896634'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/02/whats-with-time.html' title='What&apos;s with time ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/SZBHGN9AEcI/AAAAAAAABoE/esHFc9umPAw/s72-c/clock.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-3677276909018344908</id><published>2009-02-07T13:54:00.004+05:30</published><updated>2009-02-07T15:49:22.254+05:30</updated><title type='text'>Breaking Chocolate Bars</title><content type='html'>I still remember this problem which was asked by one of the Profs during my interview at IIT Delhi. The problem is very simple to be stated and goes as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Problem:&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;Assume you have a chocolate bar consisting, as usual, of a number of squares arranged in a rectangular pattern. Your task is to split the bar into small squares (always breaking along the lines between the squares) with a minimum number of breaks. How many will it take?&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SY1HqAf8FcI/AAAAAAAABn8/ex1IBTrBthM/s1600-h/HA1355.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 171px; height: 171px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SY1HqAf8FcI/AAAAAAAABn8/ex1IBTrBthM/s320/HA1355.jpg" alt="" id="BLOGGER_PHOTO_ID_5299971123498980802" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;And I still remember that I said that answer for a 4*3 standard Chocolate bar should be 11. However I was too lazy to prove that the answer is indeed correct. And today when one of my cousin posed the very same question I think I've found the answer to the problem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;We can solve the problem using concept of Principle of Mathematical Induction.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1. If we have a a chocolate bar with 2 squares then it will require just 1 break.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2. Let's assume that a chocolate bar with m squares needs m-1 breaks.&lt;br /&gt;&lt;br /&gt;3. Let us break the chocolate bar with N squares into two bars each with x and y squares respectively. Now by our previous hypothesis, we'd require x-1 breaks to split the chocolate bar with x squares and for chocolate bar with y squares we'd need y-1 breaks. Thus&lt;/span&gt;&lt;m&gt;&lt;n. is="" number="" of="" interested="" in="" breaking="" let="" s="" assume="" that="" a="" n="" into="" two="" bars="" obviously="" now="" from="" our="" earlier="" we="" require="" to="" split="" apart="" the="" x="" squares="" and="" 1="" breaks="" are="" required="" for="" chocolate="" bar="" with="" y=""&gt;&lt;span style="font-family:courier new;"&gt; total number of breaks to split apart chocolate bar with N squares = (x-1) + (y-1) + 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;= (x+y) - 1 = N-1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thus we'd require N-1 breaks to split apart a chocolate bar with N squares to individual squares.&lt;br /&gt;&lt;/n.&gt;&lt;/m&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-3677276909018344908?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/3677276909018344908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=3677276909018344908' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3677276909018344908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3677276909018344908'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/02/breaking-chocolate-bars.html' title='Breaking Chocolate Bars'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/SY1HqAf8FcI/AAAAAAAABn8/ex1IBTrBthM/s72-c/HA1355.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1788207271045405103</id><published>2009-02-03T15:23:00.003+05:30</published><updated>2009-02-03T16:29:08.489+05:30</updated><title type='text'>Resizing ext3 partition using parted</title><content type='html'>Got a chance to partition a ext3 partition which was hosting / on it today. As is the case usually I just couldn't find any Live CD which was having qtparted or kparted on it :) So now I was back to command line and parted was the utility which I could use to resize an exisiting partition. Looking from a layman's view it seems very easy to resize an existing ext3 partition but it isn't so when we do a hands on job.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SYgg_-31BOI/AAAAAAAABn0/hs2yAstmX8o/s1600-h/linux.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 102px; height: 122px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SYgg_-31BOI/AAAAAAAABn0/hs2yAstmX8o/s320/linux.jpeg" alt="" id="BLOGGER_PHOTO_ID_5298521245182395618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are the steps one needs to follow in order to resize an existing ext3 partition using parted:&lt;br /&gt;&lt;br /&gt;1. Check for partition features using debugfs&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# debugfs &lt;partition&gt; -R "feature"&lt;/partition&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Generally available features are: &lt;span style="font-family:courier new;"&gt; has_journal ext_attr resize_inode dir_index filetype large_file &lt;/span&gt; and &lt;span style="font-family:courier new;"&gt; sparse_super&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;3. parted requires us to remove some of the features from the filesystem, especially &lt;span style="font-family:courier new;"&gt; has_journal, ext_attr, resize_inode, dir_index.&lt;/span&gt; We'll use &lt;span style="font-family:courier new;"&gt;tune2fs&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;debugfs&lt;/span&gt; to remove these features from our filesystem.&lt;br /&gt;&lt;br /&gt;4. Following set of commands will remove the listed features from our filesystem:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# tune2fs -O^has_journal &lt;partition&gt;&lt;/partition&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;# debugfs -w &lt;partition&gt; -R "feature -ext_attr -resize_inode -dir_index"&lt;/partition&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. After issuing above commands we'd be required to run &lt;span style="font-family:courier new;"&gt;e2fsck&lt;/span&gt;. Supply &lt;span style="font-family:courier new;"&gt;-y&lt;/span&gt; option to &lt;span style="font-family:courier new;"&gt;e2fsck&lt;/span&gt; to allow &lt;span style="font-family:courier new;"&gt;e2fsck&lt;/span&gt; to finish the job non-interactively.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# e2fsck -y &lt;partition&gt;&lt;/partition&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6. Now comes the resizing part. We can either issue the command directly or use interactive shell provided by parted. Interactive shell is easier to use.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# parted &lt;drive&gt;&lt;/drive&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(parted) resize &lt;partition number=""&gt; &lt;start size=""&gt; &lt;end size=""&gt;&lt;/end&gt;&lt;/start&gt;&lt;/partition&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One can get the start size by issuing print command in parted interactive shell.&lt;br /&gt;&lt;br /&gt;And now all we need to do is wait for resizing operation to complete, and as my experience says "Keep burger and coffee handy :) "&lt;br /&gt;&lt;br /&gt;7. Once partition resizing is done, we need to re-enable the filesystem features that we'd disabled earlier. Following commands will do the task for us:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# debugfs -w &lt;partition&gt; -R "feature ext_attr resize_inode dir_index"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# tune2fs -O has_journal &lt;partition&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1788207271045405103?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1788207271045405103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1788207271045405103' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1788207271045405103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1788207271045405103'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/02/resizing-ext3-partition-using-parted.html' title='Resizing ext3 partition using parted'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/SYgg_-31BOI/AAAAAAAABn0/hs2yAstmX8o/s72-c/linux.jpeg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4332087782067710182</id><published>2009-02-03T13:24:00.002+05:30</published><updated>2009-02-03T13:49:09.902+05:30</updated><title type='text'>Search For String in Multiple Files</title><content type='html'>Today my boss was stuck with a peculiar problem. He wanted to search for a name in some text files which were arranged in few folders. Now on first look it seems pretty easy and I advised him to use File Search utility which comes with Windows OS. However to my surprise I couldn't utilize "A  word or p&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SYf95Zhj9GI/AAAAAAAABns/7TvCe-wCzgs/s1600-h/magnifying_glass.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 150px; height: 113px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SYf95Zhj9GI/AAAAAAAABns/7TvCe-wCzgs/s320/magnifying_glass.jpeg" alt="" id="BLOGGER_PHOTO_ID_5298482649170703458" border="0" /&gt;&lt;/a&gt;hrase in the file" search criterion and found out this is an issue which has been problematic for quite some time now. It happens because a filter component is not registered for the file type that contains the text that we specified, or the filter component ignored the text that we specified. There is an entire procedure to be followed if we want this functionality to work properly with Windows XP (This was not a problem with earlier versions of Windows). Now having been ditched by search facility available with Windows XP, there was no other way but to resort to good age old method of performing search using some command line utility. There is a wonderful utility available with Windows and it has been available since Windows NT 4.0. The utility is known as &lt;span style="font-style: italic;"&gt;findstr&lt;/span&gt; and it allows for searching string(s) in file(s). The syntax of command is as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;span class="article"&gt;&lt;span name="intelliTxt" id="intelliTxt"&gt;findstr [/b] [/e] [/l] [/c:string] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/g:file] [/f:file] strings files&lt;/span&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/2580407331877610996-4332087782067710182?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4332087782067710182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4332087782067710182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4332087782067710182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4332087782067710182'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/02/search-for-string-in-multiple-files.html' title='Search For String in Multiple Files'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kpglEYwtRpk/SYf95Zhj9GI/AAAAAAAABns/7TvCe-wCzgs/s72-c/magnifying_glass.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-3240086595341453733</id><published>2009-01-31T22:30:00.002+05:30</published><updated>2009-01-31T22:41:04.746+05:30</updated><title type='text'>Power of Geometric Series !</title><content type='html'>While watching lectures on Geometric Progression I found this wonderful problem which touches upon our day to day life to an extent. The problem goes as follows:&lt;br /&gt;&lt;br /&gt;Suppose we manage to win a lottery of say Rs. 1,00,000 but due to exisiting norms we've to pay 1/3 of the amount as tax to Government. Now suppose the lottery company is willing to pay for the tax amount, then how much should it actually pay us, so that we can take back home exactly Rs. 1,00,000, after paying the tax to Government ? The key point here to note is that every amount being paid to us by lottery company is being taxed by Government.&lt;br /&gt;&lt;br /&gt;The answer is Rs. 1,50,000.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-3240086595341453733?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/3240086595341453733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=3240086595341453733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3240086595341453733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3240086595341453733'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/01/power-of-geometric-series.html' title='Power of Geometric Series !'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-2704036595241449772</id><published>2009-01-27T20:34:00.002+05:30</published><updated>2009-01-27T21:02:49.228+05:30</updated><title type='text'>Why some people can't put 2 and 2 together ?</title><content type='html'>&lt;a href="http://www.newscientist.com/article/mg20126921.700-why-some-people-cant-put-two-and-two-together.html?full=true"&gt;Here is a nice article on dyscalculia &lt;/a&gt;which is a form of mental disability which doesn't allow numerical ability of person to grow with age and experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-2704036595241449772?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/2704036595241449772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=2704036595241449772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2704036595241449772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/2704036595241449772'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/01/why-some-people-cant-put-2-and-2.html' title='Why some people can&apos;t put 2 and 2 together ?'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-262335498579553151</id><published>2009-01-27T12:49:00.003+05:30</published><updated>2009-01-27T14:59:19.771+05:30</updated><title type='text'>Trip To Allahabad</title><content type='html'>Recently I had an oppurtunity to visit famous city of Prayag (now known as Allahabad). I don't know for sure but I was not aware of some facts which I am mentioning in this post:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you are visiting Allahabad for first time then do visit Sangam (it's a culmination point of Ganga, Yamuna and Saraswati). Ganga and Yamuna are distinctly visible as the color of their water is very much different, with Ganga being lot more clear then Yamuna. Saraswati however is said to be flowing underneath and hence can't be seen.&lt;/li&gt;&lt;li&gt;Hanuman temple at Sangam is the sole temple where one can see the deity lying. In every other temple the sculpture of Hanuman is in standing position.&lt;/li&gt;&lt;li&gt;The temple of Shiva at Sangam is also a must visit. It's a 3 story high temple and the top floor holds a great sculpture of Shiva Linga.&lt;/li&gt;&lt;li&gt;Anand Bhawan is another place worth visiting while travelling to Allahabad. This place has been converted to a Museum and one can see the house as it used to be in days when Mahatama Gandhi Ji, Pandit Jawaharlal Nehru, Mrs. Indira Gandhi and other people of immense political and historical importance used to live here. Mrs. Indira Gandhi was married to Firoz Gandhi at this very place.&lt;/li&gt;&lt;li&gt;The Airport at Allahabad (Bamrauli Airport) is a small airport and presently only Air India and Jetlite are two passenger carriers to this Airport. However it's quite ironic that Allahabad has distinction of hosting event of first flight in India (Click Here for more details).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The first Air Mail was also delivered from Allahabad.&lt;/li&gt;&lt;li&gt;One must enjoy the wonderful food at Netrams at Katra. Speciality include small size Samosas which can last for about 3-4 months.&lt;/li&gt;&lt;li&gt;El Chico was a good restaurant where one can enjoy some wonderful cuisine.&lt;/li&gt;&lt;li&gt;Bars and Pubs are hard to find at Allahabad.  One can enjoy a drink or two at bar in Kanha Hotel at Civil Lines, Allahabad. However as public consumption of alcohol is not looked upon as a dignified act, so it's advisable to refrain from alcohol consumption.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-262335498579553151?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/262335498579553151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=262335498579553151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/262335498579553151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/262335498579553151'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/01/trip-to-allahabad.html' title='Trip To Allahabad'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-1506024567502900309</id><published>2009-01-16T10:12:00.003+05:30</published><updated>2009-01-16T10:20:51.088+05:30</updated><title type='text'>Something Is Missing.</title><content type='html'>I don't know why but it seems to me that something's missing inside and I am unable to point out accurately as to what that thing is. I feel like a wa&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/SXAR0M9eLSI/AAAAAAAABmY/vKomP6-SFLo/s1600-h/thinking.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 103px; height: 128px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/SXAR0M9eLSI/AAAAAAAABmY/vKomP6-SFLo/s320/thinking.jpeg" alt="" id="BLOGGER_PHOTO_ID_5291749150690258210" border="0" /&gt;&lt;/a&gt;gabond element at times who is just wandering in the wilds of various domains of knowledge created by some poor souls of earlier centuries. Things seem to be in grasp but still they are so so far away from being getting materialized into concrete realities. Maybe I am expecting too much out of myself but it can't just be that, because deep inside, somewhere I feel that this is the right path which will finally help me realize my role in this life.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-1506024567502900309?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/1506024567502900309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=1506024567502900309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1506024567502900309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/1506024567502900309'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/01/something-is-missing.html' title='Something Is Missing.'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kpglEYwtRpk/SXAR0M9eLSI/AAAAAAAABmY/vKomP6-SFLo/s72-c/thinking.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4396791479890123603</id><published>2009-01-13T11:48:00.003+05:30</published><updated>2009-01-13T12:24:24.384+05:30</updated><title type='text'>Some numerical facts</title><content type='html'>I had never thought before that numbers can be so interesting. I mean for once I was really astonished to see such wonderful and interesting properties of natural numbers. So here are two such problems which have really intrigued me for quite some time now:&lt;br /&gt;&lt;br /&gt;1. If you think of any number, say your phone number, your pin code, your car number or any other number then you can find some power of 2 where you can find this number as left most digit of that power.&lt;br /&gt;&lt;br /&gt;2.  We take any whole number &lt;i&gt;n&lt;/i&gt; greater than 0. If &lt;i&gt;n&lt;/i&gt; is even, we halve it (&lt;i&gt;n/2&lt;/i&gt;), else we do "triple plus one" and get 3n+1. The conjecture is that for all numbers this process converges to 1. Hence it has been called "Half Or Triple Plus One". Actually it ends in a tail comprising of 1,4,2,1,4,2,1..... This is actually an unsolved conjecture and Thwaites (1996) has offered a £1000 reward for resolving the conjecture.&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4396791479890123603?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4396791479890123603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4396791479890123603' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4396791479890123603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4396791479890123603'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/01/some-numerical-facts.html' title='Some numerical facts'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-4415732492362378322</id><published>2009-01-04T13:00:00.014+05:30</published><updated>2009-01-06T20:35:42.038+05:30</updated><title type='text'>Unsuccessful Attempt To Dhak Bahiri</title><content type='html'>I guess nature has it's own way of proving it's supremacy and we all found an e.g. during course of visit to Dhak Bahiri. This was second of my treks in Maharashtra's &lt;a href="http://en.wikipedia.org/wiki/Western_Ghats"&gt;Shayadri&lt;/a&gt; ranges. Prior research did gave indications that it wasn't an easy to do trek, but considering my earlier experiences in Himalayas I was quite confident that we'd make it. So we (me, Nipun, Santosh,&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SWNCdl7wybI/AAAAAAAABgo/eg2uwh9GnF8/s1600-h/P1000688.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 268px; height: 177px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SWNCdl7wybI/AAAAAAAABgo/eg2uwh9GnF8/s320/P1000688.JPG" alt="" id="BLOGGER_PHOTO_ID_5288143463629506994" border="0" /&gt;&lt;/a&gt; Vishal and Vaidyanathan) started of our journey by taking last local from CST to Karjat. It's a comfortable journey of around 3 hrs. By 3:30 A.M. we were at Karjat and it was nice to find chai wala at station. After some enquiry we found that first bus to Sandsi village was to start at 5:30 A.M., so after some rest at station we went off to bus stop at Karjat. There was another group as well at bus station which was going for &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/SWNCybGyrcI/AAAAAAAABgw/PNhoiRMocoI/s1600-h/P1000733.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/SWNCybGyrcI/AAAAAAAABgw/PNhoiRMocoI/s200/P1000733.JPG" alt="" id="BLOGGER_PHOTO_ID_5288143821500231106" border="0" /&gt;&lt;/a&gt;trekking to Bheemashankar. State Transport buses are perhaps one of best things which I've seen in Maharashtra. I mean, no matter how remote the village is, one can find good frequency of buses to/from these places.  Our bus had only 6 guys, our group and one other fellow. We reached Sandsi in 30 min. and it was still dark. There were few villagers who were waking up to a new morning and we found a place where a guy was sleeping in front of fire. It was comfortable to warm ourselves by sitting across fire. We finally started our trek to Dhak Bahiri at 7:00 A.M.&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SWMRoVXxJoI/AAAAAAAABgg/HiTrNpUI3uI/s1600-h/P1000802.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SWMRoVXxJoI/AAAAAAAABgg/HiTrNpUI3uI/s320/P1000802.JPG" alt="" id="BLOGGER_PHOTO_ID_5288089772092368514" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;This is our target&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;It was still dark as sun had not risen past the mountains but as visibility improved to a decent level we started marching towards the mountain. We were accompanied by two dogs whom we even gave na&lt;/span&gt;&lt;span style="font-size:100%;"&gt;mes, Julie &lt;/span&gt;&lt;span style="font-size:100%;"&gt;and Kapish :)  We passed through the fields at Sandsi village and it really makes me wonder why in the hell there is no provision of alternative water supply in this region. The fields were dead dry and one can easily se&lt;/span&gt;&lt;span style="font-size:100%;"&gt;e massive cracks in the soil. I really feel for the farmer community living in such hardships and still trying to find means to grow crops for people like us. After we'd crossed the fields we &lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SWNDO1_q3rI/AAAAAAAABg4/3Phq4mqXuqc/s1600-h/P1000770.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 155px; height: 117px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SWNDO1_q3rI/AAAAAAAABg4/3Phq4mqXuqc/s200/P1000770.JPG" alt="" id="BLOGGER_PHOTO_ID_5288144309754453682" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;found ourselves at bank of a dry river. A villager earlier had told us to follow the river and not cross it. We tried very hard to follow his advise and&lt;/span&gt;&lt;span style="font-size:100%;"&gt; started fol&lt;/span&gt;&lt;span style="font-size:100%;"&gt;lo&lt;/span&gt;&lt;span style="font-size:100%;"&gt;wi&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ng river u&lt;/span&gt;&lt;span style="font-size:100%;"&gt;p towards the hill. We halted in between at a place where there was some water, to get &lt;/span&gt;&lt;span style="font-size:100%;"&gt;through with daily ch&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ores. It was really nice to be in nature's abode and it really feels strange and nice at times to me to be in such remoteness. As we moved along the jungle b&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ecame more dense &lt;/span&gt;&lt;span style="font-size:100%;"&gt;by every step and there was a point beyond which we couldn't find the path ahead. Boy, we are lost !!! And to add to the thrill were sounds coming from hill above us, which were initially reported by some of us as to be being made by some bear but in reality they were some monkeys howling :) The dogs too were looking skeptical and we finally decided to return back. As we were&lt;/span&gt;&lt;span style="font-size:100%;"&gt; moving back Santosh found another path and dogs too looked much more at ease on that path and we decided to stick to it, and voila within few min. we were on right trac&lt;/span&gt;&lt;span style="font-size:100%;"&gt;k which was also marked by some white arrows on rocks. W&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ithin few minutes the hike also began and I must admit it was not an easy one and reminded me of hike I made during my treks&lt;/span&gt;&lt;span style="font-size:100%;"&gt; in Uttaranchal (especially Loharkhet to Dhakuri during my visit to Pindari). After hiking for about 2 hrs we finally landed at a place where there was a p&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/SWNqtwEACOI/AAAAAAAABhA/N4jW7lAHVQM/s1600-h/Picture+031.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 231px; height: 146px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/SWNqtwEACOI/AAAAAAAABhA/N4jW7lAHVQM/s320/Picture+031.jpg" alt="" id="BLOGGER_PHOTO_ID_5288187721691433186" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;lain surface and we decided to have our breakfast there. It&lt;/span&gt;&lt;span style="font-size:100%;"&gt; was strange to see the dogs not taking any food (God knows why in the hell they accompanied us !). We found few guys from some nearby village wandering there and they told us th&lt;/span&gt;&lt;span style="font-size:100%;"&gt;at they we&lt;/span&gt;&lt;span style="font-size:100%;"&gt;re in search of some bird prey. This re&lt;/span&gt;&lt;span style="font-size:100%;"&gt;minded me of my childhood days when once I went for hunting in Himalayas with my Grandpa (I really miss those good old days :( and dearly wish them to come back). Those guys told us that it was just 45 min walk from that point to Bahiri caves and this brought in a new &lt;/span&gt;&lt;span style="font-size:100%;"&gt;wave of enthusiasm in our life. However this enthusiasm was to last for a very short time period as we again lost our way during the trek and landed up &lt;/span&gt;&lt;span style="font-size:100%;"&gt;at another big field near by the point where we had our breakfast. Some asshole had even placed a railway ticket from Lonawala to Pun&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kpglEYwtRpk/SWNsuf1-_VI/AAAAAAAABhI/UJ83MbnpjrA/s1600-h/P1000828.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_kpglEYwtRpk/SWNsuf1-_VI/AAAAAAAABhI/UJ83MbnpjrA/s200/P1000828.JPG" alt="" id="BLOGGER_PHOTO_ID_5288189933540801874" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;e along that path as a marker. This was really irritating as we were unable to find our way out. So again wit&lt;/span&gt;&lt;span style="font-size:100%;"&gt;h no other option we'd to back trek and Vaidy who was in front was lucky enough to find the way out to right trek. The journey ahead to top from this point onwards w&lt;/span&gt;&lt;span style="font-size:100%;"&gt;as filled with fun and we passed throug&lt;/span&gt;&lt;span style="font-size:100%;"&gt;h some dense jungles and a point where we had to hike up on a rock which w&lt;/span&gt;&lt;span style="font-size:100%;"&gt;a&lt;/span&gt;&lt;span style="font-size:100%;"&gt;s inclined at almost 65-7&lt;/span&gt;&lt;span style="font-size:100%;"&gt;0 degree angle. Vishal was dead tired by then and so were we all. Finally we manage&lt;/span&gt;&lt;span style="font-size:100%;"&gt;d to reach the place the&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kpglEYwtRpk/SWNyw32vWrI/AAAAAAAABhY/yOoGUj1suLs/s1600-h/P1000836.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_kpglEYwtRpk/SWNyw32vWrI/AAAAAAAABhY/yOoGUj1suLs/s200/P1000836.JPG" alt="" id="BLOGGER_PHOTO_ID_5288196571415927474" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;y call Naali (It's a narrow passage between two hills). Nipun as he always is was over enthusiastic and was &lt;/span&gt;&lt;span style="font-size:100%;"&gt;running all over the places to get cau&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ght on camera. Rest of us were a bit tired and I was really beginning to worry about how will we cross this passage with our luggage on our back. However in God's name we all marched ahead&lt;/span&gt;&lt;span style="font-size:100%;"&gt; and what the hell it was a dead end after this passage. I mean all I could see was a feet long path down and we'd to move down by almost 2-3 feet from top to that place. Even if we were to come down, I could see that there was no way we could climb back. But as has alw&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ays been the case with guys, we couldn't accept this fact and decided to move ahea&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SWNzEsP2MSI/AAAAAAAABhg/IG_RFGCD1xk/s1600-h/P1000839.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SWNzEsP2MSI/AAAAAAAABhg/IG_RFGCD1xk/s200/P1000839.JPG" alt="" id="BLOGGER_PHOTO_ID_5288196911897391394" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;d. Nipun was first one to go down. We decided to give our rucksacks to him so that we could move down without any luggage on our backs and suddenly I heard from Santosh that one of the bags has toppled down the hill. What the hell !!!! And to add to agony it was my bag which had moved down. We all were in deep trouble now, as all the food for night was in that bag and I was in much big trouble as my cellphone and wallet were also in that very bag. Anyhow we all finally came down and took our luggage to a place &lt;/span&gt;&lt;span style="font-size:100%;"&gt;which we considered safest. Nipun decided to go down and have a look (It was really brave of him to do so). Meanwhile Vaidy moved ahead and decided to see if he could find some helping hand. Nipun wasn't able to move much deep down the hill and it was very wise of him too. Suddenly we found few guys coming down from Bahiri caves towards us. These guys were trekkers from Pune and they were also carrying ropes with them. They agreed to help us out but even they could not move down very deep due to geography of the hill. While 2 of the guys from Pune were down, one of other guys from their g&lt;/span&gt;&lt;span style="font-size:100%;"&gt;roup asked us, if we had ever come before to this place. And when we told him that this was our first trek ever in such remote areas in Sahayadris, he posed a real surprised look on his face. When we asked for the reason, he told us something, which made all of us look dumb silly and stupid and also brave at same time. He told us that this was one of the toughest treks in Sahayadris and almost 100 people had lost their life during the trek. This brought shiver down spine of some of our group members but real trouble ri&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ght now was to find the bag. With failure of the trekkers from Pune, now our only help rested on some villager from Sandsi village. And luckly for us, one group from Mumbai had also come up to Bahiri and they were accompanied by a local villager from Sandsi. One guy from Pune agreed to help us out and he went to Bahiri caves and talked to the villager. Now all we had to do was to sit in chilling heat and wait for villager to come down. When he finally met us, he agreed to help us out but now we had a situation as we cou&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ldn't complete our trek, cauz we had to show the group which had come with villager the path down to Sandsi. Anyhow we decided to go ahead with it and moved back. Travelling back was even tougher then climbing up as, sand on the hills is really slippry and one has to be really cautious while moving down. Anyhow after a long and tireing journey down we finally managed to meet the local villager and I was glad to find my wallet back. Sadly my cellphone was lost but I belive everything happens for a good cause and we are going out to complete this Mission to reach caves of Dhak Bahiri a&lt;/span&gt;&lt;span style="font-size:100%;"&gt;gain in coming holiday.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kpglEYwtRpk/SWNyMRBTBnI/AAAAAAAABhQ/IK2zfTG1LWY/s1600-h/P1000803.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_kpglEYwtRpk/SWNyMRBTBnI/AAAAAAAABhQ/IK2zfTG1LWY/s320/P1000803.JPG" alt="" id="BLOGGER_PHOTO_ID_5288195942515934834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;Our final target&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-4415732492362378322?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/4415732492362378322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=4415732492362378322' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4415732492362378322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/4415732492362378322'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2009/01/unsuccessful-attempt-to-dhak-bahiri.html' title='Unsuccessful Attempt To Dhak Bahiri'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kpglEYwtRpk/SWNCdl7wybI/AAAAAAAABgo/eg2uwh9GnF8/s72-c/P1000688.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-6971734530265815074</id><published>2008-12-26T18:24:00.002+05:30</published><updated>2008-12-26T18:26:58.535+05:30</updated><title type='text'>Dangerous Knowledge</title><content type='html'>One of few good videos about people like Cantor, Turing, Godel and others can be found at &lt;a href="http://video.google.com/videoplay?docid=-5122859998068380459"&gt;http://video.google.com/videoplay?docid=-5122859998068380459&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2580407331877610996-6971734530265815074?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/6971734530265815074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=6971734530265815074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6971734530265815074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/6971734530265815074'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2008/12/dangerous-knowledge.html' title='Dangerous Knowledge'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2580407331877610996.post-3150202999751587675</id><published>2008-12-26T17:17:00.003+05:30</published><updated>2008-12-26T18:22:01.299+05:30</updated><title type='text'>Plotting Graphs</title><content type='html'>Today after running program for Collatz conjecture for all integers (&lt;a href="http://mathworld.wolfram.com/CollatzProblem.html"&gt;Visit Wolfram Mathworld for more details&lt;/a&gt;) , I thought of generating a graph which could help me understand how the program was behaving with respect to different numbers. This was the first time though when I wanted to plot a curve for some data (so unscientific of me !). So here I was with my data file containing 2 columns. First column contained input ranging from 2-32766 and second column contained steps taken by algorithm to reach 1 for every number. To my surprise I found myself in a helpless situation for once, as I couldn't think of any software which could suite my needs. Googling a few times brought me to &lt;a href="http://www.gnuplot.info/"&gt;GNUPlot&lt;/a&gt; and I must admit, it's one of the really excellent softwares as far as graph plotting is concerned. One can give it a formula or even a data set separated by tab space/blanks/or any other delimiter. Here is the graph I got for my data:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kpglEYwtRpk/SVTTV9bVa3I/AAAAAAAABds/Gzib1_SvZAw/s1600-h/Graph_1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 213px;" src="http://3.bp.blogspot.com/_kpglEYwtRpk/SVTTV9bVa3I/AAAAAAAABds/Gzib1_SvZAw/s320/Graph_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5284080637032360818" 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/2580407331877610996-3150202999751587675?l=techynfreesouls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techynfreesouls.blogspot.com/feeds/3150202999751587675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2580407331877610996&amp;postID=3150202999751587675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3150202999751587675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2580407331877610996/posts/default/3150202999751587675'/><link rel='alternate' type='text/html' href='http://techynfreesouls.blogspot.com/2008/12/plotting-graphs.html' title='Plotting Graphs'/><author><name>Mayank</name><uri>http://www.blogger.com/profile/12771887813899598914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kpglEYwtRpk/SVTTV9bVa3I/AAAAAAAABds/Gzib1_SvZAw/s72-c/Graph_1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
