<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DU8GSH8_eCp7ImA9WhVbE0o.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327</id><updated>2012-05-30T13:37:09.140+02:00</updated><category term="design patterns" /><category term="web" /><category term="latex" /><category term="café com tapioca" /><category term="strategy" /><category term="art" /><category term="conference" /><category term="open source" /><category term="workspace" /><category term="picture" /><category term="agile" /><category term="browser" /><category term="user interface" /><category term="software engineering" /><category term="family" /><category term="business process" /><category term="Vaadin" /><category term="database" /><category term="ecology" /><category term="operating system" /><category term="javafx" /><category term="cejug" /><category term="sport" /><category term="business" /><category term="research" /><category term="java" /><category term="Java EE" /><category term="php" /><category term="enterprise application" /><category term="security" /><category term="culture" /><category term="music" /><category term="jvm" /><category term="web services" /><category term="blog" /><category term="book" /><category term="configuration management" /><category term="trip" /><category term="netbeans" /><category term="literature" /><category term="culinary" /><category term="yasmim" /><category term="movie" /><category term="software architecture" /><category term="friendship" /><category term="integration" /><category term="europe" /><category term="JSF" /><category term="career" /><category term="publication" /><category term="ide" /><category term="e-commerce" /><title>Hildeberto's Blog</title><subtitle type="html">No time to make it shorter ;)</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.hildeberto.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.hildeberto.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>142</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/HildebertosBlog" /><feedburner:info uri="hildebertosblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUINQ3s6fSp7ImA9WhVVE00.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-5281609095239980547</id><published>2012-05-06T13:26:00.000+02:00</published><updated>2012-05-06T13:26:32.515+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-06T13:26:32.515+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="ide" /><category scheme="http://www.blogger.com/atom/ns#" term="cejug" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="integration" /><category scheme="http://www.blogger.com/atom/ns#" term="netbeans" /><title>Integrating Jira with Netbeans</title><content type="html">One of the advantages of hosting your open source project at Java.net is the availability of &lt;a href="http://www.atlassian.com/software/jira/overview"&gt;Jira&lt;/a&gt; to track your issues. Jira is one of the most popular issue tracking system available on the market, which drives tool developers to support it. This is the case of &lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt;, my working IDE, and also the case of &lt;a href="http://www.eclipse.org/" target="_blank"&gt;Eclipse&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I recently configured my Netbeans to access &lt;a href="http://java.net/projects/cejug/sources/jug-management/show" target="_blank"&gt;Jug Manangement&lt;/a&gt;'s issues. If you want to do the same, or with another project hosted on Java.net or even connect to the Jira available on your company's Intranet, then the following instructions may help you.&lt;br /&gt;
&lt;br /&gt;
The first step is to install Jira plugin on Netbeans. In the menu, select &lt;i&gt;Tools&lt;/i&gt; and then &lt;i&gt;Plugins&lt;/i&gt;. Go to the tab &lt;i&gt;Available Plugins&lt;/i&gt; and select &lt;i&gt;JIRA&lt;/i&gt;. Follow the installation procedure and restart the IDE at the end. The figure below shows the plugin already installed. You may check as well if &lt;i&gt;JIRA&lt;/i&gt; is in your list of &lt;i&gt;Installed&lt;/i&gt; plugins to make sure everything went well.&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/-x9iTMYdPO2k/T6WVB1_Eq8I/AAAAAAAAAoU/7r6ZjjKfuy4/s1600/netbeans-jira-plugin-installation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://4.bp.blogspot.com/-x9iTMYdPO2k/T6WVB1_Eq8I/AAAAAAAAAoU/7r6ZjjKfuy4/s320/netbeans-jira-plugin-installation.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In the view &lt;i&gt;Services&lt;/i&gt;, where we connect to databases, webservers and others, we also find a new kind of service called &lt;i&gt;Issue Trackers&lt;/i&gt;. By clicking with the right button on this service, you are about to create a connection to a issue tracker. A dialog like the following figure appears. Give any name to your connection, since this is not a predefined value. In case of Java.net, use the URL https://java.net/jira and the credentials you use to authenticate in the portal. Click on &lt;i&gt;Validate&lt;/i&gt; to make sure that you input the values correctly and the connection with the server is working. Click on &lt;i&gt;Ok&lt;/i&gt; to finish.&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/-vOzaOZ04eOw/T6WQ-i9_1NI/AAAAAAAAAn8/fwKntmrqUMo/s1600/netbeans-jira-configuration.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-vOzaOZ04eOw/T6WQ-i9_1NI/AAAAAAAAAn8/fwKntmrqUMo/s1600/netbeans-jira-configuration.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now, you are connected but not ready to work yet. The next step is to find the issues. For that, click with the right button on the issue tracker that you just created and select the option &lt;i&gt;Find Issues&lt;/i&gt;. It opens a new tab in the editor area where you are able to build your query as you usually do using Jira on a web browser. When you build the best query for your needs you can save it to constantly work with that. In the following figure I built a query that shows me all open issues of the project jug-management.&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/-JD0ttg2XRzw/T6WQ_qrudRI/AAAAAAAAAoE/ARzozZv_pd4/s1600/netbeans-jira-query.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="249" src="http://4.bp.blogspot.com/-JD0ttg2XRzw/T6WQ_qrudRI/AAAAAAAAAoE/ARzozZv_pd4/s320/netbeans-jira-query.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You can do something similar to your project and control your issues directly from the IDE. One of the main benefits of this approach is that, by restricting the use of the browser, we reduce the probability of losing the focus on the work due to other&amp;nbsp;entertainment activities&amp;nbsp;on the web such as news, social networks, chatting and so on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-5281609095239980547?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/0chtdfhHfyM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/5281609095239980547/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2012/05/integrating-jira-with-netbeans.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/5281609095239980547?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/5281609095239980547?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/0chtdfhHfyM/integrating-jira-with-netbeans.html" title="Integrating Jira with Netbeans" /><author><name>Hildeberto Mendonça</name><uri>https://profiles.google.com/107280863116258893642</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-zW8ZbtXHPYM/AAAAAAAAAAI/AAAAAAAAAFM/bQ153kGiykQ/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-x9iTMYdPO2k/T6WVB1_Eq8I/AAAAAAAAAoU/7r6ZjjKfuy4/s72-c/netbeans-jira-plugin-installation.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2012/05/integrating-jira-with-netbeans.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cESX8yeyp7ImA9WhRbEkw.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-7966579614096795774</id><published>2012-01-31T17:01:00.000+01:00</published><updated>2012-02-02T21:36:48.193+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-02T21:36:48.193+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="JSF" /><category scheme="http://www.blogger.com/atom/ns#" term="software architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><category scheme="http://www.blogger.com/atom/ns#" term="user interface" /><category scheme="http://www.blogger.com/atom/ns#" term="Vaadin" /><category scheme="http://www.blogger.com/atom/ns#" term="browser" /><title>Choosing Between Vaadin and JSF</title><content type="html">With the recent release of &lt;a href="http://blog.primefaces.org/?p=1588" target="_blank"&gt;Primefaces 3.0&lt;/a&gt;, JSF finally reaches an unprecedent level of maturity and utility that puts it face to face with other popular Rich Internet Applications (RIA) options, such as Google Web Toolkit (GWT), ExtJS, Vaadin, Flex and others. This open source project also proved to be very active and in a constant growing path.&lt;br /&gt;
&lt;br /&gt;
I have been working with JSF + Primefaces since October 2010, when I started developing the project &lt;a href="http://www.hildeberto.com/2011/01/new-cejug-open-source-project.html" target="_blank"&gt;JUG Management&lt;/a&gt;, a web application conceived to manage user groups or communities focused on a certain domain of knowledge, whose members are constantly sharing information and attending social and educational events. &lt;a href="http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html" target="_blank"&gt;JSF&lt;/a&gt; is a standard Java framework for building user interfaces for web applications with well-established development patterns and built upon the experience of many preexisting Java Web development frameworks. It is component-based and server-side user interface rendering, sending to clients (web browsers) pre-processed web based content such as HTML, JavaScript and CSS. My experience on this technology is openly available on &lt;a href="http://java.net/projects/cejug/sources/jug-management/show" target="_blank"&gt;java.net&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, I had the opportunity to create a Proof of Concept (PoC) to compare JSF and Vaadin in order to help developers and architects to decide between one of them. Vaadin is a web application framework for RIA that offers robust server-side architecture, in contrast to other Javascript libraries and browser plugin-based solutions. The business logic runs on the server while a richer user interface, based on Google Web Toolkit (GWT), is fully rendered by the web browser, ensuring a fluent user experience.&lt;br /&gt;
&lt;br /&gt;
The result of the PoC was surprisingly interesting :) It ended up proposing both technologies instead of eliminating one of them. I found out, exploring available books, articles, blogs and websites, that despite being able to implement all sorts of web applications, each technology has special characteristics, optimized to certain&amp;nbsp;kinds of those applications. In practical terms, if we find out that JSF is better for a certain kind of application, that's because it would take more time and code to do the same&amp;nbsp;with Vaadin. The inverse logic&amp;nbsp;is also true. In order to understand that, we have to visit two fundamental concepts that have direct impact on web applications:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.100.4512" target="_blank"&gt;&lt;b&gt;Context of Use&lt;/b&gt;&lt;/a&gt; considers the &lt;b&gt;user&lt;/b&gt; who will operate the application, the &lt;b&gt;environment&lt;/b&gt; where the user is inserted, and the &lt;b&gt;device&lt;/b&gt; the user is interacting with.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://shop.oreilly.com/product/9780596000356.do" target="_blank"&gt;&lt;b&gt;Information Architecture&lt;/b&gt;&lt;/a&gt; considers the &lt;b&gt;user&lt;/b&gt; of the application again, the &lt;b&gt;business domain&lt;/b&gt; in which he or she works on and the &lt;b&gt;content&lt;/b&gt; managed in that domain.&lt;/li&gt;
&lt;/ul&gt;
Notice in the figure bellow that the user is always the center of&amp;nbsp;attention in both concepts. That's because we are evaluating two frameworks that have direct impact on the way users interact with web applications.&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/-HrYXQj9MgjI/Tw2Y9iOSEAI/AAAAAAAAAX4/aTATsdPsz_w/s1600/context-use-information-architecture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-HrYXQj9MgjI/Tw2Y9iOSEAI/AAAAAAAAAX4/aTATsdPsz_w/s1600/context-use-information-architecture.png" /&gt;&lt;/a&gt;&lt;/div&gt;
Visiting the concepts above we have:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #3d85c6; font-size: large;"&gt;Environment&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Some applications are available for internal purpose only, such as the ones available on the intranet, other applications are used by external users, such as the company website.&lt;br /&gt;
&lt;br /&gt;
Users of internal applications are more homogeneous and in limited number, which means that the UI can be a bit more complex to allow faster user interactions. That explains the fight Microsoft Office vs. Google Docs. The last one is not yet fully acceptable in the office environment&amp;nbsp;because it has less functionalities than Microsoft Office. The latter is, on the other hand,&amp;nbsp;more complex and more expensive. However, a limited number of users to a larger number of features&amp;nbsp;makes&amp;nbsp;acceptable to have some additional costs with&amp;nbsp;training sessions to profit from&amp;nbsp;the productivity features.&lt;br /&gt;
&lt;br /&gt;
A company website targets heterogeneous users in unlimited environments. It is not possible to train all this people, thus simpler user interfaces with short and self-explanatory interactions are desirable.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Considering the environment, we would recommend Vaadin for homogeneous users in limited environments and JSF for heterogeneous users in unlimited environments.&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="background-color: white; color: #3d85c6; font-size: large;"&gt;Device&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Different devices demand multiple sets of UI components, designed to look great from small to large screens. Fortunately, both frameworks have components to support the full range of screen sizes from regular desktops to mobile devices. The problem is that different devices bring different connectivity capabilities and the application should be ready to deal with short band-width and reduced transfer rates. In this case, &lt;b&gt;Vaadin seems to be more suitable for multiple&amp;nbsp;devices, as long as the variety of devices is not so extensive,&amp;nbsp;because the user interface is rendered locally, using JavaScript, and it has a richer Ajax support to optimize the exchange&amp;nbsp;of application data with the server.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #3d85c6; font-size: large;"&gt;Business Domain&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
In principle,&amp;nbsp;good quality UI frameworks such as JSF and Vaadin can implement any business domain. The problem is how experienced the team is with the technology or how small is the learning curve to master it. Business is about timing and the technology that offers the best productivity will certainly win. &lt;b&gt;If your team has previous experience with Swing then Vaadin is the natural choice. If the previous experience was more web-oriented, manipulating HTML, CSS ans Scripts, then JSF is recommended.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #3d85c6; font-size: large;"&gt;Content&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Content is a very relevant criterion for choosing between&amp;nbsp;Vaadin and JSF.&amp;nbsp;&lt;b&gt;In case the application needs to deal with volumous content of any type, such as long textual descriptions, videos, presentations, animations, graphics, charts and so on, then JSF is the recommended over Vaadin because JSF uses a web content rendering strategy to profit from all content-types supported by web browsers without the need for additional&amp;nbsp;plugins or&amp;nbsp;tags&lt;/b&gt;. The support for multiple content is only&amp;nbsp;available on&amp;nbsp;Vaadin through&amp;nbsp;the use of plugins, which must be individually assessed before adoption.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; color: #3d85c6; font-size: large;"&gt;&lt;b&gt;User&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Last, but not least, we have the user, who is the most important criterion when&amp;nbsp;choosing a UI framework.&amp;nbsp;We&amp;nbsp;would emphasize two&amp;nbsp;aspects:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;i&gt;&lt;b&gt;The user population&lt;/b&gt;&lt;/i&gt;: the largest is the target population the highest are the concerns about application compatibility.&amp;nbsp;It&amp;nbsp;must deal with several versions and types of browsers, operating systems, computers with different memory capacity and monitor resolution. All these without failures or security issues. &lt;b&gt;For larger populations, the most appropriate technology is the most compatible one in a cross-platform environment, which is the case of JSF, since it uses a balanced combination of HTML, JavaScript and CSS, while Vaadin relies only on JavaScript and CSS. But&amp;nbsp;shorter populations would have better profit&amp;nbsp;with&amp;nbsp;Vaadin&lt;/b&gt;&amp;nbsp;because cross-browser compatibility is and will remain being&amp;nbsp;a very hard work to be done by Vaadin's development team behind the scene.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;b&gt;User's tasks&lt;/b&gt;&lt;/i&gt;: If the application is intensively operated by&amp;nbsp;users then it is expected that it has more user's tasks implemented. On the other hand, if the&amp;nbsp;application is rarely used or has short intervals of intensive use, then there is a lower concentration of user's tasks. According to the PoC, &lt;b&gt;Vaadin is the technology that provides the best support on delivering user tasks with richer user interaction because of its fast visual response. JSF is less optimized on which concerns the user interaction&lt;/b&gt;.&lt;/li&gt;
&lt;/ol&gt;
In conclusion, instead of discarding one of these&amp;nbsp;frameworks consider both on the shelf of the company's architectural choices, but visit the criteria above to make sure that you are using the right technology to implement the expected solution. A simple way to apply those criteria would be&amp;nbsp;to assign weights to each criterion, according to the project's characteristics;&amp;nbsp;set which technology is appropriate for each criterion; and sum the weights for each technology. The highest weight elects the technology to be used in the project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-7966579614096795774?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/0LkH-ykgLXs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/7966579614096795774/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2012/01/choosing-between-vaadin-and-jsf.html#comment-form" title="22 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/7966579614096795774?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/7966579614096795774?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/0LkH-ykgLXs/choosing-between-vaadin-and-jsf.html" title="Choosing Between Vaadin and JSF" /><author><name>Hildeberto Mendonça</name><uri>https://profiles.google.com/107280863116258893642</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-zW8ZbtXHPYM/AAAAAAAAAAI/AAAAAAAAAFM/bQ153kGiykQ/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-HrYXQj9MgjI/Tw2Y9iOSEAI/AAAAAAAAAX4/aTATsdPsz_w/s72-c/context-use-information-architecture.png" height="72" width="72" /><thr:total>22</thr:total><feedburner:origLink>http://www.hildeberto.com/2012/01/choosing-between-vaadin-and-jsf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ACRn89eCp7ImA9WhRbEE8.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-2670998467940853703</id><published>2012-01-05T10:21:00.001+01:00</published><updated>2012-01-31T17:02:47.160+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-31T17:02:47.160+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cejug" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="blog" /><title>Becoming Part of the Java Code Geek Community</title><content type="html">I'm glad to announce that I just became part of the &lt;a href="http://www.javacodegeeks.com/" target="_blank"&gt;Java Code Geeks&lt;/a&gt; (JCG) community! I have been following this community for a long time, consuming a lot of great Java articles, and now I'm part of it. This is a great honor and also a great responsibility because it is a way of pushing myself to write betters articles and do it in a more frequent way.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-ktO85cYswBs/TwVrJ2t2nBI/AAAAAAAAAXw/ien2Mr1TJow/s1600/logo_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="87" src="http://4.bp.blogspot.com/-ktO85cYswBs/TwVrJ2t2nBI/AAAAAAAAAXw/ien2Mr1TJow/s320/logo_1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
For those who don't know JCG, this is a community of bloggers whose articles are of interest to the Java developer community. They simplify the process of publishing selected blog articles by JCG members on a aggregator website.&amp;nbsp; This is a win-win game because JCGs enjoy substantially increased visibility and the audience enjoys great content.&lt;br /&gt;
I also had the opportunity to include &lt;a href="http://www.cejug.org/" target="_blank"&gt;CEJUG&lt;/a&gt; as a supporting user group. In the coming days I will find time to integrate JCG's posts with CEJUG's website using rss and let people know how I did it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-2670998467940853703?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/4eqCwNYvlP8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/2670998467940853703/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2012/01/becoming-part-of-java-code-geek.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/2670998467940853703?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/2670998467940853703?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/4eqCwNYvlP8/becoming-part-of-java-code-geek.html" title="Becoming Part of the Java Code Geek Community" /><author><name>Hildeberto Mendonça</name><uri>https://profiles.google.com/107280863116258893642</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-zW8ZbtXHPYM/AAAAAAAAAAI/AAAAAAAAAFM/bQ153kGiykQ/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-ktO85cYswBs/TwVrJ2t2nBI/AAAAAAAAAXw/ien2Mr1TJow/s72-c/logo_1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2012/01/becoming-part-of-java-code-geek.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUESXc7eSp7ImA9WhdbEk4.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-107464752971596498</id><published>2011-10-10T11:16:00.000+02:00</published><updated>2011-10-10T11:16:48.901+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T11:16:48.901+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="enterprise application" /><category scheme="http://www.blogger.com/atom/ns#" term="design patterns" /><category scheme="http://www.blogger.com/atom/ns#" term="software architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="Java EE" /><category scheme="http://www.blogger.com/atom/ns#" term="business" /><title>EJB Lookup in a Vaadin Application</title><content type="html">It has been a long time since the last Service Locator I have implemented. I thought it wouldn't be necessary anymore&amp;nbsp;considering the maturity of the &lt;a href="http://download.oracle.com/javaee/6/tutorial/doc/gjbnr.html"&gt;Java EE CDI&lt;/a&gt; (Contexts and Dependency Injection).&amp;nbsp;My first implementation was to make use of&amp;nbsp;EJBs in a Struts-based web application. After that, I started&amp;nbsp;working with JSF, which only requires&amp;nbsp;annotated attributes&amp;nbsp;with @EJB or @Resource to communicate with the business layer. So far, it has been a great experience until they asked me to evaluate &lt;a href="http://www.vaadin.com/"&gt;Vaadin&lt;/a&gt; as a front-end technology for business applications.&lt;br /&gt;
&lt;br /&gt;
Before going too far, I have&amp;nbsp;read&amp;nbsp;the article&amp;nbsp;"&lt;a href="https://vaadin.com/wiki/-/wiki/Main/Adding%20JPA%20to%20the%20Address%20Book%20Demo"&gt;Adding JPA to the Address Book Demo&lt;/a&gt;", published on Vaadin's wiki, which explains how to call EJBs from Vaadin's classes&amp;nbsp;to retrieve and persist data from the business layer. EJBs&amp;nbsp;use JPA to get and put data in the database.&amp;nbsp;They suggested to call EJBs from a custom servlet, which, according to the Java EE specification, has the ability to make&amp;nbsp;EJB&amp;nbsp;calls&amp;nbsp;using&amp;nbsp;CDI.&amp;nbsp;If we have 1 or 3&amp;nbsp;EJBs to call, it seems to be an appropriate solution, but what to do in the Servlet&amp;nbsp;when we have ~40 EJBs to deal with? How to pass all these references to&amp;nbsp;Vaadin's application class? The interface of this class&amp;nbsp;can go nuts! That's why I believe that&amp;nbsp;the lookup using JNDI is desirable.&lt;br /&gt;
&lt;br /&gt;
The following code is the Service Locator that I'm using in my Proof of Concept (PoC). &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;import java.util.Collections;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;import java.util.HashMap;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;import java.util.Map;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;import javax.naming.Context;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;import javax.naming.InitialContext;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;import javax.naming.NamingException;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;public class MyServiceLocator {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; private Context initialContext;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; private Map&lt;string, object=""&gt; cache;&lt;/string,&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; private static ClientServiceLocator &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ourInstance = new ClientServiceLocator();&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; public static ClientServiceLocator getInstance() {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ourInstance;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; private ClientServiceLocator() {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.initialContext = new InitialContext();&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.cache = Collections.synchronizedMap(new HashMap&lt;string, object=""&gt;());&lt;/string,&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;catch(NamingException ne) { &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.err.printf(&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Error in CTX looking up %s because of %s while %s",&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ne.getRemainingName(),&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ne.getCause(),&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ne.getExplanation());&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; public Object lookupEjb(String ejbName) {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(this.cache.containsKey(ejbName)) {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.cache.get(ejbName);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;else {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Object ejbRef = &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;initialContext.lookup("java:comp/env/"+ ejbName);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.cache.put(ejbName, ejbRef);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ejbRef;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (NamingException ne) {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new RuntimeException(ne);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new RuntimeException(e);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The class &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;MyServiceLocator&lt;/span&gt; follows the &lt;em&gt;Singleton&lt;/em&gt; design pattern, making sure that there is only one instance of the&amp;nbsp;object to serve all requests from the web application.&amp;nbsp;The unique instance is created at the class' initialization process&amp;nbsp;and since the constructor is private, the class cannot be instantiated by another class, being available only through the method &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;getInstance()&lt;/span&gt;. The constructor initializes the context and creates a synchronized map where we store all references already created. The method &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;lookupEjb(String ejbName)&lt;/span&gt; locates EJBs whose names are available in the local JNDI context. This method only works for those EJBs whose references are declared in the web.xml file, as listed below.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;lt;web-app version="2.5"&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:xsi="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;" &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://java.sun.com/xml/ns/javaee&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;" &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsi:schemalocation="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://java.sun.com/xml/ns/javaee&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt; &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;display-name&amp;gt;Information Systems&amp;lt;/display-name&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;ejb-local-ref&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ejb-ref-name&amp;gt;InformationSystemBean&amp;lt;/ejb-ref-name&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ejb-ref-type&amp;gt;Session&amp;lt;/ejb-ref-type&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;local&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; example.business.InformationSystemBeanLocal&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/local&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ejb-link&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eac-architecture-ejb.jar#InformationSystemBean&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ejb-link&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/ejb-local-ref&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;lt;/web-app&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The tag &amp;lt;ejb-local-ref&amp;gt; is used to declare a reference to a local EJB. The example above maps only one EJB. So, you have to repeat&amp;nbsp;it for each&amp;nbsp;EJB you&amp;nbsp;want to map.&amp;nbsp;Details about this tag can be found &lt;a href="http://download.oracle.com/docs/cd/E13222_01/wls/docs81/webapp/web_xml.html#1013984"&gt;here&lt;/a&gt;. Once declared, we can get an instance of the EJB in any part of the application using the following code:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;private InformationSystemLocal informationSystemBsn = &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; (InformationSystemLocal)MyServiceLocator.getInstance()&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.lookupEjb("InformationSystemBean");&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The variable is typed with&amp;nbsp;the EJB local interface, which&amp;nbsp;is &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;InformationSystemLocal&lt;/span&gt;. The service locator returns an instance of the EJB named as&amp;nbsp;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;InformationSystemBean&lt;/span&gt;, which is by default the EJB's implementation class.&amp;nbsp;Notice that none of the code above is necessary when we use CDI. The invocation of AjudaBsn would be simply like that:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;@EJB&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;private InformationSystemLocal informationSystemBsn;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
CDI is good and elegant, but not widely applicable. The way it&amp;nbsp;is implemented today is the main weakness of the Java EE specification. Maybe there is some strong reason why EJB's annotations don't work in every Java class. I simply don't see this misterious reason because Spring has addressed this issue since long time ago&amp;nbsp;simply using aspect orientation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-107464752971596498?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/tnLA9jjKAsA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/107464752971596498/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/10/ejb-lookup-in-vaadin-application.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/107464752971596498?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/107464752971596498?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/tnLA9jjKAsA/ejb-lookup-in-vaadin-application.html" title="EJB Lookup in a Vaadin Application" /><author><name>Hildeberto Mendonça</name><uri>https://profiles.google.com/107280863116258893642</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-zW8ZbtXHPYM/AAAAAAAAAAI/AAAAAAAAAFM/bQ153kGiykQ/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/10/ejb-lookup-in-vaadin-application.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0INRHk5fSp7ImA9WhdbEEs.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-1326047621334823849</id><published>2011-10-08T11:19:00.000+02:00</published><updated>2011-10-08T11:19:55.725+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-08T11:19:55.725+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="culture" /><title>My Favorite Steve Jobs' Lesson</title><content type="html">&lt;blockquote&gt;
&lt;i&gt;"&lt;span class="Apple-style-span" style="color: #2f3236; font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 20px;"&gt;Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary&lt;/span&gt;" - Steve Jobs (1955 - 2011)&lt;/i&gt;&lt;/blockquote&gt;
R.I.P. Steve Jobs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-1326047621334823849?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/Am8u9pGB2Sc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/1326047621334823849/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/10/my-favorite-steve-jobs-lesson.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/1326047621334823849?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/1326047621334823849?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/Am8u9pGB2Sc/my-favorite-steve-jobs-lesson.html" title="My Favorite Steve Jobs' Lesson" /><author><name>Hildeberto Mendonça</name><uri>https://profiles.google.com/107280863116258893642</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-zW8ZbtXHPYM/AAAAAAAAAAI/AAAAAAAAAFM/bQ153kGiykQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/10/my-favorite-steve-jobs-lesson.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEBRX88fSp7ImA9WhdUEE4.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-6696348649751692960</id><published>2011-09-26T12:24:00.000+02:00</published><updated>2011-09-26T12:24:14.175+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-26T12:24:14.175+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="enterprise application" /><category scheme="http://www.blogger.com/atom/ns#" term="web services" /><category scheme="http://www.blogger.com/atom/ns#" term="software engineering" /><category scheme="http://www.blogger.com/atom/ns#" term="software architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="career" /><title>Some Interview Questions to Hire a Java EE Developer</title><content type="html">The Internet is full of interview questions for Java developers. The main problem of those questions is that they only prove that the candidate has a good memory, remmembering all that syntax, structures, constants, etc. There is not real evaluation of his/her logical reasoning.&lt;br /&gt;
&lt;br /&gt;
I'm listing bellow some examples of interview questions that check the knowledge of the candidate based on his/her experience. The questions were formulated to verify whether the candidate is capable of fulfilling the role of a Java enterprise applications developer. I'm also putting the anwsers in case anybody want to discuss the questions. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1. &lt;span style="font-style: italic;"&gt;Can you give some examples of improvements in the Java EE5/6 specification in comparison to the J2EE specification?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
The new specification favours convention over configuration and introduces annotations to replace the use of XML for configuration. Inheritance is not used to define components anymore. They are defined, instead, as POJOs. To empower those POJOs with enterprise features, dependency injection was put in place, simplifying the use of EJBs. The persistence layer was fully replaced by the Java Persistence API (JPA).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2. &lt;span style="font-style: italic;"&gt;Considering two enterprise systems developed in different platforms, which good options do you propose to exchange data between them?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
We can see as potential options nowadays the use of web services and message queues, depending on the scenario. For example: when a system needs to send data, as soon as they are available, to another system or make data available for several systems, then a message queuing system is recommended. When a system has data to be processed by another system and needs back the result of this processing synchronously, then web service is the most indicated option.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;3. &lt;span style="font-style: italic;"&gt;What do you suggest to implement asynchronous code in Java EE?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
There are several options: one can post messages to a queue to be consumed by a Message-Driven Bean (MDB); or annotate a method with @Timer to define the time to execute the code programmatically; or annotate a method with @Scheduler to define&amp;nbsp;the time to execute the code&amp;nbsp;declaratively.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;4. &lt;span style="font-style: italic;"&gt;Can you illustrate the use of Stateless Session Bean, Statefull Session Bean and Singleton Session Bean?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Stateless Session Beans are used when there is no need to preserve the state of objects between several business transactions. Every transaction has its own instances and instances of components can be retrieved from pools of objects. It is recommended for most cases, when several operations are performed within a transaction to keep the database consistency.&lt;br /&gt;
&lt;br /&gt;
Statefull Session Beans are used when there is the need to preserve the state of objects between business transactions. Every instance of the component has its own objects. These objects are modified by different transactions and they are discarded after reaching a predefined time of inactivity. They can be used to cache those data with intensive use, such as reference data and long record sets for pagination, in order to reduce the volume of IO operations with the database.&lt;br /&gt;
&lt;br /&gt;
A singleton session bean is instantiated once per application and exists for the lifecycle of the application. Singleton session beans are designed for circumstances in which a single enterprise bean instance is shared across and concurrently accessed by clients. They maintain their state between client invocations, which requires a careful implementation to avoid conflicts when accessed concurrently. This kind of component can be used, for example, to initialize the application at its start-up and share a specific object across the application.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;5. &lt;span style="font-style: italic;"&gt;What is the difference between queue and topic in a message queuing system?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
In a queue there is only one producer of messages and only one consumer of these messages (1 – 1). In a topic there is a publisher of messages and several subscribers that will receive those messages (1 - N).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;6. &lt;span style="font-style: italic;"&gt;Which strategies do you consider to import and export XML content?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
If the XML document is formally defined in a schema, we can use JAXB to serialize and deserialize objects into/from XML according to the schema. If the XML document does not have a schema, then there are two situations: 1) when the whole XML content should be consider: In this case, serial access to the whole document is recommended using SAX, or accessed randomly using DOM; 2) when only parts of the XML content should be considered, than XPath can be used or StAX in case operations should be executed immediately after each desired part is found in the document.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;7. &lt;span style="font-style: italic;"&gt;Can you list some differences between a relational model and an object model?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
An object model can be mapped to a relational model, but there are some differences that should be taken into consideration. In the relational model a foreign key has the same type of the target's primary key, but in the object model and attribute points to the entire related object. In the object model it is possible to have N-N relationships while in the relational model an intermediary entity is needed. There is no support for inheritance, interface, and polymorphism in the relational model.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;8. &lt;span style="font-style: italic;"&gt;What is the difference between XML Schema, XSLT, WSDL and SOAP?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
A XML Schema describes the structure of an XML document and it is used to validate these documents. WSDL (Web Service Definition Language) describes the interface of SOAP-based web services. It can refer to XML schemas to define existing complex types passed by parameter or returned to the caller. SOAP (Simple Object Access Protocol) is the format of the message used to exchange data in a web service call. XSLT (eXtensible Stylesheet Language Transformation) is used to transform XML documents into other document formats.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;9. &lt;span style="font-style: italic;"&gt;How would you configure an environment to maximize productivity of a development team?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Every developer should have a personal environment capable of executing the whole application in his/her local workstation. The project should be synchronized between developers using a version control system. Integration routines must be executed periodically in order to verify the compatibility and communication between all components of the system. Unit and integration tests must be executed frequently.&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
You can increment this&amp;nbsp;set of questions covering&amp;nbsp;other subjects like unit testing, dependence injection,&amp;nbsp; version control and so on. Try to formulate the questions in a way that you don't get a single answer, but a short analysis from the candidate. People can easily find answers on the Internet, but good analysis can be&amp;nbsp;provided only with&amp;nbsp;accumulated experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-6696348649751692960?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/ZHQ5LKZmMC4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/6696348649751692960/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/09/some-interview-questions-to-hire-java.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6696348649751692960?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6696348649751692960?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/ZHQ5LKZmMC4/some-interview-questions-to-hire-java.html" title="Some Interview Questions to Hire a Java EE Developer" /><author><name>Hildeberto Mendonça</name><uri>https://profiles.google.com/107280863116258893642</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-zW8ZbtXHPYM/AAAAAAAAAAI/AAAAAAAAAFM/bQ153kGiykQ/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/09/some-interview-questions-to-hire-java.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08CQHc7fip7ImA9WhdVGUo.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-8899501399800599581</id><published>2011-09-24T18:15:00.001+02:00</published><updated>2011-09-25T19:31:01.906+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-25T19:31:01.906+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ide" /><category scheme="http://www.blogger.com/atom/ns#" term="enterprise application" /><category scheme="http://www.blogger.com/atom/ns#" term="Java EE" /><category scheme="http://www.blogger.com/atom/ns#" term="workspace" /><title>Development Environment to Work with WebLogic</title><content type="html">I have to confess that, despite not evolving as fast as the Java EE specification, Oracle WebLogic is a f*** good application server. Its stability is impressive and works smoothly with popular IDEs, such as Eclipse and Netbeans. Of course its qualities come with a cost, which is expensive for poor developers like us, but it's worthwhile for companies.&lt;br /&gt;
&lt;br /&gt;
The official name of WebLogic is "Oracle WebLogic Server 11g Standard Edition". It is part of a broader range of products called "Oracle Fusion Middleware", which offers a complete support for enterprise service-oriented applications (SOA). I'm currently working with WebLogic 10.3.4, which is the first version that supports JSF 2.0, my favority web framework. WebLogic is available for download on Oracle's website. Go to the &lt;a href="http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html"&gt;download page&lt;/a&gt; to get your copy. To install it:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Unzip the file in your development folder. For example &lt;i&gt;/home/you/java/weblogic&lt;/i&gt;. &lt;/li&gt;
&lt;li&gt;Create the environment variable &lt;i&gt;JAVA_HOME&lt;/i&gt;, pointing to your JDK installation.&lt;/li&gt;
&lt;li&gt;Create the environment variable &lt;i&gt;MW_HOME&lt;/i&gt; pointing to &lt;i&gt;/home/you/java/weblogic&lt;/i&gt;. &lt;/li&gt;
&lt;li&gt;Go to the command line and run the installation configuration script &lt;i&gt;$MW_HOME/configure.[sh/cmd]&lt;/i&gt;. &lt;/li&gt;
&lt;li&gt;Create the domain to start working with WebLogic, running the command &lt;i&gt;MW_HOME/wlserver/common/bin/config.[sh/cmd]&lt;/i&gt; and following the instructions on the screen. &lt;/li&gt;
&lt;li&gt;Start a web browser and open the url &lt;i&gt;http://localhost:7001/console&lt;/i&gt; to access the administration console.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 sizcache="2" sizset="70"&gt;




