<?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-1616206987206690523</id><updated>2012-01-27T02:43:02.414-08:00</updated><category term='mobile'/><category term='IBM'/><category term='java7'/><category term='JazzHub'/><category term='Rational Project Conductor'/><category term='ClearQuest'/><category term='javascript'/><category term='eclipsecon'/><category term='research'/><category term='static analysis'/><category term='REST'/><category term='acronyms'/><category term='dimension'/><category term='utf-8'/><category term='jdt tips'/><category term='jdt'/><category term='open source'/><category term='Report Server'/><category term='tip'/><category term='netbeans'/><category term='Reporting'/><category term='MCIF'/><category term='star schema'/><category term='dojo'/><category term='android'/><category term='Jazz'/><category term='RTC'/><category term='Rational Insight'/><category term='git'/><category term='OSLC'/><category term='ibminnovate'/><category term='fact'/><category term='planeteclipse'/><category term='Rational'/><category term='Rational Focal Point'/><category term='eclipse'/><category term='eclipseday'/><category term='musings'/><category term='pde'/><category term='jsdt'/><category term='hashing'/><category term='aptana'/><category term='BIRT'/><category term='e4'/><category term='Cognos'/><title type='text'>The Coder Lounge</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>77</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8573850622558615234</id><published>2012-01-26T09:47:00.000-08:00</published><updated>2012-01-26T09:47:47.812-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><category scheme='http://www.blogger.com/atom/ns#' term='static analysis'/><title type='text'>Weird code pattern in Eclipse SDK</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;In recent Juno milestones JDT has added several new static analysis capabilities - resource leak detection (Juno M3), annotation based null analysis (Juno M4), null analysis for fields (Juno M5). This week I have been testing these new features on the entire Eclipse SDK source code.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;While there are quite a few 'gems', the following code pattern occurs quite frequently. If the object can be null at the first if condition, how is it magically&amp;nbsp;guaranteed&amp;nbsp;to be non-null at the second if statement? &amp;nbsp;:-)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-dOp3pEh1YgM/TyGOfUB907I/AAAAAAAAAc0/qVI7xiHEuVw/s1600/weird-code-pattern.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-dOp3pEh1YgM/TyGOfUB907I/AAAAAAAAAc0/qVI7xiHEuVw/s1600/weird-code-pattern.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;As Stephan mentioned in his &lt;a href="http://blog.objectteams.org/2012/01/help-the-jdt-compiler-helping-you-1-resource-leaks/"&gt;blog&lt;/a&gt;&amp;nbsp;today -&amp;nbsp;Help the JDT Compiler helping you. Please start using the new static analysis options and report any issues you find. In the process you will certainly make improvements to your code as well.&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/1616206987206690523-8573850622558615234?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8573850622558615234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2012/01/weird-code-pattern-in-eclipse-sdk.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8573850622558615234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8573850622558615234'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2012/01/weird-code-pattern-in-eclipse-sdk.html' title='Weird code pattern in Eclipse SDK'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-dOp3pEh1YgM/TyGOfUB907I/AAAAAAAAAc0/qVI7xiHEuVw/s72-c/weird-code-pattern.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-1491196348467773525</id><published>2011-12-19T11:29:00.000-08:00</published><updated>2011-12-19T11:29:46.945-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Active JDT Committers</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-fRaZ5PMpans/Tu99c26o3rI/AAAAAAAAAcY/Q7T7z0e1Wu8/s1600/jdt-active-committers.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-fRaZ5PMpans/Tu99c26o3rI/AAAAAAAAAcY/Q7T7z0e1Wu8/s1600/jdt-active-committers.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;In my talks on JDT I generally include a slide with the above image. I thought I should also write a post and include the following bits of (interesting) information about the committers.&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;JDT committers are spread over 3 continents, 4 countries and 5 cities.&lt;/li&gt;&lt;li&gt;More than half (6 out of 11) of active committers are based out of Bangalore, India.&lt;/li&gt;&lt;li&gt;Dani and Olivier have been there since the &lt;a href="http://relengofthenerds.blogspot.com/2011/11/eclipsecon-europe-presentations-now.html"&gt;very beginning&lt;/a&gt;&amp;nbsp;of Eclipse, and Markus has been a JDT committer since 2003.&lt;/li&gt;&lt;li&gt;Srikanth has been working on compilers and related technology forever.&lt;/li&gt;&lt;li&gt;In all eight to nine languages can be spoken in the team. Even the commiters in Bangalore speak many different languages, for instance&amp;nbsp;I can communicate in my mother&amp;nbsp;tongue, Hindi, only with Ayush.&amp;nbsp;Hence, we pretty much communicate in English :-)&lt;/li&gt;&lt;li&gt;Unfortunately the team is dominated by men with Raksha being the only member of the fairer sex.&lt;/li&gt;&lt;li&gt;Ayush at 24 is the youngest committer in the team and I come a close second at 25.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-1491196348467773525?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/1491196348467773525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/12/active-jdt-committers.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1491196348467773525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1491196348467773525'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/12/active-jdt-committers.html' title='Active JDT Committers'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-fRaZ5PMpans/Tu99c26o3rI/AAAAAAAAAcY/Q7T7z0e1Wu8/s72-c/jdt-active-committers.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8330334298816082863</id><published>2011-12-06T09:14:00.001-08:00</published><updated>2011-12-06T11:58:43.628-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><category scheme='http://www.blogger.com/atom/ns#' term='static analysis'/><title type='text'>Annotation based null analysis with JDT</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Eclipse Juno M4 includes support for annotation based null analysis. To take advantage of the feature enable the preference shown below and start using the default annotations mentioned in the text fields.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-oidwJdnLep4/Tt5N6A4Ck6I/AAAAAAAAAcI/61uOGko0iDc/s1600/annotation-based-null-analysis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-oidwJdnLep4/Tt5N6A4Ck6I/AAAAAAAAAcI/61uOGko0iDc/s1600/annotation-based-null-analysis.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;You will also notice that all the null analysis related options have moved to a new group on the preference page.&lt;br /&gt;&lt;br /&gt;As usual feedback is extremely welcome especially in form of bug reports :-)&lt;br /&gt;&lt;br /&gt;UPDATE: JDT provides default annotations which are shipped in org.eclipse.jdt.annotation bundle with the Eclipse SDK. However you are free to use your own annotation types, just specify the custom annotations in the preferences.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8330334298816082863?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8330334298816082863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/12/annotation-based-null-analysis-with-jdt.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8330334298816082863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8330334298816082863'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/12/annotation-based-null-analysis-with-jdt.html' title='Annotation based null analysis with JDT'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-oidwJdnLep4/Tt5N6A4Ck6I/AAAAAAAAAcI/61uOGko0iDc/s72-c/annotation-based-null-analysis.png' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-7884835331526584954</id><published>2011-12-03T11:33:00.001-08:00</published><updated>2011-12-03T12:06:30.048-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>CodingSpectator: Research study on Eclipse</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;These guys have been contributing to JDT by reporting a bunch of bugs based on their findings, so I thought I should talk about them :)&lt;br /&gt;&lt;blockquote class="tr_bq" style="text-align: justify;"&gt;The aim of&amp;nbsp;&lt;a href="http://codingspectator.cs.illinois.edu/"&gt;CodingSpectator&lt;/a&gt;&amp;nbsp;project is to&amp;nbsp;study how developers interact with the Eclipse IDE, by collecting and analyzing usage data. CodingSpectator has been developed at Ralph Johnson’s research group by the following graduate students: Mohsen Vakilian, Nicholas Chen, Stas Negara, Roshanak Zilouchian and Balaji Ambresh. Ralph is a co-author of the seminal book on design patterns (GoF) and his research group has a history of important contributions to IDEs. CodingSpectator monitors programming interactions non-intrusively in the background and periodically uploads it to a secure server at UIUC.&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;They have presented some of their findings in this technical report -&amp;nbsp;&lt;a href="https://www.ideals.illinois.edu/handle/2142/27730"&gt;Use, Disuse, and Misuse of Automated Refactorings&lt;/a&gt;. Based on the same report they have reported a number of insightful bugs against JDT and also provided suggestions on how some of the refactorings can be improved.&amp;nbsp;A few bugs have already been fixed. In addition their technical report also improved my understanding of an average JDT user's behavior. Thanks guys!&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Probably the biggest challenge with a usage study is finding a good number of participants. They are looking for more participants in order to continue their research study. If you’re interested in helping the researchers out, you could install &lt;a href="http://codingspectator.cs.illinois.edu/"&gt;CodingSpectator&lt;/a&gt;.&amp;nbsp;&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/1616206987206690523-7884835331526584954?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/7884835331526584954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/12/codingspectator-research-study-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7884835331526584954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7884835331526584954'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/12/codingspectator-research-study-on.html' title='CodingSpectator: Research study on Eclipse'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8843372242088190797</id><published>2011-10-03T02:46:00.000-07:00</published><updated>2011-12-06T09:29:42.984-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><category scheme='http://www.blogger.com/atom/ns#' term='static analysis'/><title type='text'>Detecting resource leaks with Eclipse JDT</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You can now detect resource leaks with Eclipse JDT.&amp;nbsp;The following 3 warnings have been added, and the defaults are as shown (this feature is available in I-Builds starting Oct 4 )&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8QsQyoQmwww/Tol7L5-3MQI/AAAAAAAAAZk/0jHKc8Q6u8Q/s1600/preferences.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-8QsQyoQmwww/Tol7L5-3MQI/AAAAAAAAAZk/0jHKc8Q6u8Q/s1600/preferences.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;For the purpose of this analysis, a&amp;nbsp;resource is a local variable of type &lt;i&gt;java.io.Closeable&lt;/i&gt;&amp;nbsp;in pre-Java 7 world&amp;nbsp;and in Java 7 world a resource is a local variable of type&amp;nbsp;&lt;i&gt;java.lang.AutoCloseable&lt;/i&gt;. (Note that in Java 7&amp;nbsp;&lt;i&gt;java.io.Closeable &lt;/i&gt;extends&amp;nbsp;&lt;i&gt;java.lang.AutoCloseable&lt;/i&gt;)&lt;br /&gt;&lt;br /&gt;To take a few examples&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;if close() is never called on the resource a 'Resource is never closed' warning is emitted&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-MT0e3TAIQAc/Tol7Muqj_9I/AAAAAAAAAZs/h_bL5BjL-RQ/s1600/resource-is-never-closed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-MT0e3TAIQAc/Tol7Muqj_9I/AAAAAAAAAZs/h_bL5BjL-RQ/s1600/resource-is-never-closed.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;if close() is called but not on all code paths, the warning indicates the locations where the resource is not closed&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-dxR7NyDhCiM/Tol7MeuBFgI/AAAAAAAAAZo/Jxb52CVlEhM/s1600/reaource-is-not-closed-at-this-location.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-dxR7NyDhCiM/Tol7MeuBFgI/AAAAAAAAAZo/Jxb52CVlEhM/s1600/reaource-is-not-closed-at-this-location.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&amp;nbsp;if a locally created resource is passed to another method, then it cannot be ascertained what that method does with the resource, i.e. the method may or may not close the resource, e.g. in the snippet below a helper method is used to close a resource, however one may also create helper methods to perform other tasks. Hence, in these cases the warning is a 'Potential resource leak' and this warning is not enabled by default.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-dQc_Xvqi7l8/Tol7M0G1u2I/AAAAAAAAAZw/7dV8GMseMhM/s1600/resource-may-not-be-closed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-dQc_Xvqi7l8/Tol7M0G1u2I/AAAAAAAAAZw/7dV8GMseMhM/s1600/resource-may-not-be-closed.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&amp;nbsp;if a resource is correctly closed, and the compiler compliance is 1.7 then Eclipse suggests to use the new try-with-resource statement&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Cjgoiv1bB58/Tol7NcINxWI/AAAAAAAAAZ0/SUSZgj_ohHw/s1600/resource-should-be-managed-by-try-with-resource.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Cjgoiv1bB58/Tol7NcINxWI/AAAAAAAAAZ0/SUSZgj_ohHw/s1600/resource-should-be-managed-by-try-with-resource.png" /&gt;&lt;/a&gt;&lt;/div&gt;Several other cases are also handled, e.g. a resource is returned from a method, a resource variable is reassigned etc.&amp;nbsp;However, we may have missed something, hence&amp;nbsp;&lt;a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT"&gt;bugs&lt;/a&gt;, suggestions and comments are welcome!&lt;br /&gt;&lt;br /&gt;Most of the credit for this feature goes to &lt;a href="http://eclipsecon.org/users/203"&gt;Stephan Herrmann&lt;/a&gt;, in fact I often wonder how he gets time to contribute so much to JDT given that he has a day job and is also the lead of the Eclipse Object Teams Project. Thanks Stephan!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8843372242088190797?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8843372242088190797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/10/detecting-resource-leaks-with-eclipse.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8843372242088190797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8843372242088190797'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/10/detecting-resource-leaks-with-eclipse.html' title='Detecting resource leaks with Eclipse JDT'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-8QsQyoQmwww/Tol7L5-3MQI/AAAAAAAAAZk/0jHKc8Q6u8Q/s72-c/preferences.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-2165881838088058765</id><published>2011-07-28T21:26:00.000-07:00</published><updated>2011-07-28T21:26:54.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='java7'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Java 7 Support in Eclipse 3.7.1, 3.8, 4.2 builds</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;So far the Java 7 support work was done in the BETA_JAVA7 branch. This branch has now been merged to HEAD and R3_7_maintenance. As a result all upcoming 3.7.1, 3.8 and 4.2 builds will fully support Java 7 development.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-2165881838088058765?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/2165881838088058765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/07/java-7-support-in-eclipse-371-38-42.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2165881838088058765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2165881838088058765'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/07/java-7-support-in-eclipse-371-38-42.html' title='Java 7 Support in Eclipse 3.7.1, 3.8, 4.2 builds'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-5282922782415389212</id><published>2011-07-22T03:34:00.000-07:00</published><updated>2011-07-22T03:34:59.527-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='java7'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Java 7 Support in Eclipse JDT (BETA) - Part III</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I have already talked about &lt;a href="http://thecoderlounge.blogspot.com/2011/06/java-7-support-in-eclipse-jdt-beta.html"&gt;adding Java 7 support to your Eclipse 3.7 or 4.1 install&lt;/a&gt;. Last week I also talked about the new features in JDT for &lt;a href="http://thecoderlounge.blogspot.com/2011/07/java-7-support-in-eclipse-jdt-beta-part.html"&gt;Multi-catch&lt;/a&gt;, &lt;a href="http://thecoderlounge.blogspot.com/2011/07/java-7-support-in-eclipse-jdt-beta-part_14.html"&gt;try-with-resources and Simplified Varargs Method Invocation&lt;/a&gt;. Now I will talk about &lt;b&gt;Improved Type Inference for Generic Instance Creation (Diamond)&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;This language change allows explicit type arguments to constructors of parameterized classes to be omitted in many situations. The compiler infers the omitted type arguments based on the expected type.&lt;br /&gt;&lt;br /&gt;The JDT compiler detects &lt;b&gt;redundant specification of type arguments&lt;/b&gt;, which you can remove via Remove type arguments quick fix.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-nw87JKF5w0Q/TilIYp3j6-I/AAAAAAAAAY8/mF0OPd5mNtA/s1600/redundant-specification-of-type-arguments.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-nw87JKF5w0Q/TilIYp3j6-I/AAAAAAAAAY8/mF0OPd5mNtA/s1600/redundant-specification-of-type-arguments.png" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;This warning can be configured as shown below.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-9WU1OmqKRPg/TilIZbV0-yI/AAAAAAAAAZA/gSfAeBXcxkY/s1600/redundant-type-arguments-warning.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-9WU1OmqKRPg/TilIZbV0-yI/AAAAAAAAAZA/gSfAeBXcxkY/s1600/redundant-type-arguments-warning.png" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;You can also &lt;b&gt;insert inferred type arguments&lt;/b&gt; via a quick assist.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-U9B1EWeKXPE/TilIYJFmSPI/AAAAAAAAAY4/QnKbSFwMKQ4/s1600/insert-inferred-type-arguments.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-U9B1EWeKXPE/TilIYJFmSPI/AAAAAAAAAY4/QnKbSFwMKQ4/s1600/insert-inferred-type-arguments.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Where possible, &lt;b&gt;Content assist&lt;/b&gt; inserts diamond instead of explicit type arguments.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Future items&lt;/b&gt;: We plan to show the inferred type arguments right in the constructor hover, see &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=351048"&gt;bug 351048&lt;/a&gt;. In 3.8 we also plan to provide Remove redundant type arguments as a cleanup, see &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=351956"&gt;bug 351956&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Note that the type inference done by the compiler can at times be non-obvious. For example, at first glance the following two methods might appear equivalent, when in fact the one with conditional operator has an error.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-dt5uYAJsDi8/TilIZknuUhI/AAAAAAAAAZE/5v10-KYvqvI/s1600/type-inference-and-conditional-java7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-dt5uYAJsDi8/TilIZknuUhI/AAAAAAAAAZE/5v10-KYvqvI/s1600/type-inference-and-conditional-java7.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;An analogous example from the pre-Java 7 world. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-e4F6Y5CDqgE/TilIX1X8hwI/AAAAAAAAAY0/1EjxoXqAp5s/s1600/type-inference-and-conditional-pre-java7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-e4F6Y5CDqgE/TilIX1X8hwI/AAAAAAAAAY0/1EjxoXqAp5s/s1600/type-inference-and-conditional-pre-java7.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-5282922782415389212?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/5282922782415389212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/07/java-7-support-in-eclipse-jdt-beta-part_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5282922782415389212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5282922782415389212'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/07/java-7-support-in-eclipse-jdt-beta-part_22.html' title='Java 7 Support in Eclipse JDT (BETA) - Part III'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-nw87JKF5w0Q/TilIYp3j6-I/AAAAAAAAAY8/mF0OPd5mNtA/s72-c/redundant-specification-of-type-arguments.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-7801295514604123601</id><published>2011-07-14T08:37:00.000-07:00</published><updated>2011-07-14T08:37:17.683-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='java7'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Java 7 Support in Eclipse JDT (BETA) - Part II</title><content type='html'>I have already talked about the new features to support multi-catch in an &lt;a href="http://thecoderlounge.blogspot.com/2011/07/java-7-support-in-eclipse-jdt-beta-part.html"&gt;earlier post&lt;/a&gt;. Now I will talk about &lt;b&gt;Try-with-resources&lt;/b&gt; statement and &lt;b&gt;Simplified Varargs Method Invocation&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The compiler detects unhandled exceptions thrown by automatic/implicit close() invocation on a resource. &amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-H0E_3FHNm4A/Th8F8dtI07I/AAAAAAAAAYw/RZCrGVzmka0/s1600/unhandled-exception-thrown-by-automatic-close.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-H0E_3FHNm4A/Th8F8dtI07I/AAAAAAAAAYw/RZCrGVzmka0/s1600/unhandled-exception-thrown-by-automatic-close.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;With&lt;b&gt; &lt;/b&gt;&lt;a href="http://thecoderlounge.blogspot.com/2011/06/jdt-tip-mark-occurrences-in-java-editor.html"&gt;&lt;b&gt;Mark Occurrences&lt;/b&gt;&lt;/a&gt; enabled, the closing '}' of a try-with-resources statement is marked as a method exit point if the implicit close() invocation throws an exception. The corresponding resource variable is also highlighted.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-U9V_YRq_RXc/Th8FakUji4I/AAAAAAAAAYk/F6LK-iYW-NY/s1600/mark-occurrences-exception-thrown-by-automatic-close.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-U9V_YRq_RXc/Th8FakUji4I/AAAAAAAAAYk/F6LK-iYW-NY/s1600/mark-occurrences-exception-thrown-by-automatic-close.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Future items&lt;/b&gt;: In 3.8 we plan to add warnings to indicate that a resource is not closed, see &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=349326"&gt;bug 349326&lt;/a&gt;. In Java 7 a resource is a subtype of java.lang.AutoCloseable and in the pre-Java 7 world a resource is a subtype of&amp;nbsp; java.io.Closeable. Based on these warnings we will also provide quick fixes/assists and clean-ups to enclose a resource in a try-with-resources statement, see &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=349390"&gt;bug 349390&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A new quick fix &lt;b&gt;Add @SafeVarargs&lt;/b&gt; is offered for potential heap pollution warnings on method declarations.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-4CV468rm4GI/Th8FaFac38I/AAAAAAAAAYc/imjwPoO3RY4/s1600/add-safevarargs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-4CV468rm4GI/Th8FaFac38I/AAAAAAAAAYc/imjwPoO3RY4/s1600/add-safevarargs.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Add @SafeVarargs&lt;/b&gt; quick fix is also offered from call sites.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jecj0Cco9s0/Th8FaZTFZiI/AAAAAAAAAYg/5DHF1PYtcRQ/s1600/add-safevarargs-to-declaration.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-jecj0Cco9s0/Th8FaZTFZiI/AAAAAAAAAYg/5DHF1PYtcRQ/s1600/add-safevarargs-to-declaration.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Remove @SafeVarargs&lt;/b&gt; quick fix is offered for incorrect usage of @SafeVarargs annotation.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-P6QAD1bTO-U/Th8FbJs3MtI/AAAAAAAAAYo/pS6qTiMsHYk/s1600/remove-safevarargs-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-P6QAD1bTO-U/Th8FbJs3MtI/AAAAAAAAAYo/pS6qTiMsHYk/s1600/remove-safevarargs-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-_kHvoKmA5EY/Th8Fbcu-CRI/AAAAAAAAAYs/EygY7Gb4TVU/s1600/remove-safevarargs-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-_kHvoKmA5EY/Th8Fbcu-CRI/AAAAAAAAAYs/EygY7Gb4TVU/s1600/remove-safevarargs-2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Note:&lt;/b&gt; This is an implementation of an early-draft specification  developed under the Java Community Process (JCP) and is made available  for testing and evaluation purposes only. The code is not compatible  with any specification of the JCP. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-7801295514604123601?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/7801295514604123601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/07/java-7-support-in-eclipse-jdt-beta-part_14.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7801295514604123601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7801295514604123601'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/07/java-7-support-in-eclipse-jdt-beta-part_14.html' title='Java 7 Support in Eclipse JDT (BETA) - Part II'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-H0E_3FHNm4A/Th8F8dtI07I/AAAAAAAAAYw/RZCrGVzmka0/s72-c/unhandled-exception-thrown-by-automatic-close.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-4468261338808751581</id><published>2011-07-14T07:00:00.000-07:00</published><updated>2011-07-14T07:01:10.784-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='java7'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Java 7 Support in Eclipse JDT (BETA) - Part I</title><content type='html'>JDT team has been working overtime over the last few months on the Java 7 support. The compiler is rock solid now and the UI is looking good with a number of new features. You can add the Java 7 support to your existing 3.7 or 4.1 install by following the instructions on &lt;a href="http://wiki.eclipse.org/JDT/Eclipse_Java_7_Support_%28BETA%29"&gt;http://wiki.eclipse.org/JDT/Eclipse_Java_7_Support_(BETA)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This post is the first in a series in which I will talk about the new features in JDT for Java 7. In this post I will focus on &lt;b&gt;Multi-catch&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The new action &lt;b&gt;Source &amp;gt; Surround With &amp;gt; Try/multi-catch Block&lt;/b&gt; allows you to surround the selected statements with a try/multi-catch block. This is also available as &lt;b&gt;Surround with try/multi-catch&lt;/b&gt; quick fix in case there are multiple uncaught exceptions.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-PWLINWJmzno/Th7dd0EnyyI/AAAAAAAAAYY/NGVYK5LzwsU/s1600/surround-with-try-multicatch.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-PWLINWJmzno/Th7dd0EnyyI/AAAAAAAAAYY/NGVYK5LzwsU/s1600/surround-with-try-multicatch.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The new &lt;b&gt;Add exceptions to existing catch clause&lt;/b&gt; quick fix allows you to add uncaught exceptions to an existing catch clause. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-jF7FMSJy6NU/Th7dcBZ_pEI/AAAAAAAAAYI/o2MvDAUJ3C4/s1600/add-exceptions-to-existin-catch-clause.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-jF7FMSJy6NU/Th7dcBZ_pEI/AAAAAAAAAYI/o2MvDAUJ3C4/s1600/add-exceptions-to-existin-catch-clause.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;You can replace a multi-catch clause with individual catch blocks via &lt;b&gt;Use separate catch blocks&lt;/b&gt; quick assist. The quick assist will create separate catch clauses for all the exceptions.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-faB2wweu3DI/Th7dbih8MNI/AAAAAAAAAYE/pfjfIcs0L9c/s1600/use-separate-catch-blocks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-faB2wweu3DI/Th7dbih8MNI/AAAAAAAAAYE/pfjfIcs0L9c/s1600/use-separate-catch-blocks.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;You can also pick out one or more selected exceptions from a multi-catch clause via &lt;b&gt;Move exceptions to separate catch block&lt;/b&gt;.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9RgEZKwIJks/Th7dc-9p-_I/AAAAAAAAAYQ/yxvW3NtEn1o/s1600/move-exceptions-to-separate-catch-block.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-9RgEZKwIJks/Th7dc-9p-_I/AAAAAAAAAYQ/yxvW3NtEn1o/s1600/move-exceptions-to-separate-catch-block.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The new &lt;b&gt;Combine catch blocks&lt;/b&gt; quick assist allows you to combine separate catch blocks into a single multi-catch block, pretty useful for migrating existing code to Java 7. The quick assist is offered only when bodies of all the catch blocks are same, we still need to make it a little more smarter, see &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=350308"&gt;bug&amp;nbsp;350308&lt;/a&gt;. In 3.8 we will also provide this as a clean-up (&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=351179"&gt;bug 351179&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9n_J_FCl2mg/Th7dcqfCWJI/AAAAAAAAAYM/nZRja9dCHaI/s1600/combine-catch-blocks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-9n_J_FCl2mg/Th7dcqfCWJI/AAAAAAAAAYM/nZRja9dCHaI/s1600/combine-catch-blocks.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The compiler gives an error if an exception in a multi-catch clause is already caught by an alternative exception. The new &lt;b&gt;Remove exception&lt;/b&gt; quick fix allows you to remove this exception.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-9MLAvKSp6xc/Th7ddY9lV2I/AAAAAAAAAYU/0Qicy0Tc-_k/s1600/remove-exception.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-9MLAvKSp6xc/Th7ddY9lV2I/AAAAAAAAAYU/0Qicy0Tc-_k/s1600/remove-exception.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://thecoderlounge.blogspot.com/2011/06/jdt-tip-mark-occurrences-in-java-editor.html"&gt;&lt;b&gt;Mark Occurrences&lt;/b&gt;&lt;/a&gt; has been updated to understand the multi-catch syntax.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-yCcAdG7AJSw/Teh8FJBqwEI/AAAAAAAAAWQ/4xaVH5ha4OE/s1600/throwing-exception.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-yCcAdG7AJSw/Teh8FJBqwEI/AAAAAAAAAWQ/4xaVH5ha4OE/s1600/throwing-exception.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There are also new &lt;b&gt;Line Wrapping options in the Formatter&lt;/b&gt; for the multi-catch syntax.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Note:&lt;/b&gt; This is an implementation of an early-draft specification  developed under the Java Community Process (JCP) and is made available  for testing and evaluation purposes only. The code is not compatible  with any specification of the JCP. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-4468261338808751581?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/4468261338808751581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/07/java-7-support-in-eclipse-jdt-beta-part.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4468261338808751581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4468261338808751581'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/07/java-7-support-in-eclipse-jdt-beta-part.html' title='Java 7 Support in Eclipse JDT (BETA) - Part I'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-PWLINWJmzno/Th7dd0EnyyI/AAAAAAAAAYY/NGVYK5LzwsU/s72-c/surround-with-try-multicatch.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8740874009170286772</id><published>2011-07-09T06:30:00.000-07:00</published><updated>2011-12-03T22:30:22.951-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Jazz'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='JazzHub'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><category scheme='http://www.blogger.com/atom/ns#' term='ibminnovate'/><title type='text'>JazzHub</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ffBtHu-51DA/ThhRTcz4a8I/AAAAAAAAAYA/1KL6v68p76Y/s1600/jazzhub.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ffBtHu-51DA/ThhRTcz4a8I/AAAAAAAAAYA/1KL6v68p76Y/s1600/jazzhub.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="https://jazz.net/hub"&gt;JazzHub&lt;/a&gt; is a free, public, hosting hub for the open development of academic research and classroom projects. Currently it is in limited beta. To participate in the beta you can &lt;a href="https://jazz.net/hub/manager/contact"&gt;request a project creation code&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On JazzHub students and professors can plan projects, collaborate on source code, and track progress, all with the latest Jazz technology in &lt;a href="https://jazz.net/projects/rational-team-concert/"&gt;Rational Team Concert&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Source code management&lt;/li&gt;&lt;li&gt;Work Item Tracking&lt;/li&gt;&lt;li&gt;Project and personal dashboards&lt;/li&gt;&lt;li&gt;Agile planning&lt;/li&gt;&lt;li&gt;Reporting&lt;/li&gt;&lt;li&gt;Web, Eclipse and Visual Studio interfaces&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Rational Team Concert (RTC) is also available FREE of charge for qualified &lt;a href="https://jazz.net/community/opensource"&gt;open source projects&lt;/a&gt;, &lt;a href="https://jazz.net/community/academic/"&gt;academic institutions&lt;/a&gt;, and &lt;a href="https://jazz.net/community/academic/relatedResearchProjects.jsp"&gt;research projects&lt;/a&gt;. Steps to help you get started are available &lt;a href="https://jazz.net/community/academic/"&gt;here&lt;/a&gt;. You can also read about &lt;a href="https://jazz.net/blog/index.php/2010/04/15/rational-team-concert-for-open-source-development-experiences-with-rssowl/"&gt;RSSOwl's adoption of RTC&lt;/a&gt;, this also includes a great video which illustrates how the developers can benefit from RTC.&lt;br /&gt;&lt;br /&gt;You can learn more about JazzHub at &lt;a href="http://www-01.ibm.com/software/in/rational/innovate/"&gt;Innovate 2011, Bangalore&lt;/a&gt;. If you're a student, you can also win free passes to Innovate by blogging or tweeting about rational products (use hashtag #innovateindia).&amp;nbsp; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8740874009170286772?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8740874009170286772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/07/jazzhub.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8740874009170286772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8740874009170286772'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/07/jazzhub.html' title='JazzHub'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ffBtHu-51DA/ThhRTcz4a8I/AAAAAAAAAYA/1KL6v68p76Y/s72-c/jazzhub.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-2938641974080120847</id><published>2011-06-23T20:34:00.000-07:00</published><updated>2011-06-24T03:22:16.778-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='java7'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Java 7 Support in Eclipse JDT (BETA)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Java 7 is not publicly released yet and hence the Eclipse Java 7 support could not be shipped with 3.7 or 4.1. However those who want to use it in 3.7 or 4.1 can do it using the install instructions mentioned on &lt;a href="http://wiki.eclipse.org/JDT/Eclipse_Java_7_Support_%28BETA%29"&gt;http://wiki.eclipse.org/JDT/Eclipse_Java_7_Support_(BETA)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you find a bug or have ideas on new quick fixes / refactorings / templates / ... , please &lt;a class="external text" href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT&amp;amp;component=UI&amp;amp;short_desc=%5B1.7%5D+" rel="nofollow" title="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT&amp;amp;component=UI&amp;amp;short_desc=%5B1.7%5D+"&gt;file a bug&lt;/a&gt; with the [1.7] tag !&lt;br /&gt;&lt;br /&gt;I should add that this is a work in progress, and more details are available on the following two wiki pages&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/JDT_Core/Java7"&gt;http://wiki.eclipse.org/JDT_Core/Java7&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/JDT_UI/Java7"&gt;http://wiki.eclipse.org/JDT_UI/Java7&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; This is an implementation of an early-draft specification  developed under the Java Community Process (JCP) and is made available  for testing and evaluation purposes only. The code is not compatible  with any specification of the JCP. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-2938641974080120847?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/2938641974080120847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/06/java-7-support-in-eclipse-jdt-beta.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2938641974080120847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2938641974080120847'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/06/java-7-support-in-eclipse-jdt-beta.html' title='Java 7 Support in Eclipse JDT (BETA)'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-6972202724548368849</id><published>2011-06-05T09:27:00.000-07:00</published><updated>2011-06-05T09:27:36.473-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt tips'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>JDT Tip: See different hovers in Java editor by using modifier keys</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&amp;nbsp;When you move the mouse over an identifier that has no error or warning, by default a hover with the Javadoc is shown.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-wEV11-Mv3Mk/Teup9PBwL9I/AAAAAAAAAWs/rRMhtFAxeoc/s1600/javadoc-hover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-wEV11-Mv3Mk/Teup9PBwL9I/AAAAAAAAAWs/rRMhtFAxeoc/s1600/javadoc-hover.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;However if there is an error or a warning on the identifier then the corresponding message is shown.&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8B3Vw0V1erc/Teus6tykcSI/AAAAAAAAAW0/KVMM4dfr9d4/s1600/problem-hover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-8B3Vw0V1erc/Teus6tykcSI/AAAAAAAAAW0/KVMM4dfr9d4/s1600/problem-hover.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&lt;ul style="text-align: left;"&gt;&lt;li&gt;To see the Javadoc even in this case, you can enable the Javadoc hover on this preference page and define a key modifier e.g. Ctrl+Shift.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-dlRrY9yuHw0/Teup8pyLGXI/AAAAAAAAAWo/05l0vB9CXyw/s1600/hovers-preferences.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-dlRrY9yuHw0/Teup8pyLGXI/AAAAAAAAAWo/05l0vB9CXyw/s1600/hovers-preferences.png" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Now press Ctrl+Shift while hovering to see the javadoc.&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-3oKlHVSjlU0/Teup9v0FpPI/AAAAAAAAAWw/ytManm-pY6A/s1600/javadoc-hover-using-modifier-keys.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-3oKlHVSjlU0/Teup9v0FpPI/AAAAAAAAAWw/ytManm-pY6A/s1600/javadoc-hover-using-modifier-keys.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-6972202724548368849?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/6972202724548368849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/06/jdt-tip-see-different-hovers-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6972202724548368849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6972202724548368849'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/06/jdt-tip-see-different-hovers-in-java.html' title='JDT Tip: See different hovers in Java editor by using modifier keys'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-wEV11-Mv3Mk/Teup9PBwL9I/AAAAAAAAAWs/rRMhtFAxeoc/s72-c/javadoc-hover.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-3147962207259004427</id><published>2011-06-02T23:27:00.000-07:00</published><updated>2011-06-02T23:27:57.487-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt tips'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>JDT Tip: Mark Occurrences in Java editor</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I think everyone knows that the Java editor highlights occurrences of variables and method calls.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-MBlgyaxinHI/Teh8Gcii4qI/AAAAAAAAAWc/OSzzM26Rx-s/s1600/mark-occurrences.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-MBlgyaxinHI/Teh8Gcii4qI/AAAAAAAAAWc/OSzzM26Rx-s/s1600/mark-occurrences.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;But did you know that it also highlights&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Method exit points&lt;/b&gt; - select (or place caret in) the method return type&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-p_W6IUDu0Oc/Teh8GjH49zI/AAAAAAAAAWg/iAtEnfNYd7k/s1600/method-exits.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-p_W6IUDu0Oc/Teh8GjH49zI/AAAAAAAAAWg/iAtEnfNYd7k/s1600/method-exits.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Method calls or statements throwing an exception&lt;/b&gt; - select (or place caret in) an exception in a catch block&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-yCcAdG7AJSw/Teh8FJBqwEI/AAAAAAAAAWQ/4xaVH5ha4OE/s1600/throwing-exception.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-yCcAdG7AJSw/Teh8FJBqwEI/AAAAAAAAAWQ/4xaVH5ha4OE/s1600/throwing-exception.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Break/Continue targets&lt;/b&gt; - select (or place caret in) break or continue keywords&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-SenJN4HO6mg/Teh8FRpxS4I/AAAAAAAAAWU/GExRZAEHlPU/s1600/break-targets.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-SenJN4HO6mg/Teh8FRpxS4I/AAAAAAAAAWU/GExRZAEHlPU/s1600/break-targets.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-QW8LZ55QyI4/Teh8F-nRaOI/AAAAAAAAAWY/hF3teiDAKTM/s1600/continue-targets.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-QW8LZ55QyI4/Teh8F-nRaOI/AAAAAAAAAWY/hF3teiDAKTM/s1600/continue-targets.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-3147962207259004427?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/3147962207259004427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/06/jdt-tip-mark-occurrences-in-java-editor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3147962207259004427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3147962207259004427'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/06/jdt-tip-mark-occurrences-in-java-editor.html' title='JDT Tip: Mark Occurrences in Java editor'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-MBlgyaxinHI/Teh8Gcii4qI/AAAAAAAAAWc/OSzzM26Rx-s/s72-c/mark-occurrences.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-1531536515870169627</id><published>2011-06-02T22:08:00.000-07:00</published><updated>2011-07-29T21:38:53.106-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='ibminnovate'/><title type='text'>Mobile sessions at IBM Innovate</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Attending &lt;a href="http://www-01.ibm.com/software/rational/innovate/"&gt;Innovate 2011&lt;/a&gt; ? Interested in mobile development ? If yes, then the following sessions might be of interest to you.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mon, Jun 6, 2011&lt;/b&gt;&lt;br /&gt;4:15 PM : ALM-1602A Bringing Collaborative Lifecycle Development to Mobile Software&lt;br /&gt;8:00 PM : BOF-2303A How is the Need for Developing Mobile Applications Changing Development Efforts&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tue, Jun 7, 2011&lt;/b&gt;&lt;br /&gt;1:45 PM : CS-1359B Agile Adoption for Android Mobile Project using IBM Rational Team Concert - Samsung SDS Agile Transition&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Wed, Jun 8, 2011&lt;/b&gt;&lt;br /&gt;11:15 AM : SE-2206A Mobile Application Development: Strategies for Accelerated Delivery and Deployment&lt;br /&gt;1:45 PM : MAC-1756A Web 2.0 and Mobile Development Fast and Easy with IBM Rational Application Developer 8.0&lt;br /&gt;3:00 PM : PPM-1300A Importance of Understanding User Needs in Mobile Development&lt;br /&gt;3:00 PM : SIS-1609A Model-Driven Development for Mobile Applications&lt;br /&gt;&lt;br /&gt;In addition there are also some demo pedestals in the Solution Center.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-1531536515870169627?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/1531536515870169627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/06/mobile-sessions-at-ibm-innovate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1531536515870169627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1531536515870169627'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/06/mobile-sessions-at-ibm-innovate.html' title='Mobile sessions at IBM Innovate'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-4617152141704177352</id><published>2011-05-10T06:12:00.000-07:00</published><updated>2011-05-10T06:13:19.834-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='pde'/><category scheme='http://www.blogger.com/atom/ns#' term='e4'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='java7'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipseday'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Eclipse Day India 2011</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Cm0CfQuXPCQ/TckOXU9n7xI/AAAAAAAAAWI/ZIs37nzxX3c/s1600/eclipse-day-india.jpg" imageanchor="1"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/-Cm0CfQuXPCQ/TckOXU9n7xI/AAAAAAAAAWI/ZIs37nzxX3c/s400/eclipse-day-india.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.eclipseday.in/"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://sites.google.com/site/anshunjain/"&gt;Anshu Jain&lt;/a&gt; started of the &lt;a href="http://www.eclipseday.in/"&gt;day&lt;/a&gt; with an excellent talk &lt;b&gt;Eclipse - A Framework of Frameworks&lt;/b&gt;. In his talk he went through the design of a very simple calculator framework to explain all the things that Eclipse does - extensions, dynamic loading, plugin discovery etc. There was also a .cff file (calculator framework format) equivalent to plugin.xml in Eclipse. The example code from his talk is available at his &lt;a href="http://sites.google.com/site/anshunjain/eclipse-presentations"&gt;site&lt;/a&gt; - highly recommended for someone starting of with plug-in development.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://blog.ankursharma.org/"&gt;Ankur&lt;/a&gt; followed up with another great talk &lt;b&gt;Good Practices for Plug-in Developers&lt;/b&gt;.&amp;nbsp; Some of the images he used to drive his point home were really funny and awesome. I thought my session &lt;b&gt;JDT Bootcamp&lt;/b&gt; (JDT Tips and Tricks, and Extending JDT) went well, of course the fact that Satyam did a fantastic job of explaining the Java Model and the Search APIs helped a great deal.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There was a lot of interest in &lt;b&gt;What's new in Java 7&lt;/b&gt; talk by Ayush (the guy with the funny pose in the above pic), which was nice to see. After this Praveen talked about his experience at Adobe with &lt;b&gt;migrating a Eclipse 3.x application to Eclipse 4.x platform&lt;/b&gt;. It was nice to hear that Adobe wants to stay on the latest Eclipse platform and has made considerable progress in this regard. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The day ended with an interesting talk about Eclipse &lt;a href="http://www.eclipse.org/uomo/"&gt;UOMo&lt;/a&gt; project. Werner Keil gave a few funny examples on what can go wrong if the proper care is not taken in consistently interpreting the units, for e.g. if one team uses inches and feet and the another team interprets the values as meters and centimeters. The image of an upside down NASA shuttle because someone messed up the measurement units will always stay in my mind :)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-EXt6XapKASY/TckPC7HnWKI/AAAAAAAAAWM/5yk89pIV-2A/s1600/eclipse-day-india1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/-EXt6XapKASY/TckPC7HnWKI/AAAAAAAAAWM/5yk89pIV-2A/s400/eclipse-day-india1.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Lastly a big thank you to SAP Laps for hosting the event! You have been a great host for &lt;a href="http://www.eclipseday.in/"&gt;Eclipse Day India 2011&lt;/a&gt; and the demo camp in Nov 2010. However I would like to see the next Eclipse event in Bangalore hosted at a different venue - just for variety :) Maybe other organizations can step forward.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I almost forgot, the 'discussion' over drinks in the evening with fellow Eclipse committers and Eclipse users was 'entertaining' ;-) Those who could not join us for drinks, please do next time.&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/1616206987206690523-4617152141704177352?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/4617152141704177352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/05/eclipse-day-india-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4617152141704177352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4617152141704177352'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/05/eclipse-day-india-2011.html' title='Eclipse Day India 2011'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Cm0CfQuXPCQ/TckOXU9n7xI/AAAAAAAAAWI/ZIs37nzxX3c/s72-c/eclipse-day-india.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-7559376098252896002</id><published>2011-05-02T07:48:00.000-07:00</published><updated>2011-05-02T07:49:20.684-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='java7'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Eclipse JDT and Java 7</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Will Eclipse 3.7 include support for Java 7?&lt;/b&gt; &lt;br /&gt;Short answer: No&lt;br /&gt;Slightly longer answer: "Due to late availability of JSR-292 (Invoke Dynamic) and JSR-334 (Project Coin) and due to the official release date (July 28, 2011) of Java 7 being after 3.7 ships we had to defer the Java 7 support to 3.7.1. It has not yet been decided whether this will be available as part of the 3.7.1 downloads or as separate feature update.&lt;br /&gt;&lt;br /&gt;The work for the Java 7 features is currently in progress in the 'BETA_JAVA7' branch and we will deliver separate updates for the stable builds in order to provide early access to the Java 7 features for interested parties."&lt;br /&gt;See &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=288548"&gt;bug 288548&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is the current status of support for Java 7 in JDT ?&lt;/b&gt;&lt;br /&gt;Take a look at the wiki page: http://wiki.eclipse.org/JDT_Core/Java7&lt;br /&gt;&lt;br /&gt;&lt;b&gt;I want to try some of the new features of Java 7 in Eclipse&lt;/b&gt;&lt;br /&gt;At this point in time you will need to&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt; Create a new CVS repository location to:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Check out the following projects from BETA_JAVA7 branch:&lt;/li&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;org.eclipse.jdt.core&lt;/li&gt;&lt;li&gt;org.eclipse.jdt.ui&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Launch another eclipse application from this workspace or export the two plugins into the host eclipse.&lt;/li&gt;&lt;li&gt;Of course you will also need to install a JDK7 build as an installed JRE. &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-7559376098252896002?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/7559376098252896002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/05/eclipse-jdt-and-java-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7559376098252896002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7559376098252896002'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/05/eclipse-jdt-and-java-7.html' title='Eclipse JDT and Java 7'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-1349692133613846083</id><published>2011-04-28T21:17:00.000-07:00</published><updated>2011-04-28T21:18:45.116-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='pde'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Debugging Eclipse builders</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Do you think Eclipse builds too often ? Do you think Eclipse build too much ? At least I do, or maybe I just got tired of seeing 'Building workspace: (12%)' in the status bar. Anyway I decided to see for myself what the heck the builders were doing.&lt;br /&gt;&lt;br /&gt;I use JDT and PDE which means there are two builders of interest&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Java Builder&lt;/b&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;API Analysis Builder&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;There are also Plug-in Manifest Builder and Extension Point Schema Builder, but I think these two do not do much and hence do not take much time.&lt;br /&gt;&lt;br /&gt;To know what these two builders are doing in your running Eclipse instance two things are required&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Start Eclipse with -debug option, to me more precise I used the following to redirect the debug output to a file as the debug output can grow large very soon and overflow the console buffer&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;&lt;b&gt;eclipsec –debug &amp;gt; log.txt&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Enable debug options for three plug-ins (details below)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;org.eclipse.core.resources&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;org.eclipse.jdt.core&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;org.eclipse.pde.api.tools&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;All three plug-ins ship a &lt;b&gt;.options&lt;/b&gt; file containing all the debug options provided by these plug-ins, just open the the corresponding jars in your eclipse installation to get the .options files. Create a single .options file from these and place it in the same directory as eclipsec.exe &lt;b&gt;before starting eclipse&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;I had the following options set to true in my .options file&lt;br /&gt;###################################################################&lt;br /&gt;# Turn on debug tracing for org.eclipse.jdt.core plugin&lt;br /&gt;org.eclipse.jdt.core/debug=true&lt;br /&gt;&lt;br /&gt;# Reports java&amp;nbsp; builder activity : nature of build, built state reading, indictment process&lt;br /&gt;org.eclipse.jdt.core/debug/builder=true&lt;br /&gt;&lt;br /&gt;# Reports java builder stats&lt;br /&gt;org.eclipse.jdt.core/debug/builder/stats=true&lt;br /&gt;&lt;br /&gt;###################################################################&lt;br /&gt;# Debugging options for the org.eclipse.core.resources plugin.&lt;br /&gt;&lt;br /&gt;# Turn on debugging for the org.eclipse.core.resources plugin.&lt;br /&gt;org.eclipse.core.resources/debug=true&lt;br /&gt;&lt;br /&gt;# Reports the start and end of all builder invocations&lt;br /&gt;org.eclipse.core.resources/build/invoking=true&lt;br /&gt;&lt;br /&gt;# Reports the start and end of build delta calculations&lt;br /&gt;org.eclipse.core.resources/build/delta=true&lt;br /&gt;&lt;br /&gt;# For incremental builds, displays which builder is being run&lt;br /&gt;# and because of changes in which project.&lt;br /&gt;org.eclipse.core.resources/build/needbuild=true&lt;br /&gt;&lt;br /&gt;# Prints a stack trace every time an operation finishes that requires a build&lt;br /&gt;org.eclipse.core.resources/build/needbuildstack=true&lt;br /&gt;&lt;br /&gt;###################################################################&lt;br /&gt;# Turn on debug tracing for org.eclipse.pde.api.tools plugin&lt;br /&gt;org.eclipse.pde.api.tools/debug=true&lt;br /&gt;&lt;br /&gt;# Reports incremental builder activity : nature of build, indictment process,...&lt;br /&gt;org.eclipse.pde.api.tools/debug/builder=true&lt;br /&gt;&lt;br /&gt;# Print notified compatibility deltas&lt;br /&gt;org.eclipse.pde.api.tools/debug/delta=true&lt;br /&gt;&lt;br /&gt;# for the tag scanner&lt;br /&gt;org.eclipse.pde.api.tools/debug/tagscanner=true&lt;br /&gt;&lt;br /&gt;# for API profile&lt;br /&gt;org.eclipse.pde.api.tools/debug/apiprofile=true&lt;br /&gt;&lt;br /&gt;#for api analyzer&lt;br /&gt;org.eclipse.pde.api.tools/debug/apianalyzer=true&lt;br /&gt;&lt;br /&gt;#for our workspace delta processor&lt;br /&gt;org.eclipse.pde.api.tools/debug/workspacedeltaprocessor=true&lt;br /&gt;###################################################################&lt;br /&gt;&lt;br /&gt;So far I have found a few scenarios where the builders could do less work - &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344090"&gt;Bug 344090&lt;/a&gt;, &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344110"&gt;Bug 344110&lt;/a&gt;, &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344163"&gt;Bug 344163&lt;/a&gt;, &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344137"&gt;Bug 344137&lt;/a&gt;. I think there are more issues, but getting a reproducible test case is proving to be a little hard in some cases.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-1349692133613846083?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/1349692133613846083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/04/debugging-eclipse-builders.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1349692133613846083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1349692133613846083'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/04/debugging-eclipse-builders.html' title='Debugging Eclipse builders'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-4544745167171841559</id><published>2011-04-28T20:27:00.000-07:00</published><updated>2011-05-10T06:12:52.377-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipseday'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>JDT at Eclipse Day India</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Satyam and I will be speaking at &lt;a href="http://www.eclipseday.in/"&gt;Eclipse Day India 2011&lt;/a&gt; in Bangalore next week. We have one session &lt;b&gt;JDT Bootcamp&lt;/b&gt;. &lt;span class="event-description"&gt;This session consists of two parts.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="event-description"&gt;&lt;b&gt;JDT - Tips and Tricks (30 min)&lt;/b&gt; - In the first 30 mins we will show off  useful tips and tricks when working with JDT and Eclipse in general such  as tricks in content assist, Java Editor tips, code navigation and  debugging aids.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="event-description"&gt;&lt;b&gt;Extending JDT (60 min)&lt;/b&gt;  - In the next one hour, we will take you through  APIs and extension points that JDT exposes to enable you to extend and  customize the Java tooling. Using these APIs, one could create their own  cleaunps, refactorings, quick fixes and other utilities.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="event-description"&gt;You may also be interested in Ayush's talk &lt;b&gt;What's new in Java 7 (30 min)&lt;/b&gt;. This talk intends to describe new features of Java 7 such as switch on strings, binary integral literals and underscores in numeric literals, multi-catch and precise rethrow, diamond, try with resources, etc. The talk will also be interesting to those who want to know the status of Java 7 work in Eclipse compiler.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="event-description"&gt;The three of us will be around the whole day, and would love to answer any questions or get into interesting discussions around JDT :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="event-description"&gt;See you at Eclipse Day!&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/1616206987206690523-4544745167171841559?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/4544745167171841559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/04/jdt-at-eclipse-day-india.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4544745167171841559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4544745167171841559'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/04/jdt-at-eclipse-day-india.html' title='JDT at Eclipse Day India'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8517553343286728920</id><published>2011-04-25T03:59:00.000-07:00</published><updated>2011-04-25T03:59:45.357-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt tips'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Evaluating expressions in JDT Debugger</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;You can use the &lt;b&gt;Display View&lt;/b&gt; to type in an expression and evaluate it in the context of the current stack frame. (The name Display is not great - see &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=342144"&gt;bug 342144&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;- Use content assist to type expressions&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-0VM5DPaCVt8/TbVS6F3M71I/AAAAAAAAAVs/s_dqolJAAic/s1600/display-view-content-assist.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-0VM5DPaCVt8/TbVS6F3M71I/AAAAAAAAAVs/s_dqolJAAic/s1600/display-view-content-assist.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;- Select the expression and use Ctrl+Shift+I (&lt;b&gt;Inspect&lt;/b&gt;) to show the result in a pop-up. You can also invoke the Inspect command from the context menu.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-OwAgI6wzX6Q/TbVS68y3tjI/AAAAAAAAAVw/5C_Bm4rsI1A/s1600/display-view-inspect.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-OwAgI6wzX6Q/TbVS68y3tjI/AAAAAAAAAVw/5C_Bm4rsI1A/s1600/display-view-inspect.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;- Press Ctrl+Shift+I again to persist the result in the Expressions view.&lt;br /&gt;&lt;br /&gt;See also &lt;a href="http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/task-evaluating_expressions.htm"&gt;Eclipse help&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/1616206987206690523-8517553343286728920?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8517553343286728920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/04/evaluating-expressions-in-jdt-debugger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8517553343286728920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8517553343286728920'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/04/evaluating-expressions-in-jdt-debugger.html' title='Evaluating expressions in JDT Debugger'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-0VM5DPaCVt8/TbVS6F3M71I/AAAAAAAAAVs/s_dqolJAAic/s72-c/display-view-content-assist.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-3382314808506888628</id><published>2011-03-08T06:38:00.000-08:00</published><updated>2011-03-08T07:57:29.143-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>JDT at EclipseCon 2011</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Raksha Vasisht and I will be speaking at EclipseCon 2011 in Santa Clara. We have the following 2 talks&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipsecon.org/2011/sessions/?page=sessions&amp;amp;id=2239"&gt;What's new in JDT&lt;/a&gt; &lt;br /&gt;Monday, March 21 14:00 - 14:20, Stevens Creek&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipsecon.org/2011/sessions/?page=sessions&amp;amp;id=2236"&gt;JDT - Tips and Tricks&lt;/a&gt; &lt;br /&gt;Tuesday, March 22 14:00 - 14:20, Stevens Creek &lt;br /&gt;&lt;br /&gt;We are also organizing a Bof&lt;br /&gt;&lt;a href="http://www.eclipsecon.org/2011/sessions/?page=sessions&amp;amp;id=2469"&gt;Eclipse - Tips and Tricks&lt;/a&gt;&lt;br /&gt;Wednesday, March 23 19:30, Sonoma&lt;br /&gt;&lt;br /&gt;See you soon at EclipseCon !&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-3382314808506888628?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/3382314808506888628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/03/jdt-at-eclipsecon-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3382314808506888628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3382314808506888628'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/03/jdt-at-eclipsecon-2011.html' title='JDT at EclipseCon 2011'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-7585453052321186476</id><published>2011-02-06T19:58:00.000-08:00</published><updated>2011-02-06T19:59:02.846-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>JDT 3.7 M5 - New and Noteworthy</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This time there are a bunch of interesting items in the debug area&lt;br /&gt;&lt;br /&gt;There is now a history for recently used breakpoint conditions:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_zbj8ttdu_e0/TU9pRr01ILI/AAAAAAAAAUI/3T0yqtSnIFo/s1600/condition-history.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_zbj8ttdu_e0/TU9pRr01ILI/AAAAAAAAAUI/3T0yqtSnIFo/s1600/condition-history.png" /&gt;&lt;/a&gt;&lt;/div&gt;The global history shows the saved conditions across all conditional breakpoints, while the local history shows the history of one particular breakpoint.&lt;br /&gt;&lt;br /&gt;In the Java editor, if you delete a breakpoint that has a condition set  on it, you will now be prompted before the breakpoint gets deleted:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_zbj8ttdu_e0/TU9pShx1SZI/AAAAAAAAAUU/c7JQxbDylmw/s1600/prompt-on-deletion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_zbj8ttdu_e0/TU9pShx1SZI/AAAAAAAAAUU/c7JQxbDylmw/s1600/prompt-on-deletion.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;You can specify that you would not like to be notified again when trying  to remove a conditional breakpoint. This can later be changed again       via &lt;b&gt;Prompt for confirmation when deleting a conditional breakpoint from editor&lt;/b&gt; on the &lt;b&gt;Java &amp;gt; Debug&lt;/b&gt; preference page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you accidentally removed a breakpoint from the editor's vertical ruler or the &lt;b&gt;Breakpoints&lt;/b&gt; view, you can now get it back using the standard undo functionality       - &lt;b&gt;Edit &amp;gt; Undo Delete Breakpoint (Ctrl+Z)&lt;/b&gt; - in the Breakpoints view or any other view that works against the global undo history.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The &lt;b&gt;Add missing case statements&lt;/b&gt; quick assist is now available in the body of the switch statement:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/TU9pRI0BXTI/AAAAAAAAAUE/51jjuztR-AY/s1600/add-missing-case-statements.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_zbj8ttdu_e0/TU9pRI0BXTI/AAAAAAAAAUE/51jjuztR-AY/s1600/add-missing-case-statements.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The &lt;b&gt;Quick Outline&lt;/b&gt; shows inherited members of top-level types when &lt;b&gt;Ctrl+O&lt;/b&gt; is pressed twice.       Now, it also shows inherited members of the type that contains the current editor selection:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/TU9pQiXHGGI/AAAAAAAAAUA/ptm24_GMQPM/s1600/quick-outline-inherited-for-nested.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/TU9pQiXHGGI/AAAAAAAAAUA/ptm24_GMQPM/s1600/quick-outline-inherited-for-nested.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The focus types that can show inherited members are marked with a triangle.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Two new compiler options have been added that mark methods which can be made static because they only refer to static members.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/TU9pSNOx1XI/AAAAAAAAAUQ/tt_zLkG6iE8/s1600/method-can-be-static.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_zbj8ttdu_e0/TU9pSNOx1XI/AAAAAAAAAUQ/tt_zLkG6iE8/s1600/method-can-be-static.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The first option marks private and final methods than can always be made static. The second option also marks other methods. Note that methods can be overridden in a subclass, so if you       make a "potentially static" method static, this may break existing clients. These options are disabled by default.&lt;br /&gt;&lt;br /&gt;Another interesting feature in the SDK is detached editors. This can be really useful in a dual monitor setup. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_zbj8ttdu_e0/TU9sE51_mTI/AAAAAAAAAUo/vp4GD9Hz39s/s1600/detached-editor.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="292" src="http://4.bp.blogspot.com/_zbj8ttdu_e0/TU9sE51_mTI/AAAAAAAAAUo/vp4GD9Hz39s/s320/detached-editor.png" width="320" /&gt; &lt;/a&gt;&lt;/div&gt;&amp;nbsp;Though while trying this out I 'lost' a couple of editors before filing &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=336391"&gt;Bug&amp;nbsp;336391&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/1616206987206690523-7585453052321186476?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/7585453052321186476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2011/02/jdt-37-m5-new-and-noteworthy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7585453052321186476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7585453052321186476'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2011/02/jdt-37-m5-new-and-noteworthy.html' title='JDT 3.7 M5 - New and Noteworthy'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zbj8ttdu_e0/TU9pRr01ILI/AAAAAAAAAUI/3T0yqtSnIFo/s72-c/condition-history.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-1472664654247641539</id><published>2010-12-13T01:27:00.000-08:00</published><updated>2010-12-13T01:29:18.058-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>JDT 3.7 M4 - New and Noteworthy</title><content type='html'>This time there are a bunch of interesting items in the quick assist (Ctrl+1) area&lt;br /&gt;&lt;br /&gt;The &lt;b&gt;Introduce new local with cast type&lt;/b&gt; quick assist is now not only available on the &lt;code&gt;instanceof&lt;/code&gt;       keyword, but also in the body of the conditional statement (before the first body statement). &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_zbj8ttdu_e0/TQXeoarGu7I/AAAAAAAAATI/Y-Xt8ULJQiI/s1600/introduce-new-local-with-cast-type.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_zbj8ttdu_e0/TQXeoarGu7I/AAAAAAAAATI/Y-Xt8ULJQiI/s1600/introduce-new-local-with-cast-type.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The &lt;b&gt;Join variable declaration&lt;/b&gt; quick assist is now also available for variables initialized to &lt;code&gt;null&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/TQXeo2XT3SI/AAAAAAAAATM/Xg7y0nNR9ac/s1600/join-variable-declaration.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/TQXeo2XT3SI/AAAAAAAAATM/Xg7y0nNR9ac/s1600/join-variable-declaration.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The &lt;b&gt;Exchange left and right operands for infix expression&lt;/b&gt; quick assist is now       also available for the &lt;code&gt;!=&lt;/code&gt;, &lt;code&gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;lt;=&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt;,       and &lt;code&gt;&amp;gt;=&lt;/code&gt; operators.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/TQXen3r4NsI/AAAAAAAAATE/1MnbmVCd2Ao/s1600/exchange-operands.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/TQXen3r4NsI/AAAAAAAAATE/1MnbmVCd2Ao/s1600/exchange-operands.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The properties file editor now offers two new quick assists to escape or unescape backslashes.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/TQXenl3ImbI/AAAAAAAAATA/Gcwx5YK7CQ0/s1600/escape-backslashes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_zbj8ttdu_e0/TQXenl3ImbI/AAAAAAAAATA/Gcwx5YK7CQ0/s1600/escape-backslashes.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/TQXenEQkucI/AAAAAAAAAS8/HxwBK-Tz3WE/s1600/unescape-backslashes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_zbj8ttdu_e0/TQXenEQkucI/AAAAAAAAAS8/HxwBK-Tz3WE/s1600/unescape-backslashes.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The &lt;b&gt;Escape backslashes&lt;/b&gt; quick assist is also offered automatically on paste if the pasted text        contains backslashes that should be escaped.&amp;nbsp; The next step is to provide a similar feature in the Java Editor, see &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=332205"&gt;         &lt;b&gt;Bug&amp;nbsp;332205&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Couple of irritating bugs that got fixed&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://bugs.eclipse.org/327079"&gt;Bug 327079&lt;/a&gt; [JUnit] Can't run single test with JUnit 4 launcher if there's a suite() method&lt;/li&gt;&lt;li&gt;&lt;a href="https://bugs.eclipse.org/329677"&gt;Bug 329677 &lt;/a&gt; [type hierarchy] view must honor package name abbreviation setting &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/1616206987206690523-1472664654247641539?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/1472664654247641539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/12/jdt-37-m4-new-and-noteworthy.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1472664654247641539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1472664654247641539'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/12/jdt-37-m4-new-and-noteworthy.html' title='JDT 3.7 M4 - New and Noteworthy'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zbj8ttdu_e0/TQXeoarGu7I/AAAAAAAAATI/Y-Xt8ULJQiI/s72-c/introduce-new-local-with-cast-type.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-9009339317299459875</id><published>2010-10-31T03:54:00.000-07:00</published><updated>2010-10-31T03:54:39.254-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='e4'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>e4 - Eclipse 4.x - Second Impression</title><content type='html'>&lt;div style="text-align: justify;"&gt;I have been using the latest builds of Eclipse 4.x SDK for my daily work for the last 6 weeks. The overall stability has improved gradually, and the NPEs are quite rare now. Some of the bugs I filed were also fixed&amp;nbsp; quite quickly during M3 - &lt;a href="https://bugs.eclipse.org/325834"&gt;Bug 325834&lt;/a&gt; , &lt;a href="https://bugs.eclipse.org/327154"&gt;Bug 327154&lt;/a&gt;. But there are still a few things which must work but don't.&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Ability to customize a perspective (&lt;a href="https://bugs.eclipse.org/320478"&gt;Bug 320478&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Ability to set or change key bindings (&lt;a href="https://bugs.eclipse.org/317299"&gt;Bug 317299&lt;/a&gt;)&lt;/li&gt;&lt;li&gt; Plus I am a bit confused about the 'Editor Area' introduced in 4.1 M3. Does this mean I should not create multiple editor stacks? Should I create multiple editor stacks only in the editor area? Will this editor area continue to take extra space as it does in M3? In 3.x we had a editor only area, are we going back towards that? M4 is supposed to have a more polished implementation of the 'Editor area', I will wait for that.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;I am also hoping that Editor tab rendering could be improved significantly in Eclipse 4.x (&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=325422"&gt;&lt;b&gt;Bug&amp;nbsp;325422&lt;/b&gt;&lt;/a&gt;).&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-9009339317299459875?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/9009339317299459875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/10/e4-eclipse-4x-second-impression.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/9009339317299459875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/9009339317299459875'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/10/e4-eclipse-4x-second-impression.html' title='e4 - Eclipse 4.x - Second Impression'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8932665373323403044</id><published>2010-09-18T02:09:00.000-07:00</published><updated>2010-09-18T02:09:09.603-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='e4'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>e4 - Eclipse 4.0 : First Impression</title><content type='html'>&lt;b&gt;Looks a bit funny&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/TJR2eB7_DRI/AAAAAAAAASE/7gvrSwdeRDM/s1600/e4+-+looks+funny.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="281" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/TJR2eB7_DRI/AAAAAAAAASE/7gvrSwdeRDM/s400/e4+-+looks+funny.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Off is On and On is Off&lt;/b&gt; - I saw that Build Automatically was Off so I switched it On, and then my code changes had no effect... few minutes later I realized that if something is turned Off in the UI, it may mean that it is actually turned On! e.g.Mark Occurrences, Build Automatically.&amp;nbsp; Or in the case of 'Edit &amp;gt; Smart Insert Mode' I cannot even toggle it. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/TJR2bpF2XXI/AAAAAAAAAR8/tIjthShXFM4/s1600/e4+-+off+is+on+and+on+is+off.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://2.bp.blogspot.com/_zbj8ttdu_e0/TJR2bpF2XXI/AAAAAAAAAR8/tIjthShXFM4/s320/e4+-+off+is+on+and+on+is+off.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Layout and minimized Views&lt;/b&gt; - I like the overall layout and the fact that I can put views in the editor area. I also like the way when minimized views are selected they open in a pop-up sort of a way. &lt;b&gt;Overall the UI/layout feels nice.&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_zbj8ttdu_e0/TJR2fw-ngEI/AAAAAAAAASI/pQ4pz86kIZY/s1600/e4+-+minimized+view.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="281" src="http://4.bp.blogspot.com/_zbj8ttdu_e0/TJR2fw-ngEI/AAAAAAAAASI/pQ4pz86kIZY/s400/e4+-+minimized+view.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Custom Key Bindings&lt;/b&gt; - mmh...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/TJR2b_4kacI/AAAAAAAAASA/QaUwe6QDNv0/s1600/e4+-+key+bindings.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="277" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/TJR2b_4kacI/AAAAAAAAASA/QaUwe6QDNv0/s320/e4+-+key+bindings.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Order of menu and toolbar items&lt;/b&gt; - The ordering of items in menus and toolbars can be a bit different from 3.x versions. e.g. navigate menu, run/debug toolbar&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/TJR9gm6DAII/AAAAAAAAASQ/rVSrk1nsVc0/s1600/e4+-+order+of+menu+and+toolbar+items.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_zbj8ttdu_e0/TJR9gm6DAII/AAAAAAAAASQ/rVSrk1nsVc0/s320/e4+-+order+of+menu+and+toolbar+items.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;I can use it for my daily work, &lt;/b&gt;except for some minor glitches and some funny behavior I have been able to use it for last few days. And I do like the layout, mixing of editors and views, and the overall feel of the UI to not go back to 3.x (at least for now).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8932665373323403044?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8932665373323403044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/09/e4-eclipse-40-first-impression.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8932665373323403044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8932665373323403044'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/09/e4-eclipse-40-first-impression.html' title='e4 - Eclipse 4.0 : First Impression'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zbj8ttdu_e0/TJR2eB7_DRI/AAAAAAAAASE/7gvrSwdeRDM/s72-c/e4+-+looks+funny.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-3730095975822231707</id><published>2010-09-06T19:02:00.000-07:00</published><updated>2010-09-06T19:02:51.934-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>New Command in JDT : Open from Clipboard</title><content type='html'>This is what I used to end up doing very frequently&lt;br /&gt;- copy something like String#getBytes from a bug comment&lt;br /&gt;- press Ctrl+Shift+T in Eclipse&lt;br /&gt;- paste the copied text Open Type dialog&lt;br /&gt;- argh... no matches&lt;br /&gt;- delete the method name&lt;br /&gt;- open the type in an editor&lt;br /&gt;- press Ctrl+O &lt;br /&gt;- argh.. what was that method again?&lt;br /&gt;- go back to bugzilla and read/copy the method name&lt;br /&gt;- come back to Quick Outline and filter the method&lt;br /&gt;- and finally reach the method&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The new command opens a &lt;/b&gt;&lt;b&gt;Java element or a &lt;/b&gt;&lt;b&gt;Java stack trace from clipboard&lt;/b&gt;. If the clipboard  content spans multiple lines then the it is pasted to the Java Stack Trace  Console. If the clipboard content is a single line the command tries to open the  matching Java element in an editor. Some examples&lt;br /&gt;&lt;ul&gt;&lt;li&gt;java.lang.String  &lt;/li&gt;&lt;li&gt;String#getBytes  &lt;/li&gt;&lt;li&gt;java.lang.String.getBytes(String, int[], int)  &lt;/li&gt;&lt;li&gt;String.java:123  &lt;/li&gt;&lt;li&gt;at java.lang.String.matches(String.java:1550)  &lt;/li&gt;&lt;li&gt;java.lang.String.valueOf(char) line: 1456&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;I use this command with a key binding of &lt;b&gt;Ctrl+Shift+V&lt;/b&gt;. After doing a Ctrl+C the most natural thing to do is Ctrl+V so the key binding for this command should be similar. Plus Ctrl+Shift+V is also similar to Ctrl+Shift+T and Ctrl+Shift+R, making it a bit easier for me to remember it.&lt;br /&gt;&lt;br /&gt;This command (&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48880" name="b48880"&gt;Bug 48880&lt;/a&gt;) is already in nightly builds and will be in the today's I-build. &lt;br /&gt;&lt;br /&gt;As a final note I should also mention 2 'nasty' Platform bugs that I faced while implementing this command&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://bugs.eclipse.org/324160"&gt;Bug 324160&lt;/a&gt;: [Commands] Platform should support to use the action IDs from the action set contribution in menuContribution&lt;/li&gt;&lt;li&gt;&lt;a href="https://bugs.eclipse.org/324161"&gt;Bug 324161&lt;/a&gt;: menu contributions added using 'endof' should appear before contributions added using 'after'&lt;/li&gt;&lt;/ul&gt;I say nasty because in its current form the whole menu contribution, command, actionSet, action story can be very confusing...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-3730095975822231707?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/3730095975822231707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/09/new-command-in-jdt-open-from-clipboard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3730095975822231707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3730095975822231707'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/09/new-command-in-jdt-open-from-clipboard.html' title='New Command in JDT : Open from Clipboard'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-6817209950340141395</id><published>2010-08-07T07:21:00.000-07:00</published><updated>2010-08-07T07:40:22.244-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>JDT 3.7 M1 - New and Noteworthy</title><content type='html'>&lt;b&gt;Filter preferences on Java &gt; Compiler &gt; Errors/Warnings page&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;We have just too many options on this preference page (as does PDE and API tooling on some of their preference pages) and finding the option you are looking for can be quite difficult (and frustrating) with all the twisties and so much of scrolling involved.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You can now filter preferences on the &lt;b&gt;Java &gt; Compiler &gt; Errors/Warnings&lt;/b&gt; page by preference          label text or by preference value. A word in the filter string preceded by '~' is used to filter on   preference values. Examples:    &lt;/div&gt;&lt;ul&gt;&lt;li&gt;param&lt;/li&gt;&lt;li&gt;~off&lt;/li&gt;&lt;li&gt;~ignore&lt;/li&gt;&lt;li&gt;param ~enabled&lt;/li&gt;&lt;li&gt;~ignore param&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/TF1ivCAb5GI/AAAAAAAAARY/VKvyLpmV_FM/s1600/preference-filter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_zbj8ttdu_e0/TF1ivCAb5GI/AAAAAAAAARY/VKvyLpmV_FM/s400/preference-filter.png" border="0" height="285" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="https://bugs.eclipse.org/321818"&gt;Bug 321818&lt;/a&gt; is the next item to do - allow to filter a section for a value e.g. 'code style ~error.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;New 'Open Hyperlink' command&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The new &lt;b&gt;Open Hyperlink&lt;/b&gt; command opens one or more hyperlinks at the current caret location.         The command has been added to the &lt;b&gt;Navigate&lt;/b&gt; menu for the Java and properties file editors and can also be used in other text editors by         assigning a key binding on the &lt;b&gt;General &gt; Keys&lt;/b&gt; preference page.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/TF1lj_mj9OI/AAAAAAAAARc/6Y5JZBTot40/s1600/open-hyperlink-menu-item.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://3.bp.blogspot.com/_zbj8ttdu_e0/TF1lj_mj9OI/AAAAAAAAARc/6Y5JZBTot40/s1600/open-hyperlink-menu-item.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The command opens the hyperlink directly if there's only one link available. Otherwise, it shows a chooser with all         the available hyperlinks at that location. The links are the same as when you move the mouse with &lt;b&gt;Ctrl&lt;/b&gt; pressed.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/TF1lk2ag68I/AAAAAAAAARg/-osin4jx7i0/s1600/open-hyperlink-popup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_zbj8ttdu_e0/TF1lk2ag68I/AAAAAAAAARg/-osin4jx7i0/s1600/open-hyperlink-popup.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So now you can assign a key to this command (say F6) and then use this command in Properties files to navigate to NLS key references, in Java editor to navigate to declaration or implementation for a method,and declaration for other Java elements, or for any other hyperlinks. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In short you can possibly stop using Open Declaration (F3) and start using this new command - depending on whether or not you would like to always make a choice between navigating to declaration or navigating to implementation for method invocations :)&lt;/div&gt;&lt;br /&gt;&lt;a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.7M1-201008051700/eclipse-news-M1.html"&gt;Other New and Noteworthy items&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-6817209950340141395?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/6817209950340141395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/08/jdt-37-m1-new-and-noteworthy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6817209950340141395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6817209950340141395'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/08/jdt-37-m1-new-and-noteworthy.html' title='JDT 3.7 M1 - New and Noteworthy'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zbj8ttdu_e0/TF1ivCAb5GI/AAAAAAAAARY/VKvyLpmV_FM/s72-c/preference-filter.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-1807011864746933542</id><published>2010-08-01T05:52:00.000-07:00</published><updated>2010-08-01T05:53:28.695-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>CVS vs Git: Local disk usage</title><content type='html'>I was a bit skeptical about the local disk usage with Git, as every Git clone is a full-fledged repository with complete history, and apparently Git stores entire snapshots and not the deltas.&lt;br /&gt;&lt;br /&gt;Everyone seemed to be claiming that Git is quite efficient in terms of storage space required, and I also found the following statistic on the web&lt;br /&gt;&lt;i&gt;"The Mozilla CVS repository was 2.7GB, imported to Subversion it grew to 8.2GB. Under Git, it shrunk to 450MB. Given that a Mozilla checkout is around 350MB, its fairly nice to have the whole project history (from 1998) in only slightly more space."&lt;/i&gt;&lt;br /&gt;Source: http://keithp.com/blog/Repository_Formats_Matter/&lt;br /&gt;&lt;br /&gt;But I was still a bit skeptical... :)&lt;br /&gt;&lt;br /&gt;So I downloaded some of the JDT source from &lt;a href="http://dev.eclipse.org/git/index.html"&gt;Eclipse Git repositories&lt;/a&gt; and compared the disk usage under Git with CVS. Here are the numbers. For these selected projects,&lt;b&gt; Git on an average takes less than three times the space required by CVS&lt;/b&gt;. In my opinion this cost is nothing as compared to the benefits of having the entire history locally.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/TFVomVMwT0I/AAAAAAAAARU/Qkip5-WgDws/s1600/cvs-vs-git.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="296" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/TFVomVMwT0I/AAAAAAAAARU/Qkip5-WgDws/s640/cvs-vs-git.png" width="640" /&gt;&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/1616206987206690523-1807011864746933542?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/1807011864746933542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/08/cvs-vs-git-local-disk-usage.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1807011864746933542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1807011864746933542'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/08/cvs-vs-git-local-disk-usage.html' title='CVS vs Git: Local disk usage'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zbj8ttdu_e0/TFVomVMwT0I/AAAAAAAAARU/Qkip5-WgDws/s72-c/cvs-vs-git.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-2465534465400349115</id><published>2010-07-31T07:51:00.000-07:00</published><updated>2010-07-31T08:01:29.291-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Eclipse Helios</title><content type='html'>&lt;span class="field-item"&gt;Going through the &lt;a href="http://www.eclipse.org/helios/blogathon/reviews.php"&gt;Helios Reviews&lt;/a&gt; I see that a number of bloggers have said good things about the new features in JDT :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="field-item"&gt;If you have not yet seen the new features of JDT then check out the&lt;b&gt; &lt;/b&gt;&lt;a href="http://live.eclipse.org/node/908"&gt;&lt;b&gt;10 minute demo&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="field-item"&gt; I recorded last month. This video shows what's new in JDT for Eclipse  3.6, the &lt;a href="http://eclipse.org/helios/" target="blank"&gt;Helios  release&lt;/a&gt;.What's shown in the video is just a part of all the new  stuff within JDT. For more information see the '&lt;a href="http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.user/whatsNew/jdt_whatsnew.html"&gt;What's New&lt;/a&gt;' document in the Java development user guide.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="field-item"&gt;My favorite features being&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Java breakpoint detail&lt;/b&gt;&lt;span class="field-item"&gt; - No more opening a new dialog for editing breakpoint properties, I just love this one.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/TFQvNRW3QKI/AAAAAAAAARI/2sXflqo3L38/s1600/bp-details.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_zbj8ttdu_e0/TFQvNRW3QKI/AAAAAAAAARI/2sXflqo3L38/s320/bp-details.png" border="0" height="320" width="313" /&gt;&lt;/a&gt;&lt;b&gt;&lt;span class="field-item"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;span class="field-item"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="field-item"&gt;Package name &lt;/span&gt;&lt;/b&gt;&lt;span class="field-item"&gt;&lt;b&gt;abbreviations&lt;/b&gt; - This is a simple but very useful improvement, makes the Package Explorer a lot less cluttered.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/S92-IujF0bI/AAAAAAAAAOk/f2atLf2fJag/s1600/package-abbreviations-off.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_zbj8ttdu_e0/S92-IujF0bI/AAAAAAAAAOk/f2atLf2fJag/s1600/package-abbreviations-off.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/S92-OebmjZI/AAAAAAAAAOs/9e4CkASh2o0/s1600/package-abbreviations-on.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_zbj8ttdu_e0/S92-OebmjZI/AAAAAAAAAOs/9e4CkASh2o0/s1600/package-abbreviations-on.png" 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;ul&gt;&lt;li&gt;&lt;span class="field-item"&gt;&lt;b&gt;Remove nodes from Call Hierarchy&lt;/b&gt;&lt;/span&gt; - While this is useful now, it should become better once &lt;a href="https://bugs.eclipse.org/304135"&gt;Bug 304135&lt;/a&gt; (Allow to pin Call Hierarchy) gets fixed.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/TFQy6G-NT1I/AAAAAAAAARM/SSifLim_KPk/s1600/remove-from-view-action.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_zbj8ttdu_e0/TFQy6G-NT1I/AAAAAAAAARM/SSifLim_KPk/s320/remove-from-view-action.png" border="0" height="195" width="320" /&gt; &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="field-item"&gt;&lt;b&gt;Fix multiple problems via problem hover&lt;/b&gt; - This saves a lot of effort.&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/TFQ0jU-JXkI/AAAAAAAAARQ/2HWy7Ka9wiA/s1600/multifix-problem-hover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://3.bp.blogspot.com/_zbj8ttdu_e0/TFQ0jU-JXkI/AAAAAAAAARQ/2HWy7Ka9wiA/s320/multifix-problem-hover.png" border="0" height="125" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Work on Eclipse Indigo is already in full swing with M1 coming up next week. Some nice features have been implemented in M1, bugs - &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=78522" name="b78522"&gt;78522&lt;/a&gt; , &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=277862" name="b277862"&gt;277862&lt;/a&gt; , &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=315772" name="b315772"&gt;315772&lt;/a&gt; , &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=320876" name="b320876"&gt;320876&lt;/a&gt; , &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=310470" name="b310470"&gt;310470&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-2465534465400349115?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/2465534465400349115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/07/eclipse-helios.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2465534465400349115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2465534465400349115'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/07/eclipse-helios.html' title='Eclipse Helios'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zbj8ttdu_e0/TFQvNRW3QKI/AAAAAAAAARI/2sXflqo3L38/s72-c/bp-details.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8389388653849353372</id><published>2010-07-01T13:51:00.000-07:00</published><updated>2010-07-01T13:51:00.244-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Too many options in Eclipse?</title><content type='html'>&lt;div style="text-align: justify;"&gt;At times I wonder if we have too many actions, key bindings, preferences etc in Eclipse. I mean a beginner would probably find&amp;nbsp; number of key bindings in the Ctrl+Shift+L pop-up overwhelming. This pop-up lists a number of 'Show View' key bindings, but I think listing only Quick Access (Ctrl+3) should suffice - at least for beginners.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This raises another question - how many users of Eclipse are beginners, how many some what comfortable, how many expert. I would assume a significant number in each category. Maybe we should have beginner, intermediate, expert modes/perspectives. For example in the beginner mode we can hide (not disable) the actions and preferences which are typically used by power users.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8389388653849353372?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8389388653849353372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/07/too-many-options-in-eclipse.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8389388653849353372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8389388653849353372'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/07/too-many-options-in-eclipse.html' title='Too many options in Eclipse?'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-4411905791027301202</id><published>2010-06-20T00:58:00.000-07:00</published><updated>2010-06-20T00:59:01.716-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><title type='text'>Mac : Windows :: iOS : Android ?</title><content type='html'>In the late 70s and the early 80s Apple computers were the coolest devices around and everyone wanted to have one, and then Windows came along firstly with IBM PCs and then with IBM PC clones, i.e. Windows worked on hardware sold by most manufactures.&lt;br /&gt;&lt;br /&gt;Now in 2010, iPhone is the coolest device out there and everyone wants to have one, but Android has come along which works on hardware sold by a number of manufactures.&lt;br /&gt;&lt;br /&gt;Is history repeating itself?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-4411905791027301202?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/4411905791027301202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/06/mac-windows-ios-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4411905791027301202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4411905791027301202'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/06/mac-windows-ios-android.html' title='Mac : Windows :: iOS : Android ?'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8490629194587981940</id><published>2010-06-19T03:10:00.000-07:00</published><updated>2011-07-29T21:41:02.956-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Insight'/><title type='text'>The Executive Dashboard 2010</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is the Executive Dashboard as presented at &lt;a href="http://www-01.ibm.com/software/rational/innovate/"&gt;IBM Rational Innovate 2010&lt;/a&gt;. This looks to be quite a bit more sophisticated than &lt;a href="http://thecoderlounge.blogspot.com/2009/07/ibm-rational-insight-getting-started.html"&gt;last year&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gesKS2f9QlI&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xd0d0d0&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/gesKS2f9QlI&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xd0d0d0&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" height="385" width="640"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8490629194587981940?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8490629194587981940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/06/executive-dashboard-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8490629194587981940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8490629194587981940'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/06/executive-dashboard-2010.html' title='The Executive Dashboard 2010'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8461334248915796883</id><published>2010-06-02T10:31:00.000-07:00</published><updated>2011-06-02T23:30:18.638-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jdt tips'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Printpoints : Debugging by writing to console</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There are two ways of debugging&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Breakpoints&lt;/b&gt; - I typically use breakpoints when&lt;/li&gt;&lt;ul&gt;&lt;li&gt; I do not have much idea of the code and need to inspect variables and expressions at a number of places to gain an understanding of what is happening.&lt;/li&gt;&lt;li&gt;I am making some changes and want to see how these changes affect a particular variable/expression, also I am confident that one or two iterations of this change-test process will suffice&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Printpoints&lt;/b&gt; - There are scenarios when the breakpoints fail or are inefficient, in these cases I just use &lt;code&gt;System.out.println()&lt;/code&gt;. This is typically when&lt;/li&gt;&lt;ul&gt;&lt;li&gt;the breakpoint hits too often, for example keypress, focus, mouse events&lt;/li&gt;&lt;li&gt;I want to see the order of thread execution&lt;/li&gt;&lt;li&gt;I am making some changes and want to see how these changes affect a 'few' variables/expressions, also I am confident that it will take 'a number' of iterations of this change-test process to fix the bug. Printing everything to console in this case proves to be much more efficient than stepping through the code.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Most developers (including me till recently) insert the print statements in their code and the problem with that is that you have to take them out later. I know you can sometimes leave them in the source as tracing statements, but most of the time they have to be taken out. But there is a solution...&lt;br /&gt;&lt;br /&gt;The conditional breakpoint editor in Eclipse can be 'tricked' to create what I like to call as &lt;b&gt;Printpoint&lt;/b&gt; - and define &lt;b&gt;as a 'point' in code where the debugger does not 'break' but only 'prints' to console&lt;/b&gt;. Essentially a Printpoint is a conditional breakpoint that never suspends execution but only  prints to console. To set a printpoint, set a conditional breakpoint with  &lt;b&gt;Suspend when 'true'&lt;/b&gt; option and a condition which is always false. e.g.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/TAaQsYGtVdI/AAAAAAAAAQc/J5K1u5q8g2o/s1600/print-point.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="122" src="http://2.bp.blogspot.com/_zbj8ttdu_e0/TAaQsYGtVdI/AAAAAAAAAQc/J5K1u5q8g2o/s400/print-point.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Code templates are available in the condition editor, so you can create a template under 'Java statements' context and use it here. &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=315404"&gt;Bug 315404&lt;/a&gt; has been filed to have this available in JDT by default.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8461334248915796883?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8461334248915796883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/06/print-points-debugging-by-writing-to.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8461334248915796883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8461334248915796883'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/06/print-points-debugging-by-writing-to.html' title='Printpoints : Debugging by writing to console'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zbj8ttdu_e0/TAaQsYGtVdI/AAAAAAAAAQc/J5K1u5q8g2o/s72-c/print-point.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-4663463939122491103</id><published>2010-05-29T18:34:00.000-07:00</published><updated>2010-05-29T06:05:57.409-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>ECJ - Eclipse Compiler for Java</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Eclipse provides and uses its own compiler that is not javac&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Eclipse compiler is used inside the IDE (Eclipse)&lt;/li&gt;&lt;li&gt;The Eclipse compiler can also be used as a pure batch compiler outside of Eclipse&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Finding the Batch compiler&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The batch compiler class is located in the JDT Core plug-in. The name of the  class is &lt;i&gt;org.eclipse.jdt.compiler.batch.BatchCompiler&lt;/i&gt;. It is packaged  into &lt;code&gt;plugins/org.eclipse.jdt.core_3.5.2.v_981_R35x.jar&lt;/code&gt;.  Since 3.2, it is also available as a separate download. The name of the file is  &lt;code&gt;ecj.jar&lt;/code&gt;. Its corresponding source is also available. To get them,  go to the &lt;a href="http://download.eclipse.org/eclipse/downloads/"&gt;download  page&lt;/a&gt;, select a build and search for the section &lt;b&gt;JDT Core Batch Compiler&lt;/b&gt;. This jar  contains the batch compiler and the javac ant adapter.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Running the batch compiler from command line&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Check compiler version&lt;/span&gt;&lt;br /&gt;&lt;code style="color: rgb(51, 51, 255);"&gt;$ java -jar ecj-3.5.2.jar -version&lt;/code&gt;&lt;br /&gt;or&lt;br /&gt;&lt;code style="color: rgb(51, 51, 255);"&gt;$ java -jar org.eclipse.jdt.core_3.5.2.v_981_R35x.jar -version&lt;br /&gt;&lt;br /&gt;Eclipse Compiler for Java (TM) 0.981_R35x, 3.5.2 release, Copyright IBM  Corp 2000, 2009. All rights reserved.&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Compile a source file&lt;/span&gt;&lt;br /&gt;&lt;code style="color: rgb(51, 51, 255);"&gt;$ java -jar ecj-3.5.2.jar HelloWorld.java&lt;/code&gt;&lt;br /&gt;or&lt;br /&gt;&lt;code style="color: rgb(51, 51, 255);"&gt;$ java -jar org.eclipse.jdt.core_3.5.2.v_981_R35x.jar HelloWorld.java&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Running the batch compiler programmatically&lt;/span&gt;&lt;br /&gt;Use the static &lt;code&gt;compile(String commandLine, PrintWriter outWriter, PrintWriter errWriter, CompilationProgress progress)&lt;/code&gt; method of the class BatchCompiler.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;org.eclipse.jdt.compiler.CompilationProgress progress = null; // instantiate your subclass&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;org.eclipse.jdt.internal.compiler.batch.BatchCompiler.compile(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; "-classpath rt.jar A.java",&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;new PrintWriter(System.out),&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;new PrintWriter(System.err),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; progress);&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;You can control how progress is reported, or how the batch compiler is canceled, by subclassing the class org.eclipse.jdt.compiler.CompilationProgress.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Using the ant javac adapter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Eclipse compiler can be used inside an Ant buildfile using the javac adapter. In order to use the Eclipse compiler, you simply need to define the build.compiler property in your buildfile.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"&lt;/span&gt; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;More Information&lt;/span&gt;&lt;br /&gt;Look in Eclipse SDK - Help : JDT Plug-in Developer Guide &gt; Programmer's Guide &gt; JDT Core &gt; Compiling Java code&lt;br /&gt;&lt;br /&gt;&lt;span&gt;So who all are using the Eclipse Java Compiler&lt;/span&gt; - besides developers using Eclipse for writing java code :) ?  &lt;a href="http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html"&gt;Apache Tomcat&lt;/a&gt; uses ECJ to compile JSPs, &lt;a href="http://www.jetbrains.net/confluence/display/IDEADEV/What%27s+New+In+Demetra"&gt;IntelliJ  IDEA&lt;/a&gt; has support ECJ, as of GCJ 4.3, &lt;a href="http://gcc.gnu.org/java/index.html"&gt;GCJ&lt;/a&gt; integrates with ECJ, &lt;a href="http://www.liferay.com/community/wiki/-/wiki/Main/ECJ"&gt;Liferay&lt;/a&gt; Builds with ECJ, and there are many others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-4663463939122491103?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/4663463939122491103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/05/ecj-eclipse-java-compiler.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4663463939122491103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4663463939122491103'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/05/ecj-eclipse-java-compiler.html' title='ECJ - Eclipse Compiler for Java'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-335973214971414305</id><published>2010-05-09T02:32:00.000-07:00</published><updated>2010-05-09T05:26:40.193-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Why Open Source?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Now that I work on Eclipse which is Open Source, I decided to give some  serious thought to the question -  why allow your software to be used  for free?&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zbj8ttdu_e0/S-afan4N_UI/AAAAAAAAAPE/XlqeoYNrEdo/s1600/road.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 231px; height: 172px;" src="http://4.bp.blogspot.com/_zbj8ttdu_e0/S-afan4N_UI/AAAAAAAAAPE/XlqeoYNrEdo/s320/road.jpg" alt="" id="BLOGGER_PHOTO_ID_5469234077218241858" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:50%;"&gt;http://www.geograph.org.uk/photo/176270&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Before getting to software lets see if some other things have been allowed to be used for free in the past. The first example I can think of is Roads - governments construct roads and let people use them for free. The goal of the government is to make places - markets, malls, industries, schools etc - on the road to be more accessible. These places in turn generate money and the government earns its taxes from them which in turn are used to construct more roads.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zbj8ttdu_e0/S-aiJEGNbGI/AAAAAAAAAPM/XJ3mKQjw1KQ/s1600/toll+road.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 257px; height: 193px;" src="http://2.bp.blogspot.com/_zbj8ttdu_e0/S-aiJEGNbGI/AAAAAAAAAPM/XJ3mKQjw1KQ/s320/toll+road.jpg" alt="" id="BLOGGER_PHOTO_ID_5469237074090355810" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:50%;"&gt;http://upload.wikimedia.org/wikipedia/commons/8/88/BomstasjonSvinesund.jpg&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Now there are some &lt;span style="font-weight: bold;"&gt;'Toll roads'&lt;/span&gt; as well where you pay for each usage of the road. People will pay for each usage of a road if firstly they have the money, and secondly they have no alternative free road to use.&lt;br /&gt;&lt;br /&gt;In both cases the roads do not serve any purpose other than make places accessible where the actual work gets done and people make money. True you can go for a nice relaxing drive but that is not the primary use of a road.&lt;br /&gt;&lt;br /&gt;In software world, an example of 'Toll Road' would be Microsoft Windows - people do not pay for Windows just to click around with a mouse; they probably need a word processor, a browser, a presentation maker etc to get some work done. Since historically there were not many choices in operating systems and Microsoft managed to market Windows well - people ended up paying for it.&lt;br /&gt;&lt;br /&gt;Now &lt;a href="http://eclipse.org/"&gt;Eclipse&lt;/a&gt; began as an IBM project which was later made open source.  The Eclipse foundation has a number of &lt;a href="http://www.eclipse.org/membership/showMembersWithTag.php?TagID=strategic"&gt;strategic members&lt;/a&gt; and I think all of them sell products built of top of Eclipse platform and make money. Eclipse being a free and open road means that the road is just awesome and a lot of people use it, making the final destinations (commercial products) that much more profitable.&lt;br /&gt;&lt;br /&gt;MySql also has a free version and an enterprise commercial version. &lt;a href="http://en.wikipedia.org/wiki/Mozilla_Foundation"&gt;Mozilla Foundation&lt;/a&gt; makes money from Search royalties and some donations. However if Netscape had defeated Microsoft in the browser wars over a decade ago then I do not think we would have been using Firefox for free. (Maybe all of us should thank Microsoft for this :p )&lt;br /&gt;&lt;br /&gt;I assume something similar happens in Apache, Linux worlds and other open source projects. If you are not able to make people pay for the road, you give it away for free, create a huge user base or community, invite contributions from this community and then reap benefits from making money at the malls, industries, schools down the road.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-335973214971414305?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/335973214971414305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/04/why-open-source.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/335973214971414305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/335973214971414305'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/04/why-open-source.html' title='Why Open Source?'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zbj8ttdu_e0/S-afan4N_UI/AAAAAAAAAPE/XlqeoYNrEdo/s72-c/road.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8689222037860337544</id><published>2010-05-02T10:54:00.000-07:00</published><updated>2010-05-02T11:26:51.327-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>3.6 M7 - New &amp; Cool in JDT</title><content type='html'>Till now Eclipse had a package name compression preference with which 'org.eclipse.ui.contentassist' could be compressed to 'o.e.u.contentassist'. From M7 onwards package names in Java views can be abbreviated with some custom rules as well.&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zbj8ttdu_e0/S92-OebmjZI/AAAAAAAAAOs/9e4CkASh2o0/s1600/package-abbreviations-on.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 263px; height: 264px;" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/S92-OebmjZI/AAAAAAAAAOs/9e4CkASh2o0/s400/package-abbreviations-on.png" alt="" id="BLOGGER_PHOTO_ID_5466734678593932690" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zbj8ttdu_e0/S92-IujF0bI/AAAAAAAAAOk/f2atLf2fJag/s1600/package-abbreviations-off.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 263px; height: 264px;" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/S92-IujF0bI/AAAAAAAAAOk/f2atLf2fJag/s400/package-abbreviations-off.png" alt="" id="BLOGGER_PHOTO_ID_5466734579841094066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&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;Rules for this example:         &lt;pre&gt;org.eclipse.ui={UI}&lt;br /&gt;org.eclipse.ui.texteditor={T}&lt;br /&gt;org.eclipse.ui.internal.texteditor=[iT]&lt;/pre&gt;                 &lt;p&gt;These rules can be configured in &lt;b&gt;Preferences  &gt; Java &gt; Appearance &gt; Abbreviate package names&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;I really like this feature. Thanks Guven Demir for contributing this(&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=299514"&gt;Bug 299514&lt;/a&gt;) !!&lt;/p&gt;Also, we have a new          decorator (a big red '!') on Java projects and working sets that contain build  path errors. We went through a number of options (&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=215980"&gt;Bug 215980&lt;/a&gt;)before settling on this one. Helps to spot those build path problems really easily!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zbj8ttdu_e0/S93DFBuWz4I/AAAAAAAAAO8/0pkXo6V_EP8/s1600/build-path-error-decorator.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 508px; height: 155px;" src="http://2.bp.blogspot.com/_zbj8ttdu_e0/S93DFBuWz4I/AAAAAAAAAO8/0pkXo6V_EP8/s400/build-path-error-decorator.png" alt="" id="BLOGGER_PHOTO_ID_5466740013827280770" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8689222037860337544?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8689222037860337544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/05/36-m7-new-cool-in-jdt.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8689222037860337544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8689222037860337544'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/05/36-m7-new-cool-in-jdt.html' title='3.6 M7 - New &amp; Cool in JDT'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zbj8ttdu_e0/S92-OebmjZI/AAAAAAAAAOs/9e4CkASh2o0/s72-c/package-abbreviations-on.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-6498561232575848070</id><published>2010-04-24T07:04:00.000-07:00</published><updated>2011-05-11T07:16:47.719-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipseday'/><title type='text'>UI Patterns in Eclipse</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Slides for my talk at Eclipse Day India 2010&lt;br /&gt;&lt;div id="__ss_3839960" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/deepakazad/ui-patterns-in-eclipse" title="UI Patterns in Eclipse"&gt;UI Patterns in Eclipse&lt;/a&gt;&lt;/b&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=uipatternsineclipse-100424090052-phpapp02&amp;amp;stripped_title=ui-patterns-in-eclipse"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=uipatternsineclipse-100424090052-phpapp02&amp;amp;stripped_title=ui-patterns-in-eclipse" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0pt 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/deepakazad"&gt;deepakazad&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-6498561232575848070?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/6498561232575848070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/04/ui-patterns-in-eclipse.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6498561232575848070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6498561232575848070'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/04/ui-patterns-in-eclipse.html' title='UI Patterns in Eclipse'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-4301324290177814614</id><published>2010-04-24T03:01:00.000-07:00</published><updated>2011-05-11T07:16:30.789-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipseday'/><title type='text'>Eclipse Day India 2010</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/S9L3LaUZTGI/AAAAAAAAAOY/RFziJQz38W0/s1600/Eclipse_Day.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5463701073369320546" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/S9L3LaUZTGI/AAAAAAAAAOY/RFziJQz38W0/s400/Eclipse_Day.png" style="cursor: pointer; display: block; height: 70px; margin: 0px auto 10px; text-align: center; width: 270px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Yesterday I presented at the first &lt;a href="http://www.eclipseday.in/"&gt;Eclipse Day&lt;/a&gt; to be organized in India. It was a great event, credit goes to Ankur and Prakash for organizing it, and to all the &lt;a href="http://www.eclipseday.in/p/speakers_05.html"&gt;presenters&lt;/a&gt; and attendees (some of them had come from other cities) for making it successful.&lt;br /&gt;&lt;br /&gt;The keynote was planned to be delivered by Daniel Megert, but the volcanic eruption in Iceland meant that he could not make it to Bangalore. However, Rajesh Thakkar, who stepped in at the last minute, delivered a nice keynote - Agility and Open Source. He is quite an inspirational speaker and I have heard him quite a few times inspiring people in the hallways of Rational Labs :). The keynote started off with a history of open source (not open source software), looks like open source has been around since at least 1857 when volunteers started work on the Oxford English Dictionary! I also liked his point on working at a 'sustainable pace', and not over committing. A lot of developers (me included) are guilty of saying 'no problem, it will be done' even when they no nothing about the problem at hand and then slogging days and nights trying to get it done.&lt;br /&gt;&lt;br /&gt;Among the other talks I liked&lt;br /&gt;- the OSGi tutorial by Prakash - modules in an application and rooms in a house analogy was nice!&lt;br /&gt;- P2 talk by Pradeep,&lt;br /&gt;- the one on RAP by Ankur ,&lt;br /&gt;- and lastly Chetan's talk on dependency injection. I thought Chetan explained the topic really well with simple examples.&lt;br /&gt;&lt;br /&gt;And oh yes, pizza and drinks with my team and Rajesh in the evening was fun. Guys we need to make this a tradition at every Eclipse event we organize!&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/1616206987206690523-4301324290177814614?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/4301324290177814614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/04/eclipse-day-india-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4301324290177814614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4301324290177814614'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/04/eclipse-day-india-2010.html' title='Eclipse Day India 2010'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zbj8ttdu_e0/S9L3LaUZTGI/AAAAAAAAAOY/RFziJQz38W0/s72-c/Eclipse_Day.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-6430486059138749388</id><published>2010-04-02T22:57:00.000-07:00</published><updated>2011-03-08T07:58:57.487-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipsecon'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Eclipse, NASA and the Mars rovers</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www-robotics.jpl.nasa.gov/people/Jeffrey_Norris/"&gt;Dr Jeff Norris&lt;/a&gt; from NASA Jet Propulsion Laboratory gave an amazing keynote presentation at &lt;a href="http://www.eclipsecon.org/2010/"&gt;EclipseCon 2010&lt;/a&gt;. He showed how his team at NASA has been using Eclipse based clients to control Robots/Rovers. He also did some live demos - remotely controlled a giant &lt;a href="http://www-robotics.jpl.nasa.gov/systems/system.cfm?System=11"&gt;ATHLETE&lt;/a&gt; rover, and controlled a robotic Socrates head. It was nice to see Eclipse being used for controlling those Mars rovers :).&lt;br /&gt;&lt;br /&gt;While I was really impressed by the live demos and the rovers I think the highlight of his talk was something else. The talk was built around the point that 'An individual alone cannot construct a skyscraper (a complex system), it takes a group of people specialized in different skills to do that'. This means that an individual's contribution, however small it may appear, is important to the group's success and we at Eclipse can take some credit (however small) for those Mars Rovers :).&lt;br /&gt;&lt;br /&gt;10 years ago I was writing essays as part of  &lt;a href="http://www.planetary.org/programs/projects/red_rover_goes_to_mars/"&gt;'Red Rover goes to Mars'&lt;/a&gt; project, while my essays did not make the cut then, I now write software which is used for controlling those Mars Rovers! Pretty neat, I say :)&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/1616206987206690523-6430486059138749388?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/6430486059138749388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/04/eclipse-nasa-and-mars-rovers.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6430486059138749388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6430486059138749388'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/04/eclipse-nasa-and-mars-rovers.html' title='Eclipse, NASA and the Mars rovers'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-4301862177492843436</id><published>2010-02-21T23:07:00.000-08:00</published><updated>2010-02-21T23:11:05.753-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><title type='text'>Open windows explorer from command line</title><content type='html'>$start .     // opens the current directory&lt;br /&gt;$start C:\Downloads    //opens the downloads directory&lt;br /&gt;&lt;br /&gt;instead of 'start' 'explorer' also works&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-4301862177492843436?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/4301862177492843436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/02/open-windows-explorer-from-command-line.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4301862177492843436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4301862177492843436'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/02/open-windows-explorer-from-command-line.html' title='Open windows explorer from command line'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-4110593131412882431</id><published>2010-01-27T00:38:00.000-08:00</published><updated>2011-07-29T21:42:14.462-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='OSLC'/><category scheme='http://www.blogger.com/atom/ns#' term='Jazz'/><title type='text'>Open Services for Lifecycle Collaboration (OSLC)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;IBM Rational Jazz is a participant in OSLC.&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/B2vqL8fujgE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/B2vqL8fujgE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;For more info see http://open-services.net&lt;br /&gt;&lt;a href="http://open-services.net/html/case4oslc.pdf"&gt;OSLC white paper&lt;/a&gt;&lt;br /&gt;&lt;a href="http://open-services.net/bin/view/Main/CmSpecificationV1"&gt;Change Management 1.0 Specification &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/1616206987206690523-4110593131412882431?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/4110593131412882431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/01/open-services-for-lifecycle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4110593131412882431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4110593131412882431'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/01/open-services-for-lifecycle.html' title='Open Services for Lifecycle Collaboration (OSLC)'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-1034922754921692143</id><published>2010-01-25T06:13:00.000-08:00</published><updated>2011-07-29T21:42:41.272-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='BIRT'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Scripted Data sets in BIRT</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-weight: bold;"&gt;Why/when do you need a Scripted data set in a BIRT report?&lt;/span&gt;&lt;br /&gt;Existing tables in your database will not provide data in the way you need them in a report. You might have to query more than one table to get all the data, or you may want to do some computation which requires going through one table data more than once.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What scripting language can be used?&lt;/span&gt;&lt;br /&gt;Javascript is the primary language to be used in BIRT. BIRT also uses the &lt;a href="http://www.mozilla.org/rhino/"&gt;Mozilla Rhino JavaScript engine&lt;/a&gt; which provides excellent  integration with Java, hence you can use Java libraries as well but with a Javascript like syntax.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to do it?&lt;/span&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Create a global variable&lt;/span&gt;: declare the variable in the initialize event of the report&lt;br /&gt;For example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;importPackage(Packages.java.util.*);&lt;br /&gt;globalvarMap = new java.util.HashMap();&lt;br /&gt;globalvarList = new java.util.ArrayList();&lt;/pre&gt;&lt;br /&gt;-&lt;span style="font-weight: bold;"&gt; Populate this variable with required data&lt;/span&gt;: Typically you would read a simple dataset and dump all the data in this global map with the primary key (or maybe some other value) of the table being the key of the hashmap. The necessary code goes in &lt;span style="font-weight: bold;"&gt;'onFetch'&lt;/span&gt; event (method) of the dataset, and a table column is referred to as &lt;span style="font-weight: bold;"&gt;'row["CUSTOMER_ID"]'&lt;/span&gt;. The onFetch event is called once per each table record, hence you get access to table data one record at a time.&lt;br /&gt;For example:&lt;br /&gt;&lt;pre&gt;var list = globalVarMap.get(row["CUSTOMER_ID"]);;&lt;br /&gt;if(list == null) {&lt;br /&gt;list = new java.util.ArrayList();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var data={};&lt;br /&gt;data.customer_name = row["CUSTOMER_NAME"];&lt;br /&gt;data.product_bought = row["PRODUCT_BOUGHT"];&lt;br /&gt;data.price = row["PRICE"];&lt;br /&gt;&lt;br /&gt;list.add(data);&lt;br /&gt;globalVarMap.put(row["CUSTOMER_ID"], list);&lt;/pre&gt;&lt;br /&gt;Here the CUSTOMER_ID is not the primary key, and we are just sorting of various items bought by each customer.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Create a scripted data set:&lt;/span&gt; The final step is to create a scripted data set with the required columns and use global variables like the one above to populate this data set. Since you have the necessary data in a bunch of global variables, you can do pretty much what you want. The necessary code goes in &lt;span style="font-weight: bold;"&gt;'fetch'&lt;/span&gt;  event (method) of the dataset.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;if(customerCount &amp;lt; globalVarList.size()){&lt;br /&gt; var data = globalVarList.get(customerCount);&lt;br /&gt;&lt;br /&gt; row["CUSTOMER_ID"] = data.customer_id;&lt;br /&gt; row["CUSTOMER_NAME"] = data.customer_name;&lt;br /&gt; row["PRODUCT_ID"] =data.product_id;&lt;br /&gt; row["TOTAL_PURCHASE"] = data.total_purchase;&lt;br /&gt; row["QUARTER"] = data.quarter;&lt;br /&gt; row["COUNTRY"] = data.country;&lt;br /&gt;&lt;br /&gt; customerCount++;&lt;br /&gt; return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;return false;&lt;/pre&gt;&lt;br /&gt;Here, we have the necessary data in a global list variable and we just have to populate the scripted data set. In the fetch method we return true to indicate that there is more data coming, and false to indicate that we are done.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Additional Info&lt;/span&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/BIRT/FAQ/Scripting"&gt;BIRT/FAQ/Scripting&lt;/a&gt;&lt;br /&gt;&lt;a href="http://davidjberman.com/blogs/birt_reporting/default.aspx"&gt;BIRT Java Reporting&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/1616206987206690523-1034922754921692143?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/1034922754921692143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/01/scripted-data-sets-in-birt.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1034922754921692143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1034922754921692143'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/01/scripted-data-sets-in-birt.html' title='Scripted Data sets in BIRT'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8968498706831031385</id><published>2010-01-20T20:41:00.000-08:00</published><updated>2011-07-29T21:43:57.763-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='BIRT'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><title type='text'>Monitoring and Allocating Users Across Projects in Rational Team Concert</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Most views and reports in Rational Team Concert (RTC) are project centric. They give  information about a particular project, its members and their  utilization and various other facades. So far so good. But what if you wanted to maximize your resource (user) utilization  across projects from within RTC. Who should the project  manager pick up to assign to a new task?&lt;br /&gt;&lt;br /&gt;Few custom reports can be created to provide a resource centric view of RTC.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Resource Assignment&lt;/span&gt;&lt;br /&gt;This report gives how various resources are assigned to various projects. Essentially this report gives the overall 'Load' (as defined in the User admin page of RTC) for all users across all projects.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/S2AkNYWNQbI/AAAAAAAAAIM/rownlsAdeoo/s1600-h/Resource+Assignment.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5431380962901311922" src="http://1.bp.blogspot.com/_zbj8ttdu_e0/S2AkNYWNQbI/AAAAAAAAAIM/rownlsAdeoo/s400/Resource+Assignment.JPG" style="cursor: pointer; display: block; height: 201px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Resource Utilization&lt;/span&gt;&lt;br /&gt;This report gives you how the users are utilized across projects. It shows one value for a user by doing a weighted average, with the weights being the user assignment in percentage.&lt;br /&gt;&lt;br /&gt;Resource Utilization for a user for one project = Work Assigned (Hrs) in the project/ Total time (Hrs) available for the project&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/S2AkVF4QlnI/AAAAAAAAAIU/OgC50_wB2Yk/s1600-h/Resource+Utilization.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5431381095382816370" src="http://3.bp.blogspot.com/_zbj8ttdu_e0/S2AkVF4QlnI/AAAAAAAAAIU/OgC50_wB2Yk/s400/Resource+Utilization.JPG" style="cursor: pointer; display: block; height: 258px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Resource Utilization per User&lt;/span&gt;&lt;br /&gt;This will give a breakdown of resource utilization of a particular user.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/S3Ly5XxjLqI/AAAAAAAAALA/4Q6wtY3jjuA/s1600-h/Resource+Utilization+per+user.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5436674767637917346" src="http://1.bp.blogspot.com/_zbj8ttdu_e0/S3Ly5XxjLqI/AAAAAAAAALA/4Q6wtY3jjuA/s400/Resource+Utilization+per+user.JPG" style="cursor: pointer; display: block; height: 276px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Task Card&lt;/span&gt;&lt;br /&gt;Users can use this Task card to see all their workitems across all projects.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/S2An5aOF7eI/AAAAAAAAAIk/cRDo_A4q3VU/s1600-h/Task+Card.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5431385017853275618" src="http://1.bp.blogspot.com/_zbj8ttdu_e0/S2An5aOF7eI/AAAAAAAAAIk/cRDo_A4q3VU/s400/Task+Card.JPG" style="cursor: pointer; display: block; height: 162px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Discussion and Downloads&lt;/span&gt;&lt;br /&gt;The detailed discussion on these is captured in an RTC workitem on Jazz.net. The report designs can also be downloaded from there.&lt;br /&gt;&lt;a href="https://jazz.net/jazz/resource/itemName/com.ibm.team.workitem.WorkItem/100997" itemid="_CoTWoODUEd6YvOFLXakdZw"&gt;Create a report  to see user utilization across all projects in the repository (100997)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;These reports also deal  with massive amounts of data and hence can be a bit slow.&lt;/li&gt;&lt;li&gt;They also span  across multiple project areas  which can have different timelines, hence the reports may or may not suit your needs. If the timelines are aligned, then these reports should work without problems.&lt;/li&gt;&lt;li&gt;These have been tested with RTC 2.0.0.1&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8968498706831031385?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8968498706831031385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/01/monitoring-and-allocating-users-across.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8968498706831031385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8968498706831031385'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/01/monitoring-and-allocating-users-across.html' title='Monitoring and Allocating Users Across Projects in Rational Team Concert'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zbj8ttdu_e0/S2AkNYWNQbI/AAAAAAAAAIM/rownlsAdeoo/s72-c/Resource+Assignment.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8727390083015913152</id><published>2010-01-19T11:28:00.000-08:00</published><updated>2010-01-19T11:31:35.612-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>Refactoring in JDT</title><content type='html'>Eclipse Corner Article : &lt;a href="http://www.eclipse.org/articles/article.php?file=Article-Unleashing-the-Power-of-Refactoring/index.html"&gt;Unleashing the Power of Refactoring&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Eclipse Corner Article : &lt;a href="http://www.eclipse.org/articles/Article-LTK/ltk.html"&gt;The Language Toolkit: An API for Automated Refactorings in Eclipse-based IDEs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8727390083015913152?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8727390083015913152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/01/refactoring-in-jdt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8727390083015913152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8727390083015913152'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/01/refactoring-in-jdt.html' title='Refactoring in JDT'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-5006986499840548391</id><published>2010-01-14T00:14:00.000-08:00</published><updated>2010-02-01T12:44:52.204-08:00</updated><title type='text'>Asking questions the smart way</title><content type='html'>The industry standard on this : &lt;a href="http://catb.org/%7Eesr/faqs/smart-questions.html"&gt;http://catb.org/~esr/faqs/smart-questions.html&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;While this is a fairly long piece the following steps should work in most cases&lt;br /&gt;-RTFM&lt;br /&gt;-STFW&lt;br /&gt;-While asking your question provide enough information so that no one needs to come back to you for clarification or more information, as no one will.&lt;br /&gt;- And use general common sense ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-5006986499840548391?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/5006986499840548391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/01/asking-questions-smart-way.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5006986499840548391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5006986499840548391'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/01/asking-questions-smart-way.html' title='Asking questions the smart way'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-2575883753090616231</id><published>2010-01-09T02:24:00.000-08:00</published><updated>2010-01-12T07:47:28.939-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Some Misc Eclipse Links</title><content type='html'>Eclipse and Java for total beginners. These are some nice video tutorials.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://eclipsetutorial.sourceforge.net/totalbeginner.html&lt;/li&gt;&lt;li&gt;http://eclipsetutorial.sourceforge.net/workbench.html&lt;/li&gt;&lt;li&gt;http://eclipsetutorial.sourceforge.net/persistence.html&lt;/li&gt;&lt;li&gt;http://eclipsetutorial.sourceforge.net/debugger.html&lt;/li&gt;&lt;/ul&gt;Eclipse Webinars and Podcasts&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://live.eclipse.org/&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/1616206987206690523-2575883753090616231?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/2575883753090616231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2010/01/some-misc-eclipse-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2575883753090616231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2575883753090616231'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2010/01/some-misc-eclipse-links.html' title='Some Misc Eclipse Links'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-772618844931253308</id><published>2009-12-16T00:58:00.000-08:00</published><updated>2010-01-03T05:24:22.771-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utf-8'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Encoding strings to UTF-8 in Java</title><content type='html'>&lt;div style="text-align: justify;"&gt;The following code encodes the string in UTF-8 encoding.&lt;br /&gt;&lt;pre&gt; &lt;br /&gt;      String s;&lt;br /&gt;      .&lt;br /&gt;      .&lt;br /&gt;      byte[] b= null;&lt;br /&gt;      try {&lt;br /&gt;          b= s.getBytes("UTF-8"); //$NON-NLS-1$&lt;br /&gt;      } catch (UnsupportedEncodingException e) {&lt;br /&gt;          e.printStackTrace();&lt;br /&gt;      }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;However small errors can lead to interesting consequences. To type uppercase alphabets I hold down the shift key and type, I rarely use caps lock. While I was writing the above code, to be specific the "UTF-8" part, I accidentally typed in "UTF_8", as I was still holding down the shift key while pressing the -/_ key. I use IBM JREs (1.4.2,1.5, 1.6) and tried this with all three of them, and it worked like a charm. Now someone else tried the same code with another vm and it failed. I thought strange...&lt;br /&gt;&lt;br /&gt;Digging a bit deeper, http://java.sun.com/j2se/1.3/docs/guide/intl/encoding.doc.html lists the correct name to be UTF8 or UTF-8, so UTF_8 should not work.  Digging a bit more...IBM JRE 1.4.2 contains sun.io.CharacterEncoding in core.jar, the alias table in this also contains UTF8 and UTF-8 only. However this class also contains a private method 'replaceDash(String)' which seems to be replacing '_' with '-' , since I was looking at the class file I cant be too sure), and I could not find any other reason of why UTF_8 was working.&lt;br /&gt;&lt;br /&gt;It looks to be a bit silly/dangerous of IBM JRE to support non-standard aliases, because things fail on other JREs.&lt;br /&gt;&lt;br /&gt;See the standard charset names in the &lt;a href="http://www.iana.org/assignments/character-sets"&gt;IANA registry&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-772618844931253308?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/772618844931253308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/12/encoding-strings-to-utf-8-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/772618844931253308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/772618844931253308'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/12/encoding-strings-to-utf-8-in-java.html' title='Encoding strings to UTF-8 in Java'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-6154124268539761429</id><published>2009-12-16T00:03:00.000-08:00</published><updated>2011-07-29T21:45:10.985-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Insight'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Project Conductor'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><title type='text'>IBM Rational Insight - Various versions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;List of different versions of Rational Insight and the supported product integrations the links to download pages&lt;br /&gt;&lt;a href="http://thecoderlounge.blogspot.com/2009/07/ibm-rational-insight-getting-started.html"&gt;&lt;br /&gt;Rational Insight 1.0&lt;/a&gt; (Released May 2009)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rational Team Concert&lt;/li&gt;&lt;li&gt;Rational Quality Manager&lt;/li&gt;&lt;li&gt;Rational ClearCase&lt;/li&gt;&lt;li&gt;Rational Clearquest&lt;/li&gt;&lt;li&gt;Rational Test Manager&lt;/li&gt;&lt;li&gt;Rational RequisitePro&lt;/li&gt;&lt;li&gt;Microsoft Project&lt;/li&gt;&lt;li&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=1031&amp;amp;uid=swg24023572"&gt;HP Quality Center*&lt;/a&gt; (Released Aug 2009)&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=2&amp;amp;uid=swg24023858"&gt;Rational Insight 1.0.0.1 &lt;/a&gt;(Released Sept 2009)&lt;br /&gt;&lt;ul&gt;&lt;li type="disc"&gt;Rational Quality Manager 1.0.1.1 &lt;/li&gt;&lt;li type="disc"&gt;Rational Quality Manager 2.0 &lt;/li&gt;&lt;li type="disc"&gt;Rational Team Concert 1.0 &lt;/li&gt;&lt;li type="disc"&gt;Rational Team Concert 2.0&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=2&amp;amp;uid=swg24024530"&gt;Rational Insight 1.0.0.2&lt;/a&gt; (Released Dec 2009)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rational Project Conductor 1.0&lt;/li&gt;&lt;li&gt;Rational DOORS 9.2.0.1. &lt;/li&gt;&lt;li&gt;Licensing enforcement, specific license keys for Rational Insight are now required&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-6154124268539761429?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/6154124268539761429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/12/ibm-rational-insight-various-versions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6154124268539761429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6154124268539761429'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/12/ibm-rational-insight-various-versions.html' title='IBM Rational Insight - Various versions'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-2560911256906903170</id><published>2009-12-13T08:57:00.000-08:00</published><updated>2011-07-29T21:45:35.518-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='BIRT'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><title type='text'>Creating BIRT reports in Rational Team Concert 2.0</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This video is a "hello world" introduction to creating reports in Rational Team Concert 2.0. James Moody demonstrates how to create a report that shows the historical data of open work items&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HWyiyfGQGtg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/HWyiyfGQGtg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;James Moody demonstrates how to use Rational Team Concert 2.0 to write a report that includes the results of a work item query.&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NgkJs6Mk2IE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/NgkJs6Mk2IE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://jazz.net/wiki/bin/view/Main/ReportsCentral"&gt;Download these reports&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://jazz.net/wiki/bin/view/Main/ReportsMain"&gt;Reports wiki page&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/1616206987206690523-2560911256906903170?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/2560911256906903170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/12/creating-birt-reports-in-rational-team.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2560911256906903170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2560911256906903170'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/12/creating-birt-reports-in-rational-team.html' title='Creating BIRT reports in Rational Team Concert 2.0'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-6048677443679468549</id><published>2009-12-09T18:08:00.001-08:00</published><updated>2011-07-29T21:45:46.549-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Insight'/><title type='text'>Reporting : Some common myths and misconceptions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Reporting is same as charting&lt;/span&gt;&lt;br /&gt;Most people tend to think that reporting is as simple as creating a chart. Reporting involves storing, retrieving, aggregating data in a manner &lt;span style="font-style: italic;"&gt;to assist&lt;/span&gt; in creating cool charts quickly. Charting is just a small part of reporting, once you have the required data in a simple table then you can create a nice looking chart using all the nice colors etc. Note the key requirement for charting - 'once you have the required data'.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anyone should be able to create reports&lt;/span&gt;&lt;br /&gt;Yeah right. Any Tom Dick and Harry just cannot create reports, any TD&amp;amp;H should be able to create charts but not reports. Only a programmer knows how to deal with tonnes of data, how to store it efficiently, how to retrieve it efficiently, the relationships between entities etc. &lt;span style="font-style: italic;"&gt;Any report worth having will be complex enough that only a programmer will be able to create it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;This report can be created in a day&lt;/span&gt;&lt;br /&gt;Yeah right again... Creating reports is a time consuming job. If too much data is involved you want to store precomputed values in a data warehouse, if latest information is crucial then report should use operational data store, a user needs to be able to drill down and drill up in a report and most importantly the colors in the chart need to look perfect. All this can be 'easily' accomplished in a day!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Every report can run in 1 sec&lt;/span&gt;&lt;br /&gt;This one is hilarious, you have millions of records in your DB and you expect the report to run in 1 sec. Reports based on data warehouse (pre-computed results) can be made to run very very fast, but sometimes the data is missing in the data warehouse and you need to create some custom reports from Operational data store, now these reports are going to be slow. Even data warehouse reports can take some time to run, depending upon how much data is there and what all needs to be aggregated. Sometime reports can take hours to run, schedule these overnight (if needed) and stop cribbing.&lt;br /&gt;&lt;br /&gt;To be honest most people take reports for granted, I mean they just expect all sorts of good reports to be there, and they don't really appreciate the effort gone behind creating all those cool reports. The truth is :&lt;span style="font-weight: bold;"&gt; any report worth having is quite complex!&lt;/span&gt;&lt;br /&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/1616206987206690523-6048677443679468549?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/6048677443679468549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/12/reporting-some-common-myths-and.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6048677443679468549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6048677443679468549'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/12/reporting-some-common-myths-and.html' title='Reporting : Some common myths and misconceptions'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-2393358040377372671</id><published>2009-12-07T09:25:00.000-08:00</published><updated>2011-07-29T21:45:53.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='BIRT'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Excellent presentation on BIRT scripting</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;BIRT Advanced Scripting EclipseCon 2008&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/2685017/BIRT-Advanced-Scripting-EclipseCon-2008" style="display: block; font-family: Helvetica,Arial,Sans-serif; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 12px auto 6px; text-decoration: underline;" title="View BIRT Advanced Scripting EclipseCon 2008 on Scribd"&gt;BIRT Advanced Scripting EclipseCon 2008&lt;/a&gt; &lt;object align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" height="500" id="doc_970553087408882" name="doc_970553087408882" width="100%"&gt;  &lt;param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf?document_id=2685017&amp;amp;access_key=key-108i1iyigbff1pb9fszu&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=slideshow"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;            &lt;param name="mode" value="slideshow"&gt;       &lt;embed src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=2685017&amp;amp;access_key=key-108i1iyigbff1pb9fszu&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=slideshow" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_970553087408882_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" mode="slideshow" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This explains the BIRT events, report generation phases and scripting in a great detail.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-2393358040377372671?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/2393358040377372671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/12/excellent-presentation-on-birt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2393358040377372671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2393358040377372671'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/12/excellent-presentation-on-birt.html' title='Excellent presentation on BIRT scripting'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-6605847996818296667</id><published>2009-11-29T09:10:00.000-08:00</published><updated>2011-07-29T21:46:43.523-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><title type='text'>IBM Timeline</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;IBM has done some pretty neat things over the years.&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vJGq_oSb1A8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vJGq_oSb1A8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-6605847996818296667?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/6605847996818296667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/11/ibm-timeline.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6605847996818296667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6605847996818296667'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/11/ibm-timeline.html' title='IBM Timeline'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-304110458607562302</id><published>2009-11-27T08:20:00.001-08:00</published><updated>2009-11-27T09:02:36.357-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='acronyms'/><title type='text'>Yet another blog post</title><content type='html'>Ok, documenting some four letter acronyms that I have been using for some time now.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;YALD&lt;/span&gt; - Yet another long day&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;YALN&lt;/span&gt; - Yet another long night&lt;br /&gt;Do not get any wrong ideas :). This just refers to another night spent in office while writing/debugging/cursing/etc some code. And of course listening to Pink Flyod at 5 in the morning... I have become comfortably numb...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;YAIP&lt;/span&gt; - Yet another impromptu presentation&lt;br /&gt;Something funny always happens in a last minute presentation/demo. You find a bug in the code at the last minute which breaks everything (and you need some hacks to get things going), or during the presentation you are staring at a slide (given to you by someone just before the presentation) and trying to make some sense out of it :)&lt;br /&gt;&lt;br /&gt;Looks like I have come up with another acronym while writing this - &lt;span style="font-weight: bold;"&gt;YABP&lt;/span&gt; (see the title)&lt;br /&gt;&lt;br /&gt;PS: My favorite hack.. so far&lt;br /&gt;&lt;pre&gt;for( String name : Names ) {&lt;br /&gt; //hack&lt;br /&gt; if ( name.equals("ABC") ) {&lt;br /&gt;  continue;&lt;br /&gt; }&lt;br /&gt; // do something meaningful now :)&lt;br /&gt; .&lt;br /&gt; .&lt;br /&gt; .&lt;br /&gt; .&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-304110458607562302?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/304110458607562302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/11/yet-another-blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/304110458607562302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/304110458607562302'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/11/yet-another-blog-post.html' title='Yet another blog post'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-5128716304872368924</id><published>2009-11-23T09:44:00.000-08:00</published><updated>2009-11-23T09:59:14.405-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hashing'/><title type='text'>Hashing</title><content type='html'>&lt;span style="font-weight: bold;"&gt;What is hashing?&lt;/span&gt;&lt;br /&gt;Hashing can be thought of as a mapping of a set of values(S) to a set of discrete points(k1-kn) on a line &lt;span style="font-weight: bold;"&gt;(one dimension)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Generally the range of S is much larger than n, but count(S) is lesser than n. As a result most hash functions will try to distribute elements of S uniformly among the available keys. But there are bound to be collisions as in most situations perfect hashing is not possible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Perfect hashing &lt;/span&gt;is possible when you know S in advance (a rare scenario). In this case you can simply have k1=1, k2=2 and so on.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hashing in 2-D, 3-D... n-D&lt;/span&gt;&lt;br /&gt;With hashing in one dimension collisions are inevitable. But if you think in 2 dimensions, then you are trying to map S to discrete values in a rectangle ( 32 bit squares in practical implementations).  What this really means is that you generate 2 keys for the same element Si. The chances of collision decrease significantly in this case. For instance two 32 bits hashcodes used together are going to be much better than a single 64 bit hashcode.&lt;br /&gt;&lt;br /&gt;In a similar way 3 hashcodes can be thought of as mapping S to a cuboid (32 bit cubes), and so on till n dimensions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-5128716304872368924?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/5128716304872368924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/11/hashing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5128716304872368924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5128716304872368924'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/11/hashing.html' title='Hashing'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-3757510198714588200</id><published>2009-11-21T03:51:00.000-08:00</published><updated>2011-07-29T21:46:30.570-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Insight'/><title type='text'>Rational Insight on the IBM Developer Cloud</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Demo of the usage of Rational Insight on the IBM Developer Cloud&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ovjzxGba5iE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/ovjzxGba5iE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why IBM Developer Cloud ?&lt;/span&gt;&lt;br /&gt;The cloud saves costs in aquiring, installing, configuring and managing software&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/c0XtYslbfIg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/c0XtYslbfIg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-3757510198714588200?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/3757510198714588200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/11/rational-insight-on-ibm-developer-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3757510198714588200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3757510198714588200'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/11/rational-insight-on-ibm-developer-cloud.html' title='Rational Insight on the IBM Developer Cloud'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-525752448409732081</id><published>2009-11-21T03:13:00.000-08:00</published><updated>2011-07-29T21:46:37.251-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational Focal Point'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Project Conductor'/><title type='text'>Integration between Rational Focal Point and Rational Project Conductor</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This video demonstrates the integration between portfolio and project management. See how a project proposal created in Focal Point becomes a project in Project Conductor and how the two applications share data.&lt;br /&gt;&lt;br /&gt;Demonstrates a project's round trip journey between Focal Point and Project Conductor. Projects are prioritized and approved in Focal Point, sent to Project Conductor for execution, and finally reviewed back in Focal Point.&lt;br /&gt;&lt;br /&gt;Rational Project Conductor is built on the Jazz Foundation and is available for download from jazz.net.&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/V39JC4Egyd8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/V39JC4Egyd8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://thecoderlounge.blogspot.com/2009/07/rationals-new-project-management.html"&gt;An overview of Rational Project Conductor&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/1616206987206690523-525752448409732081?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/525752448409732081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/11/integration-between-rational-focal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/525752448409732081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/525752448409732081'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/11/integration-between-rational-focal.html' title='Integration between Rational Focal Point and Rational Project Conductor'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-1910705510694017385</id><published>2009-11-05T00:41:00.000-08:00</published><updated>2010-04-24T00:15:28.193-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jsdt'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jdt'/><title type='text'>JavaScript Development Toolkit (JSDT) – Getting Started</title><content type='html'>&lt;b&gt;What is JSDT?&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A JavaScript IDE for Eclipse based on the Java Development Tools (JDT)  &lt;/li&gt;&lt;li&gt;Has many of the rich editing features of JDT, facilities for error detection  and correction, detailed flow analysis etc &lt;/li&gt;&lt;/ul&gt;&lt;b&gt;How to get  it?&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;As part of Eclipse IDE for Java EE Developers (since Eclipse 3.4) &lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_zbj8ttdu_e0/SvJ4LEWTPGI/AAAAAAAAACs/XoeT4rs-Rpo/s1600-h/Picture1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_zbj8ttdu_e0/SvJ4LEWTPGI/AAAAAAAAACs/XoeT4rs-Rpo/s320/Picture1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;By adding ‘Web tools platform’ to plain Eclipse&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/SvJ4oWK8CSI/AAAAAAAAAC0/EgnG9Ggg4iQ/s1600-h/Picture2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_zbj8ttdu_e0/SvJ4oWK8CSI/AAAAAAAAAC0/EgnG9Ggg4iQ/s320/Picture2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvJ44tAayXI/AAAAAAAAAC8/U4LfbvOfqOs/s1600-h/Picture3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvJ44tAayXI/AAAAAAAAAC8/U4LfbvOfqOs/s320/Picture3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Also part of Rational Application Developer (RAD) &lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Pain Points in JavaScript Development&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Text editor, firebug and browser refresh were the best tools available  &lt;/li&gt;&lt;li&gt;Minimal content assist  &lt;/li&gt;&lt;li&gt;Minimal static validation  &lt;/li&gt;&lt;li&gt;No refactoring support  &lt;/li&gt;&lt;li&gt;No source code navigation support &lt;/li&gt;&lt;/ul&gt;&lt;b&gt;JSDT Library mechanism&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Library mechanism to manage common objects, variables, and types in a  project  &lt;/li&gt;&lt;li&gt;JSDT library : prototyped object/class definitions and JSDoc  &lt;/li&gt;&lt;li&gt;Prepackaged libraries  &lt;/li&gt;&lt;li&gt;User defined libraries &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvJ5Rh6SSPI/AAAAAAAAADE/bBypONnB5WQ/s1600-h/Picture4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvJ5Rh6SSPI/AAAAAAAAADE/bBypONnB5WQ/s320/Picture4.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvJ5qLc0F_I/AAAAAAAAADM/N97cpMglbBQ/s1600-h/Picture5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvJ5qLc0F_I/AAAAAAAAADM/N97cpMglbBQ/s320/Picture5.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Content assistance&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/SvJ5-uvXAPI/AAAAAAAAADU/mCzz7beQEHU/s1600-h/Picture6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_zbj8ttdu_e0/SvJ5-uvXAPI/AAAAAAAAADU/mCzz7beQEHU/s320/Picture6.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Script validation and error detection&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/SvJ6J-XWikI/AAAAAAAAADc/_vTgZyju378/s1600-h/Picture7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_zbj8ttdu_e0/SvJ6J-XWikI/AAAAAAAAADc/_vTgZyju378/s320/Picture7.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_zbj8ttdu_e0/SvJ6MU76EDI/AAAAAAAAADk/MK9N9hZkc4w/s1600-h/Picture8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_zbj8ttdu_e0/SvJ6MU76EDI/AAAAAAAAADk/MK9N9hZkc4w/s320/Picture8.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zbj8ttdu_e0/SvKOyUyZHYI/AAAAAAAAAD0/nGhDxf14vpk/s1600-h/Picture10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://3.bp.blogspot.com/_zbj8ttdu_e0/SvKOyUyZHYI/AAAAAAAAAD0/nGhDxf14vpk/s320/Picture10.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Quick Fix &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zbj8ttdu_e0/SvJ6NtXnyVI/AAAAAAAAADs/_SY7TuITO9E/s1600-h/Picture9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_zbj8ttdu_e0/SvJ6NtXnyVI/AAAAAAAAADs/_SY7TuITO9E/s320/Picture9.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Refactoring &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvKO5-nxfJI/AAAAAAAAAD8/PSRkK24OSFo/s1600-h/Picture11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvKO5-nxfJI/AAAAAAAAAD8/PSRkK24OSFo/s320/Picture11.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Same-word highlighting &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvKO8KGcmGI/AAAAAAAAAEE/h38R8FGI7wQ/s1600-h/Picture12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_zbj8ttdu_e0/SvKO8KGcmGI/AAAAAAAAAEE/h38R8FGI7wQ/s320/Picture12.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Source code navigation &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/1616206987206690523-1910705510694017385?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/1910705510694017385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/11/javascript-development-toolkit-jsdt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1910705510694017385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1910705510694017385'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/11/javascript-development-toolkit-jsdt.html' title='JavaScript Development Toolkit (JSDT) – Getting Started'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zbj8ttdu_e0/SvJ4LEWTPGI/AAAAAAAAACs/XoeT4rs-Rpo/s72-c/Picture1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-2056275202764078276</id><published>2009-09-19T11:46:00.000-07:00</published><updated>2010-04-24T00:16:15.815-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><title type='text'>Challenges in software development</title><content type='html'>&lt;div style="text-align: justify;"&gt; As a developer I find writing code as the easiest part of my job as at most times I have total control over it. But working on complex software poses a number of challenges and writing code can sometimes be the last thing I am worried about.&lt;br /&gt;&lt;br /&gt;The first challenge and probably the most irritating one is '&lt;span style="font-weight: bold;"&gt;Marking the territory&lt;/span&gt;'.  I hate to hear 'its my component', 'I know the best way to deal with it' , ' you worry about your component' and other variants of it. I guess its human behavior to be a bit protective of your work, but at times it goes out of hand. More often than not this curbs the flow of fresh ideas in the team.&lt;br /&gt;&lt;br /&gt;The second challenge and an equally irritating one is '&lt;span style="font-weight: bold;"&gt;Passing on the buck'&lt;/span&gt;. Now if you are working on a complex software, you will definitely be able to solve a particular problem in many ways (meaning in many components). However there is generally a best solution. But people have a tendency to pass on the buck to some other component by saying 'let them deal with this problem'.  I hate it when this happens without reason. A problem passed on to other component must always be accompanied by a detailed explanation of why the problem has to be solved by the other component.&lt;br /&gt;&lt;br /&gt;'&lt;span style="font-weight: bold;"&gt;Absolutely ridiculous schedules&lt;/span&gt;' is something that has me stumped most times and has also helped me in improving my negotiation skills :). Software delivery schedules seem to designed by people who have no idea of what it takes to develop software. Ok the last statement is bit of an exaggeration but there is always a tussle between management and developers. Management wants things to be ready day before yesterday, and developers need another year to write a Hello World program (ok exaggerating again :P ). Different technologies require different amount of effort, for instance writing Java code in Eclipse is a much easier job than writing an equal amount of JavaScript. People coming up with schedules need to understand these differences. In my opinion the management needs to sit with developers every once in a while and understand the various challenges they are facing with the technology involved. Or a better option is to make it mandatory for managers to write or test code (not a whole lot but at least some contribution). But probably the best option would be to teach developers to manage things in addition to developing software. I have seen a few people who are successful with the last option, but mostly its a tussle!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;'Shouting from rooftops near a deadline'&lt;/span&gt; - Some folks have a tendency to create a lot of noise near a deadline to make it appear that without them everything will fall apart. Whenever this happens I always think 'you could have at least whispered a bit earlier and maybe we would have lesser problems to deal with now'.&lt;br /&gt;&lt;br /&gt;Most of these challenges will vanish if only people are open to new ideas, do the right thing and have trust in others to do the right thing. If only if....&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/1616206987206690523-2056275202764078276?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/2056275202764078276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/09/challenges-in-software-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2056275202764078276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2056275202764078276'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/09/challenges-in-software-development.html' title='Challenges in software development'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-7543693795217481667</id><published>2009-09-12T01:38:00.000-07:00</published><updated>2009-09-12T01:42:38.673-07:00</updated><title type='text'>Method for dealing with temporary files in a java server program</title><content type='html'>&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: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:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&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" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:Wingdings;  panose-1:5 0 0 0 0 0 0 0 0 0;  mso-font-charset:2;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:0 268435456 0 0 -2147483648 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";} @page Section1  {size:612.0pt 792.0pt;  margin:72.0pt 90.0pt 72.0pt 90.0pt;  mso-header-margin:35.4pt;  mso-footer-margin:35.4pt;  mso-paper-source:0;} div.Section1  {page:Section1;}  /* List Definitions */  @list l0  {mso-list-id:846402384;  mso-list-type:hybrid;  mso-list-template-ids:-1941032438 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1  {mso-level-number-format:bullet;  mso-level-text:o;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:"Courier New";} @list l1  {mso-list-id:1601059204;  mso-list-type:hybrid;  mso-list-template-ids:-498024134 -2104475378 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1  {mso-level-start-at:0;  mso-level-number-format:bullet;  mso-level-text:-;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";} @list l2  {mso-list-id:2055153296;  mso-list-type:hybrid;  mso-list-template-ids:752795458 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l2:level1  {mso-level-number-format:bullet;  mso-level-text:o;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:"Courier New";} ol  {margin-bottom:0cm;} ul  {margin-bottom:0cm;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Method for dealing with temporary files in a server program&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Problem&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;To handle temporary files Java provides two mechanisms&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;-&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;          &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;File class provides a set of createTempFile methods which ensure that each file gets a unique name&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;-&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;          &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;File class has a method deleteOnExit method which ensures that the file gets deleted when the JVM terminates.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;But these methods prove insufficient while dealing with temporary files in a (java) server process. The server process (jvm) runs for a long time before crashing/restart, hence files cannot be cleaned only on process (jvm) start or process (jvm) exit, it has to be done regularly so that the files do not accumulate on the hard-disk. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Scenarios when manual deletion of files is not possible&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;An      image file is referenced by html sent back to the web-browser. There is no      way of knowing when the image file has been requested and downloaded by      the web-browser. &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;A      file cannot be deleted manually because an input-stream is opened on the      file and passed to an asynchronous API. &lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Possible Solutions&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;File      system itself to provide a file expiry attribute&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Java      to provide a file expiry attribute&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The above 2 are not available&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Proposed Solution&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Provide a file expiry time while creating a temp file. All such files are marked to be deleted when the expiry time is over and can be deleted in an independent thread running on the server.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Sample Implementation&lt;/b&gt;  &lt;/p&gt; &lt;pre&gt;&lt;p class="MsoNormal"&gt;public class &lt;b style=""&gt;TempFile extends File&lt;/b&gt; {&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;            &lt;/span&gt;private Date d = null;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;/*  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;* The default expiry time is 1 day  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;*/&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;private Date getDefaultExpiry() {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;Calendar c = Calendar.getInstance();  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;c.setTime(new Date());  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;c.add(Calendar.DATE, 1);  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;return c.getTime();  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;/*  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;* Constructor from super class  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;*/&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;public TempFile(String pathname) {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;super(pathname);  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;setExpiry(getDefaultExpiry());  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;/*  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;* Constructors with expiry parameter  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;*/&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;public TempFile(String pathname, Date expiry) {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;super(pathname);  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;setExpiry(expiry);  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;/*  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;* Let the user set the expiry attribute after construction of object  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;*/&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;public void setExpiry(Date d) {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;this.d = d;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;FileGarbageCollector collector = FileGarbageCollector.getInstance();  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;collector.addFile(this);  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;/p&gt;  &lt;p class="MsoNormal"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;public class &lt;b style=""&gt;FileGarbageCollector&lt;/b&gt; implements Runnable {&lt;o:p&gt;&lt;/o:p&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;private static FileGarbageCollector ref = null;&lt;o:p&gt;&lt;/o:p&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;Thread t = null;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;public static FileGarbageCollector getInstance() {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;if (ref == null) {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;ref = new FileGarbageCollector();&lt;o:p&gt;&lt;/o:p&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;}  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;return ref;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;/*  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;* The files for which an expiry time is set.   &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;*/&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;private static List&lt;tempfile&gt; files = null;&lt;/tempfile&gt;&lt;o:p&gt;&lt;/o:p&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;private FileGarbageCollector() {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;files = new ArrayList&lt;tempfile&gt;();&lt;/tempfile&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;public void addFile(TempFile f) {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;files.add(f);&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;if (t == null || !t.isAlive()) {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;t = new Thread(ref);  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;t.start();  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;}  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;public void run() {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;while (files.size() &gt; 0) {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;Date d = new Date();  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;for (int i = 0; i &lt; &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: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:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&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" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:"Times New Roman";} @page Section1  {size:612.0pt 792.0pt;  margin:72.0pt 90.0pt 72.0pt 90.0pt;  mso-header-margin:36.0pt;  mso-footer-margin:36.0pt;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt; files.size(); i++) &lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                &lt;/span&gt;if ( d.getTime()  &gt; files.get(i).getExpiry().getTime()  ) {&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                            &lt;/span&gt;TempFile t = files.remove(i);  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                            &lt;/span&gt;i--;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                            &lt;/span&gt;t.delete();   &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                            &lt;/span&gt;System.out.println(t.getPath() + " deleted at "  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                                                    &lt;/span&gt;+ new Date());  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                &lt;/span&gt;}  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;}  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;try {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                &lt;/span&gt;Thread.sleep(8000);  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;} catch (InterruptedException e) {  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                &lt;/span&gt;e.printStackTrace();  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;}  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;}  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;}  &lt;/p&gt;&lt;p class="MsoNormal"&gt;}&lt;/p&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-7543693795217481667?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/7543693795217481667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/09/method-for-dealing-with-temporary-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7543693795217481667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7543693795217481667'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/09/method-for-dealing-with-temporary-files.html' title='Method for dealing with temporary files in a java server program'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-3597624104863903705</id><published>2009-08-15T19:01:00.000-07:00</published><updated>2011-07-29T21:47:50.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><title type='text'>Rational Software Conference 2009</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;It was a busy week because of Rational Software Conference (RSC). RSC happens in multiple cities in India. I was supposed to speak at RSC Hyderabad and RSC Pune, and do a couple of demos in RSC Bangalore and RSC Hyderabad (everything on Rational Insight). Swine flu and some confusion with the schedule resulted in me speaking/demoing at Hyderabad, Bangalore and a client location in Bangalore.&lt;br /&gt;&lt;br /&gt;All in all it was a good (and tiring) experience. Rational Insight was received quite well. For some 'Rational Insight was exactly what they needed'. With Insight being built on Cognos, I could answer a lot of questions in affirmative - ' can I see reports in pdf?', 'what about on mobile devices?', 'can i schedule the reports?', 'can I customize the reports?' , 'is it easy to to customize?' etc etc. The Insight data warehouse solves the problem of home grown or third party data sources, something which everyone seemed to have.&lt;br /&gt;&lt;br /&gt;PS: I managed to have some Chicken Biryani at Paradise Hotel in Hyderabad as well :) (Ask any Hyderabadi about Biryani and they will send you to Paradise!)&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/1616206987206690523-3597624104863903705?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/3597624104863903705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/08/rational-software-conference-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3597624104863903705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3597624104863903705'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/08/rational-software-conference-2009.html' title='Rational Software Conference 2009'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-440913484118485710</id><published>2009-08-01T04:52:00.000-07:00</published><updated>2009-08-01T05:03:38.465-07:00</updated><title type='text'>Keeping Wordpress from overwriting .htaccess rules</title><content type='html'>.htaccess file is a small Apache file that lets you do all sorts of funky things with requests made to your server.&lt;br /&gt;&lt;br /&gt;A typical .htaccess file looks like this&lt;br /&gt;&lt;br /&gt;# BEGIN wordpress&lt;br /&gt;[ifmodule mod_rewrite.c]&lt;br /&gt;rewriteEngine On&lt;br /&gt;rewriteBase /&lt;br /&gt;rewriteCond %{REQUEST_FILENAME}!-f&lt;br /&gt;rewriteCond %{REQUEST_FILENAME}!-d&lt;br /&gt;rewriteRule . /index.php [L]&lt;br /&gt;[/ifmodule]&lt;br /&gt;# END wordpress&lt;br /&gt;&lt;br /&gt;Wordpress rewrites the section between '# BEGIN wordpress' and '# END wordpress' from time to time. Hence any custom rules written by you must be written outside this section. &lt;strong&gt;Never place your own rules within the ‘wordpress’ block&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-440913484118485710?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/440913484118485710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/08/keeping-wordpress-from-overwriting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/440913484118485710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/440913484118485710'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/08/keeping-wordpress-from-overwriting.html' title='Keeping Wordpress from overwriting .htaccess rules'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-6137035160812126882</id><published>2009-07-25T20:07:00.000-07:00</published><updated>2010-04-24T00:16:23.271-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planeteclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='aptana'/><category scheme='http://www.blogger.com/atom/ns#' term='jsdt'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>JavaScript Editors</title><content type='html'>There really isn't much to talk about JavaScript editors. Most of the editors are just a little more than a text editor, providing some sort of syntax highlighting and a very minimal code completion and validation.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Notepad&lt;/span&gt; - If you have to write just a script or two then notepad or any text editor is good enough.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;a style="font-weight: bold;" href="http://www.aptana.com/"&gt;Aptana&lt;/a&gt; - Aptana Studio is a complete web development environment that combines powerful authoring tools with a collection of online hosting and collaboration services. The studio comes with number of editors - HTML, CSS, JavaScript, PHP etc. All the editors are fairly good with a decent code validation. The JavaScript editor comes with inbuilt &lt;a href="http://www.jslint.com/"&gt;JSLint script validator&lt;/a&gt;. JSLint catches a number of common errors and I have found it really useful.&lt;br /&gt;&lt;br /&gt;Although the JavaScript editor that comes with Aptana Studio is good and the studio is eclipse based, installing the whole studio just for JavaScript editing can be a overkill.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;a style="font-weight: bold;" href="http://wiki.netbeans.org/JavaScript"&gt;Netbeans&lt;/a&gt; - Starting with version 6.1, NetBeans IDE provides enhanced JavaScript editing features that are modeled on support already provided for Java, Ruby, and other languages. This editor has a lot of features like Semantic Highlighting, Mark occurrences,     Instant Rename,  Refactoring,  Quick Fixes and Semantic Checks, Code Completion and Type Analysis, Go To Declaration&lt;br /&gt;&lt;br /&gt;While Netbeans has a rich feature set, I prefer Eclipse over Netbeans as my development environment.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.interaktonline.com/products/eclipse/jseclipse/overview/"&gt;JsEclipse&lt;/a&gt; - This is a relatively light weight eclipse based editor and provides code formatting, code completion etc. Download is available from a number of sites.&lt;br /&gt;&lt;a href="http://thecoderlounge.blogspot.com/2009/06/jsdt-resources.html"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://thecoderlounge.blogspot.com/2009/06/jsdt-resources.html"&gt;JavaScript Development Toolkit (JSDT)&lt;/a&gt;  - This is a bunch of open source plug-ins that bring   robust JavaScript programming tools  to the Eclipse platform. JSDT is essentially built on the same codebase as Java development toolkit (JDT) and hence comes with many of the same features and core design found in JDT. It has all the features of Netbeans and more.&lt;br /&gt;Feature list&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Syntax highlighting&lt;/li&gt;&lt;li&gt;Folding/line numbers&lt;/li&gt;&lt;li&gt;Full outlining, showing classes, functions, and fields&lt;/li&gt;&lt;li&gt;Highlight and check of matching brackets/parentheses&lt;/li&gt;&lt;li&gt;Auto-complete of brackets, parentheses, and indentation&lt;/li&gt;&lt;li&gt;Error detection and correction&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Mark occurrence&lt;/li&gt;&lt;li&gt;Comment toggle (line and block)&lt;/li&gt;&lt;li&gt;Generate element JsDoc&lt;/li&gt;&lt;li&gt;Surround with do, for, try/catch, while&lt;/li&gt;&lt;li&gt;User-configurable completion templates&lt;/li&gt;&lt;li&gt;Extract function/change function signature&lt;/li&gt;&lt;li&gt;Indentation correction&lt;/li&gt;&lt;li&gt;Open declaration&lt;/li&gt;&lt;li&gt;Open-type hierarchy&lt;/li&gt;&lt;li&gt;Open-call hierarchy&lt;/li&gt;&lt;li&gt;Customizable code formating&lt;/li&gt;&lt;li&gt;Full search&lt;/li&gt;&lt;li&gt;Refactor/rename/move&lt;/li&gt;&lt;li&gt;Breakpoint support&lt;/li&gt;&lt;li&gt;Defined browser libraries with JsDoc for Firefox, Internet Explorer, and ECMA-3&lt;/li&gt;&lt;li&gt;Support for user defined libraries using JsDoc + JavaScript prototype definitions&lt;/li&gt;&lt;li&gt;Library image support&lt;/li&gt;&lt;li&gt;Debugging support provided through the ATF Project&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The concept of libraries is a  great feature of JSDT, as it potentially allows all JavaScript toolkits to work well with it. Also its very lightweight (just 5-6 plugins), though currently it is available as part of Web Tools Platform it is possible to take just the JSDT plugins,  drop them into an existing eclipse installation and get going.&lt;br /&gt;&lt;br /&gt;Although JSDT's feature list is quite good, its a bit buggy. Also if you are using a JavaScript toolkit such as Dojo, you will have to create a library definition for it yourself.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-6137035160812126882?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/6137035160812126882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/07/javascript-editors.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6137035160812126882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6137035160812126882'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/07/javascript-editors.html' title='JavaScript Editors'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-5764680483331562823</id><published>2009-07-24T23:18:00.000-07:00</published><updated>2011-07-29T21:47:58.662-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Insight'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Project Conductor'/><title type='text'>Rational's new project management solution</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;IBM Rational Focal Point for Project Management is a project and resource management system optimized for software and systems delivery. It allows managing activities such as Gantt charting and resource management. Focal Point manages day-to-day tasks while Rational Insight offers higher level metrics, they really work hand in hand.&lt;br /&gt;&lt;br /&gt;Focal Point for Project Management is built on Jazz. But what does it mean to be “&lt;span style="font-weight: bold;"&gt;built on Jazz&lt;/span&gt;”?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The tasks developers see in their change management (CM) system are the same as the tasks the project managers see in the work breakdown structure (WBS)&lt;/li&gt;&lt;li&gt;Project managers assign tasks in the WBS and developers see their assignments in their CM system&lt;/li&gt;&lt;li&gt;Developers report their status in the CM system and project managers see that status in the WBS&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;It’s the same artifact – regardless of where it is visible in the system!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is a  quick overview of Rational's new project management solution by Neil Leblanc, product manager at Rational. More information is also available on &lt;a href="http://jazz.net/blog/index.php/2009/06/08/rational-focal-point-for-project-management/"&gt;Jazz Team Blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/yrIqmWfGO30&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/yrIqmWfGO30&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Learn more about '&lt;a href="http://www-01.ibm.com/software/rational/announce/project/"&gt;IBM Rational Focal Point for Project Management&lt;/a&gt;' from the official announcement page. &lt;a href="https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=dw-r-focalpoint"&gt;Trial download&lt;/a&gt; is available  as part of Rational Early Access Preview on Jazz.net&lt;br /&gt;&lt;br /&gt;Focal Point for Project Management is also hosted on Jazz.net. Get the &lt;a href="https://jazz.net/projects/rational-focal-point-for-project-management/"&gt;overview&lt;/a&gt;, &lt;a href="https://jazz.net/projects/rational-focal-point-for-project-management/features/"&gt;features&lt;/a&gt; and &lt;a href="https://jazz.net/projects/rational-focal-point-for-project-management/release-plan-1.0/"&gt;release plan&lt;/a&gt;. ( Note : You will have to register on jazz.net to have a look at the release plan).&lt;br /&gt;&lt;span style="font-weight: bold;"&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/1616206987206690523-5764680483331562823?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/5764680483331562823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/07/rationals-new-project-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5764680483331562823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5764680483331562823'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/07/rationals-new-project-management.html' title='Rational&apos;s new project management solution'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-5287488091596399521</id><published>2009-07-11T19:41:00.000-07:00</published><updated>2011-07-29T21:48:11.658-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Insight'/><category scheme='http://www.blogger.com/atom/ns#' term='MCIF'/><title type='text'>IBM Measured Capability Improvement Framework (MCIF) - Getting started</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Last month, IBM Rational announced their Measured Capability Improvement Framework (MCIF) offering, described in the &lt;a href="http://www.pressebox.de/pressemeldungen/ibm-deutschland-gmbh-4/boxid-267227.html"&gt;IBM’s oficial news release&lt;/a&gt;. MCIF encapsulates 25 years of experience helping teams incrementally improve their practice maturity to deliver business results.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www-01.ibm.com/software/rational/mcif/"&gt;Learn more about MCIF&lt;/a&gt;.&lt;br /&gt;Here is a short video on MCIF&lt;span class="description"&gt; from Per Kroll, chief architect at IBM&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" height="344" src="http://www.youtube.com/v/8NBkZ9qFL1M&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" width="425"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;There is also a &lt;a href="http://download.boulder.ibm.com/ibmdl/pub/software/rational/web/whitepapers/KrollCanter_MCIF_whitepaper2.pdf"&gt;white paper on MCIF&lt;/a&gt; by Per Kroll and Murray Cantor.&lt;br /&gt;&lt;br /&gt;Abstract&lt;span style="font-style: italic;"&gt; : "In this paper, we describe how to govern the software and system delivery function to ensure favorable ROI by introducing a control framework that enables reasoning about those practices that work and those that don’t. Using this framework permits us to effectively manage risk or innovation and diseconomy of scale, and to understand the effectiveness of difference development models.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;The paper also discusses an MCIF measurement solution implemented at IBM Rational using IBM Rational Insight - the 'Executive Dashboard'.&lt;br /&gt;&lt;br /&gt;Also watch the presentation by Eric Larsen (Product Manager, Rational Insight) and Per Kroll (Chief Solution Arhitect, MCIF) on &lt;a href="http://www.scribd.com/doc/16482058/IBM-Rational-Measured-Capability-Improvement-Framework-MCIF"&gt;Make Better Decisions by Overcoming Information Blind Spots&lt;/a&gt;. This presentation talks about where how Rational Insight is an essential part of MCIF.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/katmandelstein/ibm-rational-software-conference-2009-process-project-and-portfolio-management-track-keynote"&gt;IBM Rational Software Conference 2009: Process, Project and Portfolio Management Track Keynote.&lt;/a&gt; This keynote talks about how Rational Insight and MCIF are part of the whole Rational solutions story&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-5287488091596399521?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/5287488091596399521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/07/ibm-measured-capability-improvement.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5287488091596399521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5287488091596399521'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/07/ibm-measured-capability-improvement.html' title='IBM Measured Capability Improvement Framework (MCIF) - Getting started'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-5849279079884166307</id><published>2009-07-07T11:06:00.001-07:00</published><updated>2009-07-07T12:27:19.389-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational Insight'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><title type='text'>IBM Rational Open House</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today a bunch of us at IBM Rational Software lab at Bangalore conducted this 'Rational Open House' event. It was done at 3 places in Bangalore (EGL Pyramid, EGL Rational Lab, ISL Manyata) and 1 place in Gurgaon (ISL Gurgaon). The idea behind the event was to let people in the lab know what we do in Rational, create a buzz about Rational tools and &lt;a href="http://jazz.net/"&gt;jazz.net&lt;/a&gt;, and also get some customers, after all money is an important thing :).&lt;br /&gt;&lt;br /&gt;I was showcasing &lt;a href="http://thecoderlounge.blogspot.com/2009/07/ibm-rational-insight-getting-started.html"&gt;Rational Insight&lt;/a&gt; at EGL Pyramid along with few other folks who were showcasing other Rational products, including the '&lt;span style="font-weight: bold;"&gt;rock star&lt;/span&gt;' &lt;a href="https://jazz.net/projects/rational-team-concert/"&gt;Rational Team Concert&lt;/a&gt;. I say rock star because everyone who came wanted to know about it, and fell in love with it after seeing it. The story was the same at EGL Rational Lab and ISL Manyata. RTC was hogging all the limelight, rightly so, as its a great product.&lt;br /&gt;&lt;br /&gt;There was quite a bit of interest in Rational Insight. Everyone who came was  impressed by what she/he saw. The ability to summarize organization wide information in a dashboard, the ability to drill down to the exact cause of a problem and the ability to design a report in like 15 seconds really impressed people. Also Cognos has been a leader in BI space for a long time, so even though this is Insight's first release the underlying cognos infrastructure helps in gaining user confidence.&lt;br /&gt;&lt;br /&gt;A few words about Jazz.net and RTC before I close. Jazz.net is the place where anyone can see what we are doing in the Rational labs, quite a few products are hosted there. Anyone can register and see all the plans and workitems for these products. This is not open source (nothing is free), though some source code is available for download. This is an &lt;span style="font-weight: bold;"&gt;Open Commercial&lt;/span&gt; way of software development. Our development process is open, which means our customers can see what is going on, they can provide feedback/requirements/comments early in the development process. Open development is one of the main reasons why open source projects do well. But IBM did not want Jazz platform and products on top of it to be open source like Eclipse.&lt;br /&gt;&lt;br /&gt;According to me Open Commercial should be model for software development everywhere. After all money has to be made and salaries have to be paid, so you cant make everything open source. But you can make everything open, you can let your customers/users see what is going on, and let them interact directly with developers. Otherwise developers are hidden from customers  and vice versa with layers of customer support and product managers. A direct interaction between users and developers is good for everyone. Also if you do things in open you try to do things better as everyone is watching :).&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/1616206987206690523-5849279079884166307?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/5849279079884166307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/07/ibm-rational-open-house.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5849279079884166307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/5849279079884166307'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/07/ibm-rational-open-house.html' title='IBM Rational Open House'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-4142211661130794356</id><published>2009-07-04T14:30:00.000-07:00</published><updated>2011-07-29T21:48:23.789-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Insight'/><category scheme='http://www.blogger.com/atom/ns#' term='MCIF'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='Cognos'/><title type='text'>IBM Rational Insight - Getting Started</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www-01.ibm.com/software/rational/products/insight/index.html"&gt;Rational Insight&lt;/a&gt; is an enterprise reporting and performance measurement solution. It implements standard measurements, reports, and dashboards to provide accurate insight into systems and software delivery organization.&lt;br /&gt;&lt;br /&gt;Seeing is believing, so here is a &lt;span style="font-weight: bold;"&gt;short demo of Rational Insight&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;.&lt;br /&gt;&lt;br /&gt;IBM Rational Executive Dashboard&lt;/span&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PPgw9okm2XY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/PPgw9okm2XY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Based on Rational Insight, the Executive Dashboard is designed around business and operational objectives. It pulls live data from a variety of sources&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rational Team Concert&lt;/li&gt;&lt;li&gt;Rational Quality Manager&lt;/li&gt;&lt;li&gt;Rational ClearCase&lt;/li&gt;&lt;li&gt;Rational Clearquest&lt;/li&gt;&lt;li&gt;Rational Test Manager&lt;/li&gt;&lt;li&gt;Rational RequisitePro&lt;/li&gt;&lt;li&gt;Microsoft Project&lt;/li&gt;&lt;/ul&gt;Rational Insight supports data retrieval from    sources using either the &lt;span style="font-weight: bold;"&gt;REST architecture or direct database access&lt;/span&gt;. Hence it can  support any data source that provides REST services for accessing data, or has direct database access. The above list represents the products supported out of the box.&lt;br /&gt;&lt;br /&gt;Rational Insight is based on &lt;span style="font-weight: bold;"&gt;Cognos Business Intelligence and &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;performance management technology&lt;/span&gt;. Founded in 1969, Cognos  serves more than 23,000 customers in over 135 countries. Learn more about Cognos software&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cognos.com/"&gt;Cognos Inc&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www-01.ibm.com/software/data/cognos/"&gt;Cognos Business Intelligence and Financial Performance Management&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Rational Insight consists of the following components&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IBM Cognos® Data Manager&lt;/li&gt;&lt;li&gt;IBM Rational Insight data warehouse&lt;/li&gt;&lt;li&gt;IBM Cognos Framework Manager &lt;/li&gt;&lt;li&gt;IBM Rational Insight report server&lt;/li&gt;&lt;li&gt;IBM Cognos Business Intelligence Server&lt;/li&gt;&lt;li&gt;IBM Rational Insight XML data configuration&lt;/li&gt;&lt;li&gt;IBM Rational Insight Data Services&lt;/li&gt;&lt;/ul&gt;It also works with other Cognos components, for instance with Cognos 8 Go to deliver reports on mobile devices.&lt;br /&gt;&lt;br /&gt;Learn more about &lt;span style="font-weight: bold;"&gt;Rational Insight architecture&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/rational/library/09/rationalinsightintroduction/index.html"&gt;Introducing IBM Rational Insight V1.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/rentrpt/v1r0m0/index.jsp"&gt;Rational Insight infocenter&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Rational Insight is a key part of &lt;span style="font-weight: bold;"&gt;IBM -&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Measured Capability Improvement Framework (MCIF). &lt;/span&gt;MCIF encapsulates 25 years of experience helping teams incrementally improve their practice maturity to deliver business results. &lt;a href="http://www-01.ibm.com/software/rational/mcif/"&gt;Learn more about MCIF&lt;/a&gt;. Here is a short video on MCIF&lt;span class="description"&gt; from Per Kroll, chief architect at IBM&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8NBkZ9qFL1M&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/8NBkZ9qFL1M&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-4142211661130794356?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/4142211661130794356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/07/ibm-rational-insight-getting-started.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4142211661130794356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/4142211661130794356'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/07/ibm-rational-insight-getting-started.html' title='IBM Rational Insight - Getting Started'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-1959728201982286971</id><published>2009-06-30T21:38:00.001-07:00</published><updated>2009-07-05T05:13:04.590-07:00</updated><title type='text'>Cross site scripting</title><content type='html'>Client side cross site scripting is restricted till before Firefox 3.5. With Firefox 3.5 there are a couple of new headers introduced to provide safe cross site scripting: &lt;span&gt;&lt;span style="font-weight: bold;"&gt;Origin&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Access-Control-Allow-Origin.&lt;br /&gt;&lt;/span&gt;For more details :&lt;a href="https://developer.mozilla.org/En/HTTP_access_control"&gt; Http access control&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Also read &lt;a href="https://developer.mozilla.org/En/Server-Side_Access_Control"&gt;Server side access control&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="display:none;"&gt;anzbr8cjqh&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-1959728201982286971?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/1959728201982286971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/06/cross-site-scripting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1959728201982286971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/1959728201982286971'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/06/cross-site-scripting.html' title='Cross site scripting'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-7321541018932706120</id><published>2009-06-23T09:37:00.000-07:00</published><updated>2009-06-23T09:40:48.919-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dimension'/><category scheme='http://www.blogger.com/atom/ns#' term='star schema'/><category scheme='http://www.blogger.com/atom/ns#' term='fact'/><title type='text'>Facts and Dimensions</title><content type='html'>Star schema is created for reporting or analyzing data by summarizing the data in charts. Now the easiest way to visualize the star schema i.e. facts and dimensions is to imagine a chart. Whatever is plotted on the axes is a dimension and the values that are plotted inside the chart are facts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-7321541018932706120?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/7321541018932706120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/06/facts-and-dimensions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7321541018932706120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7321541018932706120'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/06/facts-and-dimensions.html' title='Facts and Dimensions'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8591661988401145115</id><published>2009-06-23T03:51:00.000-07:00</published><updated>2009-11-21T03:25:30.056-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jsdt'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='dojo'/><title type='text'>JSDT resources</title><content type='html'>&lt;a href="http://www.ibm.com/developerworks/library/os-eclipse-jsdt/"&gt;&lt;span style="font-size:100%;"&gt;Meet the JavaScript Development Toolkit&lt;/span&gt;&lt;/a&gt; - Developer works article by Bradley Childs giving an overview of JSDT&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/index.php/ATF/JSDT"&gt;JSDT Wiki Page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/JSDTDevelopment"&gt;JSDT development Wiki page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dojotoolkit.com/forum/dojo-foundation/general-discussion/eclipse-3-4-and-jsdt-plugin"&gt;JSDT and Dojo&lt;/a&gt; - Discussion page on dojotoolkit.org explaining how JSDT can be used with Dojo&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.eclipse.org/webtools/downloads/"&gt;Webtools downloads page&lt;/a&gt; - Download WTP builds, WTP includes JSDT&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/downloads/"&gt;Eclipse downloads&lt;/a&gt; - Download Eclipse IDE for Java EE developers. This includes the web tools platform which in turn includes JSDT.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;classification=WebTools&amp;amp;component=wst.jsdt&amp;amp;long_desc_type=allwordssubstr&amp;amp;long_desc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;status_whiteboard_type=allwordssubstr&amp;amp;status_whiteboard=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;bugidtype=include&amp;amp;bug_id=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;chfieldvalue=&amp;amp;cmdtype=doit&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0="&gt;JSDT bugs (bugzilla)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8591661988401145115?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8591661988401145115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/06/jsdt-resources.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8591661988401145115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8591661988401145115'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/06/jsdt-resources.html' title='JSDT resources'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-2132552065691415162</id><published>2009-06-17T04:44:00.000-07:00</published><updated>2009-06-17T11:38:16.551-07:00</updated><title type='text'>UML tutorials</title><content type='html'>&lt;a href="http://edn.embarcadero.com/article/31863"&gt;Practical UML : A Hands-On Introduction for Developers&lt;/a&gt; : This one is more detailed&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/rational/library/769.html"&gt;UML basics: An introduction to the Unified Modeling Language&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-2132552065691415162?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/2132552065691415162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/06/uml-tutorials.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2132552065691415162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2132552065691415162'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/06/uml-tutorials.html' title='UML tutorials'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-448303905791339334</id><published>2009-06-16T03:16:00.000-07:00</published><updated>2009-06-17T23:59:25.465-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jsdt'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Abstract Syntax Tree</title><content type='html'>&lt;h2&gt;&lt;span style="font-size:85%;"&gt;Summary&lt;/span&gt;&lt;/h2&gt;&lt;p style="text-align: justify;"&gt;The Abstract Syntax Tree is the base framework for many powerful tools of the     Eclipse IDE, including refactoring, Quick Fix and Quick Assist. The Abstract Syntax     Tree maps plain Java source code in a tree form. This tree is more convenient and     reliable to analyse and modify programmatically than text-based source. This     article shows how you can use the Abstract Syntax Tree for your own     applications.&lt;/p&gt;         By          Thomas Kuhn, Eye Media GmbH&lt;br /&gt;Olivier Thomann, IBM Ottawa Lab&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/articles/article.php?file=Article-JavaCodeManipulation_AST/index.html"&gt;Complete Article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-448303905791339334?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/448303905791339334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/06/abstract-syntax-tree.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/448303905791339334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/448303905791339334'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/06/abstract-syntax-tree.html' title='Abstract Syntax Tree'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-7902104737329728133</id><published>2009-06-15T23:02:00.000-07:00</published><updated>2009-11-21T03:25:38.185-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>JScript and JavaScript</title><content type='html'>&lt;div style="text-align: justify;"&gt;There are a number of similar languages or I should say implementations for ECMA -262 standard. Microsoft Internet Explorer has its own implementation and they call it JScript. Other browsers (including Firefox, chrome, safari, opera) have their own implementation called JavaScript.&lt;br /&gt;&lt;br /&gt;JavaScript can be thought of as a subset of JScript. JavaScript conforms to the standard more than JScript, what this means is that as a developer you just worry about JavaScript as most of it is supported in JScript as well. But there are some differences in both, most notably in the event handlers.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;A couple of neat articles on this topic&lt;br /&gt;&lt;a href="http://javascript.about.com/library/bljscript1.htm"&gt;JScript&lt;/a&gt;&lt;br /&gt;&lt;a href="http://javascript.about.com/od/reference/a/nqjavascript.htm"&gt;Not Quite JavaScript&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-7902104737329728133?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/7902104737329728133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/06/jscript-and-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7902104737329728133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/7902104737329728133'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/06/jscript-and-javascript.html' title='JScript and JavaScript'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-8939828683346681498</id><published>2009-06-10T23:44:00.000-07:00</published><updated>2011-07-29T21:49:28.145-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational Insight'/><title type='text'>Rational Insight</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Here is what we have been working on....&lt;br /&gt;&lt;br /&gt;&lt;a class="l" href="http://www.ibm.com/software/rational/products/insight/" onmousedown="return clk(this.href,'','','res','1','&amp;amp;sig2=XyTLrHYFpvZXuK765aKnVA')" style="color: #551a8b;"&gt;IBM - IBM&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;i style="font-style: normal; font-weight: bold; text-decoration: inherit;"&gt;Rational Insight&lt;/i&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;-&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;i style="font-style: normal; font-weight: bold; text-decoration: inherit;"&gt;Rational Insight&lt;/i&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;- Software&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;a class="l" href="http://www.ibm.com/developerworks/rational/library/09/rationalinsightintroduction/index.html" onmousedown="return clk(this.href,'','','res','2','&amp;amp;sig2=V9M7xLKqw22ZCpz9W2ocLw')" style="color: #551a8b;"&gt;Introducing IBM&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;i style="font-style: normal; font-weight: bold; text-decoration: inherit;"&gt;Rational Insight&lt;/i&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;V1.0&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/rentrpt/v1r0m0/index.jsp"&gt;Infocenter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vc8lssnntVE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vc8lssnntVE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PPgw9okm2XY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/PPgw9okm2XY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;For help on Rational Insight refer http://publib.boulder.ibm.com/infocenter/rentrpt/v1r0m0/index.jsp&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-8939828683346681498?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/8939828683346681498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/06/rational-insight.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8939828683346681498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/8939828683346681498'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/06/rational-insight.html' title='Rational Insight'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-9217279406511541487</id><published>2009-05-06T02:37:00.000-07:00</published><updated>2009-11-21T03:25:45.340-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Javascript eval()</title><content type='html'>The eval() function evaluates a string and executes it as if it was script  code.&lt;br /&gt;&lt;br /&gt;Say you have 10 span tags each named "myspan_"+ &lt;&gt;, and the numbers range from 0 to 9. If you want to call a function on each of them, you do not have to send the full name or search for the array of span tags and figure out what one you want. Just send the number to a function and use eval("myspan_"+number+...) to perform your desired task.&lt;br /&gt;&lt;br /&gt;You should avoid using eval() as much as possible, but in some scenarios its simpler and elegant to use it.&lt;br /&gt;&lt;br /&gt;More details : &lt;a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Functions/eval"&gt;Mozilla Developer center&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-9217279406511541487?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/9217279406511541487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/05/javascript-eval.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/9217279406511541487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/9217279406511541487'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/05/javascript-eval.html' title='Javascript eval()'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-3866326456930201036</id><published>2009-04-22T23:53:00.000-07:00</published><updated>2009-06-17T23:57:10.595-07:00</updated><title type='text'>Using meta tags to block search engine access to your site</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:Arial;font-size:13;"  &gt;&lt;p&gt;The noindex meta standard is described at&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a href="http://www.robotstxt.org/meta.html" style="color: rgb(0, 0, 204);"&gt;http://www.robotstxt.org/meta.html&lt;/a&gt;. This method is useful if you don't have root access to your server, as it allows you to control access to your site on a page-by-page basis.&lt;/p&gt;&lt;p&gt;To prevent all robots from indexing a page on your site, place the following meta tag into the&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;section of your page:&lt;/p&gt;&lt;pre&gt;&lt; name="robots" content="noindex"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;To allow other robots to index the page on your site, preventing only Google's robots from indexing the page:&lt;/p&gt;&lt;pre&gt;&lt; name="googlebot" content="noindex"&gt;&lt;/pre&gt;&lt;p&gt;When we see the noindex meta tag on a page, Google will completely drop the page from our search results, even if other pages link to it. Other search engines, however, may interpret this directive differently. As a result, a link to the page can still appear in their search results.&lt;/p&gt;&lt;p&gt;Note that because we have to crawl your page in order to see the noindex meta tag, there's a small chance that Googlebot won't see and respect the noindex meta tag. If your page is still appearing in results, it's probably because we haven't crawled your site since you added the tag. (Also, if you've used your robots.txt file to block this page, we won't be able to see the tag either.)&lt;/p&gt;&lt;p&gt;If the content is currently in our index, we will remove it after the next time we crawl it. To expedite removal, use the&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a href="http://www.blogger.com/answer.py?answer=61062" style="color: rgb(0, 0, 204);"&gt;URL removal request&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;tool in Google Webmaster Tools&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(53, 53, 53); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:Arial;font-size:13;"  &gt;To entirely prevent a page's contents from being listed in the Google web index even if other sites link to it, use a noindex meta tag. As long as Googlebot fetches the page, it will see the noindex meta tag and prevent that page from showing up in the web index.&lt;br /&gt;&lt;br /&gt;Source : &lt;a href="http://www.google.com/support/webmasters/bin/answer.py?answer=93710"&gt;Google Support&lt;/a&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/1616206987206690523-3866326456930201036?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/3866326456930201036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/04/using-meta-tags-to-block-search-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3866326456930201036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3866326456930201036'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/04/using-meta-tags-to-block-search-engine.html' title='Using meta tags to block search engine access to your site'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-6534002112056692326</id><published>2009-04-22T23:38:00.000-07:00</published><updated>2009-06-17T23:57:10.596-07:00</updated><title type='text'>Robots.txt</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:Arial;font-size:13;"  &gt;&lt;p&gt;A&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a href="http://www.robotstxt.org/orig.html" style="color: rgb(0, 0, 204);"&gt;robots.txt file&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;restricts access to your site by search engine robots that crawl the web. These bots are automated, and before they access pages of a site, they check to see if a robots.txt file exists that prevents them from accessing certain pages. (All respectable robots will respect the directives in a robots.txt file, although some may interpret them differently. However, a robots.txt is not enforceable, and some spammers and other troublemakers may ignore it. For this reason, we recommend password protecting confidential information.)&lt;/p&gt;&lt;p&gt;You need a robots.txt file only if your site includes content that you don't want search engines to index. If you want search engines to index everything in your site, you don't need a robots.txt file (not even an empty one).&lt;/p&gt;&lt;p&gt;While Google won't crawl or index the content of pages blocked by robots.txt, we may still index the URLs if we find them on other pages on the web. As a result, the URL of the page and, potentially, other publicly available information such as anchor text in links to the site, or the title from the Open Directory Project (&lt;a href="http://www.blogger.com/www.dmoz.org" style="color: rgb(0, 0, 204);"&gt;www.dmoz.org&lt;/a&gt;), can appear in Google search results.&lt;/p&gt;&lt;p&gt;In order to use a robots.txt file, you'll need to have access to the root of your domain (if you're not sure, check with your web hoster). If you don't have access to the root of a domain, you can restrict access using the&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a href="http://www.blogger.com/answer.py?answer=93710" style="color: rgb(0, 0, 204);"&gt;robots meta tag&lt;/a&gt;.&lt;/p&gt;&lt;p style="font-weight: bold; font-style: italic;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(53, 53, 53); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:Arial;font-size:13;"  &gt;To entirely prevent a page's contents from being listed in the Google web index even if other sites link to it, use a noindex meta tag. As long as Googlebot fetches the page, it will see the noindex meta tag and prevent that page from showing up in the web index.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Source : &lt;a href="http://www.google.com/support/webmasters/bin/answer.py?answer=35303&amp;amp;hl=en"&gt;&lt;span style="text-decoration: underline;"&gt;Google Support&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-6534002112056692326?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/6534002112056692326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/04/robotstxt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6534002112056692326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/6534002112056692326'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/04/robotstxt.html' title='Robots.txt'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-2120331970372994750</id><published>2009-04-19T21:44:00.000-07:00</published><updated>2009-06-17T23:57:10.596-07:00</updated><title type='text'>Some WAS (Websphere application server) commads and tips</title><content type='html'>- &lt;span style="font-weight: bold;"&gt;Start a WAS server&lt;/span&gt; :  Open cmd and navigate to profile bin directory&lt;br /&gt;bin &gt; startserver server1&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Stop a WAS server&lt;/span&gt; : Open cmd and navigate to profile bin directory&lt;br /&gt;Security disabled&lt;br /&gt;bin &gt; stopserver server1&lt;br /&gt;Security enabled&lt;br /&gt;bin &gt; stopserver server1 -username &lt;username&gt; -password &lt;password&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- Check the server status&lt;/span&gt; : Open cmd and navigate to profile bin directory&lt;br /&gt;bin &gt; serverstatus server1&lt;br /&gt;&lt;br /&gt;- To modify the java process definition (jvm arguments, initial heap size, maximum heap size) directly open the &lt;span style="font-weight: bold;"&gt;server.xml&lt;/span&gt; (%WAS Install Dir%\profiles\AppSrv01\config\cells\%cell name%\nodes\%node name%\servers\server1\server.xml) and make the changes. Keep in mind that admin console is the recommended way for making the changes, directly modifying the xml is just a quick way of doing things.&lt;br /&gt;&lt;br /&gt;- In case you modify some file used by an installed application, you need to clean (delete) the WAS &lt;span style="font-weight: bold;"&gt;temporary directory&lt;/span&gt; and restart the server. Location of the temp directory &lt;/password&gt;&lt;/username&gt;%WAS Install Dir%&lt;username&gt;&lt;password&gt;\profiles\AppSrv01\temp.&lt;br /&gt;Webshpere Application server caches all application files in this directory, hence for the changes to take effect this needs to be deleted so that the cache can be created again with updated files.&lt;br /&gt;&lt;br /&gt;- To check which &lt;span style="font-weight: bold;"&gt;ports&lt;/span&gt; the Websphere application server is running : Open the file &lt;/password&gt;&lt;/username&gt;(%WAS Install Dir%\profiles\AppSrv01\config\cells\%cell name%\nodes\%node name%\&lt;username&gt;&lt;password&gt;&lt;span style="font-weight: bold;"&gt;serverindex.xml&lt;/span&gt;). Look for WC_defaulthost, the corresponding port number (default 9080) is the port where WAS listens for web requests. Look for WC_adminhost, the corresponding port number is where the admin console listens. Information for all other ports used by WAS is also present in this file.&lt;br /&gt;&lt;br /&gt;Note: These are for WAS v 6 and WAS v 6.1&lt;br /&gt;&lt;/password&gt;&lt;/username&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-2120331970372994750?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/2120331970372994750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/04/some-was-websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2120331970372994750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/2120331970372994750'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/04/some-was-websphere-application-server.html' title='Some WAS (Websphere application server) commads and tips'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1616206987206690523.post-3768477802122023877</id><published>2009-03-07T01:35:00.000-08:00</published><updated>2011-07-29T21:49:19.837-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='ClearQuest'/><category scheme='http://www.blogger.com/atom/ns#' term='Report Server'/><title type='text'>Report server for ClearQuest</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://1.bp.blogspot.com/_zbj8ttdu_e0/SlBsRXyB3-I/AAAAAAAAACI/v1NyxWIIZxU/s1600-h/Report+Server+for+Clearquest.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5354899002640949218" src="http://1.bp.blogspot.com/_zbj8ttdu_e0/SlBsRXyB3-I/AAAAAAAAACI/v1NyxWIIZxU/s400/Report+Server+for+Clearquest.JPG" style="cursor: pointer; display: block; height: 283px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;The new way of Reporting with ClearQuest 7.1&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;The Report Server for ClearQuest is a new Web application bundled with Clearquest 7.1 that supports running, managing, and sharing of data-pull reports created by using the ClearQuest Reporting Driver and the BIRT or Crystal Reports reporting systems.&lt;br /&gt;&lt;br /&gt;Data-pull reports are new with ClearQuest 7.1, earlier versions of ClearQuest supported only data-push reports.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Key advantages of data-pull model&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Data-pull model allows reports to be built from multiple data sources and data sets. With data-push model, reports are limited to a single ClearQuest query.&lt;/li&gt;&lt;li&gt;The user has more choices for reporting systems: Eclipse™ BIRT and Business Objects® Crystal Reports®.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Key Features of Report Server of Clearquest&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Manage Reports&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Upload report designs&lt;/li&gt;&lt;li&gt;Organize reports in folders&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Share Reports&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Share a report to make it visible to everyone who has access to the Report Server for IBM Rational ClearQuest on which the report is stored.&lt;/li&gt;&lt;li&gt;Email Reports to selected users&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Support for Eclipse™ BIRT reporting system&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rich Charting Capabilities&lt;/li&gt;&lt;li&gt;Support for drill down reports&lt;/li&gt;&lt;li&gt;Save parameter values along with report design to create Report Queries&lt;/li&gt;&lt;li&gt;Save snapshots of generated reports&lt;/li&gt;&lt;li&gt;Export generated reports as a PDF or Microsoft word document.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; Support for Business Objects® Crystal Reports® reporting system&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Crystal viewer is used to render the reports.&lt;/li&gt;&lt;li&gt;Rich Charting Capabilities&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; Manage Users&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Report Server for Clearquest allows you to grant access to all or only a few selected ClearQuest users.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Resources&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For information on how to configure Report Server for clearquest refer to &lt;a href="https://publib.boulder.ibm.com/infocenter/cqhelp/v7r1m0/index.jsp?topic=/com.ibm.rational.clearquest.webadmin.doc/topics/c_rpt_rs4cq_ovw.htm"&gt;ClearQuest Infocenter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;For more detailed information on capabilities refer to the &lt;a href="http://www-01.ibm.com/support/docview.wss?&amp;amp;rs=939&amp;amp;uid=swg21315248"&gt;User Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Find answers to &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21331022"&gt;Frequently Asked Questions (FAQs)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;To learn more or purchase Rational ClearQuest, visit the &lt;a href="http://www-01.ibm.com/software/awdtools/clearquest/index.html"&gt;IBM Rational ClearQuest product page&lt;/a&gt; on ibm.com&lt;/li&gt;&lt;li&gt;To seek solution to a problem, visit the &lt;a href="http://www-01.ibm.com/software/awdtools/clearquest/support/"&gt;IBM Rational ClearQuest support page&lt;/a&gt; on ibm.com&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1616206987206690523-3768477802122023877?l=blog.deepakazad.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.deepakazad.com/feeds/3768477802122023877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.deepakazad.com/2009/07/report-server-for-clearquest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3768477802122023877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1616206987206690523/posts/default/3768477802122023877'/><link rel='alternate' type='text/html' href='http://blog.deepakazad.com/2009/07/report-server-for-clearquest.html' title='Report server for ClearQuest'/><author><name>Deepak Azad</name><uri>https://profiles.google.com/111633997645714623557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-ym25D2t_fhk/AAAAAAAAAAI/AAAAAAAAAAA/Y9RL7q9LaU8/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zbj8ttdu_e0/SlBsRXyB3-I/AAAAAAAAACI/v1NyxWIIZxU/s72-c/Report+Server+for+Clearquest.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
