<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.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" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-3031962814593058692</id><updated>2012-04-30T02:36:04.927+05:30</updated><category term="solr" /><category term="apex" /><category term="DNS" /><category term="AdobeFlex" /><category term="html5" /><category term="socialBI" /><category term="Misc" /><category term="searchengine" /><category term="hadoop" /><category term="firefox" /><category term="Gutsy" /><category term="JusTalk" /><category term="encryption" /><category term="exadata" /><category term="sqlserver" /><category term="applications" /><category term="iphone" /><category term="devices" /><category term="LMS" /><category term="dwh-bi" /><category term="Dell" /><category term="Mac" /><category term="Solaris" /><category term="ExternaLinks" /><category term="Feisty" /><category term="PerlTips" /><category term="Rails_App_For_Existing_DB" /><category term="Apache" /><category term="InfoBright" /><category term="Scheduling" /><category term="mysql" /><category term="wifi" /><category term="security" /><category term="vmware" /><category term="Rails" /><category term="mapping-design" /><category term="Photography" /><category term="solar-power" /><category term="mgmt" /><category term="ux" /><category term="smartphone" /><category term="india" /><category term="SMF" /><category term="shell-script" /><category term="OpenSolaris" /><category term="interview" /><category term="android" /><category term="GIDS2010" /><category term="ups" /><category term="GIDS2011" /><category term="html" /><category term="devsummit" /><category term="Eclipse" /><category term="Externals" /><category term="Laptops" /><category term="architecture" /><category term="data-lineage" /><category term="vista" /><category term="google" /><category term="Unix" /><category term="pricing" /><category term="bigdata" /><category term="ETL" /><category term="debugging" /><category term="apple" /><category term="Samba" /><category term="tablet" /><category term="rSupport" /><category term="GIDS" /><category term="Oracle" /><category term="hardy" /><category term="Tutorials" /><category term="browsers" /><category term="green" /><category term="agile" /><category term="quad-core" /><category term="shell" /><category term="analysis" /><category term="consulting" /><category term="base64_encoding" /><category term="concept" /><category term="script" /><category term="domain" /><category term="tips_n_tricks" /><category term="handheld" /><category term="Virtualization" /><category term="hardware" /><category term="linux" /><category term="dwh" /><category term="HP" /><category term="ebooks" /><category term="Informatica" /><category term="BOINC" /><category term="Fonts" /><category term="CloudComputing" /><category term="deployment" /><category term="Imaging" /><category term="sqldeveloper" /><category term="Java" /><category term="OpenSource" /><category term="Blogging" /><category term="web2.0" /><category term="Ruby" /><category term="twitter" /><category term="ExplainPlan" /><category term="data-cleansing" /><category term="Ubuntu-India" /><category term="Ubuntu" /><category term="capistrano" /><category term="data" /><category term="Pentaho" /><category term="datawarehouse" /><category term="SqlTuning" /><title type="text">my technology playground</title><subtitle type="html">my experiences with technology space</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://tech.sraghav.in/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://tech.sraghav.in/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default?start-index=26&amp;max-results=25" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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>189</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/techraghav" /><feedburner:info uri="techraghav" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-8612352700651328002</id><published>2012-04-29T23:45:00.001+05:30</published><updated>2012-04-29T23:45:15.187+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title type="text">Starting off with Rails 3.2.2 on Ubuntu 11</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;After a long time, I picked up to build a web application for a friend. I havent worked in web apps for about 6-8 months now, and was quite rusty.&lt;br /&gt;&lt;br /&gt;Ruby on Rails was a natural choice. However, when I issued the "gem update" it turned out that rails is on 3.2.2 these days, which means there has been at least 4 releases since I last worked with rails.&lt;br /&gt;&lt;br /&gt;I typically work in a way that learning happens while working only. &amp;nbsp;Therefore, I just started building a new application and built a default scaffold (I know, its &amp;nbsp;an old habit of testing installation using scaffold)... scaffold generated, which means that the backward compatibility is still alive. Server started.. and bang, launched chrome to see how localhost:3000 looks like...&lt;br /&gt;&lt;br /&gt;it bombed... there was this "&lt;a href="http://www.adanacs.com/content/execjsruntimeerror-rails-31-ubuntu"&gt;ExecJS::RuntimeError&lt;/a&gt;" staring at my face...&lt;br /&gt;&lt;br /&gt;It turned out that Ubuntu is the culprit and needs nodejs to be installed as a JS runtime engine is required and by default Ubuntu doesnt provide one.&lt;br /&gt;&lt;br /&gt;after "sudo apt-get install nodejs", its all smooth and shiney...&lt;br /&gt;&lt;br /&gt;Will share further...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-8612352700651328002?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/8612352700651328002/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2012/04/starting-off-with-rails-322-on-ubuntu.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8612352700651328002" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8612352700651328002" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/l7qRwLUyW1s/starting-off-with-rails-322-on-ubuntu.html" title="Starting off with Rails 3.2.2 on Ubuntu 11" /><author><name>raghav</name><uri>http://www.blogger.com/profile/14696105144745852031</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><feedburner:origLink>http://tech.sraghav.in/2012/04/starting-off-with-rails-322-on-ubuntu.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-1546221974874693311</id><published>2012-04-12T23:02:00.000+05:30</published><updated>2012-04-12T23:50:01.620+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="devices" /><category scheme="http://www.blogger.com/atom/ns#" term="smartphone" /><category scheme="http://www.blogger.com/atom/ns#" term="tablet" /><category scheme="http://www.blogger.com/atom/ns#" term="browsers" /><category scheme="http://www.blogger.com/atom/ns#" term="ux" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="applications" /><category scheme="http://www.blogger.com/atom/ns#" term="handheld" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title type="text">App vs web browser based access to websites from devices</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Every other website these days launches their own app as soon as they find a decent following among customers.&amp;nbsp; However, there are some things we need to watch out for when using apps as against browsing the same content over a web browser.&lt;br /&gt;&lt;br /&gt;A browser is a relatively safe sandbox when it comes to executing website content and rendering it.&amp;nbsp; There really has to be a loophole in the browser engine for a website to exploit it and do weird things to your device, be it a phone, tablet or laptop/desktop.&lt;br /&gt;&lt;br /&gt;On the other hand, when we install "apps" for websites, we provide them "permissions" to do things on our devices. This works nicely based on the trust foundation.&amp;nbsp; I trust the website, and therefore I trust their app to not do anything untoward to my device.&amp;nbsp; This trust, can be unfounded in cases, and lead to unknown actions/behaviours from apps.&lt;br /&gt;&lt;br /&gt;Among the benefits of using apps, they&amp;nbsp; do provide a better user experience (in most of the cases) since the rendering is specific to the device.&amp;nbsp; Also, the apps provide lot more customised user interaction information to their base websites, thereby providing more and accurate and contextual intelligence about their usage. There are reports about apps stealing private information from the devices.&lt;br /&gt;&lt;br /&gt;Most of the time, the reason for the app gaining access to information is the grain of the access control used in the device. If its too low, the access permissions to be provided are a huge list, if its too high, you can provide too much access without intending to. There comes  the maturity of the device operating system.&lt;br /&gt;&lt;br /&gt;With web browsers the information sent back for analytics purposes is rather generic, since its from the browser sandbox.&lt;br /&gt;&lt;br /&gt;I believe its safe to say that using apps is a bit of a trade-off, between the user experience and the safety /privacy of the user.&amp;nbsp; Lets be a bit more careful about which apps do we download and use, and what all permissions that app needs. Lets just be a bit more skeptic and end up being safer for it, hopefully.&lt;br /&gt;&lt;br /&gt;PS - There are a lot other comparisons that already exist, however, its hard to say how many of them talk about security aspects. User Experience is one major discussions point, for sure.&amp;nbsp; &lt;a href="https://www.google.com/search?client=ubuntu&amp;amp;channel=fs&amp;amp;q=app+vs+browser&amp;amp;ie=utf-8&amp;amp;oe=utf-8" target="_blank"&gt;Try Googling it&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-1546221974874693311?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/1546221974874693311/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2012/04/app-vs-web-browser-based-access-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/1546221974874693311" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/1546221974874693311" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/e50IpHnyq24/app-vs-web-browser-based-access-to.html" title="App vs web browser based access to websites from devices" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2012/04/app-vs-web-browser-based-access-to.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-1011958901945328112</id><published>2012-04-03T11:12:00.000+05:30</published><updated>2012-04-03T11:25:22.595+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle" /><title type="text">time zone conversion in Oracle</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;em style="background-color: white; font-family: arial, sans-serif; font-size: small; font-style: normal; line-height: 16px; text-align: -webkit-auto;"&gt;Often times we need to see a given time-stamp column in a particular time zone. &amp;nbsp; Without casting as well, oracle allows a very simple way -&amp;nbsp;&lt;/em&gt;&lt;br /&gt;&lt;em style="background-color: white; font-family: arial, sans-serif; font-size: small; font-style: normal; font-weight: bold; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;SELECT &amp;lt;column-name&amp;gt; AT TIME ZONE &amp;lt;time zone&amp;gt; FROM &amp;lt;table-name&amp;gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span style="background-color: white; color: #222222; font-size: x-small; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; color: #222222; font-size: x-small; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;this method saves the expensive cast operations.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-1011958901945328112?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/1011958901945328112/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2012/04/time-zone-conversion-in-oracle.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/1011958901945328112" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/1011958901945328112" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/HodV0zZ9umQ/time-zone-conversion-in-oracle.html" title="time zone conversion in Oracle" /><author><name>raghav</name><uri>http://www.blogger.com/profile/14696105144745852031</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><feedburner:origLink>http://tech.sraghav.in/2012/04/time-zone-conversion-in-oracle.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-1851942223305087273</id><published>2012-04-03T05:53:00.000+05:30</published><updated>2012-04-03T05:58:51.082+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica" /><category scheme="http://www.blogger.com/atom/ns#" term="Scheduling" /><title type="text">Informatica Questions from a friend - Part 2 - Schedulers</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;b&gt;Need of Scheduling and Commonly used Schedulers&lt;/b&gt;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Any and all Data warehousing environments need some kind of scheduler setup to enable&lt;br /&gt;jobs being run at periodic intervals without human intervention.  Another important feature&lt;br /&gt;is the repeatability of the jobs set up such.  Without the help of a scheduler, things would&lt;br /&gt;become very ad-hoc and thus prone to errors and messups. &lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Oracle provides an built in scheduling facility, accessible through its &lt;a href="http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/d_sched.htm"&gt;dbms_scheduler&lt;/a&gt; package.&lt;br /&gt;Unix provides basic scheduling facility using &lt;a href="http://en.wikipedia.org/wiki/Cron"&gt;cron&lt;/a&gt; command. Similarly, Informatica also &lt;br /&gt;provides basic scheduling facilities in the Workflow Manager client.&lt;br /&gt; &lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The features provided by these scheduling tools are fairly limited, often limited to launching&lt;br /&gt;a job at a given time, providing basic dependency management etc. &lt;br /&gt; &lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;However, in real time data warehousing solutions, the required functionality is lot more &lt;br /&gt;sophisticated than whats offered by these basic features.  Therefore, the need for full &lt;br /&gt;fledged scheduling tools, e.g. Tivoli Workload Scheduler, Redwood Cronacle, Control-M, &lt;br /&gt;Cisco Tidal etc..&lt;br /&gt; &lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Most of these tools provide sophisticated launch control, dependency management features &lt;br /&gt;and therefore allow the data warehouse to be instrumented at finer levels.&lt;br /&gt; &lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Some of the tools, e.g. Tidal for informatica and Redwood for Oracle, provide support for&lt;br /&gt;the Tools' API as well, therefore integrating even better with the corresponding tool.  &lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-1851942223305087273?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/1851942223305087273/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2012/04/informatica-questions-from-friend-part.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/1851942223305087273" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/1851942223305087273" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/XxmU963Lirg/informatica-questions-from-friend-part.html" title="Informatica Questions from a friend - Part 2 - Schedulers" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2012/04/informatica-questions-from-friend-part.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-5769482966192868871</id><published>2012-03-30T12:00:00.000+05:30</published><updated>2012-04-04T11:24:23.564+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica" /><title type="text">Informatica Questions from a friend - Part 1</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;b&gt;HOW TO USE A COBOL FILE FOR TRANSFORMATION&lt;/b&gt;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Informatica allows reading data from cobol copybook formatted data files. These files mostly &lt;br /&gt;come from mainframe based source systems. Given that many of the world's leading business &lt;br /&gt;systems still use IBM Mainframe as their computing systems, e.g. airlines, banks, insurance &lt;br /&gt;companies etc, these systems act as a major source of information for Data warehouses, &lt;br /&gt;and thus to our Informatica mappings.&amp;nbsp; &lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;For using a cobol copy book structure as a source, you'd have to put that copybook in a &lt;br /&gt;empty skeleton cobol program. &lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;IDENTIFICATION DIVISION.&lt;br /&gt;PROGRAM-ID. RAGHAV.&lt;br /&gt;&lt;br /&gt;ENVIRONMENT DIVISION.&lt;br /&gt;SELECT FILE-ONE ASSIGN TO "MYFILE". &lt;br /&gt;&lt;br /&gt;DATA DIVISION.&lt;br /&gt;FILE SECTION.&lt;br /&gt;FD FILE-ONE.&lt;br /&gt;&lt;br /&gt;&lt;i style="color: red;"&gt;COPY "RAGHAV_COPYBOOK.CPY".&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;WORKING-STORAGE SECTION.&lt;br /&gt;&lt;br /&gt;PROCEDURE DIVISION.&lt;br /&gt;&lt;br /&gt;STOP RUN. &lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The copybook file can by a plain record structure.&lt;br /&gt;Read more about defining copybooks &lt;a href="http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/IGY3LR10/CCONTENTS?" target="_blank"&gt;around here&lt;/a&gt;.&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-5769482966192868871?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/5769482966192868871/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2012/03/informatica-questions-from-friend-part.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/5769482966192868871" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/5769482966192868871" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/AMC1AqAMt-Y/informatica-questions-from-friend-part.html" title="Informatica Questions from a friend - Part 1" /><author><name>raghav</name><uri>http://www.blogger.com/profile/14696105144745852031</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><feedburner:origLink>http://tech.sraghav.in/2012/03/informatica-questions-from-friend-part.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-8730837656417157139</id><published>2012-03-29T11:04:00.000+05:30</published><updated>2012-03-30T12:03:46.178+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title type="text">Counting columns in a tab delimited file</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;  &lt;w:View&gt;Normal&lt;/w:View&gt;  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;  &lt;w:TrackMoves/&gt;  &lt;w:TrackFormatting/&gt;  &lt;w:PunctuationKerning/&gt;  &lt;w:ValidateAgainstSchemas/&gt;  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;  &lt;w:DoNotPromoteQF/&gt;  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;  &lt;w:Compatibility&gt;   &lt;w:BreakWrappedTables/&gt;   &lt;w:SnapToGridInCell/&gt;   &lt;w:WrapTextWithPunct/&gt;   &lt;w:UseAsianBreakRules/&gt;   &lt;w:DontGrowAutofit/&gt;   &lt;w:SplitPgBreakAndParaMark/&gt;   &lt;w:DontVertAlignCellWithSp/&gt;   &lt;w:DontBreakConstrainedForcedTables/&gt;   &lt;w:DontVertAlignInTxbx/&gt;   &lt;w:Word11KerningPairs/&gt;   &lt;w:CachedColBalance/&gt;  &lt;/w:Compatibility&gt;  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;m:mathPr&gt;   &lt;m:mathFont m:val="Cambria Math"/&gt;   &lt;m:brkBin m:val="before"/&gt;   &lt;m:brkBinSub m:val="--"/&gt;   &lt;m:smallFrac m:val="off"/&gt;   &lt;m:dispDef/&gt;   &lt;m:lMargin m:val="0"/&gt;   &lt;m:rMargin m:val="0"/&gt;   &lt;m:defJc m:val="centerGroup"/&gt;   &lt;m:wrapIndent m:val="1440"/&gt;   &lt;m:intLim m:val="subSup"/&gt;   &lt;m:naryLim m:val="undOvr"/&gt;  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"&gt;  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt; &lt;/w:LatentStyles&gt;&lt;/xml&gt;&lt;![endif]--&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-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin:0in;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt;&lt;![endif]--&gt; &lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt;"&gt;It sounds so simple, however, when you sit down to write this, specially as a single line expression, it can take a while.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt;"&gt;In my experiments I found it rather easy to count it with other delimiters as compared to TAB character.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt;"&gt;Here is the command for counting columns&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt;"&gt;cat &amp;lt;FILENAME&amp;gt;| awk -F'\t' '{print NF}'&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt;"&gt;&amp;nbsp;cat can be slow at times, especially with larger files, therefore an alternative without that...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;  &lt;w:View&gt;Normal&lt;/w:View&gt;  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;  &lt;w:TrackMoves/&gt;  &lt;w:TrackFormatting/&gt;  &lt;w:PunctuationKerning/&gt;  &lt;w:ValidateAgainstSchemas/&gt;  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;  &lt;w:DoNotPromoteQF/&gt;  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;  &lt;w:Compatibility&gt;   &lt;w:BreakWrappedTables/&gt;   &lt;w:SnapToGridInCell/&gt;   &lt;w:WrapTextWithPunct/&gt;   &lt;w:UseAsianBreakRules/&gt;   &lt;w:DontGrowAutofit/&gt;   &lt;w:SplitPgBreakAndParaMark/&gt;   &lt;w:DontVertAlignCellWithSp/&gt;   &lt;w:DontBreakConstrainedForcedTables/&gt;   &lt;w:DontVertAlignInTxbx/&gt;   &lt;w:Word11KerningPairs/&gt;   &lt;w:CachedColBalance/&gt;  &lt;/w:Compatibility&gt;  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;m:mathPr&gt;   &lt;m:mathFont m:val="Cambria Math"/&gt;   &lt;m:brkBin m:val="before"/&gt;   &lt;m:brkBinSub m:val="--"/&gt;   &lt;m:smallFrac m:val="off"/&gt;   &lt;m:dispDef/&gt;   &lt;m:lMargin m:val="0"/&gt;   &lt;m:rMargin m:val="0"/&gt;   &lt;m:defJc m:val="centerGroup"/&gt;   &lt;m:wrapIndent m:val="1440"/&gt;   &lt;m:intLim m:val="subSup"/&gt;   &lt;m:naryLim m:val="undOvr"/&gt;  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"&gt;  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt; &lt;/w:LatentStyles&gt;&lt;/xml&gt;&lt;![endif]--&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-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin:0in;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt;&lt;![endif]--&gt; &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt;"&gt;awk -F'\t' '{print NF}' &amp;lt;FILENAME&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d; font-family: &amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&amp;nbsp; &lt;div class="MsoNormal"&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/3031962814593058692-8730837656417157139?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/8730837656417157139/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2012/03/counting-columns-in-tab-delimited-file.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8730837656417157139" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8730837656417157139" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/51O1EGuKkuk/counting-columns-in-tab-delimited-file.html" title="Counting columns in a tab delimited file" /><author><name>raghav</name><uri>http://www.blogger.com/profile/14696105144745852031</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><feedburner:origLink>http://tech.sraghav.in/2012/03/counting-columns-in-tab-delimited-file.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-9128889832699609613</id><published>2012-03-14T11:22:00.000+05:30</published><updated>2012-04-03T11:23:00.907+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="SqlTuning" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle" /><title type="text">how to find sql id of a long running sql in oracle</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Sql for finding out sql id etc details of some long running query. Often useful for sending kill/monitoring instructions to DBA friends..&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="background: white; color: blue; font-family: Courier; font-size: 10.0pt; mso-highlight: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;select&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;distinct&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;t.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;sql_id,&amp;nbsp;&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;s&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;inst_id&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;s&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;.sid,&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; s&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;serial#&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;s&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;osuser&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; s&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;.program,&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; s&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;status&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;t.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;sql_text&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; gv$session s&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;,&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; gv$sqlarea &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;t&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;where&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; s&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;username &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;=&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: red; font-size: 10pt;"&gt;'&amp;lt;USERNAME&amp;gt;'&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;and&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; s&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;sql_id &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;=&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue; font-size: 10pt;"&gt;t.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;sql_id&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;and&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;t.&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt;sql_text &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: blue; font-size: 10pt;"&gt;like&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: red; font-size: 10pt;"&gt;'&amp;lt;%provide a segment of sql to identify it%&amp;gt;'&lt;/span&gt;&lt;/span&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/3031962814593058692-9128889832699609613?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/9128889832699609613/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2012/03/how-to-find-sql-id-of-long-running-sql.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/9128889832699609613" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/9128889832699609613" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/viTLrwgLsnQ/how-to-find-sql-id-of-long-running-sql.html" title="how to find sql id of a long running sql in oracle" /><author><name>raghav</name><uri>http://www.blogger.com/profile/14696105144745852031</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><feedburner:origLink>http://tech.sraghav.in/2012/03/how-to-find-sql-id-of-long-running-sql.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-8731647302564469632</id><published>2012-02-25T01:03:00.003+05:30</published><updated>2012-02-25T01:04:14.183+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle" /><title type="text">Timezones in Oracle</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;It might have been written umpteen times here and there, but it always manages to confuse me. So, here it is another time on the internet...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" style="background-color: #ffffdd; font-family: 'Trebuchet MS', arial, helvetica, sans-serif;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th bgcolor="#E2EBED" colspan="3" style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=3031962814593058692" name="datatypes"&gt;Datatypes&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;Timestamp/timezone datatype&lt;/th&gt;&lt;th style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;What Oracle stores&lt;/th&gt;&lt;th style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;What Oracle displays&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;TIMESTAMP WITH TIME ZONE&lt;/td&gt;&lt;td style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;Year, month, day, hour, minute, second, fractional second, and time zone displacement (HH:MI difference from GMT)&lt;/td&gt;&lt;td style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;Stored value&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;TIMESTAMP WITH LOCAL TIME ZONE&lt;/td&gt;&lt;td style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;Year, month, day, hour, minute, second, fractional second; does NOT store time zone information, but instead converts data to the database time zone and stores it w/o time zone information&lt;/td&gt;&lt;td style="color: #004477; font-family: 'Trebuchet MS', verdana, arial, helvetica, sans-serif; font-size: 14px;"&gt;Converts the stored data to the session's time zone before displaying&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;With due respect to -&amp;nbsp;&lt;a href="http://toolkit.rdbms-insight.com/tz.php"&gt;http://toolkit.rdbms-insight.com/tz.php&lt;/a&gt;&lt;/span&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/3031962814593058692-8731647302564469632?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/8731647302564469632/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2012/02/timezones-in-oracle.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8731647302564469632" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8731647302564469632" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/bjKyLuC63O0/timezones-in-oracle.html" title="Timezones in Oracle" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2012/02/timezones-in-oracle.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-384584381366679332</id><published>2012-02-03T04:08:00.002+05:30</published><updated>2012-04-03T09:35:49.879+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="solar-power" /><category scheme="http://www.blogger.com/atom/ns#" term="concept" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="green" /><title type="text">And now.. a Solar Powered ubuntu laptop...</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Nick Rutledge has conceptualized a thin laptop that runs Ubuntu, is beautiful and hopes to run on Solar power... isnt that a killer combination...&lt;br /&gt;&lt;br /&gt;check out his concept here...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://nrutledge.blogspot.com/p/ubuntu-laptop-concept.html"&gt;http://nrutledge.blogspot.com/p/ubuntu-laptop-concept.html&lt;/a&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/3031962814593058692-384584381366679332?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/384584381366679332/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2012/02/and-now-ubuntu-laptop-concept-that.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/384584381366679332" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/384584381366679332" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/PpNHzinor6k/and-now-ubuntu-laptop-concept-that.html" title="And now.. a Solar Powered ubuntu laptop..." /><author><name>raghav</name><uri>http://www.blogger.com/profile/14696105144745852031</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><feedburner:origLink>http://tech.sraghav.in/2012/02/and-now-ubuntu-laptop-concept-that.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-8761106433068193103</id><published>2011-10-15T01:55:00.002+05:30</published><updated>2011-10-15T01:59:35.430+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica" /><category scheme="http://www.blogger.com/atom/ns#" term="data" /><category scheme="http://www.blogger.com/atom/ns#" term="data-lineage" /><title type="text">Data Lineage.. what is that ?</title><content type="html">It is one of those buzzwords, that keep doing the circuit every once in a while.  Almost every enterprise wants to do the analysis regarding this, and is almost always hard to find people with knowledge/experience doing this kind of analysis.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For the unaware,  Data Lineage is basically (really in very short words) a study of the data from its source to its eventual target, similar to what we'd do for our generation tree, we analyze the generation analysis of the data we are dealing with.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Starting from the source of the data, it travels through different subsystems, sometimes going through transformations, and thus possibly changing shape too...&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Informatica had a very interesting blog post around this (already in 2007), which can turn out to be fairly informative.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blogs.informatica.com/perspectives/index.php/2007/05/21/data-lineage-where-did-that-data-come-from/"&gt;http://blogs.informatica.com/perspectives/index.php/2007/05/21/data-lineage-where-did-that-data-come-from/&lt;/a&gt;&lt;/div&gt;&lt;div&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/3031962814593058692-8761106433068193103?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/8761106433068193103/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2011/10/data-lineage-what-is-that.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8761106433068193103" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8761106433068193103" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/9NpQc6htrBs/data-lineage-what-is-that.html" title="Data Lineage.. what is that ?" /><author><name>raghav</name><uri>http://www.blogger.com/profile/14696105144745852031</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><feedburner:origLink>http://tech.sraghav.in/2011/10/data-lineage-what-is-that.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-3300080336206597501</id><published>2011-09-28T02:11:00.000+05:30</published><updated>2011-10-15T02:12:42.887+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica" /><category scheme="http://www.blogger.com/atom/ns#" term="bigdata" /><category scheme="http://www.blogger.com/atom/ns#" term="hadoop" /><title type="text">Informatica &amp; hadoop... solutions for future ?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Distributed computing using hadoop has taken the IT industry by a whirlwind in the last few years. &amp;nbsp;After getting almost "adopted" by yahoo, hadoop has progressed quite fast, and is now maturing slowly but steadily. &lt;br /&gt;&lt;br /&gt;More and more enterprise solution providers are annoucing their support for the hadoop platform, hoping to get a pie of the big Data business chunk. &amp;nbsp;Its possibly a fair thing to expect that the leader in Data Integration business solutions space, &lt;a href="http://www.informatica.com/"&gt;Informatica&lt;/a&gt; has also announced a tie up with Cloudera, for porting Informatica platform to hadoop.&lt;br /&gt;&lt;br /&gt;Though the exact details are yet to come out, the possibilities are endless. &amp;nbsp;With hadoop (and its inherent distributed computing based on map/reduce technology), informatica can actually think of processing big data in sustainable time frames.&lt;br /&gt;&lt;br /&gt;For one my customers, I deal with about 200 million rows of data per day in one job. &amp;nbsp;Besides the issues with oracle in tuning the query etc, the informatica component itself consumes times in terms of hours. &amp;nbsp;With map reduce in place, I hope to get that in minutes, oracle issues notwithstanding.&lt;br /&gt;&lt;br /&gt;Although word about hadoop is spreading quite fast, its adoption (from buzzword to actual usage in enterprise) is not as fast. &amp;nbsp;To aid their cause, Informatica and cloudera have started an interesting series of webinars, termed as "&lt;a href="http://www.informatica.com/hadooptuesdays"&gt;hadoop tuesdays&lt;/a&gt;". &amp;nbsp;Its free to join, and they get experts to talk about various related issues around hadoop and big data and informatica. &amp;nbsp;Its been very useful and informative so far.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-3300080336206597501?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/3300080336206597501/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2011/09/informatica-hadoop-solutions-for-future.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/3300080336206597501" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/3300080336206597501" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/muov3ebe6TI/informatica-hadoop-solutions-for-future.html" title="Informatica &amp; hadoop... solutions for future ?" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2011/09/informatica-hadoop-solutions-for-future.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-3211452591679150776</id><published>2011-07-25T20:43:00.003+05:30</published><updated>2011-07-25T21:51:32.357+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title type="text">Switching defaults in Ubuntu</title><content type="html">Ubuntu allows you to have multiple alternatives installed for many software.. for example, java.&lt;br /&gt;You can have the default open jdk installed, and then you can actually have the Sun version installed.&lt;br /&gt;&lt;br /&gt;For example, to see what alternatives are installed for your software, try going to /etc/alternatives.  Here you'd see many pieces of software with alternatives listed.&lt;br /&gt;&lt;br /&gt;With these software installed, you would need to point your system to use one of them as the default, this is important especially after installing a newer version of the software. &lt;br /&gt;&lt;br /&gt;In such a case, to switch the alternatives, you need to use this&lt;br /&gt;&lt;br /&gt;sudo update-alternatives&lt;br /&gt;&lt;br /&gt;If you do a man on update-alternatives, there is a plethora of options to use.&lt;br /&gt;&lt;br /&gt;For our example, to configure the default for java, use this&lt;br /&gt;&lt;br /&gt;sudo update-alternatives --config java&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-3211452591679150776?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/3211452591679150776/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2011/07/switching-defaults-in-ubuntu.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/3211452591679150776" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/3211452591679150776" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/aXhT70cMBDk/switching-defaults-in-ubuntu.html" title="Switching defaults in Ubuntu" /><author><name>raghav</name><uri>http://www.blogger.com/profile/14696105144745852031</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><feedburner:origLink>http://tech.sraghav.in/2011/07/switching-defaults-in-ubuntu.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-8176029725482120015</id><published>2011-05-12T22:00:00.000+05:30</published><updated>2011-05-14T01:51:28.736+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="CloudComputing" /><title type="text">writing for cloudtimes.org these days</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Read some of my content at &lt;a href="http://cloudtimes.org/author/raghav/"&gt;http://cloudtimes.org/author/raghav/&lt;/a&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/3031962814593058692-8176029725482120015?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/8176029725482120015/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2011/05/writing-for-cloudtimesorg-these-days.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8176029725482120015" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8176029725482120015" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/YjtWL2TWIWw/writing-for-cloudtimesorg-these-days.html" title="writing for cloudtimes.org these days" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2011/05/writing-for-cloudtimesorg-these-days.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-5735441776127064132</id><published>2011-04-20T22:55:00.002+05:30</published><updated>2011-04-25T20:54:46.795+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="GIDS2011" /><category scheme="http://www.blogger.com/atom/ns#" term="devsummit" /><category scheme="http://www.blogger.com/atom/ns#" term="html5" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><category scheme="http://www.blogger.com/atom/ns#" term="GIDS" /><title type="text">HTML 5</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;I attended the .WEB day of GIDS (The &lt;b&gt;G&lt;/b&gt;reat &lt;b&gt;I&lt;/b&gt;ndian &lt;b&gt;D&lt;/b&gt;eveloper &lt;b&gt;S&lt;/b&gt;ummit) 2011 edition.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Among many talks, there were two focusing on HTML5. One by Scott Davis (of&amp;nbsp;&lt;a href="http://www.thirstyhead.com/"&gt;http://www.thirstyhead.com/&lt;/a&gt;) and Venkat Subramaniam (of&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.agiledeveloper.com/"&gt;http://www.agiledeveloper.com&lt;/a&gt;)&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp;. &amp;nbsp;Scott's talk was more on the conceptual and capability side of HTML 5. &amp;nbsp;Venkat focused more on the implementation and initiating newbies to HTML 5 coding.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Before these discussions, I would not have been able to say much on the capabilities of HTML5. It was more of a buzzword before, however, now its more of another technology holding lot of promise. &amp;nbsp; I think that should say a lot for the two speakers, that within two sessions, they have been able to lift the standard of know how around a cutting edge technology from buzzword to daily use.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Both these talks, put together were able to provide a rather complete picture. Enumerate the benefits, major improvements, new tags which are bringing in so much functionality to native HTML without need of any third party libraries, plugins etc.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Of course its cutting edge today, since not all browsers support all of the HTML 5 specification. The specification is huge in itself anyway. &amp;nbsp;As one of the speakers put it, the HTML 5 spec is a combination of HTML plus all of CSS 3 plus a lot of RIA functioanlities based on JavaScript libraries. &amp;nbsp;One can say that html5 is rather heavy from browser engine side, however, it intends to provide all the features across the browsers (eventually). &amp;nbsp; Since its a huge spec, not all browsers implement it &amp;nbsp;** completely and ** uniformly.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;There would be a time when all the browsers (at least the leading ones) would implement it completely (or almost all of it), but till then, the developers would have to live with &lt;b style="font-style: italic;"&gt;polyfill &lt;/b&gt;(&lt;b&gt;poli&lt;/b&gt;morphically back&lt;b&gt;fill&lt;/b&gt;) the html5 functionality for non supporting browsers. &amp;nbsp; A javascript library at &lt;a href="http://www.modernizer.com/"&gt;www.modernizer.com&lt;/a&gt; is a big help in implementing this transparently.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;As Scott very aptly put it, "We'd program for the faster animal in the herd, and allow the rest of the slower ones to polyfill. As and when they catch up with the fastest one, need for polyfill will automatically go away".&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;From what I see in html5 spec (what ever part that I have come to know), it looks very very interesting and powerful. &amp;nbsp;Lots of current functionality that is implemented today with the help of third party libraries/plugins is going to be implemented natively.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;And, let me not forget to mention the one single most important innovation that is coming through with html5, semantic web. &amp;nbsp;Its not really a set of tags or something similar, rather a concept. &amp;nbsp; There are tags available in spec, which actually indicate the semantics (meaning) of the content. For example, there is a tag called &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;footer&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;. This tag wont do much on its own, but when someone is reading the code, or for that matter the parser program is going through the code, the tag name already says that its a footer. &amp;nbsp;The tag name actually means something. &amp;nbsp;This also paves way for future improvements on the implementation side.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Perhaps a separate post for html5 possibilities for mobile applications, a huge area in itself.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;Resources&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://www.html5rocks.com/"&gt;www.html5rocks.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://www.html5doctor.com/"&gt;www.html5doctor.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://www.diveintohtml5.org/"&gt;www.diveintohtml5.org&lt;/a&gt; -&amp;gt; this is a unique one, a complete book on html 5, which is available free of cost, completely online. &amp;nbsp;One of the finest resources for html5.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://www.html5demos.com/"&gt;www.html5demos.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://www.modernizer.com/"&gt;www.modernizer.com&lt;/a&gt;&amp;nbsp;&amp;nbsp;-&amp;gt; javascript library for polyfill&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&amp;nbsp;&amp;nbsp; ## Technorati -&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px;"&gt;&lt;b&gt;CJYMQNJWMX9K&lt;/b&gt;&lt;/span&gt; &lt;/footer&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-5735441776127064132?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/5735441776127064132/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2011/04/html-5.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/5735441776127064132" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/5735441776127064132" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/SUaTtp8vGPY/html-5.html" title="HTML 5" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2011/04/html-5.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-5553681206474254541</id><published>2011-03-13T17:56:00.001+05:30</published><updated>2011-03-13T18:21:25.304+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica" /><title type="text">convert Infrmatica Session Logs to text/xml format for out of tool readability</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There was a situation recently when the infa repository was not able to point us to the old session logs.&lt;br /&gt;However, the file system still had those files.&lt;br /&gt;&lt;br /&gt;But the session log files are in binary format by default. If you didnt ask for backward compatible session log files, you'd get a binary format of session log file on file system. This is done to allow better importability of the session log files for infa support guys.&lt;br /&gt;&lt;br /&gt;So, I had a few log files in binary format, and needed to analyze them.&lt;br /&gt;Informatica provides a subcommand for infacmd to achieve that conversion.&lt;br /&gt;&lt;br /&gt;The convertLogFile subcommand takes three parameters. Syntax is as follows -&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;convertLogFile &amp;lt;-InputFile|-in&amp;gt; input_file_name&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;lt;-Format|-fm&amp;gt; format_TEXT_XML]&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;lt;-OutputFile|-lo&amp;gt; output_file_name]&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;so, when you launch this, you can specify the input file to be converted, the format as TEXT or XML and the output file that you'd want as a result of conversion.&lt;br /&gt;&lt;br /&gt;An example call would look like this - &amp;nbsp;(expecting server on&amp;nbsp;unix)&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;infacmd.sh convertLogFile -in /path/to/binary/format/sesslog/file -fm TEXT -lo /my/home/text/format/sesslog/file&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-5553681206474254541?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/5553681206474254541/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2011/03/convert-infrmatica-session-logs-to.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/5553681206474254541" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/5553681206474254541" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/mgz4G_C3ip4/convert-infrmatica-session-logs-to.html" title="convert Infrmatica Session Logs to text/xml format for out of tool readability" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2011/03/convert-infrmatica-session-logs-to.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-4028915949388524107</id><published>2011-02-22T06:15:00.000+05:30</published><updated>2011-02-22T06:15:05.481+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="data-cleansing" /><category scheme="http://www.blogger.com/atom/ns#" term="data" /><category scheme="http://www.blogger.com/atom/ns#" term="analysis" /><title type="text">Just found out about this amazing thing...</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A research initiative at Stanford University, Data Wrangler.. Wonderfully helping for analysts.&lt;br /&gt;&lt;br /&gt;Try a demo video here -&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/19185801" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And read more about it on http://vis.stanford.edu/wrangler&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/19185801"&gt;Wrangler Demo Video&lt;/a&gt; from &lt;a href="http://vimeo.com/stanfordvis"&gt;Stanford Visualization Group&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&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/3031962814593058692-4028915949388524107?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/4028915949388524107/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2011/02/just-found-out-about-this-amazing-thing.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/4028915949388524107" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/4028915949388524107" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/WlSu521Or44/just-found-out-about-this-amazing-thing.html" title="Just found out about this amazing thing..." /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2011/02/just-found-out-about-this-amazing-thing.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-4933146145245599714</id><published>2011-02-20T00:18:00.000+05:30</published><updated>2011-02-20T00:18:36.113+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="exadata" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle" /><title type="text">Exadata - is it really worth the hype</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Well, I am not going to try to answer that, rather, more on the question side...&lt;br /&gt;Recently one of my projects moved to exadata device. There was so much talk around that, the queries and db processes need not be looked into, exadata will take care of them already.&lt;br /&gt;&lt;br /&gt;However, two things happened.. first, there was a technical talk on the device's configuration. The device turned out to be a mammoth piece of hardware. In nutshell, its a 8 node cluster, each node having 4 cpu's.&amp;nbsp; Each CPU has around 2-4 GB of RAM. Then there is this high speed secondary storage which can hold a lot of cache.&lt;br /&gt;&lt;br /&gt;The nodes are interconnected using a special switch which can transfer data faster than Gigabit networks.&lt;br /&gt;&lt;br /&gt;With such hardware configuration, any software can claim the kind of performance gain they claim. Not to undermine the performance gains, I just want to say that the hype around the out of the world performance gains, is actually the result of better hardware, not really revolutionary software.&lt;br /&gt;&lt;br /&gt;I, personally was expecting something of that type from Oracle, since they lack in that area. Except Teradata, there is almost no player who delivers that kind of Data Warehouse architecture and performance. and I was hoping that Oracle would do something around there and bring out something.&lt;br /&gt;&lt;br /&gt;And, the second thing, one of the processes tried to load data to an exadata instance using informatica. Initially we left things at default so that exadata can tune it itself and we should not force anything.&amp;nbsp; However, there too, exadata failed big time and couldnt put in any perf gain. At the end, all the tuning had to be done by us only.&lt;br /&gt;&lt;br /&gt;So, the other claim of exadata regarding intelligence to pick up processes and fix them on its own also went down for us.&lt;br /&gt;&lt;br /&gt;Though I agree that its rather new for its own evolution, i believe oracle marketing should be doing a better job.:)&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/3031962814593058692-4933146145245599714?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/4933146145245599714/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2011/02/exadata-is-it-really-worth-hype.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/4933146145245599714" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/4933146145245599714" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/3Rk8oEoOzQ8/exadata-is-it-really-worth-hype.html" title="Exadata - is it really worth the hype" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2011/02/exadata-is-it-really-worth-hype.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-3697179821322216213</id><published>2010-12-02T06:37:00.000+05:30</published><updated>2010-12-02T06:37:32.742+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Informatica" /><category scheme="http://www.blogger.com/atom/ns#" term="mapping-design" /><category scheme="http://www.blogger.com/atom/ns#" term="dwh-bi" /><title type="text">Rejecting records in Fact table loads - Informatica</title><content type="html">&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;In some development environments, you dont have all the required dimension data and as a result, your fact loading mapping's test runs go for a toss. The mapping wont be able to load anything (reject everything) since some or other foreign key would be missing for each row.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;In other words, only those records would be loaded for which ALL the foreign key constraints would be satisfied. However, in Production environment, this would almost never happen. Or even if its the case, we'd actually want those rows to be rejected.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;This can work out to be a serious impediment to development/unit testing. It prevents the developer from seeing whether or not his his mapping is behaving appropriately for the happy flow functionality.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;One way of achieving this can be to work using a Mapping Variable indicating the Environment. The developer can run using a value like 'D' or something, indicating a different environment than Production, with 'P' (production) being the default value.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Now in the mapping, just about where you decide to reject a record based on different type of conditions, you could put an AND condition involving this mapping variable, e.g. ....AND $$MAPP_ENV = 'P'&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Now, the expression would return true only in the Production environment, and therefore would work as expected. In Dev though, this expression would return false and would not reject that row.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Now, to be able to satisfy the db constraints for the fact table so that the row is actually inserted, you'd need to use some placeholder convention. One of the approaches can be to use an outlier value as the foreign key value.&amp;nbsp; For Example, for customer id, keep a -1 in dimension table, meaning "Undefined".&amp;nbsp; And, in all such dev cases, send -1 to the fact.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;It would serve both the purposes, tell your fact table that there is something diff about that row, and still inserting a row in there, so that the testing for the rest of the columns is not stopped because of one foreign key missing out.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-3697179821322216213?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/3697179821322216213/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2010/12/rejecting-records-in-fact-table-loads.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/3697179821322216213" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/3697179821322216213" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/9CnODHLKBp4/rejecting-records-in-fact-table-loads.html" title="Rejecting records in Fact table loads - Informatica" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2010/12/rejecting-records-in-fact-table-loads.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-8777784566354758369</id><published>2010-11-18T01:05:00.000+05:30</published><updated>2010-11-18T01:05:47.421+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Unix" /><category scheme="http://www.blogger.com/atom/ns#" term="shell" /><title type="text">Setting a useful command prompt in Unix</title><content type="html">&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;I just came across a unix system at my workplace that had a static prompt set. Basically, the prompt was just the shell executable's name and version, more like&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;bash-3.2 $&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Well, this kind of prompt has many drawbacks, some of them i'd list here -&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;1. You never know (just like that) where you are in the file system. When you are dealing with multi-directory situations, you might want to stop typing pwd to figure out ur current location.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;2. You never know by what user you are logged in (again, just by looking at the prompt). You'd have to run a whoami to figure that out.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;3. More importantly, if you are dealing with multiple systems, this one's the most killer.&amp;nbsp; You never know to what system you are logged in right now. you'd have to issue a hostname command.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Well, there might be, and for sure there are many other, consequences of having such a cryptic command prompt.&amp;nbsp; And therefore, my favourite, to have a command prompt, that displays at least these three things, always, dynamically...&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Something like,&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;raghav@deskubuntu:/homes/raghav/rails $&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;wherein, I am always aware of the three things mentioned earlier. This is very very useful when you are dealing with multiple systems and you have multiple users who are configured to run different types of processes.&amp;nbsp; For example, an oracle user who is supposed to be owner of oracle processes, and an informatica user which is supposed to own everything linked to informatica, and then a connect direct user which owns the CD processes, which receives files coming in from some other system.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;With this kind of system, and your own user id to log in to the system, you'd better be careful which processes you are looking at / launching and by what user.&amp;nbsp; Its really very very important.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;When and if you are dealing with a multiple system scenario, like dev / test / acceptance / production, you'd be better advised to use something like this only.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;the magic command to do that is by setting appropriate flags and text in a environment variable called PS1.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Just set PS1 to your .profile or .bashrc (depending on your environment) file and you are set .&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;The example prompt that I mentioned can be achieved by saying -&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;export PS1="\\u@\\h:\\w \\$ "&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;There are many more possibilities that go with special meanings for PS1 variable. Read some of them here -&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \$ : if the effective UID is 0, a #, otherwise a $&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \[ : begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \\ : a backslash&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \] : end a sequence of non-printing characters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \a : an ASCII bell character (07)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \@ : the current time in 12-hour am/pm format&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \A : the current time in 24-hour HH:MM format&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \d : the date in "Weekday Month Date" format (e.g., "Tue May 26")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \D{format} : the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \e : an ASCII escape character (033)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \H : the hostname&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \h : the hostname up to the first '.'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \j : the number of jobs currently managed by the shell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \l : the basename of the shell’s terminal device name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \n : newline&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \nnn : the character corresponding to the octal number nnn&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \r : carriage return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \T : the current time in 12-hour HH:MM:SS format&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \t : the current time in 24-hour HH:MM:SS format&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \u : the username of the current user&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \s : the name of the shell, the basename of $0 (the portion following the final slash) &lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \V : the release of bash, version + patch level (e.g., 2.00.0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \v : the version of bash (e.g., 2.00)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \W : the basename of the current working directory&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * \w : the current working directory&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/3031962814593058692-8777784566354758369?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/8777784566354758369/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2010/11/setting-useful-command-prompt-in-unix.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8777784566354758369" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/8777784566354758369" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/DqodnQ8w53E/setting-useful-command-prompt-in-unix.html" title="Setting a useful command prompt in Unix" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2010/11/setting-useful-command-prompt-in-unix.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-7539756302592725223</id><published>2010-11-16T00:30:00.000+05:30</published><updated>2010-11-16T00:30:17.951+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="shell-script" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Unix" /><category scheme="http://www.blogger.com/atom/ns#" term="Solaris" /><category scheme="http://www.blogger.com/atom/ns#" term="script" /><title type="text">scripts and hash bang ( #! )</title><content type="html">&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;More often than not, people have to tell the unix shell / perl scripts or other programs where lies their interpretor, e.g. write their command line calls as&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;perl SomeScript.pl&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;or&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ruby ARubyProgram.rb&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;or&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sh SomeShellScript.sh&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;this is because the system may not be aware of the location of the the executable interpreter of the exact type that needs to be used for the corresponding script.&amp;nbsp; Well, for this purpose, windows has the file extension association concept, but we are dealing with Unix like systems not windows, so that option is not really available to us (besides, there are ill effects of that convention too, but lets not go in that discussion).&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;So, to tell a unix program where to find its interpreter, besides launching the script along with it on command line, there is another way, and rather beautiful at that.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Just put the exact path of your interpreter executable at the very first line of your script preceded by these two magic characters, a hash and an exclamation (#!) also called as hash-bang or shebang.&amp;nbsp; Now, once your script is marked as executable (see chmod), you are good to go, no need of putting explicit calls to the interpreter to run your code.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Basically, your code should now look like this -&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#!/usr/local/bin/perl5&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print "testing hashbang with raghav"&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Save this short script as aa.pl (assuming that your system has perl 5 interpreter installed in the location I used). Make the script executable (chmod) and you can just launch the script, like ./aa.pl&amp;nbsp; instead of earlier example perl aa.pl&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;A word of caution though, these magic characters have to be absolutely the first and second character of the file, no exceptions to that. Else, the system cant make out the special meaning of this and the purpose is lost.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;Pretty neat.. hunh...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-7539756302592725223?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/7539756302592725223/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2010/11/scripts-and-hash-bang.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/7539756302592725223" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/7539756302592725223" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/BmR58d-sLF4/scripts-and-hash-bang.html" title="scripts and hash bang ( #! )" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2010/11/scripts-and-hash-bang.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-3443148354767127326</id><published>2010-11-01T03:35:00.000+05:30</published><updated>2010-11-01T03:35:24.001+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="mgmt" /><category scheme="http://www.blogger.com/atom/ns#" term="consulting" /><title type="text">A  Note to New Consultants</title><content type="html">&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt; &lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt; &lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt; I&amp;nbsp; am about to start a new role, that of a consultant at a new customer site soon. In order to prepare for that mentally, I was looking around for inspiration and advice. In the process, I stumbled across this gem from the founder of Boston Consulting Group.&amp;nbsp; I have picked up the text from this webpage(http://www.careers-in-business.com/consulting/hendnote.htm), and then tried to see through it from my own eyes.&amp;nbsp; All credits with the original webpage owners. &lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;i&gt;&lt;b&gt;&lt;u&gt;Written by Bruce Henderson, Founder of Boston Consulting Group in the  1970s&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;/i&gt; &lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;In a sense the consultant's role is a paradox. He gives advice to people of equal intelligence who have vastly superior and extensive experience and knowledge of the problem. Yet he is not necessarily an expert in anything. What is the justification for his value?&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;u&gt;&lt;b&gt;Need of Consultant&lt;/b&gt;&lt;/u&gt; &lt;/div&gt;&lt;ol style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;li&gt;The consultant can &lt;b&gt;function as a specialist or expert&lt;/b&gt;, In this role he must be more knowledgeable than the client. This implies a very&lt;b&gt; narrow field of specialization&lt;/b&gt;, otherwise the client with his greater continuity of experience would be equally expert.&lt;br /&gt;&lt;br /&gt;The consultant can&lt;b&gt; function as a counselor or advisor on the process of decision making&lt;/b&gt;. This implies an &lt;b&gt;expertise of a special kind, that of the psychotherapist&lt;/b&gt;. This is merely a particular kind of expertise in a particular field.&lt;br /&gt;&lt;br /&gt;The most typical role for a consultant is that of&lt;b&gt; auxiliary staff&lt;/b&gt;. This does not preclude any of the other roles mentioned before, but it does require a quite different emphasis.&lt;br /&gt;&lt;br /&gt;All companies have staff capabilities of their own. Some of this staff is very good. Yet no company can afford to have standby staff adequate for any and all problems. This is why there is an opportunity for consultants. They fill the staff role that cannot be filled internally.&lt;br /&gt;&lt;br /&gt;By definition this means that consultants are most useful on the unusual, the non-recurring, the unfamiliar problem. Outside consultants are also most useful where the problem is poorly defined and politically sensitive, but the correct decision is extremely important. Outside consultants get the tough, the important and the sensitive problems.&lt;br /&gt;&lt;br /&gt;The natural &lt;b&gt;function of a consultant is to reduce anxiety and uncertainty&lt;/b&gt;. Those are the conditions under which anxiety and uncertainty are greatest and where consultants are most likely to be hired. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Problem Definition&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;&lt;/li&gt;&lt;li&gt;If this point of view is our starting point, then problem definition becomes extremely important.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If the problem is incorrectly defined, then even its complete solution may not satisfy the client's perceived needs.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;If the problem is improperly defined, it may be beyond our ability to solve.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Problem definition is a major test of professional ability. Outside &lt;b&gt;consultants can frequently define problems in a more satisfactory fashion&lt;/b&gt; than internal staff, primarily because they are unencumbered with the historical perspective of the client and the resulting "house" definition.&lt;br /&gt;&lt;br /&gt;A consultant's problem definition is the end of the assignment if the problem is not researchable. If the problem is not researchable, then the consultant is either a specialist-expert or a psychotherapist. Neither of these roles are suitable for the use of the resources of an organization such as The Boston Consulting Group&lt;b&gt;.&lt;br /&gt;&lt;br /&gt;A researchable problem is usually a problem that should be dealt with by a group approach&lt;/b&gt;. Data gathering and analysis requires differing skills and different levels of experience that can best be provided by a group. The insights into complex problems are usually best developed by verbal discussion and testing of alternate hypotheses.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Good research is far more than the application of intellect and common sense&lt;/b&gt;. It must start with a set of hypotheses to be explored. Otherwise, the mass of available data is chaotic and cannot be referenced to anything. Such starting hypotheses are often rejected and new ones substituted. This, however, does not change the process sequence of hypothesize / data gathering / analysis / validation / rehypothesize.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Great skill in interviewing and listening is required to do this&lt;/b&gt;. Our client starts his own analysis from some hypothesis or concept. We must understand this thoroughly and be able to play it back to him in detail or he does not feel that we understand the situation. Furthermore, we must be sure that we do not exclude any relevant data that may be volunteered. Yet we must formulate our own hypothesis.&lt;br /&gt;&lt;br /&gt;Finally, we must be able to take our client through the steps required for him to translate his own perspective into the perspective we achieve as a result of our research. This requires a &lt;b&gt;high order of personal empathy as well as developed teaching skills&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The &lt;b&gt;end result of a successful consulting assignment&lt;/b&gt; is not a single product. It&lt;b&gt; is a new insight on the part of the client&lt;/b&gt;. It is also a commitment to take the required action to implement the new insights. Equally important, it is an acute awareness of the new problems and opportunities that are revealed by the new insights. &lt;br /&gt;&lt;br /&gt;We fail if we do not get the client to act on his new insights. &lt;i&gt;&lt;b&gt;The client must implement the insights or we failed.&lt;/b&gt; &lt;/i&gt;It is our professional responsibility to see that there is implementation whether we do it or the client does it.&lt;br /&gt;&lt;br /&gt;Much of the performance of a consultant depends upon the development of concepts that extend beyond the client's perception of the world. This is not expertise and specialization. It is the exact opposite. It is an appreciation of how a wide variety of interacting factors are related. This appreciation must be more than an awareness. It must be an ability to quantify the interaction sufficiently to predict the consequences of altering the relationships.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Consultants have a unique opportunity to develop concepts since they are exposed to a wide range of situations in which they deal with relationships instead of techniques&lt;/b&gt;. This mastery of concepts is probably the most essential characteristic for true professional excellence.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;A successful consultant is first of all a perceptive and sensitive analyst&lt;/b&gt;. He must be in order to define a complex problem in the client's terms with inadequate data. This requires highly developed interpersonal intuitions even before the analysis begins.&lt;br /&gt;&lt;br /&gt;His &lt;b&gt;analytical thinking must be rigorous and logical&lt;/b&gt;, or he will commit himself to the undoable or the unuseful assignment. Whatever his other strengths, he must be the effective and respected organizer of group activities which are both complex and difficult to coordinate. Failure in this is to fall into the &lt;b&gt;restricted role of the specialist&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;[raghav]&lt;/b&gt; The first time I have read that a specialist role can be restrictive, and honestly, when you think about it again, it does come back as a correct statement, specially in the wider world of other opportunities. Specially for a management consultant.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In defining the problem, the effective consultant must have the &lt;b&gt;courage and the initiative to state his convictions&lt;/b&gt; and press the client for acceptance and resolution of the problem as defined. &lt;b&gt;The client expects the consultant to have the strength of his convictions&lt;/b&gt; if he is to be dependent upon him. Consultants who are unskilled at this are often liked and respected but employed only as counselors, not as true management consultants.&lt;br /&gt;&lt;br /&gt;The successful professional&lt;b&gt; inevitably must be both self-disciplined and rigorous in his data gathering as well as highly cooperative as a member of a case team.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The continuing client relationship requires a&lt;b&gt; sustained and highly developed empathy with the client representative&lt;/b&gt;. Inability to do this is disqualifying for the more significant roles  in management consulting. &lt;/li&gt;&lt;/ol&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;  In other words, the successful consultant: &lt;/div&gt;&lt;ul style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;li&gt;Identifies his client's significant problems; &lt;/li&gt;&lt;li&gt;Persuades his client to act on the problems by researching them; &lt;/li&gt;&lt;li&gt;Organizes a diversified task force of his own firm and coordinates its activity; &lt;/li&gt;&lt;li&gt;Fully utilizes the insights and staff work available in his client's organization; &lt;/li&gt;&lt;li&gt;Uses the full conceptual power of his own project team; &lt;/li&gt;&lt;li&gt;Successfully transmits his findings to the client and sees that they are implemented; &lt;/li&gt;&lt;li&gt;Identifies the succeeding problems and maintains the client relationship; &lt;/li&gt;&lt;li&gt;Fully satisfies the client expectations that he raised; &lt;/li&gt;&lt;li&gt;Does all these things within a framework of the time and cost constraints imposed by himself or the client. &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/3031962814593058692-3443148354767127326?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/3443148354767127326/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2010/10/note-to-new-consultants.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/3443148354767127326" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/3443148354767127326" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/eVZGwKr4S0E/note-to-new-consultants.html" title="A  Note to New Consultants" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2010/10/note-to-new-consultants.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-6706425509373328818</id><published>2010-10-01T08:30:00.000+05:30</published><updated>2010-10-23T10:39:13.910+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="solr" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource" /><category scheme="http://www.blogger.com/atom/ns#" term="searchengine" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="Apache" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title type="text">my experiments with solr :)</title><content type="html">Its a catchy title, but yes.. thats what I am going to talk about...&lt;br /&gt;&lt;br /&gt;I came across hadoop, when I was looking for a new solution for one of our in-house projects. The need was quite clear, however, the solution had to be dramatically different.&lt;br /&gt;&lt;br /&gt;The one statement we received from business was, "We need an exceptionally fast search interface". And for that fast interface to search upon they had more than a hundred million rows worth of data in a popular RDBMS.&lt;br /&gt;&lt;br /&gt;So, when I sat about thinking, how to make a fast search application, the first thing that came to my mind was, Google. Actually, whenever we talk about speed or performance of web sites, Google is invariably the first name that comes across.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Further, Google has a plus point that there is always some activity at the back end to generate the page or results that we see, its never static content. And, then, another point, Google has a few trillion pieces of information to store/index/search whereas our system was going to have significantly lower volume of data to manage.&amp;nbsp;&amp;nbsp; So, going with that, Google looked like a very good benchmark for this fast search application.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Then I started to look for "How Google generates that kind of performance". There are quite a few pages on the web talking about just that.&amp;nbsp;&amp;nbsp; But, probably none of them has the definitive/authoritative view on Google's technology or for that matter the insider's view on how it actually does what it does so fast.&lt;br /&gt;&lt;br /&gt;Some pages pointed towards their storage technology, some talked about their indexing technology, some about their access to huge volumes of high performance hardware and what not...&lt;br /&gt;&lt;br /&gt;For me, some of them turned out to be genuinely interesting, one of them was the indexing technology. There has to be a decent indexing mechanism to which the crawler's would feed and the search algorithms hit.&amp;nbsp; The storage efficiency is probably the next thing to come in the play. How fast can they access the corresponding item ?&lt;br /&gt;&lt;br /&gt;Another of my observation is that, the search results (the page mentioning page titles and stuff) comes real fast, mostly less than 0.25 seconds, but the click on the links does take some time.&amp;nbsp; So, I think it has to be their indexing methodology that plays the bigger role.&lt;br /&gt;&lt;br /&gt;With that in mind, I sat about finding what can do similar things and how much of Google's behaviour they can simulate/implement.&lt;br /&gt;&lt;br /&gt;Then I found Hadoop project on apache (http://hadoop.apache.org/) which to a large extent reflects the way Google kind of system would work. It provides distributed computing(hadoop core), it provides a bigTable kind of database (hbase), provides map/reduce layer, and more.&amp;nbsp; Reading into it more, I figured out that this system is nice for a batch processing kind for mechanism, but not for our need of real time search.&lt;br /&gt;&lt;br /&gt;Then I found solr(&lt;a href="http://lucene.apache.org/solr/"&gt;http://lucene.apache.org/solr/&lt;/a&gt;), a full text search engine under Apache Lucene.&amp;nbsp; It is a java written, xml indexing based genuinely fast search engine.&amp;nbsp; It provides many features that we normally wish for in more commercial applications, an being from apache, I would like to think of it as much more reliable and stable than compared to many others.&lt;br /&gt;&lt;br /&gt;When we sat about doing a Proof of Concept with it, I figured out a few things –&lt;br /&gt;&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; It supports only one schema, as in, rdbms tables – only one. So, basically you would have to denormalize all your content to fit into this one flat structure.&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; It supports interactions with the server interface only through http methods be it the standard methods get/put etc or be it REST like interfaces.&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; It allows you loading data in varying formats, through xml documents, through delimited formats and through db interactions as well.&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; It has support for clustering as well. Either you can host it on top of something like hadoop or you can just configure it to do it within solr as well.&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; It supports things like expression and function based searches&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; It supports faceting&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Extensive caching and “partitioning” features.&lt;br /&gt;&lt;br /&gt;Besides other features, the kind of performance without any specific tuning efforts made me think of it as a viable solution.&lt;br /&gt;&lt;br /&gt;In a nutshell, I loaded around 50 million rows on a “old” Pentium-D powered desktop box with 3 GB RAM running ubutnu 10.04 server edition (64 bit) with two local hard disks configured over a logical volume manager.&lt;br /&gt;&lt;br /&gt;The loading performance was not quite great. Though its not that bad either. I was able to load a few million rows (in a file that was sized about 6 GB) in about 45 minutes when the file was on the same file system.&lt;br /&gt;&lt;br /&gt;In return, it gave me query performances in the range of 2-4 seconds for the first query. For subsequent re-runs of the same query (within a span of an hour or so), it came back in approx 1-2 milliseconds.&amp;nbsp; I would like to think that its pretty great performance given the kind of hardware I was running upon, and the kind of tuning effort I put in (basically none – zero, I just ran the default configuration).&lt;br /&gt;&lt;br /&gt;Given that, I wont say that I have found the equivalent or replacement of Google’s search for our system, but yeah, we should be doing pretty good with this.&lt;br /&gt;&lt;br /&gt;Although there is more testing and experimentation that is required to be able to judge solr better, the initial tests look pretty good.. pretty much in line with the experiences of others who are using it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-6706425509373328818?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/6706425509373328818/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2010/09/my-experiments-with-solr.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/6706425509373328818" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/6706425509373328818" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/Y7X7o5wfVcY/my-experiments-with-solr.html" title="my experiments with solr :)" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2010/09/my-experiments-with-solr.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-1964059220728175471</id><published>2010-09-13T07:53:00.000+05:30</published><updated>2010-10-23T08:10:45.269+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource" /><title type="text">Business &amp; Open Source - How both can benefit</title><content type="html">I had the opportunity to scout for a new technology/solution for one of our in-house projects.&amp;nbsp; Quite a few of the options that I looked for were from open source arena.&amp;nbsp; And amazingly, the products were far more capable from our expectations, just that we'd have to pitch in with some effort to get it working for us.&lt;br /&gt;&lt;br /&gt;I have always felt that for open source projects/products to become commercially viable for a business enterprise, the enterprise has to come up and spend some resources to it to get the actual value out of it.&lt;br /&gt;&lt;br /&gt;In other words, if an organization wants to use an open source product, which has an equivalent competitive commercial product available in market, they should be open enough to have their own in-house people who can take ownership of the installation. The organization shouldn't completely rely on the support available from the community forums and such.&lt;br /&gt;&lt;br /&gt;I have seen more than one manager complain about the lack of support on the open source products.&amp;nbsp; Had there been proper support system for each of the open source products, we'd see a lot of stories similar to mysql's model or pentaho model.&lt;br /&gt;&lt;br /&gt;What I would like to see perhaps is that the organizations' becoming mature enough in their adaptation of the open source products. By that, I expect them to have a open vision, have people who understand and like and own the product, and at the same time tweak and tune the product to suit the organization's business needs.&lt;br /&gt;&lt;br /&gt;In the process, the organization should contribute to the product's development cycle.&amp;nbsp; This could happen in many ways, bug fixes, contribution of new features, the employees could contribute on community forums and such.&amp;nbsp; Using the terminology from peer to peer sharing, only leechers dont help a torrent, people need to seed to it as well. Same way, unless organizations contribute to an open source product, they would stand to become only leechers.&lt;br /&gt;&lt;br /&gt;Only after we have a decent balance of organizations using and contributing to the open source products, we'd see the ecosystem flourishing...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-1964059220728175471?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/1964059220728175471/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2010/09/my-experiments-with-hadoop.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/1964059220728175471" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/1964059220728175471" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/dhU7jCM4iTs/my-experiments-with-hadoop.html" title="Business &amp; Open Source - How both can benefit" /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2010/09/my-experiments-with-hadoop.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-7000439570244469668</id><published>2010-09-09T18:31:00.001+05:30</published><updated>2010-09-13T06:41:18.084+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Misc" /><title type="text">Tips for brainstorming...</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;Interesting read, from both positive and negative viewpoints - &lt;br/&gt;&lt;br/&gt;1. Use brainstorming to combine and extend ideas, not just to harvest ideas.&lt;br/&gt;&lt;br/&gt;2. Don't bother if people live in fear.&lt;br/&gt;&lt;br/&gt;3. Do individual brainstorming before and after group sessions.&lt;br/&gt;&lt;br/&gt;4. Brainstorming sessions are worthless unless they are woven with other work practices.&lt;br/&gt;&lt;br/&gt;5. Brainstorming requires skill and experience both to do and, especially, to facilitate.&lt;br/&gt;&lt;br/&gt;6. A good brainstorming session is competitive—in the right way.&lt;br/&gt;&lt;br/&gt;7. Use brainstorming sessions for more than just generating good ideas.&lt;br/&gt;&lt;br/&gt;8. Follow the rules, or don't call it a brainstorm.&lt;br/&gt;&lt;br/&gt;Read more here - &lt;a href='http://www.businessweek.com/innovate/content/jul2006/id20060726_517774.htm?chan=innovation_innovation+++design_innovation+and+design+lead'&gt;http://www.businessweek.com/&lt;wbr/&gt;innovate/content/jul2006/&lt;wbr/&gt;id20060726_517774.htm?chan=&lt;wbr/&gt;innovation_innovation+++&lt;wbr/&gt;design_innovation+and+design+&lt;wbr/&gt;lead&lt;/a&gt;&lt;/p&gt;in reference to: &lt;p&gt;&lt;blockquote&gt;"8. Follow the rules, or don't call it a brainstorm."&lt;br/&gt;- &lt;a href='http://www.businessweek.com/innovate/content/jul2006/id20060726_517774.htm?chan=innovation_innovation+++design_innovation+and+design+lead'&gt;Eight Tips for Better Brainstorming&lt;/a&gt; (&lt;a href='http://www.google.com/sidewiki/entry/sharma.raghvendra/id/Cj9LEXO2jFnagHfWogJSsfXrXYo'&gt;view on Google Sidewiki&lt;/a&gt;)&lt;/blockquote&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-7000439570244469668?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/7000439570244469668/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2010/09/tips-for-brainstorming.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/7000439570244469668" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/7000439570244469668" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/KbSCq8McX0c/tips-for-brainstorming.html" title="Tips for brainstorming..." /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2010/09/tips-for-brainstorming.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-3031962814593058692.post-4441258238038184561</id><published>2010-09-08T17:29:00.001+05:30</published><updated>2010-09-13T06:41:46.492+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="mysql" /><category scheme="http://www.blogger.com/atom/ns#" term="InfoBright" /><title type="text">Big help...</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I wanted to get my table sizes in infobright, and this page came to my help...&lt;br /&gt;&lt;br /&gt;SELECT table_schema,table_name,&lt;wbr&gt;&lt;/wbr&gt;engine, table_rows, avg_row_length, &lt;br /&gt;(data_length+index_length)/&lt;wbr&gt;&lt;/wbr&gt;1024/1024 as total_mb,(data_length)/1024/&lt;wbr&gt;&lt;/wbr&gt;1024 as data_mb, &lt;br /&gt;(index_length)/1024/1024 as index_mb, CURDATE() AS today  &lt;br /&gt;FROM information_schema.tables &lt;br /&gt;WHERE table_schema='mySchemaName' &lt;br /&gt;ORDER BY 7 DESC&lt;br /&gt;&lt;br /&gt;Thanks Ron...&lt;br /&gt;in reference to: &lt;a href="http://ronaldbradford.com/blog/calculating-your-database-size-2009-09-25/"&gt;Calculating your database size | MySQL Expert | MySQL Performance | MySQL Consulting&lt;/a&gt; (&lt;a href="http://www.google.com/sidewiki/entry/sharma.raghvendra/id/cIm9DnZFm78IBvNV1JetsU1JIBw"&gt;view on Google Sidewiki&lt;/a&gt;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3031962814593058692-4441258238038184561?l=tech.sraghav.in' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://tech.sraghav.in/feeds/4441258238038184561/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://tech.sraghav.in/2010/09/big-help.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/4441258238038184561" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3031962814593058692/posts/default/4441258238038184561" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/techraghav/~3/3s3j_tOd8A4/big-help.html" title="Big help..." /><author><name>Raghav</name><uri>http://www.blogger.com/profile/18180479938693760392</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><feedburner:origLink>http://tech.sraghav.in/2010/09/big-help.html</feedburner:origLink></entry></feed>