&lt;a href="http://www.blogger.com/blogger.g?blogID=1281882577011517327&amp;amp;pli=1" name="Architecture-Howto-JavaDevelopmentEnvironment-ChangingWeblogicClasspath"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div sizcache="2" sizset="71"&gt;
Now, we have to configure the IDE to start, debug, and stop WebLogic, as well as deploy Java EE applications. Because most developers actually use Eclipse as a working IDE, let's configure it, installing the necessary plugin. I'm using &lt;a href="http://www.oracle.com/technetwork/developer-tools/eclipse/downloads/index.html"&gt;Oracle Enterprise Pack for Eclipse (OEPE)&lt;/a&gt;, a plugin that empowers Eclipse to develop Enterprise Java Application for Oracle Products. To install it:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Open Eclipse and go to the menu &lt;i&gt;Help - Install New Software...&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Add a new repository by clicking on &lt;i&gt;Add...&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Inform the name &lt;i&gt;Oracle Enterprise Pack for Eclipse&lt;/i&gt; and the URL &lt;i&gt;http://download.oracle.com/otn_software/oepe/indigo&lt;/i&gt; if you are using Eclipse Indigo, or &lt;i&gt;http://download.oracle.com/otn_software/oepe/helios&lt;/i&gt; if you are still using Eclipse Helios.&lt;/li&gt;
&lt;li&gt;Follow the instructions and restart Eclipse to finalize.&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp;Finally, configure the plugin to integrate the IDE with Eclipse:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Go to the menu &lt;i&gt;Windows - Show View &lt;/i&gt;and select&lt;i&gt; Servers&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Click with the right button of the mouse on the working area of the view and select &lt;i&gt;New - Server&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;In the list of server types, go to the category &lt;i&gt;Oracle&lt;/i&gt; and select &lt;i&gt;Oracle WebLogic Server 11gR1 (10.3.4)&lt;/i&gt;, or the version of WebLogic that you have installed. It's important to select the right version, otherwise an error will continously occur.&lt;/li&gt;
&lt;li&gt;Make sure that the field &lt;i&gt;Server's host name&lt;/i&gt; contains the value &lt;i&gt;localhost&lt;/i&gt; and press &lt;i&gt;Next&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;In the field &lt;i&gt;WebLogic home&lt;/i&gt; inform the path &lt;i&gt;/home/you/java/weblogic/wlserver&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;In the field &lt;i&gt;Java home&lt;/i&gt; inform the path to your JDK installation.&lt;/li&gt;
&lt;li&gt;You can optionally install some server extensions. I recommend to install all available extensions, clicking on &lt;i&gt;Install&lt;/i&gt;, besides each item. Press &lt;i&gt;Next&lt;/i&gt; to continue.&lt;/li&gt;
&lt;li&gt;Leave the option &lt;i&gt;Local&lt;/i&gt; selected in the &lt;i&gt;Server type&lt;/i&gt; field and inform the location of the domain. The domain was created in the first part of this tutorial, when we executed the configuration assistent.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Press &lt;i&gt;Finish&lt;/i&gt; to conclude.&lt;/li&gt;
&lt;/ol&gt;
That's it! Make sure to select this server when creating a new Java EE application. Don't hesitate to share your experience while following this tutorial.&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-8899501399800599581?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/4UniplKVGN8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/8899501399800599581/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/09/development-environment-to-work-with.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/8899501399800599581?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/8899501399800599581?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/4UniplKVGN8/development-environment-to-work-with.html" title="Development Environment to Work with WebLogic" /><author><name>Hildeberto Mendonça</name><uri>https://profiles.google.com/107280863116258893642</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-zW8ZbtXHPYM/AAAAAAAAAAI/AAAAAAAAAFM/bQ153kGiykQ/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/09/development-environment-to-work-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFSXw4fCp7ImA9WhdQGU8.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-6892139137355940335</id><published>2011-08-21T11:32:00.008+02:00</published><updated>2011-08-21T12:43:38.234+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-21T12:43:38.234+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="strategy" /><category scheme="http://www.blogger.com/atom/ns#" term="europe" /><category scheme="http://www.blogger.com/atom/ns#" term="culture" /><category scheme="http://www.blogger.com/atom/ns#" term="workspace" /><category scheme="http://www.blogger.com/atom/ns#" term="business" /><title>Creative Solution to Keep Business Running Under Special Circumstances</title><content type="html">Rue du Luxembourg, Brussels, around 7:20 in the morning, going to work. A drugstore was under complete renovation. It wouldn't be open for customers... unless they put the drugstore in a special container and place it on the sidewalk just in front of it :)
&lt;br /&gt;
&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-tqX_4zrbHV4/TlDTrUNRERI/AAAAAAAAACA/3D7I555EFwM/s1600/IMAG0103.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://1.bp.blogspot.com/-tqX_4zrbHV4/TlDTrUNRERI/AAAAAAAAACA/3D7I555EFwM/s400/IMAG0103.jpg" alt="" id="BLOGGER_PHOTO_ID_5643243074207420690" border="0" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;If you are planning to renew your business, take some time to think about a creative solution to keep it running.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-6892139137355940335?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/ODqu-lvwO4c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/6892139137355940335/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/08/creative-solution-to-keep-business.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6892139137355940335?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6892139137355940335?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/ODqu-lvwO4c/creative-solution-to-keep-business.html" title="Creative Solution to Keep Business Running Under Special Circumstances" /><author><name>Hildeberto Mendonça</name><uri>https://profiles.google.com/107280863116258893642</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-zW8ZbtXHPYM/AAAAAAAAAAI/AAAAAAAAAFM/bQ153kGiykQ/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-tqX_4zrbHV4/TlDTrUNRERI/AAAAAAAAACA/3D7I555EFwM/s72-c/IMAG0103.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/08/creative-solution-to-keep-business.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8CQHw9cSp7ImA9WhdQGEs.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-5011240128075441608</id><published>2011-08-20T12:55:00.011+02:00</published><updated>2011-08-20T19:54:21.269+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-20T19:54:21.269+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="culture" /><category scheme="http://www.blogger.com/atom/ns#" term="ecology" /><category scheme="http://www.blogger.com/atom/ns#" term="family" /><category scheme="http://www.blogger.com/atom/ns#" term="culinary" /><category scheme="http://www.blogger.com/atom/ns#" term="picture" /><title>Real Social Values that We Can't Find on Facebook</title><content type="html">Every working day, my wife and I go walking from home to the train station very early in the morning. Sometime ago, there was a singular thing on the way that caught our attention: a litle "burnt yellow" pumpkim was beautifully growing in the garden of a house in the neighborhood. Over the next 3 months we patiently followed the growth of that pumpkim, which was slowly becoming gorgeous.
&lt;br /&gt;
&lt;br /&gt;Day after day, the temptation to take that away was inevitably increasing. However, the romantism of that rare scene of mutual trust between the residents and passersby was bucolically charming, surrounded by a scenario of a calm small town on the countryside of Belgium.
&lt;br /&gt;
&lt;br /&gt;When the pumpkim was finally looking ripe, the residents put a lovely message for those of us who resisted to that daily temptation.
&lt;br /&gt;
&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-AI4XtiI0t7c/Tk-WflRcrzI/AAAAAAAAAB4/83oxRQhJmM0/s1600/IMAG0106.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://4.bp.blogspot.com/-AI4XtiI0t7c/Tk-WflRcrzI/AAAAAAAAAB4/83oxRQhJmM0/s400/IMAG0106.jpg" alt="" id="BLOGGER_PHOTO_ID_5642894327443926834" border="0" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;The message translated from French was:
&lt;br /&gt;&lt;blockquote&gt;"Our pumpkim is ready to be eaten.... Thanks to all people who gave a benevolent look and resisted the temptation to take it. So, come and enjoy a good pumpkim soup among neighbors this Friday, August 19th, from 7 p.m.! Everyone is welcome."&lt;/blockquote&gt;That's a great example of social interaction that is rare to see nowadays. It comforts me, makes me believe that real social interaction is far more valuable for life than the digital ones, like Facebook and Google+. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-5011240128075441608?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/W_8cbKBvCgI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/5011240128075441608/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/08/real-social-values-that-we-cant-find-on.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/5011240128075441608?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/5011240128075441608?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/W_8cbKBvCgI/real-social-values-that-we-cant-find-on.html" title="Real Social Values that We Can't Find on Facebook" /><author><name>Hildeberto Mendonça</name><uri>https://profiles.google.com/107280863116258893642</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-zW8ZbtXHPYM/AAAAAAAAAAI/AAAAAAAAAFM/bQ153kGiykQ/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-AI4XtiI0t7c/Tk-WflRcrzI/AAAAAAAAAB4/83oxRQhJmM0/s72-c/IMAG0106.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/08/real-social-values-that-we-cant-find-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8DSHw5fyp7ImA9WhZaGUo.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-2040993840420229030</id><published>2011-07-06T18:35:00.000+02:00</published><updated>2011-07-06T20:27:59.227+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-06T20:27:59.227+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="europe" /><category scheme="http://www.blogger.com/atom/ns#" term="culture" /><category scheme="http://www.blogger.com/atom/ns#" term="family" /><title>I'm Pregnant!</title><content type="html">Today, my wife gave me the greatest news I've ever received. She said that I'm gonna be a DAD! Uhuu! \o/ This is something very powerful, you know?! I have no words to describe my expectation to become a father. The news has an&amp;nbsp;immediate impact on the way we see life from now on. All plans we made for ourselves in the coming days, months, years, are now totally forgotten. This new life has the power of attracting all our attention and dedication, which makes me think that the future cannot be designed, at least for the next nine months, and everything that will happen is&amp;nbsp;unpredictable&amp;nbsp;and deserves&amp;nbsp;immediate&amp;nbsp;response.&lt;br /&gt;
&lt;br /&gt;
You may wonder why the title is "I'm pregnant" if I'm obviously a man. It is because I'm feeling all symptoms of a pregnancy that my wife is going through. Of course my Love is reading lots of books, websites and magazines about her new experience. As she tells me what she is feeling, I get myself feeling the same! :D hehehe Nausea, fatigue, headaches, frequent urination, and everything else she tells me. I'm also following the same diet and habits. The absence of coffee is the worse part. I was used to drink 3 to 4 cups a day, which makes me realize now that I was addicted to it. I'm probably getting some weight too, but I certainly need self control about food because one big belly is enough for a pregnant couple.&lt;br /&gt;
&lt;br /&gt;
By the way, a baby is not the only good news. The package also includes 9 months (maybe more) without premenstrual irritation, menstruation, birth control, tampons, and no worries about keeping a flat tummy ;-)&lt;br /&gt;
&lt;br /&gt;
This boy or girl will probably have some time in the future to visit this post. So, I'm getting the opportunity to say a few words:&lt;br /&gt;
&lt;blockquote&gt;"&lt;i&gt;We will do our best to educate you the most constructive and positive way possible. It includes doing things that you won't like at the moment you experience it, but you will understand when you grow up. You have to understand that you are our first experience as parents and we will probably make some mistakes in the course of your education. We never know.&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;i&gt;We plan to have another baby, maybe a third one also, because we believe that it's important for you to have a brother or sister. When we are all growing together as a family, don't worry when you notice that we are&amp;nbsp;giving&amp;nbsp;more attention for them than for you. This is because they are younger and naturally deserve more attention, as you received when you were at the same age. We also understand that you are more mature to understand that. At some point none of you will have privileges any more and we will treat you all equally, as we love you all equally.&amp;nbsp;&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;i&gt;Another point is concerning the language we speak with you. At home you will listen to Portuguese. At the day care center you will listen to French. Furthermore, since you were&amp;nbsp;born&amp;nbsp;in Belgium, which has three official languages, the language confusion will get even worse :D. But it is good for you. We decided to speak in Portuguese with you because we think you should speak fluently with other members of the family, like your grandparents, uncles, cousins, aunts and so on. They are really nice people and they were all waiting for you too. I wished you could see their faces when your mother told them you were coming.&amp;nbsp;&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;i&gt;By the way, your mother is feeling great now! She is reading a lot of books that try to explain how to take care of you. We know they are not always right and the real thing will start when you show up here :) God! You have no idea how life already changed so far. Good changes of course. We have nothing to complain about. Just waiting for you now.&lt;/i&gt;"&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-2040993840420229030?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/P9SSoiNSbUs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/2040993840420229030/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/05/im-pregnant.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/2040993840420229030?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/2040993840420229030?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/P9SSoiNSbUs/im-pregnant.html" title="I'm Pregnant!" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/05/im-pregnant.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4HQns4fSp7ImA9Wx9VEUs.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-6260747970147979267</id><published>2011-01-27T22:32:00.000+01:00</published><updated>2011-01-27T22:32:13.535+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-27T22:32:13.535+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="cejug" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="configuration management" /><title>JUG Management Now on Git</title><content type="html">The JUG community asked and we have moved the JUG Management source code from SVN to Git. I have to admit that I'm new in Git and it seems to be a quite change of paradigm from SVN. My first feeling is that it is more complex. For the moment, my motivation to learn Git comes from the fact that there is a big probability that the market will value this knowledge.&lt;br /&gt;
&lt;br /&gt;
To access the Java.net Git repository is not a trivial task :( You will need SSH (Security Shell protocol) to have an encrypted connection to the server. I think this is too much for our needs, since this is not such a critical system, but this is real life, thus I followed the steps below:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Download and install a Git client according to your operating system. Clients are available at&amp;nbsp;&lt;a href="http://git-scm.com/download"&gt;http://git-scm.com/download&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Installing Git is not enough to start working. You have to configure it, adding a public SSH key to your site profile as described in &lt;a href="http://java.net/projects/help/pages/GeneratingAnSSHKey"&gt;Generating an SSH Key&lt;/a&gt;. The whole process will take some time, but if you do it carefully, step by step, everything will work fine. It worked in my first attempt ;-)&lt;/li&gt;
&lt;li&gt;register yourself in &lt;a href="http://cejug.java.net/"&gt;CEJUG's project at java.net&lt;/a&gt;. You will have access to the repository only if you are a member of the project. Registering in the project doesn't mean you will become a CEJUG member. Actually, we use JUG Management to control our members ;-)&lt;/li&gt;
&lt;li&gt;When you login on Java.net and go to the &lt;a href="http://java.net/projects/cejug/sources"&gt;source code section&lt;/a&gt;, you will be able to see the checkout URI of JUG Management's repository. The address contains your username. Example: ssh://[user-name]@git.java.net/cejug~jug-management.&lt;/li&gt;
&lt;li&gt;Copy the URI above and go to the command line and type the following command to checkout the code: git clone ssh://[user-name]@git.java.net/cejug~jug-management. It will create a folder "cejug-jug-management" in the directory you ran the command and the full source code will be available there.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=c03ce-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0596520123&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt; This is a good start. Now you can open the source code and try to learn the project. I will explore in the next post how to open the source code in an IDE and build a package for deployment. At the same time, I'm learning how configuration management works with Git in order to start receiving your contributions. I'm studying the book Version Control With Git by Jon Loeliger for this. I hope the idea of branch is still there, just with a different name.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-6260747970147979267?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/_nAbsg7UB2I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/6260747970147979267/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/01/jug-management-now-on-git.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6260747970147979267?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6260747970147979267?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/_nAbsg7UB2I/jug-management-now-on-git.html" title="JUG Management Now on Git" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/01/jug-management-now-on-git.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cHRH0zcSp7ImA9Wx9WGUQ.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-8872865998715062509</id><published>2011-01-02T12:29:00.002+01:00</published><updated>2011-01-25T22:30:35.389+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-25T22:30:35.389+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="cejug" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="integration" /><category scheme="http://www.blogger.com/atom/ns#" term="enterprise application" /><category scheme="http://www.blogger.com/atom/ns#" term="netbeans" /><category scheme="http://www.blogger.com/atom/ns#" term="software architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>New CEJUG Open Source Project</title><content type="html">As &lt;a href="http://www.hildeberto.com/2011/01/cejug-commitment-with-my-homeland.html"&gt;I have mentioned yesterday&lt;/a&gt;, I'm working on a new project, managed by the &lt;a href="http://www.cejug.org/"&gt;CEJUG&lt;/a&gt; community, which aims to develop a web application for managing Java User Groups. We put it into &lt;a href="http://www.cejug.org/jug"&gt;production&lt;/a&gt; in the first day of the decade, January 1st, 2011, and we made the &lt;a href="http://java.net/projects/cejug/sources/svn/show/trunk/jug"&gt;source code freely available&lt;/a&gt; on our &lt;a href="http://www.java.net/projects/cejug"&gt;java.net project&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
The first goal we want to achieve is the definition of what is actually being a CEJUG member. Nowadays, we simply consider all those registered in our technical mailing as members. This simplicity is good for management purposes, but we lose lots of information because of that. We don't know, for instance, for what reasons a member is leaving the group. Did we do something wrong? What can we do to get better and get members back into the boat? We also noticed that even non-technical people, as entrepreneurs, recruiters, and those  who decided to unsubscribe because of too many messages, would like to keep in touch with the group, not necessarily going into technical discussions, but proposing other ways to help. Adopting a separate application to manage subscriptions would help us to collect more feedback and be more inclusive.&lt;br /&gt;
&lt;br /&gt;
Developing our own solution can make data work in our favour and allow our sustained growth. Consequently, we are generating an additional source of knowledge for the community. This  application is open source and everyone can run and see how CEJUG works. Beginners will have a solid source to start their studies on the development of Java web applications, experts  can help with bug fixing, refactoring, and developing new features  according to our &lt;a href="http://java.net/jira/browse/CEJUG"&gt;issue tracking&lt;/a&gt;. Adopted design patterns may be subject of valuable and warming discussions in our community.&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/_GRRHKr2Yk6M/TSBb7LpXMWI/AAAAAAAAB6s/EBjO4-0C5l4/s1600/cejug-application.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://3.bp.blogspot.com/_GRRHKr2Yk6M/TSBb7LpXMWI/AAAAAAAAB6s/EBjO4-0C5l4/s400/cejug-application.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Of course the application was developed in Java ;-) We have the duty to write the software architecture document in the coming days, but we can already say in advance what we are using to develop and deploy the application. The presentation layer was developed in &lt;a href="http://jcp.org/en/jsr/detail?id=314"&gt;JSF 2.0&lt;/a&gt;, using the &lt;a href="http://www.primefaces.org/"&gt;Primefaces&lt;/a&gt; component library; the business layer was implemented in &lt;a href="http://jcp.org/en/jsr/detail?id=318"&gt;EJB 3.1&lt;/a&gt;; the persistence layer was implemented in &lt;a href="http://jcp.org/en/jsr/detail?id=317"&gt;JPA 2.0&lt;/a&gt;; data is persisted in &lt;a href="http://www.mysql.com/"&gt;MySQL&lt;/a&gt;; and everything is running on &lt;a href="http://glassfish.java.net/"&gt;Glassfish 3.0.1&lt;/a&gt; Application Server. The current version was developed using &lt;a href="http://www.netbeans.org/"&gt;Netbeans 6.9&lt;/a&gt; due to its productivity when developing JEE applications. We rely on the container to manage security, database transactions, connection pools, and email sessions.&lt;br /&gt;
&lt;br /&gt;
The next step is to document the application, add customisable features and internationalise it in order to spread its adoption by several other JUGs out there. We are looking for contributors and supporters to make this a successful open source project. We hope one day, we could promote interoperability between JUGs through this application, sharing mutual knowledge, events, effort on the growth of the Java platform and the Java community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-8872865998715062509?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/Y0WPvCSMrX0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/8872865998715062509/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/01/new-cejug-open-source-project.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/8872865998715062509?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/8872865998715062509?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/Y0WPvCSMrX0/new-cejug-open-source-project.html" title="New CEJUG Open Source Project" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_GRRHKr2Yk6M/TSBb7LpXMWI/AAAAAAAAB6s/EBjO4-0C5l4/s72-c/cejug-application.png" height="72" width="72" /><thr:total>8</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/01/new-cejug-open-source-project.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFQ38_eip7ImA9WhdaFkg.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-16423646651995199</id><published>2011-01-01T17:44:00.002+01:00</published><updated>2011-10-26T20:23:32.142+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-26T20:23:32.142+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cejug" /><category scheme="http://www.blogger.com/atom/ns#" term="blog" /><category scheme="http://www.blogger.com/atom/ns#" term="europe" /><category scheme="http://www.blogger.com/atom/ns#" term="culture" /><category scheme="http://www.blogger.com/atom/ns#" term="software architecture" /><title>CEJUG: Commitment with My Homeland</title><content type="html">At the beginning of 2010 I was in Brazil prospecting jobs and I couldn't find anyone that would use the knowledge that I had produced in the last 4 years. Then I started thinking about writing a project to submit to Brazilian investors. I did, but it seems that most of investments have been redirected to oil (&lt;a href="http://www.economist.com/node/13348824?story_id=13348824"&gt;they just found a large oil reserve in the cost of Rio de Janeiro&lt;/a&gt;) , sports (Brazil will host the &lt;a href="http://www.fifa.com/worldcup/index.html"&gt;World Cup 2014&lt;/a&gt; and &lt;a href="http://www.rio2016.com.br/"&gt;Olympic Games 2016&lt;/a&gt;) and city services (IBM kind of changed governments' minds with that idea of &lt;a href="http://www.ibm.com/smarterplanet/us/en/"&gt;Smarter Planet&lt;/a&gt;). As a consequence, other studies have almost no chance if not related to those subjects, and, of course, if you don't invite project evaluators for a dinner, your project will probably be forgotten.&lt;br /&gt;
&lt;br /&gt;
I also tried to become a professor in my hometown, since a PhD title would help me to achieve that. To get a good salary we have to work for public universities but there was no vacancies at the time. Some opportunities were available in other states like São Paulo, Paraná, Rio Grande do Sul, but my State is Ceará and I would love to contribute for its development. I kept searching until finding vacancies in private universities, but the salaries were very low and it would force me to work day and night to get a fair total income. No way!!!&lt;br /&gt;
&lt;br /&gt;
When the idea of returning to Brazil was getting too difficult, I started looking for opportunities in Europe.&amp;nbsp;With a bit of luck and a nice CV, I started a job as a software architect&amp;nbsp;and it has been very exciting and rewarding so far. At the same time, the feeling that I was abandoning my country just for personal reasons has been always present. I'm currently helping Europe to better face technological challenges (that's what a software architect usually does in an organization) while Brazil is still&amp;nbsp;struggling with poverty, big social differences, and&amp;nbsp;poorly educated people.&amp;nbsp;I cannot accept that because Brazil, with all its problems, was responsible for my education and my qualifications. If I like the person I became, I certainly like the place where I was educated and the people who educated me.&lt;br /&gt;
&lt;br /&gt;
To have peace of mind and no regrets, I've built a way that my staying in Europe, at least for a while, doesn't imply in abandoning my homeland. I'm actually investing my free time to co-lead the Ceara Java User Group (&lt;a href="http://www.cejug.org/"&gt;CEJUG&lt;/a&gt;), helping on the technical education of Ceara's developer community. By doing this, I'm contributing to change the life of students and professionals there for better. The more knowledge we produce and share, the better will become the technology created there, increasing the&amp;nbsp;competitiveness&amp;nbsp;of the local software industry, which implies in more jobs and more&amp;nbsp;valuable&amp;nbsp;products.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GRRHKr2Yk6M/TR9V7ofsXHI/AAAAAAAAB6o/ESEze4xNYSk/s1600/DSCN0626.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_GRRHKr2Yk6M/TR9V7ofsXHI/AAAAAAAAB6o/ESEze4xNYSk/s400/DSCN0626.JPG" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;CEJUG Event with Oracle representatives&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Actually, I have been doing it for a while. I'm just dedicating more time than usual now. My current project is the development of a web application to manage the user group. I believe this is the first initiative of developing such kind of application so far. At least, I'm part of the international Jug Leader community and I never heard about one before. By the way, its first version is &lt;a href="http://www.cejug.org/jug"&gt;already in production&lt;/a&gt;. There are so many positive things about this new application that it deserves an exclusive post. That's what I'm going to do next. Wait for it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-16423646651995199?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/k2vgLz7PGj4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/16423646651995199/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2011/01/cejug-commitment-with-my-homeland.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/16423646651995199?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/16423646651995199?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/k2vgLz7PGj4/cejug-commitment-with-my-homeland.html" title="CEJUG: Commitment with My Homeland" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_GRRHKr2Yk6M/TR9V7ofsXHI/AAAAAAAAB6o/ESEze4xNYSk/s72-c/DSCN0626.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2011/01/cejug-commitment-with-my-homeland.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIFQ3c5eip7ImA9Wx9SEU8.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-8506720410418202461</id><published>2010-11-30T14:03:00.003+01:00</published><updated>2010-11-30T15:31:52.922+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-30T15:31:52.922+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="europe" /><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="workspace" /><category scheme="http://www.blogger.com/atom/ns#" term="career" /><title>My Last Day in The Lab</title><content type="html">In November 15th this year, Matt Welsh, a young and successful tenured professor at Harvard, &lt;a href="http://matt-welsh.blogspot.com/2010/11/why-im-leaving-harvard.html"&gt;decided to leave his prestigious academic position&lt;/a&gt; to work full time for the industry. He is now a Google employee and he claims that he has more freedom and computational power than ever to make real and substantial contributions for the computer world.&lt;br /&gt;
&lt;br /&gt;
I fully understand Matt, besides not having his prestigious position neither his brilliant mind. We both love our respective universities, keeping a profound admiration for what they represent for the society. However, we both also agree that sometimes &lt;a href="http://www.hildeberto.com/2009/11/for-better-lab.html"&gt;our way of thinking and acting don't fit the way the traditional research world is moved&lt;/a&gt;. We love freedom of thinking with a minimal influence of external factors, but we also get upset when things happen too slow because &lt;a href="http://www.hildeberto.com/2010/07/writing-scientific-papers.html"&gt;we have a lot of formalities to deal with before having our work appropriately recognized&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GRRHKr2Yk6M/TPTt-7hbaQI/AAAAAAAAB4k/z76zkIeNKlk/s1600/UCL2057%25C2%25A9Koen_Cobbaert.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="266" src="http://3.bp.blogspot.com/_GRRHKr2Yk6M/TPTt-7hbaQI/AAAAAAAAB4k/z76zkIeNKlk/s400/UCL2057%25C2%25A9Koen_Cobbaert.JPG" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Normal working day at the lab registered by Koen Cobbaert&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;After all, my experience of &lt;a href="http://www.hildeberto.com/2010/10/im-back-now-as-phd.html"&gt;doing PhD&lt;/a&gt; at &lt;a href="http://www.uclouvain.be/"&gt;UCL&lt;/a&gt; was amazing and I do recommend it for those who ask me for an advice about the academic world. In this world I've learned how to solve really tough problems and to practice my favorite sports: writing and coding. It was a journey of 4 years extracting the maximum of creativity, patience and emotional control. When I finished, I had a feeling that everything else is easier and I lost the fear of facing new challenges. In summary, life gets more exciting.&lt;br /&gt;
&lt;br /&gt;
After this&amp;nbsp;remarkable&amp;nbsp;academic period, I feel the need of changing in my heart. As my adviser said once: &lt;br /&gt;
&lt;blockquote&gt;"we are&amp;nbsp;fundamentally&amp;nbsp;educators and in order to spread knowledge people should come and go elsewhere to make useful things with their privileged knowledge".&lt;/blockquote&gt;I do agree with his statement and that's one of the reasons I'm leaving the lab today. Because I believe it's time to leave my sit available for another brave student who is looking for this wonderful life experience. And I should follow my path, doing what I love to do, which is work as a Java Architect in the corporate world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-8506720410418202461?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/2ByRyCvZdDI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/8506720410418202461/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/11/my-last-day-in-lab.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/8506720410418202461?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/8506720410418202461?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/2ByRyCvZdDI/my-last-day-in-lab.html" title="My Last Day in The Lab" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_GRRHKr2Yk6M/TPTt-7hbaQI/AAAAAAAAB4k/z76zkIeNKlk/s72-c/UCL2057%25C2%25A9Koen_Cobbaert.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/11/my-last-day-in-lab.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQGRXY5fip7ImA9Wx9TFE4.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-86169682766877566</id><published>2010-11-22T15:54:00.002+01:00</published><updated>2010-11-22T16:05:24.826+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-22T16:05:24.826+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="latex" /><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="operating system" /><title>Preparing Ubuntu to Write Latex Documents</title><content type="html">That's a self-reference post that might be useful for you too. I just installed Ubuntu in a new laptop and I was surprised by how easy is to install a Latex editor and the packages needed to compile and render documents. As a &lt;a href="http://www.hildeberto.com/2010/11/suggestions-to-improve-texmaker.html"&gt;Texmaker user&lt;/a&gt;, I'm going to explain the installation using this editor.&lt;br /&gt;
&lt;br /&gt;
On Ubuntu 10.04 or higher, go to Applications - Ubuntu Software Center. Type "Texmaker" in the search field on the top right. Texmaker will appear in the list, then you can click on "Info" to get more information about it, as shown in the figure below.&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/_GRRHKr2Yk6M/TOqBY_BfaoI/AAAAAAAAB4Q/Uf6qQt19UJw/s1600/Screenshot-Ubuntu+Software+Center.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://3.bp.blogspot.com/_GRRHKr2Yk6M/TOqBY_BfaoI/AAAAAAAAB4Q/Uf6qQt19UJw/s400/Screenshot-Ubuntu+Software+Center.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Press "Install" and have Texmaker and its&amp;nbsp;dependencies installed on your Ubuntu system. &lt;a href="http://www.tug.org/texlive/"&gt;TeX Live&lt;/a&gt;&amp;nbsp;is the&amp;nbsp;Latex system installed. Notice that you don't have to do anything to install TeX Live, it will just come together with Texmaker. The installation process will take some time because TeX Live is a big package and you will probably need a good internet connection.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=c03ce-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0137081308&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;Unfortunately, just a basic version of TeX Live&amp;nbsp;is installed and you will probably have problems trying to write some little advanced texts. To handle that, I suggest the installation of additional texlive packages, which are:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;texlive-bibtex-extra&lt;/li&gt;
&lt;li&gt;texlive-fonts-extra&lt;/li&gt;
&lt;li&gt;texlive-fonts-recommended&lt;/li&gt;
&lt;li&gt;texlive-math-extra&lt;/li&gt;
&lt;li&gt;texlive-science&lt;/li&gt;
&lt;/ul&gt;Go to System - Administration - Synaptic Package Manager. Use the search box to find the packages above and check them for installation. That's all you have to do to start writing high quality documents.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-86169682766877566?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/1CYGr6937UM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/86169682766877566/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/11/preparing-ubuntu-to-write-latex.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/86169682766877566?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/86169682766877566?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/1CYGr6937UM/preparing-ubuntu-to-write-latex.html" title="Preparing Ubuntu to Write Latex Documents" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_GRRHKr2Yk6M/TOqBY_BfaoI/AAAAAAAAB4Q/Uf6qQt19UJw/s72-c/Screenshot-Ubuntu+Software+Center.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/11/preparing-ubuntu-to-write-latex.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkECQHk8eip7ImA9Wx5aFEQ.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-4439520366689914384</id><published>2010-11-11T16:25:00.003+01:00</published><updated>2010-11-11T16:51:01.772+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-11T16:51:01.772+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="europe" /><category scheme="http://www.blogger.com/atom/ns#" term="culture" /><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="workspace" /><title>I Don't Wanna Work Alone !!!</title><content type="html">If I remember well, the last time I have worked in a &lt;a href="http://www.hildeberto.com/2008/08/enterface08-workshop-finished.html"&gt;consistent and competent team&lt;/a&gt; was in 2008, in a &lt;a href="http://www.hildeberto.com/2008/08/enterface-workshop.html"&gt;workshop in Paris&lt;/a&gt;, France. That workshop produced &lt;a href="http://www.hildeberto.com/2009/04/enterface08-effect.html"&gt;incredible results afterwards&lt;/a&gt; that helped me a lot to conclude my PhD successfully. After that, I have been working alone or in pairs, but never in a real team.&lt;br /&gt;
&lt;br /&gt;
God knows how hard I have tried to set up a real team in the last few years. Actually, I couldn't do that as a simple student because I was too much low in the hierarchy, but I kept the faith that it would be possible for small achievements such as integrating software modules or co-authorship in scientific papers. Unfortunately, it didn't work either.&lt;br /&gt;
&lt;br /&gt;
The only format that worked really well was in pair. Of course it demanded twice more dedication, but the results were impressive. Look at what happened with the &lt;a href="http://www.usi4biz.com/"&gt;Usi4Biz&lt;/a&gt; project. Working together with &lt;a href="http://www.usi4biz.com/kenia"&gt;Kênia&lt;/a&gt;, we could do nice complementary work defining (She) and developing (Me) a framework to link business processes with user interfaces. Her part became her PhD thesis and a chapter of mine and I have accumulated a lot of expertise in model-based and distributed development besides &lt;a href="http://usi4biz.com/research/"&gt;publishing several papers together&lt;/a&gt;. The idea was also &lt;a href="http://usi4biz.com/2009/11/15/presentation-at-ibm-forum-brussels/"&gt;internationally recognized by IBM&lt;/a&gt; and resulted in many international collaborations.&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/_GRRHKr2Yk6M/TNuu5UhhpKI/AAAAAAAAB30/d3QA5jPJJZE/s1600/pair.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" src="http://1.bp.blogspot.com/_GRRHKr2Yk6M/TNuu5UhhpKI/AAAAAAAAB30/d3QA5jPJJZE/s320/pair.jpg" width="320" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
I don't complain about working alone because it was part of the game since the beginning. Every graduated person knows how much of solitary work a good research would demand. We have to get protected from plagiarism sometimes when ideas are not published yet. However, I would say that lots of possibilities are missed when people do not work together sometimes. Research results will be delivered, but there will always be a feeling of doing less than what is actually possible to do. You know, maximizing the thing.&lt;br /&gt;
&lt;br /&gt;
Now that &lt;a href="http://www.hildeberto.com/2010/10/im-back-now-as-phd.html"&gt;I have finished my PhD&lt;/a&gt;, which is an awesome milestone, it's time for changes. I guess the wish to work in a team and stop being a student are heavily influencing my decisions towards "maximizing things" ;)&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/_GRRHKr2Yk6M/TNwQ1FZOkwI/AAAAAAAAB34/Ruqvm2qN584/s1600/DSC00961.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267" src="http://1.bp.blogspot.com/_GRRHKr2Yk6M/TNwQ1FZOkwI/AAAAAAAAB34/Ruqvm2qN584/s400/DSC00961.JPG" width="400" /&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/1281882577011517327-4439520366689914384?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/Hx7MGU5HJ_E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/4439520366689914384/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/11/i-dont-wanna-work-alone.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/4439520366689914384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/4439520366689914384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/Hx7MGU5HJ_E/i-dont-wanna-work-alone.html" title="I Don't Wanna Work Alone !!!" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_GRRHKr2Yk6M/TNuu5UhhpKI/AAAAAAAAB30/d3QA5jPJJZE/s72-c/pair.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/11/i-dont-wanna-work-alone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMFRX45cSp7ImA9Wx5aEk0.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-3365292335605535231</id><published>2010-11-08T09:12:00.001+01:00</published><updated>2010-11-08T09:20:14.029+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-08T09:20:14.029+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="publication" /><title>Blind Review of Scientific Papers</title><content type="html">Some time ago, I wrote a post about how to &lt;a href="http://www.hildeberto.com/2010/07/writing-scientific-papers.html"&gt;write scientific papers&lt;/a&gt;. This post is not quite famous like other technical ones, but it might help those who are starting in the research world. I'm revisiting this topic again by explaining how to prepare a blind copy of a paper for reviewing.&lt;br /&gt;
&lt;br /&gt;
But what is a blind copy and why is it necessary? A blind copy is a version of an article that doesn't show the authors and any other reference for them. Their names and affiliations should be removed from the front page as well as sentences mentioning previous works rephrased and self references hidden. All this caution is necessary to ensure honesty in the reviewing process, or at least maximize it. A well known researcher might influence the reviewers, who will be inclined to accept the manuscript not because of the overall quality of the work, but because of the author's influence. Other reviewers might be inclined to reject the paper because they might be direct competitors. And sometimes we write such bad papers that it's better that nobody knows who did that shit.&lt;br /&gt;
&lt;br /&gt;
By hiding paper's authorship when submitting the paper for review, authors, editors and program committee members are contributing for a more reliable reviewing process, directing the focus to real research instead of other influences.&lt;br /&gt;
&lt;br /&gt;
How do we know if we have to send a blind copy? It is usually required in the call for papers. I would suggest to always give preference to conferences, journals, magazines and books which adopt blind reviewing. It is good for our research because people will be more honest with us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-3365292335605535231?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/l1ORcDqD8tM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/3365292335605535231/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/11/blind-review-of-scientific-papers.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/3365292335605535231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/3365292335605535231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/l1ORcDqD8tM/blind-review-of-scientific-papers.html" title="Blind Review of Scientific Papers" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/11/blind-review-of-scientific-papers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQGRHk_cSp7ImA9Wx5aEk0.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-3504111162815665721</id><published>2010-11-04T16:41:00.001+01:00</published><updated>2010-11-08T09:52:05.749+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-08T09:52:05.749+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="latex" /><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="user interface" /><title>Suggestions to Improve Texmaker</title><content type="html">&lt;a href="http://www.xm1math.net/texmaker/"&gt;Texmaker&lt;/a&gt; is a Latex editor used to write well structured documents. &lt;a href="http://www.latex-project.org/"&gt;Latex&lt;/a&gt; is a text processing language not so trivial, but once mastering it the writer gets very good results on the overall quality of his/her documents.&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/_GRRHKr2Yk6M/TNLRnUvH2XI/AAAAAAAAB3k/85DK7SbnjMY/s1600/texmaker.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="231" src="http://1.bp.blogspot.com/_GRRHKr2Yk6M/TNLRnUvH2XI/AAAAAAAAB3k/85DK7SbnjMY/s400/texmaker.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
I have been using Texmaker for a while, but only recently I could experience most of its features. I spent a long time using it to write my thesis and I figured out some possible improvements that would make this tool more usable. The evaluated version was the 2.0 one, but the latest version is currently the 2.1 one. Maybe some of my suggestions are already available. I didn't have time to check yet. Anyway, the improvements are:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Restoring the previous session is really an interesting feature. I personally think that it is better than creating a project, as other tools do, because it preserves the simplicity of Texmaker. However, besides saving last opened files and the master document in the application session, I would suggest to &lt;b&gt;save all bookmarks&lt;/b&gt; as well. It is useful because when we are working in a large document it is difficult to find exactly the point where we have stopped working last time and bookmarks were the first thing I thought that might be solving this problem.&lt;/li&gt;
&lt;li&gt;It think it is quite easy to detect which document is the master. It is basically about to find \documentclass at the beginning of the document. So, if Texmaker would be able to &lt;b&gt;set the master document automatically instead of forcing us to do so&lt;/b&gt;, it would be a great usability improvement. I understand that there is the case when more than one candidate for master is opened. In this case, I would suggest the following rules to decide which document is the master one before compiling the document:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;i&gt;only one file is open and this file can be a master&lt;/i&gt;: define it automatically as a master.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;many files are open, but only one of them can be a master and others are just inclusions (\include{})&lt;/i&gt;: define as a master the only one that can be a master.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;many files are open and there are more than one candidate for master&lt;/i&gt;: select one of the candidates for master and compile it to define it as the master. If another candidate is selected and the compilation is invoked, then the current selection will become the new master. If the selected file is not a master and the compilation is invoked, then the last selected master is considered.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;The spell check works fine, but It would be nice to &lt;b&gt;add new words to the dictionary in order to avoid red underlines&lt;/b&gt; in words that we are tired to know they are right. I can imagine how hard it could be to avoid verifying Latex keywords and parameters, so I got used to spell checks' highlights there, but in my text it's a bit annoying.&lt;/li&gt;
&lt;li&gt;Texmaker is doing a great job presenting the structure of the tex file. Clicking on any item brings the corresponding point in the text to the user, helping a lot on the navigation of long texts. The problem is: why doesn't it do the same for "bib" files? bib files are as much structured as any other latex file, so Texmaker would &lt;b&gt;implement the visualization of bib files on the structure view&lt;/b&gt;, simplifying the navigation through this file, which is usually long.&lt;/li&gt;
&lt;/ol&gt;&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=c03ce-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0321173856&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;Hey! Wait a minute! Texmaker is open source. Why don't I just make all these contributions to the project? For the moment I can't. I wish I could, but to invest time in C++ might not be so strategic for my carrier right now. I've tried to find some Latex tool implemented in Java, but I found just some immature projects unfinished. Anyway, I'm quite confident that an usability evaluation can be also considered as a contribution to a open source project, don't you think so? ;-)&lt;br /&gt;
&lt;ol&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-3504111162815665721?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/VMPw0z4EnkM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/3504111162815665721/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/11/suggestions-to-improve-texmaker.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/3504111162815665721?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/3504111162815665721?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/VMPw0z4EnkM/suggestions-to-improve-texmaker.html" title="Suggestions to Improve Texmaker" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_GRRHKr2Yk6M/TNLRnUvH2XI/AAAAAAAAB3k/85DK7SbnjMY/s72-c/texmaker.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/11/suggestions-to-improve-texmaker.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcAQ308fSp7ImA9Wx5bFUg.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-5601144843999923958</id><published>2010-10-31T13:22:00.002+01:00</published><updated>2010-10-31T21:14:02.375+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-31T21:14:02.375+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blog" /><category scheme="http://www.blogger.com/atom/ns#" term="trip" /><category scheme="http://www.blogger.com/atom/ns#" term="research" /><title>I'm Back, Now as a Ph.D.</title><content type="html">Hi everyone, I had to spend sometime far from my blog because I was heavily busy finishing my Ph.D. Since May this year, I have written hundreds of pages, but the hardest part was not writing so many pages, but to review all of them. &lt;br /&gt;
&lt;br /&gt;
The first version of my thesis was ready on July 31st. I submitted it to the jury on August 2nd. After this, I had only one week to summarize everything in a journal article and submit it to the editor on August 12th. I did it, but I had no expectation about its acceptance due to the hurry to prepare the article.&lt;br /&gt;
&lt;br /&gt;
After such a pressure, I dedicated sometime to write my previous post on &lt;a href="http://www.hildeberto.com/2010/08/using-latex-and-openoffice-to-write.html"&gt;August 15th&lt;/a&gt;. But then I had to stop again my posts in a weekly basis to get ready to the private defense. The private defense is a closed session where only members of the jury, the adviser and the student are present. The student has to present his research and the jury makes an extensive, detailed and tough interrogatory, that might last for hours. My private defense was held on September 12th in a meeting room of my laboratory. It last 3 hours and it was, by far, the most tough evaluation I've ever passed. When it finished I went directly to bed to get relieved from the stress. I completely recovered from the stress a day after.&lt;br /&gt;
&lt;br /&gt;
The main issue of the private defense was to convince the jury that I was capable of finishing all requested modifications in less than one month in order to book the public defense on October 12th. According to the rules of the university, the minimum period between the private and public defense is one month, but I had less time to finish the modifications because the thesis should be printed and follow some internal procedures before the public defense. And October 12th was the target date because my family had already bought expensive flight tickets, booked hotel, rented car and everything else considering October 12th. Fortunately, the jury had agreed to allow me delivering a new version of the thesis within 3 weeks and set the public defense definitively on October 12th.&lt;br /&gt;
&lt;br /&gt;
More relaxed, but still very busy improving the thesis, I saw an open call for a book chapter related to the technology I used to develop my research application. I wrote an abstract demonstrating my great interest to be part of the book. However, I had no big expectation of having my proposal accepted. My family was about to arrive and after my public defense we planned to travel to many places in Europe together before they went back to Brazil. But then my book chapter proposal was accepted and I was supposed to write it while my family was here. Arghs!! Well, maybe I could handle this since I have a lot of content ready in my thesis, but not yet published. Then I received the news that my journal article had been accepted too, the one I submitted on August 12th, but reviewers requested a lot of modifications. God! A book chapter to write and a journal article to modify right during vacation with family?! It was unexpected and undesirable. :( Even worse, I couldn't start writing earlier because I was getting ready for the public defense, preparing the presentation, training the speech and many other administrative tasks. I was about to collapse.&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/_GRRHKr2Yk6M/TM1c0A0FiFI/AAAAAAAAB3g/UMzVLigZpK4/s1600/DSC02908.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267" src="http://4.bp.blogspot.com/_GRRHKr2Yk6M/TM1c0A0FiFI/AAAAAAAAB3g/UMzVLigZpK4/s400/DSC02908.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The day of my public defense finally came. On October 12th 2010, I presented the final version of my thesis to the jury, to my family and many other friends. It was very good. I finished on time, answered all questions comfortably, and got the Ph.D. degree. It was so nice that I got very motivated to finish my two other responsibilities: the book chapter and the journal article. However, my body could not follow my wishes. I didn't have a single minute of relaxation after my defense because of the trip with family. During the day we were visiting monuments, museums, theaters and restaurants and during the night I was lying on the laptop, writing as much as I could. Going to sleep late, waking up early, and walking all day, I was about to collapse. Really! At some point I said to myself to give up, then I spent one day doing nothing. Somehow, this day off was enough to recover my motivation.&lt;br /&gt;
&lt;br /&gt;
There were more dramatic details but this post is already getting too long. The good news is that I could finally submit the book chapter and the revised version of the journal article. I'm writing this post now because I finished the whole journey just yesterday. I missed my blog a lot but I definitely couldn't come earlier. Now I'm back and full of pending topics to write about. I would like to thank all my visitors that didn't stop visiting and commenting my posts even after this "sabbatical" period. I'm really happy that I could write texts that have been permanently useful for the community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-5601144843999923958?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/zLQSzsIxyP8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/5601144843999923958/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/10/im-back-now-as-phd.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/5601144843999923958?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/5601144843999923958?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/zLQSzsIxyP8/im-back-now-as-phd.html" title="I'm Back, Now as a Ph.D." /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_GRRHKr2Yk6M/TM1c0A0FiFI/AAAAAAAAB3g/UMzVLigZpK4/s72-c/DSC02908.JPG" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/10/im-back-now-as-phd.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cMQXczfip7ImA9Wx5SGEQ.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-1906337681174408522</id><published>2010-08-15T20:53:00.004+02:00</published><updated>2010-08-15T21:04:40.986+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-15T21:04:40.986+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="latex" /><category scheme="http://www.blogger.com/atom/ns#" term="research" /><title>Using Latex and OpenOffice to Write Long Documents</title><content type="html">&lt;a href="http://www.latex-project.org/"&gt;Latex&lt;/a&gt; is a "&lt;i&gt;document preparation system for high-quality typesetting. It is most often used for medium-to-large technical or scientific documents but it can be used for almost any form of publishing&lt;/i&gt;" (Latex project website). Latex compiles a script language into a formated document. This script language is not so easy to learn, but the effort may be worthwhile, since the resulting documents look more professional than their equivalent made using &lt;a href="http://www.openoffice.org/"&gt;OpenOffice&lt;/a&gt; or &lt;a href="http://office.microsoft.com/"&gt;Microsoft Word&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I wrote my PhD dissertation using Latex and the result was very satisfactory. The dissertation was gradually getting the shape of a book, which is pretty exciting for me, who admires authors but never intended to become one of them. To write Latex script, I use a tool called &lt;a href="http://www.xm1math.net/texmaker/"&gt;Texmaker&lt;/a&gt;, a Latex editor maintained by Pascal Brachet, a  teacher of mathematics in a French secondary school. There are other interesting editors, but Texmaker's simplicity is more attractive for me. The figure below depicts the source of my dissertation opened in Texmaker. &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/_GRRHKr2Yk6M/TGfKrJsKeUI/AAAAAAAAB08/16AP-_9WihA/s1600/thesis-texmaker.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="286" src="http://4.bp.blogspot.com/_GRRHKr2Yk6M/TGfKrJsKeUI/AAAAAAAAB08/16AP-_9WihA/s400/thesis-texmaker.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The problem of doing the whole work using exclusively Texmaker is its limitations in terms of language support and versioning. The spell check feature, for instance, is very limited (you cannot add new words to the dictionary), there is no grammar assistance and no versioning feature to highlight what was modified since the last revision. I consider these three features essential for those who are writing&amp;nbsp; important documents. No other tools can offer these features either.&lt;br /&gt;
&lt;br /&gt;
To address some of these limitations, I decided to include OpenOffice in the process to fulfill the need for spell and grammar checking and versioning. The figure below depicts, step by step, the writing process.&amp;nbsp; It starts by writing the dissertation's content in OpenOffice with the change control feature enabled. While writing, the editor automatically checks spelling and grammar. When finished, the added content is copied to Texmaker. Because Texmaker is a plain text editor, it doesn't support rich formats coming from OpenOffice, such as tables, figures, bullets, enumerations, italic text and others. In these cases, the correspondent Latex formating script should be used after pasting OpenOffice's contents. Once the format is done, we can finally compile and visualize the result.&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/_GRRHKr2Yk6M/TGg5utETZGI/AAAAAAAAB1M/hEXsclVYypw/s1600/dissertation-writing-process.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://4.bp.blogspot.com/_GRRHKr2Yk6M/TGg5utETZGI/AAAAAAAAB1M/hEXsclVYypw/s400/dissertation-writing-process.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
After each transference of text from OpenOffice to Texmaker, we have to approve all changes in the OpenOffice document in order to identify all new and updated texts that should be transfered to Texmaker in the next iteration.&lt;br /&gt;
&lt;br /&gt;
Two important details:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;OpenOffice doesn't support grammar checking by default. It is necessary to install the extension &lt;a href="http://extensions.services.openoffice.org/pt-br/project/languagetool"&gt;Language Tool&lt;/a&gt; for that. Download the file "LanguageTool-[version].oxt" and import it to OpenOffice using the option "Tools - Extension Manager" in the menu. Click on "Add..." and select the file above. This extension starts working when you restart OpenOffice.&lt;/li&gt;
&lt;li&gt;My intention is not to teach Latex here, but how to overcome some of its limitations by using OpenOffice as a complement.&lt;/li&gt;
&lt;/ol&gt;You may ask: since you are writing everything in OpenOffice, why don't you keep everything there and forget about Latex? Simply because it is very difficult to get the same results and quality that we get using Latex. You can fulfill the OpenOffice role using Microsoft Office. This one also doesn't offer the same results as Latex, but the grammar checker is much better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-1906337681174408522?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/imnOcb7IvKI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/1906337681174408522/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/08/using-latex-and-openoffice-to-write.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/1906337681174408522?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/1906337681174408522?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/imnOcb7IvKI/using-latex-and-openoffice-to-write.html" title="Using Latex and OpenOffice to Write Long Documents" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_GRRHKr2Yk6M/TGfKrJsKeUI/AAAAAAAAB08/16AP-_9WihA/s72-c/thesis-texmaker.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/08/using-latex-and-openoffice-to-write.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8NSXg_fip7ImA9WxFaGEo.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-6857050820161018652</id><published>2010-07-23T09:51:00.001+02:00</published><updated>2010-07-23T10:14:58.646+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-23T10:14:58.646+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="culture" /><category scheme="http://www.blogger.com/atom/ns#" term="literature" /><category scheme="http://www.blogger.com/atom/ns#" term="book" /><title>Finished My First Kindle Book</title><content type="html">Recently I finished my first Kindle book. Now, I can tell you that the full experience is very close to reading a real book. Not the same, but better. :-) I decided that my first Kindle&amp;nbsp;experience&amp;nbsp;must be a light book, small, easy to read and useful. This way, I would avoid any frustration with Kindle at the beginning.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=c03ce-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0307463745&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;Fortunately, I found an excellent book, that fitted very well in my criteria and it ended up being more useful than I would possibly expect. Actually, this book changed the way I used to think about work and business. In my opinion, it is supposed to be a milestone in the history of administration, without any exaggeration. The change was not more dramatic because I didn't implement it yet. My thesis is not allowing me to, but I will as soon as I can.&lt;br /&gt;
&lt;br /&gt;
If you plan to open a new business or simply run an idea&amp;nbsp;smoothly, it is a "must have" book. I highlighted some interesting sentences just to give you an initial idea. The book and its &lt;a href="http://37signals.com/rework/"&gt;website&lt;/a&gt; give you several others.&lt;br /&gt;
&lt;blockquote&gt;"&lt;i&gt;To keep your momentum and motivation up, get in the habit of accomplishing small victories along the way. Even a tiny improvement can give you a good jolt of momentum.&lt;/i&gt;"&lt;/blockquote&gt;&lt;blockquote&gt;"&lt;i&gt;Competitors can never copy the 'you' in your product.&lt;/i&gt;"&lt;/blockquote&gt;&lt;blockquote&gt;"&lt;i&gt;If you build software, every error message is marketing.&lt;/i&gt;"&lt;/blockquote&gt;&lt;blockquote&gt;"&lt;i&gt;Never hire anyone to do a job until you've tried to do it yourself first. That way, you'll understand the nature of the work.&lt;/i&gt;"&lt;/blockquote&gt;&lt;blockquote&gt;"&lt;i&gt;It's crazy not to hire the best people just because they live far away. Specially now that there's so much technology out there making it easier to bring everyone together online.&lt;/i&gt;"&lt;/blockquote&gt;&lt;blockquote&gt;"&lt;i&gt;Write to be read, don't write just to write.&lt;/i&gt;"&lt;/blockquote&gt;&lt;br /&gt;
&lt;a href="http://mashable.com/2010/07/19/amazon-kindle-sales/"&gt;Amazon has recently announced&lt;/a&gt; that "&lt;i&gt;over the past three months, for every 100 hardcover books Amazon.com has sold, it has sold 143 Kindle books. Over the past month, for every 100 hardcover books Amazon.com has sold, it has sold 180 Kindle books.&lt;/i&gt;". I attribute this to the incredible simplicity of buying and getting access to the book in seconds. A closer friend bought the hardcover and he had to wait several days to receive it. I got Rework instantly. That's the difference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-6857050820161018652?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/Sp196xCp9JE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/6857050820161018652/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/07/finished-my-first-kindle-book.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6857050820161018652?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6857050820161018652?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/Sp196xCp9JE/finished-my-first-kindle-book.html" title="Finished My First Kindle Book" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/07/finished-my-first-kindle-book.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMERns7fyp7ImA9WxFaFEk.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-6954794197259248628</id><published>2010-07-17T12:54:00.003+02:00</published><updated>2010-07-18T11:46:47.507+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-18T11:46:47.507+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="conference" /><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="publication" /><title>Writing Scientific Papers</title><content type="html">When I was a young researcher nobody taught me how to write a paper. Maybe, it is a sort of a test: if we prove we can write one, without any guidance, just taking into consideration other papers, we are ready to face the research world. In fact, many young researchers don't even know what a paper is useful for. Their lack of understanding and absence of instructions bring them fear and low self-esteem to write one.&lt;br /&gt;
&lt;br /&gt;
Recently, I received some papers to review and I could see a lot of evidences that novice researchers still make the same mistakes that I used to at the time of my debut. I have contributed in publishing &lt;a href="http://cv.hildeberto.com/education/publications"&gt;17 papers&lt;/a&gt; so far, and it gave me some experience to share with you about paper writing. My intention is to be clear and honest, so there is no rigor in this text and I don't try to magnify the academic world with nice words.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="267" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/TEGIbGe-QuI/AAAAAAAABzI/5dEMd-ULILo/s400/DSC01807.JPG" width="400" /&gt;&lt;/div&gt;&lt;br /&gt;
A paper is a written report of what is going on during a scientific research. That's why it is so boring to read. This report should be published somewhere. If we do not publish it nobody will actually know that we are active in research, thus we are not considered as researchers. If we publish, good! It means that other researchers have read and evaluated our text, identifying some innovation there. There are many kinds of publications. We can publish our work in conferences, workshops, journals, etc. Some of them are more accessible, others are more challenging. "Challenging" means that the researchers that will review our paper might be top specialists on the field, and if we are good too, they are our competitors. It usually happens when we submit to a journal. "Accessible" means most conferences and workshops. Renowned conferences work like journals, but a lot of conferences are not so rigorous and our papers might be reviewed by specialists, but not necessarily in our field, which will lead them to observe other aspects, like scientific methodology, text quality, structure and some logic in our words. The formula of a good conference is&amp;nbsp; = tradition (several years) + strong reputation (stars in the program committee and hosted by renowned institutions) + blind reviewing process + strong sponsors (i.e. &lt;a href="http://www.acm.org/"&gt;ACM&lt;/a&gt;, &lt;a href="http://www.ieee.org/index.html"&gt;IEEE&lt;/a&gt;) + no submission extensions (important dates are like mountains: they don't move).&lt;br /&gt;
&lt;br /&gt;
In general, a paper has the same structure of how research is conducted. However, we don't have to write this exactly sequence neither use them as our section's titles. You can be original, but please, preserve the essence. This structure is as follows:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Abstract&lt;/b&gt;: Considering our incredible summarization power, we have to write a few lines about the paper's contribution in order to convince the reader to consider the work. People who are looking for references for their state of the art definitively appreciate well written abstracts.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Introduction&lt;/b&gt;: We introduce the document explaining the context where the research is inserted, which problem of this context the work is going to explore, a summary of the solution and the consequences of solving the problem, concluding with a reading map of the rest of the document. The introduction does not give details about the research, but it should invite the reader to continue through the rest of the content.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;State of the art&lt;/b&gt;: Depending on the maximum size of the document, the introduction can also  contain the state of the art in case of small papers (up to 6 pages),  but it is so boring to read that it's better to put it in a separate  section, giving the option to the reader to jump it. But only when we have more space to write (over 6 pages). The state of  the art describes recent advances that have been developed elsewhere. These advances are cited to a) justify our decisions; b) show a gap that our work is going to fulfill, or c) show a similar work with a different approach to solve the same problem we are exploring. The content of our work is supposed to be new, built on top of the state of the art and the rest of the paper is to prove that. It's important to mention that some authors prefer to write the state of the art after the contributions, but it is just a style of writing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Contribution details&lt;/b&gt;: The most important part of the paper is where we describe the work we have done so far, and it should contain something new over the presented state of the art. This new "thing" should be described into details in order to allow reviewers to fairly evaluate our work, and give us a constructive feedback. The more distinguished is our contribution from the state of the art the more chances we have to get our paper accepted. That's why it is called contribution. Contribution to the science.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Validation&lt;/b&gt;: Ok, we have done a nice contribution, described it into details already, but how can we prove that it is actually realistic and useful? So, we have to describe how we could validate our research, showing the procedures, the execution and the results. Validation might be the hardest part in a research because the contribution is just an idea and the validation is the implementation of this idea. The same way we cannot trust a software that was not tested, we cannot trust a research that was not validated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Discussion of Results&lt;/b&gt;: The results obtained during the validation deserves additional attention. We can use them to compare with other papers' results, analyze possible implications and so on.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Conclusion&lt;/b&gt;: Some people make a summary of the whole paper in the conclusion, but we have to summarize only our contributions, validation and obtained results. Introductory discussions and state of the art are irrelevant here. The conclusion also considers future works, which is actually what we didn't have time to do, and probably will never have. Who knows? But at least, reviewers will not complain about those future works because they are out of scope.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Depending on the reader profile they will read our paper in different ways. Of course, we will be the first to read 100% of our paper, maybe many times, and the last one too. Nobody else would be so patient to do such a thing. The reviewers don't have time to lose because they have 10 more papers to read, besides other several duties. So, after the abstract, they will jump to the conclusion, see the contributions, go through the results, and finally write the review. Conference's attendees will read only the abstract. After being published, only young researchers and people out of the research community will read the paper's introduction. For experienced researchers, our abstract should be enough because they know too much about the field and they don't have time for bla, bla, bla. In summary, each part of our paper has a particular audience and we should consider them in the writing process. The only exception are journals and renowned conference reviewers, who will read 100% of the paper like we did, and that's all.&lt;br /&gt;
&lt;br /&gt;
To be honest, I don't like to write papers, but sometimes we have to do what we don't like to get what we want. During the PhD, publishing a certain number of papers is mandatory. The better is the journal or conference, the easier will be the PhD defense, because the jury is aware that they don't have to be so rigorous if other researchers in the academic world already have. After getting the PhD, the number of references to our work becomes more relevant (other papers referencing our paper in the state of the art) than the number of publications we have. Seeing these as indicators, the number of publications shows our research activity and the number of references shows the relevance of our work.&lt;br /&gt;
&lt;br /&gt;
Besides that, I also have problems to conciliate formal language, readability and deadlines. That's why I love so much my blog, a place where I can express myself through my soul.&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-6954794197259248628?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/FhdJeJcaIws" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/6954794197259248628/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/07/writing-scientific-papers.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6954794197259248628?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6954794197259248628?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/FhdJeJcaIws/writing-scientific-papers.html" title="Writing Scientific Papers" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_GRRHKr2Yk6M/TEGIbGe-QuI/AAAAAAAABzI/5dEMd-ULILo/s72-c/DSC01807.JPG" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/07/writing-scientific-papers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MDRXg4eip7ImA9WxFbEUg.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-4392854773045907284</id><published>2010-07-02T20:02:00.003+02:00</published><updated>2010-07-03T12:04:34.632+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-03T12:04:34.632+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sport" /><title>That's All for Brazil in The World Cup 2010</title><content type="html">Well, the Brazilian team is out, ironically at the quarter-finals, which is the same stage that it left the World Cup in 2006. &lt;a href="http://en.wikipedia.org/wiki/Dunga"&gt;Dunga&lt;/a&gt;, the current manager, did everything to change the culture of arrogance of Brazilian players and intrusion of the rigorous Brazilian press, specially &lt;a href="http://www.globo.com"&gt;TV Globo&lt;/a&gt;. He could change the behavior of the players, fought against the press, but he could not deal with the immaturity of some players, who were too much confident about the victory and lost their minds in the second half.&lt;br /&gt;
&lt;br /&gt;
Now, Dunga will be over attacked by the press, by angry fans and by himself, maybe for not understanding well what was wrong during the preparation of the team. To give you an idea of the press criticism, the website of the main critic, TV Globo, is out of service since the end of the match until now (3 hours later), while several other Brazilian websites are running normally. It's probably due to the curiosity of visitors to know the next round of this fight (Globo vs. Dunga).&lt;br /&gt;
&lt;br /&gt;
At least, none of the remaining competitors won the World Cup 4 times (Italy did it but it was already eliminated), which lets us still with a relatively good distance as 5 times World Cup winners for 4 more years.&lt;br /&gt;
&lt;br /&gt;
Losing this time does not mean that we will win next time at home, despite being already classified for hosting the next edition. By the way, every time that Brazil goes well in the World Cup qualifiers it goes terribly in the World Cup. It was like that with Zagallo in 1998, Parreira in 2006 and Dunga in 2010. When Brazil was terrible in the qualifiers it prospered, like in 1994 with Parreira and 2002 with Felipão. Now, what could happen without any qualifiers at all?&lt;br /&gt;
&lt;br /&gt;
In fact, there is a lot of hard work to do. Now, that Dunga is out, it's time to chose a new manager and this manager will be the most pressured manager ever, since Brazil will host the next World Cup. I know one person that can resist to such a huge pressure: &lt;a href="http://en.wikipedia.org/wiki/Luiz_Felipe_Scolari"&gt;Luiz Felipe Scolari&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-4392854773045907284?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/4IMmHgy4aV8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/4392854773045907284/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/07/thats-all-for-brazil-in-world-cup-2010.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/4392854773045907284?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/4392854773045907284?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/4IMmHgy4aV8/thats-all-for-brazil-in-world-cup-2010.html" title="That's All for Brazil in The World Cup 2010" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/07/thats-all-for-brazil-in-world-cup-2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFSHw9eip7ImA9WxFbEUQ.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-4984427681133099286</id><published>2010-06-13T13:44:00.005+02:00</published><updated>2010-07-03T23:43:39.262+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-03T23:43:39.262+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sport" /><title>The Brazilian Press Desperate for Bad News</title><content type="html">It must be too hard to be the number one. The Brazilian National Soccer Team is currently on the top of the FIFA's world ranking, closely followed by the Spanish team, and this position brings a lot of pressure to win this World Cup Edition. They won the last international competitions (Confederations Cup, America Cup, and first position in South America World Cup qualifiers), starring great and, sometimes, heroic matches, combined with the natural joy that comes with the Brazilian style of playing. So, it is not a surprise to be considered the favorite by 40% of 30 thousand people in a survey made all over the world.&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/_GRRHKr2Yk6M/TBTi-8dxquI/AAAAAAAABpQ/o_fw5QaWsuU/s1600/selecao-brasileira.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_GRRHKr2Yk6M/TBTi-8dxquI/AAAAAAAABpQ/o_fw5QaWsuU/s320/selecao-brasileira.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
But a lot of success brings a lot of negativity. The Brazilian press has been extremely critic about the team, and they obviously get frustrated when Brazil wins. In the great final of the Confederations Cup, for example, Brazil won USA by 3 x 2, but the fact that USA made two goals in the first half (but Brazil turned the match, making 3 during the second half) was enough to the press start criticizing the defensive system. Nowadays, they don't like the player selection made by Dunga, the coach. Dunga's criteria were simple: the player should:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;honor the Brazilian team uniform;&lt;/li&gt;
&lt;li&gt;be part of the team as an individual, not an individual in the team;&lt;/li&gt;
&lt;li&gt;be simple, fine with absence of luxury;&lt;/li&gt;
&lt;li&gt;be humble, accepting decisions of the coach; and&lt;/li&gt;
&lt;li&gt;be disciplined and master his tactical position in the team.&lt;/li&gt;
&lt;/ol&gt;It ended up with a team without stars like Ronaldinho, Ronaldo and Pato; young promises like Ganso and Neimar; and undisciplined players like Adriano and Vagner Love. Actually, Ronaldinho&amp;nbsp; never was convincing when playing for the national team, always criticized, but now journalists want him, why? Ronaldo is fat, already stated as not prepared for the competition, but some still have said that he deserves being in the squad. Come on! Ganso and Neimar are doing very very well in national competitions, but, strangely, Santos is not wining recent matches. Are they unmotivated now? How can we deal with such immaturity?&lt;br /&gt;
&lt;br /&gt;
Luis Fabiano is one of the main scorers, besides Robinho, but journalists are saying that he is having a goal drought because he didn't score in the last two matches. Come on! The last two matches were against Zimbabwe and Tanzania during the preparation phase where players were scared to get hurt before their first world cup match. The press is forcing an individualistic behavior, emphasizing individual achievements, but the coach was clear since the beginning, that they are a team and they will behave like a team. The international press is less pragmatic, maybe more realistic, perhaps. New York Times stated: "&lt;i&gt;Brazil has what one former World Cup player called "a luxury problem" - too many supremely talented players and not enough room to include them all on a team sheet.&lt;/i&gt;".&lt;br /&gt;
&lt;br /&gt;
I'm optimistic, I support 100% the Brazilian Squad and I can't wait for this Tuesday match against North Korea. The players will finally have a chance to stop or at least minimize those critics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-4984427681133099286?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/CK9l4bG2ICE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/4984427681133099286/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/06/brazilian-press-desperated-for-bad-news.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/4984427681133099286?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/4984427681133099286?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/CK9l4bG2ICE/brazilian-press-desperated-for-bad-news.html" title="The Brazilian Press Desperate for Bad News" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_GRRHKr2Yk6M/TBTi-8dxquI/AAAAAAAABpQ/o_fw5QaWsuU/s72-c/selecao-brasileira.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/06/brazilian-press-desperated-for-bad-news.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YMQHc7fip7ImA9WxFVEU0.&quot;"><id>tag:blogger.com,1999:blog-1281882577011517327.post-6088587169186382724</id><published>2010-06-09T18:25:00.001+02:00</published><updated>2010-06-09T18:33:01.906+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-09T18:33:01.906+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javafx" /><category scheme="http://www.blogger.com/atom/ns#" term="user interface" /><title>The Everlasting Presentation Language of the Future</title><content type="html">Let's consider that you have to create a website with a dynamic presentation and you own a technology specially made for this purpose. Strangely, you do not use your own technology to make the presentation, but the technology offered by a competitor. Is it a recognition that your own technology sucks? Is there any other explanation?&lt;br /&gt;
&lt;br /&gt;
Fact: following a link shared by a friend, I've reached an Oracle/Sun University &lt;a href="http://content.yudu.com/A1h149/BRTG/resources/index.htm?referrerUrl="&gt;sub-site&lt;/a&gt; that gives detailed information about the new Java Certification Program. This website was made 100% in Flash, an Adobe's technology. You may know that Oracle/Sun created a technology called &lt;a href="http://javafx.com/"&gt;JavaFx&lt;/a&gt; to compete directly with Adobe Flex and Microsoft Silverlight on the rich client market. So, why don't they use JavaFx instead?&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/_GRRHKr2Yk6M/TA_AIO50eaI/AAAAAAAABoE/Ar-q1wbLjJo/s1600/oracle-flash.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="205" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/TA_AIO50eaI/AAAAAAAABoE/Ar-q1wbLjJo/s320/oracle-flash.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Making a gross comparison, Oracle's choice for Flash is like Steve Jobs, Apple's CEO, using Power Point instead of Keynote to prepare his great presentations. Or Steve Ballmer, Microsoft's CEO, using MacOS instead of Windows (&lt;a href="http://www.hildeberto.com/2008/04/funny-error-using-windows-xp.html"&gt;It's possible by the way&lt;/a&gt; :D ). Can you imagine Nokia's CEO using an iPhone? Google employees using Bing? No. But you can see JavaFx's owner using Flash. It is indeed a great recognition for Adobe, which was endorsed by a competitor as the best technology to present their products.&lt;br /&gt;
&lt;br /&gt;
How would the JavaFx development community, who embraced the technology, feel? If the owner doesn't fully embrace it, why would they do it? Maybe I'm not exploring the web enough, but I haven't seen any website using JavaFx so far (I mean, &lt;a href="http://www.hildeberto.com/2009/12/finally-javafx-application-in.html"&gt;without Sun's sponsorship&lt;/a&gt;). I don't know where the developers of the JavaFx technology can find motivation to keep working on its evolution. It has become a playground thing that people use to create demos and silly games.&lt;br /&gt;
&lt;br /&gt;
Taking into consideration all benefits that HTML5 will bring in a near future, who will still consider the adoption of JavaFx in a long term perspective? This is probably the everlasting presentation language of the future. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1281882577011517327-6088587169186382724?l=www.hildeberto.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/HildebertosBlog/~4/HvLDE6OPPR8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.hildeberto.com/feeds/6088587169186382724/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.hildeberto.com/2010/06/everlasting-presentation-language-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6088587169186382724?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1281882577011517327/posts/default/6088587169186382724?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HildebertosBlog/~3/HvLDE6OPPR8/everlasting-presentation-language-of.html" title="The Everlasting Presentation Language of the Future" /><author><name>Hildeberto Mendonça</name><uri>http://www.blogger.com/profile/00241544229335976181</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://2.bp.blogspot.com/_GRRHKr2Yk6M/S8wdoE8TK6I/AAAAAAAABhI/v7Bl4Ud3QMk/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_GRRHKr2Yk6M/TA_AIO50eaI/AAAAAAAABoE/Ar-q1wbLjJo/s72-c/oracle-flash.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.hildeberto.com/2010/06/everlasting-presentation-language-of.html</feedburner:origLink></entry></feed>

