<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6706809284159442516</id><updated>2012-01-30T22:08:17.326-08:00</updated><category term='Documentum'/><category term='programming puzzle.'/><category term='Performance'/><category term='MySQL'/><category term='Project Management'/><category term='java'/><category term='authentication'/><category term='Database'/><category term='Managing resources'/><category term='programming'/><category term='single sign on'/><category term='Tiff to Pdf'/><category term='Humor'/><category term='XML'/><category term='webtop'/><category term='Saving electricity'/><category term='document format conversion'/><title type='text'>Ananyo's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-8918032068554998180</id><published>2011-03-23T11:44:00.000-07:00</published><updated>2011-03-28T10:38:42.781-07:00</updated><title type='text'>My Thoughts on Technical Interviews-Part 1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-8C9IuO9V7UM/TZDG2gitvSI/AAAAAAAAAb4/T335iNSmgZ8/s1600/image-interview-cartoon.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 304px;" src="http://2.bp.blogspot.com/-8C9IuO9V7UM/TZDG2gitvSI/AAAAAAAAAb4/T335iNSmgZ8/s320/image-interview-cartoon.jpg" alt="" id="BLOGGER_PHOTO_ID_5589185777317559586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.It is the most important aspect of hiring technical talent(backbone of any technology organization) hence requires standardization.&lt;br /&gt;&lt;br /&gt;What I mean by standardization is to maintain a degree of difficulty,ranking of candidate based on difference aspect of that particular  technology,exclusion of certain type of questions (both technical  and non technical) etc.&lt;br /&gt;&lt;br /&gt;2.Standard criteria for being eligible as interviewer.(Years of experience,appraisal rating etc.)&lt;br /&gt;&lt;br /&gt;3.Presence of training academy for budding interviewers within the organization.&lt;br /&gt;&lt;br /&gt;4.Interviewers need to pass specific tests after training in the Interview Training academy in order to be eligible for taking interviews.&lt;br /&gt;&lt;br /&gt;5.Interviewers should be rewarded for taking interviews.&lt;br /&gt;&lt;br /&gt;6.Interviewers should be held accountable for the candidates they select.(how I dont know.Need your suggestion regarding this).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-8918032068554998180?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/8918032068554998180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=8918032068554998180' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/8918032068554998180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/8918032068554998180'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2011/03/my-thoughts-on-technical-interviews.html' title='My Thoughts on Technical Interviews-Part 1'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-8C9IuO9V7UM/TZDG2gitvSI/AAAAAAAAAb4/T335iNSmgZ8/s72-c/image-interview-cartoon.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-1710911724080926751</id><published>2011-02-20T10:00:00.000-08:00</published><updated>2011-03-13T09:36:22.848-07:00</updated><title type='text'>Why we can't produce WOW effect!!!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-lSpvChWq5ls/TXzyeWAxxgI/AAAAAAAAAbc/XiUH72RG15Y/s1600/frustration.cartoon.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 300px; height: 222px;" src="http://1.bp.blogspot.com/-lSpvChWq5ls/TXzyeWAxxgI/AAAAAAAAAbc/XiUH72RG15Y/s320/frustration.cartoon.jpg" alt="" id="BLOGGER_PHOTO_ID_5583604241151411714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Well... simply because with quality of resources (human,financial and time)  it can't be done.We work in an industry in which most of the professionals are average.Few are above average,fewer are good and microscopic number are real good(extraordinary i mean to say). Less money is charged to the customer,very tight schedules are followed,and softwares are produced which 'does the job'.&lt;br /&gt;&lt;br /&gt;Now,with the mass usage of websites like facebook,google products etc, expectations of users has increased for good. They are not happy with page refresh,time lags between request-response etc.They are demanding more.Meeting there demands are problematic....due to the obvious reasons mentioned above.&lt;br /&gt;&lt;br /&gt;So is this the time to accept the truth and try hard...&lt;br /&gt;or are we still thinking of producing that WOW without trying..&lt;br /&gt;or in that case not thinking at all???&lt;br /&gt;Well I simply dont know.&lt;br /&gt;&lt;br /&gt;Sorry guys if I offend someone.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-1710911724080926751?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/1710911724080926751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=1710911724080926751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/1710911724080926751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/1710911724080926751'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2011/02/why-we-cant-produce-wow-effect.html' title='Why we can&apos;t produce WOW effect!!!'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-lSpvChWq5ls/TXzyeWAxxgI/AAAAAAAAAbc/XiUH72RG15Y/s72-c/frustration.cartoon.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-3056648268177625680</id><published>2010-08-26T20:11:00.000-07:00</published><updated>2011-03-23T11:44:03.397-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>Bus Factor</title><content type='html'>Recently I came across a pretty interesting term called &lt;span style="font-weight: bold;"&gt;Bus Factor&lt;/span&gt; in a software project.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CubSZubu67Y/THcvFMtGWsI/AAAAAAAAAaw/o6weUDw9tg4/s1600/person_avoiding_being_struck_by_bus_CoolClips_peop3703.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 259px;" src="http://4.bp.blogspot.com/_CubSZubu67Y/THcvFMtGWsI/AAAAAAAAAaw/o6weUDw9tg4/s320/person_avoiding_being_struck_by_bus_CoolClips_peop3703.jpg" alt="" id="BLOGGER_PHOTO_ID_5509924435467328194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;According to &lt;a href="http://en.wikipedia.org/wiki/Bus_factor"&gt;Wikipedia&lt;/a&gt;,the bus factor is the total number of key developers who would need to be incapacitated, (as by getting hit by a bus) to send the project into such disarray that it would not be able to proceed.&lt;br /&gt;&lt;br /&gt;Obviously,for project managers,its important to increase the &lt;span style="font-weight: bold;"&gt;Bus Factor&lt;/span&gt; as much as possible....and for developers (like me) its important to try to keep it as low as possible :) .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-3056648268177625680?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/3056648268177625680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=3056648268177625680' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/3056648268177625680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/3056648268177625680'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2010/08/bus-factor.html' title='Bus Factor'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_CubSZubu67Y/THcvFMtGWsI/AAAAAAAAAaw/o6weUDw9tg4/s72-c/person_avoiding_being_struck_by_bus_CoolClips_peop3703.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-795995327302249598</id><published>2010-01-05T22:23:00.001-08:00</published><updated>2010-01-06T00:28:41.148-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webtop'/><category scheme='http://www.blogger.com/atom/ns#' term='Documentum'/><title type='text'>Action Preconditions in Documentum</title><content type='html'>Action precondition classes checks whether an action can be performed or not. Action precondition classes renders an action control as enabled or disabled. The structure of an action precondition class is as follows:&lt;br /&gt;     public class TestActionPrecondition implements IActionPrecondition&lt;br /&gt;     {&lt;br /&gt; public String[] getRequiredParams()&lt;br /&gt; {&lt;br /&gt;     return new String[0];&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public boolean queryExecute(String strAction, IConfigElement config, ArgumentList arg, Context context, Component component)&lt;br /&gt; {&lt;br /&gt;     boolean isActionEnabled = false;&lt;br /&gt;     String object_name=(String)arg.get(“object_name”);&lt;br /&gt;     return isActionEnabled;&lt;br /&gt; }&lt;br /&gt;     }  &lt;br /&gt;                     &lt;br /&gt;An action precondition class implements IActionPrecondition interface and overrides the queryExecute method of that interface. queryExecute() method returns a boolean value which determines whether the corresponding action will be enabled or disabled.&lt;br /&gt;&lt;br /&gt;The corresponding action xml will be :&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&amp;lt;config&amp;gt;&lt;br /&gt; &amp;lt;scope&amp;gt;&lt;br /&gt;  &amp;lt;action id="test_action"&amp;gt;&lt;br /&gt;        &amp;lt;params&amp;gt;&lt;br /&gt;         &amp;lt;param name="object_name" required="true"/&amp;gt;&lt;br /&gt;        &lt;br /&gt;  &amp;lt/params&amp;gt;&lt;br /&gt;       &amp;lt;preconditions&amp;gt;&lt;br /&gt;        &amp;lt;precondition class="com.poc.TestActionPrecondition"&amp;gt;&amp;lt/precondition&amp;gt;        &lt;br /&gt;        &amp;lt/preconditions&amp;gt;&lt;br /&gt;        &amp;lt;execution class="com.documentum.web.formext.action.LaunchComponent"&amp;gt;&lt;br /&gt;           &amp;lt;component&amp;gtreport_history_component&amp;lt/component&amp;gt;&lt;br /&gt;           &amp;lt;navigation&amp;gtjump&amp;lt/navigation&amp;gt;&lt;br /&gt;        &amp;lt/execution&amp;gt;&lt;br /&gt;      &amp;lt/action&amp;gt;&lt;br /&gt; &amp;lt/scope&amp;gt;&lt;br /&gt;&amp;lt/config&amp;gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;The jsp part of the component from where the action will be called is described below. An action link is used for the purpose:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;dmf:datagridRow height='15' altclass="row1" cssclass="row2" width="100%"&amp;gt;&lt;br /&gt;  &amp;lt;td width="10%" align="center"&amp;gt;&lt;br /&gt;  &amp;lt;dmfx:actionlink name="user_report_view" action='test_action'   showifinvalid="true" datefield="process_name" &amp;gt;&lt;br /&gt;&amp;lt;dmf:argument name="object_name" datafield="object_name"/&amp;gt;&lt;br /&gt;  &amp;lt/dmfx:actionlink&amp;gt;&lt;br /&gt; &amp;lt/td&amp;gt;&lt;br /&gt;&amp;lt/dmf:datagridRow&amp;gt;&lt;br /&gt;&lt;br /&gt;A typical scenario of using action precondition can be a requirement where roles are created dynamically and based on those roles action links are getting generated dynamically. The logged in user will have access to the action link(s) iff that user is present in the corresponding role(s).&lt;br /&gt;    For roles which are not created dynamically and are fixed, documentum’s out of box RolePrecondition can also be used. Also, just by mentioning scope=&amp;lt;role_name&amp;gt; , in action xml, role based action control enable/disable feature can be achieved.&lt;br /&gt;&lt;br /&gt;CAUTION: Please avoid putting codes that access the docbase(for e.g dql queries and dfc api call) as much as possible in queryExecute() method because the method will get executed for each and every action links generated .So that can be a performance bottleneck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-795995327302249598?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/795995327302249598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=795995327302249598' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/795995327302249598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/795995327302249598'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2010/01/action-preconditions-in-documentum.html' title='Action Preconditions in Documentum'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-167016393244590144</id><published>2009-06-10T22:34:00.000-07:00</published><updated>2009-12-29T07:34:34.211-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Documentum'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Firing query inside a loop is a sin</title><content type='html'>Please donot fire a query inside a loop.Otherwise the performance problem your application will face is unimaginable. There is &lt;strong&gt;ALWAYS&lt;/strong&gt; a way around.You can always solve the problem by firing the query outside the loop(using 'join' or '&lt;a href="http://robineast.wordpress.com/2007/01/23/dealing-with-yacc-stack-overflow/"&gt;in&lt;/a&gt;' statement or whatever).It doesn't matter if you need to write a complex and lengthy code to solve the problem by firing the query outside the loop.But please please don't fire it inside the loop.Otherwise almighty(a.k.a customer) will never forgive you.&lt;br /&gt;&lt;br /&gt;Note:Be careful while using '&lt;span style="font-weight: bold;"&gt;in&lt;/span&gt;' statement.If tokens inside the 'in'  exceeds 490 in number,&lt;span style="font-weight: bold;"&gt;yacc Overflow Exception&lt;/span&gt; will occur. But there is a smart way around. Refer to following &lt;a href="http://robineast.wordpress.com/2007/01/23/dealing-with-yacc-stack-overflow/"&gt;Robin's post.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-167016393244590144?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/167016393244590144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=167016393244590144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/167016393244590144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/167016393244590144'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2009/06/firing-query-inside-loop-is-sin.html' title='Firing query inside a loop is a sin'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-2000905280576692422</id><published>2009-01-30T01:46:00.000-08:00</published><updated>2009-12-29T07:57:05.756-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Documentum'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Excessive Logging Sucks up Application Performance</title><content type='html'>&lt;div&gt;I have seen some people performing logging operation unnessasarily.According to them,logging helps to idenify bugs quickly.But excessive use of logging can have a very serious impact on the performance of the application.I think if some errors occour,then those can be easily detected by logging the exception stacktrace.So I think,logging only stack trace info in catch section (java code) can help in improving performance a lot(most of the bugs can be traced from the error stack).Also , logging start and end of  methods gives a good idea about the program flow.Apart from that logging should be avoided as much as possible because logging requires disk access which is always an expensive operation in terms of performance.&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/6706809284159442516-2000905280576692422?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/2000905280576692422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=2000905280576692422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/2000905280576692422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/2000905280576692422'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2009/01/excessive-logging-sucks-up-application.html' title='Excessive Logging Sucks up Application Performance'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-4231486866539299257</id><published>2008-09-11T00:03:00.000-07:00</published><updated>2009-12-29T07:42:55.278-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Documentum'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='single sign on'/><title type='text'>Ticket Based Authentication for Documentum-Helps to Implement Single Sign On</title><content type='html'>I feel ticket based authentication for documentum can help in implementing single signon process from another application B. An intermediate servlet between Documentum and that application can do the trick. The steps are as follows:&lt;br /&gt;1.Create a super user account in documentum(if not already present).&lt;br /&gt;1. Create user accounts with identical username in documentum as present in application B.(You can use jobs for that)&lt;br /&gt;2.Keep the Documentum super user password encrypted in a properties file.&lt;br /&gt;3. Fetch the Username of the user logged into the application B using application B’s API into the servlet.&lt;br /&gt;4.Get the documentum super user session in the servlet.&lt;br /&gt;5.Use documentum super user session to get the documentum login ticket of the user(username fetched using app B's API) logged in to the application B.&lt;br /&gt;The servlet will then launch the webtop using this login ticket.&lt;br /&gt;&lt;br /&gt;The servlet code should be like this:&lt;br /&gt;public class SSOServlet extends HttpServlet&lt;br /&gt;{&lt;br /&gt;   IDfSession session=null;&lt;br /&gt;   IDfSessionManager sessMgr=null;&lt;br /&gt;   private String superUserName="admin"; //super user name is hardcoded(can be kept in properties file)&lt;br /&gt;   private String superUserPwd="adminpwd"; //super user password is hardcoded(can be kept in properties file)&lt;br /&gt;&lt;br /&gt;  private String username="test_user ";//username should come for application B API&lt;br /&gt;&lt;br /&gt;   private String docbaseName="Test_DocBase";&lt;br /&gt;   private IDfSession getDfSession() throws DfException&lt;br /&gt;   {&lt;br /&gt;         IDfClientX  moClientX =new DfClientX();&lt;br /&gt;         IDfClient client = moClientX.getLocalClient();&lt;br /&gt;         //create an IDfLoginInfo object named "loginInfoObj"&lt;br /&gt;         IDfLoginInfo loginInfoObj = moClientX.getLoginInfo();&lt;br /&gt;         loginInfoObj.setUser(superUserName);&lt;br /&gt;         loginInfoObj.setPassword(superUserPwd);&lt;br /&gt;         loginInfoObj.setDomain("");&lt;br /&gt;         sessMgr= client.newSessionManager();&lt;br /&gt;         sessMgr.setIdentity(docbaseName, loginInfoObj);&lt;br /&gt;         session = sessMgr.getSession(docbaseName);&lt;br /&gt;         return session;&lt;br /&gt;     }&lt;br /&gt;       &lt;br /&gt;     public void doGet(HttpServletRequest request,HttpServletResponse response)   throws ServletException, IOException&lt;br /&gt;{&lt;br /&gt; PrintWriter out = response.getWriter();&lt;br /&gt; try&lt;br /&gt; {&lt;br /&gt;   &lt;span style="font-weight: bold;"&gt;String loginTicket=getDfSession().getLoginTicketForUser(username);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     String url="/webtop/component/main?ticket="+loginTicket+" &amp;amp;username="+username+" &amp;amp;docbase="+ docbaseName;&lt;/span&gt;&lt;br /&gt;   response.sendRedirect(url);&lt;br /&gt; }&lt;br /&gt;  catch(DfException dfe)&lt;br /&gt;  {&lt;br /&gt; out.println("Inside Exception");&lt;br /&gt;   dfe.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;      &lt;br /&gt;This servlet should be invoked from application B. The servlet will launch the webtop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-4231486866539299257?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/4231486866539299257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=4231486866539299257' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/4231486866539299257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/4231486866539299257'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2008/09/ticket-based-authentication-for.html' title='Ticket Based Authentication for Documentum-Helps to Implement Single Sign On'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-5367850332447939868</id><published>2008-07-30T23:54:00.000-07:00</published><updated>2008-08-01T07:30:30.096-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='document format conversion'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Tiff to Pdf'/><title type='text'>Tiff to PDF conversion Using Java</title><content type='html'>Recently I had converted tiff to pdf using java and IText API.Both the jar as well &lt;br /&gt;as source code can be found in the following urls:&lt;br /&gt;http://www.lowagie.com/iText/download.html&lt;br /&gt;http://itextdocs.lowagie.com/tutorial/objects/images/tiff/index.php&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-5367850332447939868?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/5367850332447939868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=5367850332447939868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/5367850332447939868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/5367850332447939868'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2008/07/tiff-to-pdf-conversion.html' title='Tiff to PDF conversion Using Java'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-1042924733234320726</id><published>2008-07-10T00:33:00.000-07:00</published><updated>2008-07-11T01:58:10.816-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programming puzzle.'/><title type='text'>Solution to a coding puzzle .</title><content type='html'>Recently I came across a coding puzzle posted in Cedric Beust's weblog(http://beust.com/weblog/).The puzzle is:&lt;br /&gt;&lt;br /&gt;Write a counter function that counts from 1 to max but only returns numbers whose digits don't repeat. &lt;br /&gt;&lt;br /&gt;For example, part of the output would be: &lt;br /&gt;&lt;br /&gt;8, 9, 10, 12 (11 is not valid) &lt;br /&gt;98, 102, 103 (99, 100 and 101 are not valid) &lt;br /&gt;5432, 5436, 5437 (5433, 5434 and 5435 are not valid) &lt;br /&gt;Also: &lt;br /&gt;Display the biggest jump (in the sequences above, it's 4: 98 -&gt; 102) &lt;br /&gt;Display the total count of numbers &lt;br /&gt;Give these two values for max=10000 &lt;br /&gt; &lt;br /&gt;Though I know that my solution is not that good because I am converting the numbers to string for solving the problem, but still its working....Please post a better approach if you have any......&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class Puzzle&lt;br /&gt;{&lt;br /&gt;   //Method for comparing digits of a number with each other&lt;br /&gt;    private boolean compareDigits(int number)&lt;br /&gt;    {&lt;br /&gt;        String digitString=null; //holds string representation of numbers.&lt;br /&gt;        digitString=new Integer(number).toString();&lt;br /&gt;        boolean flag=true;&lt;br /&gt;        for(int strcount=0;strcount&amp;ltdigitString.length();strcount++)&lt;br /&gt;        {&lt;br /&gt;            for(int temp=strcount+1;temp&amp;ltdigitString.length();temp++)&lt;br /&gt;            {&lt;br /&gt;                if(digitString.substring(strcount,strcount+1).equalsIgnoreCase(digitString.substring(temp,temp+1)))&lt;br /&gt;                {&lt;br /&gt;                    flag=false;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        return flag;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public static void main(String []args)&lt;br /&gt;    {&lt;br /&gt;        int max=new Integer(args[0]).intValue();//holds the maximum number&lt;br /&gt;        int counter=0;   //holds the count of numbers printed&lt;br /&gt;        int biggestJump=0;&lt;br /&gt;        int prevInteger=0;&lt;br /&gt;        Puzzle puzzleObj=new Puzzle();&lt;br /&gt;        for(int num=1;num&amp;lt=max;num++)&lt;br /&gt;        {&lt;br /&gt;            boolean isPrintable=puzzleObj.compareDigits(num); //isPrintable is true if the number doesn't have any repeating digit&lt;br /&gt;            if(isPrintable)&lt;br /&gt;            {&lt;br /&gt;                if(biggestJump&lt;(num-prevInteger))&lt;br /&gt;                {&lt;br /&gt;                   biggestJump=num-prevInteger;&lt;br /&gt;                }&lt;br /&gt;                prevInteger=num;&lt;br /&gt;                System.out.println(num);&lt;br /&gt;                counter++;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        System.out.println("Total count of numbers is:"+counter);&lt;br /&gt;        System.out.println("Biggest Jump="+biggestJump);&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-1042924733234320726?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/1042924733234320726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=1042924733234320726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/1042924733234320726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/1042924733234320726'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2008/07/solution-to-coding-puzzle.html' title='Solution to a coding puzzle .'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-5500821738342217112</id><published>2008-06-24T03:28:00.000-07:00</published><updated>2008-06-24T03:33:33.598-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Saving electricity'/><category scheme='http://www.blogger.com/atom/ns#' term='Managing resources'/><title type='text'>About keeping PCs ON while leaving from office</title><content type='html'>I have seen many people keeping their computers ON while leaving for the day. A lot of electricity can be saved if we all shut down our PCs before leaving. So its my humble request to all of you people to shutdown your PCs before leaving for home.We can do this small thing.Isn't it??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-5500821738342217112?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/5500821738342217112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=5500821738342217112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/5500821738342217112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/5500821738342217112'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2008/06/about-keeping-pcs-on-while-leaving-from.html' title='About keeping PCs ON while leaving from office'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-2429669094190321949</id><published>2008-04-17T23:31:00.000-07:00</published><updated>2009-06-16T09:54:20.458-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Documentum'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Parsing XML present within Documentum Server</title><content type='html'>Here is the Java method for parsing an XML file present within documentum. In this case JDOM has been used for the parsing purpose . Other Document parsers can also be used.&lt;br /&gt;&lt;br /&gt;/*The argument of the method is the documentum session object and r_object_id of the xml document. The method returns a org.jdom.Document object which can then be used to parse the XML file (ref: &lt;a href="http://www.jdom.org/"&gt;http://www.jdom.org/&lt;/a&gt;) .*/&lt;br /&gt;&lt;br /&gt;private Document parseXML(IDfSession losession,String r_object_id)&lt;br /&gt;{&lt;br /&gt;IDfSysObject xmlObj =null;&lt;br /&gt;Document document=null;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;xmlObj =(IDfSysObject) losession.getObject(new DfId(r_object_id));&lt;br /&gt;System.out.println("objectname= "+xmlObj.getObjectName());&lt;br /&gt;ByteArrayInputStream bis=xmlObj.getContent();&lt;br /&gt;/*getContent() method returns a ByteArrayInputStream object of the file present in&lt;br /&gt;content server. This method is also helpful in reading files having other extensions. */&lt;br /&gt;SAXBuilder builder = new SAXBuilder();&lt;br /&gt;document = builder.build(bis);&lt;br /&gt;}&lt;br /&gt;catch(Exception e)&lt;br /&gt;{&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;finally&lt;br /&gt;{&lt;br /&gt;return document;&lt;br /&gt;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-2429669094190321949?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/2429669094190321949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=2429669094190321949' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/2429669094190321949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/2429669094190321949'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2008/04/parsing-xml-present-within-documentum.html' title='Parsing XML present within Documentum Server'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6706809284159442516.post-172976615767384919</id><published>2007-09-23T06:03:00.000-07:00</published><updated>2008-06-24T03:35:28.669-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>MySQL Error Number 1045 ( Access denied for user username@servername )</title><content type='html'>&lt;span style="color:#000000;"&gt;Recently I faced this error while logging in to MySQL Query Browser after installing MySQL Server.&lt;br /&gt;&lt;br /&gt;The solution is as follows:&lt;br /&gt;&lt;br /&gt;1. Server,username,password is stored in user table of a database named mysql. Login to the MySQL CommandLine Client and run the following query :&lt;br /&gt;select host,user,password from mysql.user; (password is encripted)&lt;br /&gt;&lt;br /&gt;2.Grant permision to the perticular user who wants to login by the following command.&lt;br /&gt;GRANT ALL ON database.* TO &lt;/span&gt;&lt;span style="color:#000000;"&gt;username@server_name&lt;/span&gt;&lt;span style="color:#000000;"&gt; IDENTIFIED BY password&lt;br /&gt;&lt;br /&gt;e.g: GRANT ALL ON mysql.* TO &lt;/span&gt;&lt;span style="color:#000000;"&gt;'root'@'localhost'&lt;/span&gt;&lt;span style="color:#000000;"&gt; IDENTIFIED BY '123india' ;&lt;br /&gt;Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;&lt;br /&gt;NOTE: If you dont know the password just enter any password of your choice in the "GRANT ALL" command above.That will be your new password.&lt;br /&gt;&lt;br /&gt;Any sort of suggestion or comment is welcome.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6706809284159442516-172976615767384919?l=ananyobanerjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ananyobanerjee.blogspot.com/feeds/172976615767384919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6706809284159442516&amp;postID=172976615767384919' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/172976615767384919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6706809284159442516/posts/default/172976615767384919'/><link rel='alternate' type='text/html' href='http://ananyobanerjee.blogspot.com/2007/09/mysql-error-number-1045-access-denied.html' title='MySQL Error Number 1045 ( Access denied for user username@servername )'/><author><name>Ananyo</name><uri>http://www.blogger.com/profile/00548009235871436881</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_CubSZubu67Y/SjfKYRzUYTI/AAAAAAAAAS4/UcY2rdUzhLw/S220/another_bad_pics_of_mine.JPG'/></author><thr:total>1</thr:total></entry></feed>
