<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-116339063138100750</id><updated>2012-02-16T21:09:33.617-02:00</updated><category term='DICOM'/><category term='postgresql'/><category term='testes'/><category term='autor'/><category term='svnkit'/><category term='junit'/><category term='selenium'/><category term='pacs'/><category term='propósito'/><category term='JProfiler'/><category term='internship'/><category term='Test Party'/><category term='Testing Day'/><category term='paparazzi'/><category term='foto'/><category term='valorizar pessoas'/><category term='CBIS'/><category term='chaos report'/><category term='taquara'/><category term='vídeo'/><category term='on-site costumer'/><category term='windows'/><category term='tv'/><category term='eclipse'/><category term='autonomia'/><category term='Equipe'/><category term='ebh'/><category term='artigo'/><category term='xp'/><category term='sucesso'/><category term='agil'/><category term='treinamento'/><category term='linux'/><category term='eh'/><category term='domínio'/><category term='JBoss'/><category term='Retinografia'/><category term='Le BigoDay'/><category term='java'/><category term='QA'/><category term='engenharia'/><category term='Agile Brazil'/><category term='gka'/><category term='tutorial'/><category term='versao'/><category term='cliente presente'/><category term='retrospectiva'/><category term='certificação'/><category term='webdriver'/><category term='integração continua'/><category term='animação'/><category term='position'/><category term='Ecocardiografia'/><category term='teste'/><category term='dcm4chee'/><category term='Grupo de Discussão'/><category term='instalação'/><category term='segurança'/><category term='whole team'/><category term='Congresso'/><category term='saúde'/><category term='post-it'/><category term='Mustache'/><category term='esporte'/><category term='visitor'/><category term='campus'/><category term='facool'/><title type='text'>Desenvolvimento ELSA</title><subtitle type='html'>Blog da Equipe de Desenvolvimento ELSA Brasil</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Luciano Witt</name><uri>http://www.blogger.com/profile/10198167119172333448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-4610459385247362116</id><published>2011-12-28T12:09:00.002-02:00</published><updated>2011-12-28T12:23:04.678-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mustache'/><category scheme='http://www.blogger.com/atom/ns#' term='Le BigoDay'/><category scheme='http://www.blogger.com/atom/ns#' term='Equipe'/><title type='text'>Le BigoDay</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://2.bp.blogspot.com/-NcKSsq44b5o/TvskKv56ZTI/AAAAAAAAAPk/FcRGQe03o6o/s1600/Le%2BBigoDay.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5691182321189414194" src="http://2.bp.blogspot.com/-NcKSsq44b5o/TvskKv56ZTI/AAAAAAAAAPk/FcRGQe03o6o/s320/Le%2BBigoDay.jpg" style="cursor: hand; cursor: pointer; display: block; height: 240px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; line-height: 150%;"&gt;Dia do Bigode, Bigoday ou Mustache Day, são vários nomes para apresentar um movimento que dizem ter iniciado nos Estados Unidos após uma mobilização de alguns barbeiros pelo Mustache Day, este evento chegou ao Brasil por meio de publicitários, e é claro, que pessoas criativas e irreverentes como nós não podíamos ficar de fora.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 150%; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;No dia 19 de dezembro de 2011 aconteceu Le BigoDay Equipe de Desenvolvimento ELSA, sem medo de ser feliz, todos puderam participar do evento inclusive as meninas. Para registrar a data a Equipe dos Bigodões se reuniu em uma Comemoração de Fim de Ano no Instituto de Psicologia da UFRGS e fotografou esse encontro.&lt;/span&gt;&lt;span style="font-family: Arial, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-4610459385247362116?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/4610459385247362116/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/12/le-bigoday.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/4610459385247362116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/4610459385247362116'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/12/le-bigoday.html' title='Le BigoDay'/><author><name>Amanda Silveira</name><uri>http://www.blogger.com/profile/09844511520520043125</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/-V9ptZJgqKHU/Tqrd_53iRXI/AAAAAAAAAOk/r4yM1pdjc8s/s220/Foto%2B1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-NcKSsq44b5o/TvskKv56ZTI/AAAAAAAAAPk/FcRGQe03o6o/s72-c/Le%2BBigoDay.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-7145421165304245823</id><published>2011-11-22T14:00:00.000-02:00</published><updated>2011-11-25T10:39:07.410-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='esporte'/><category scheme='http://www.blogger.com/atom/ns#' term='tv'/><category scheme='http://www.blogger.com/atom/ns#' term='saúde'/><title type='text'>Atletas ELSA</title><content type='html'>Fazendo parte de um estudo sobre saúde, estamos em continua preocupação com o bem-estar próprio. O esporte, então, acaba sendo uma das melhores opções para o &lt;i&gt;mens sana in corpore sano&lt;/i&gt;. Alguns membros da equipe levam isso muito a sério e são também atletas. Dois deles foram documentados pelo RBS Esporte, em momentos distintos.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tiago&lt;/b&gt;, o dançarino:&lt;br /&gt;&lt;object id="playerFlash" width="400" height="376" type="application/x-shockwave-flash" data="http://mediacenter.clicrbs.com.br/skins/default/swf/playerChannel.swf?mediaXML=http://mediacenter.clicrbs.com.br/templates/RequestUrlEmbed.aspx;contentId=46999///channel=45&amp;color=0x7684B3&amp;autoStart=false&amp;thumb=http://mediacenter.clicrbs.com.br/medias/IMAGES/616283.jpg&amp;channelLink=http://mediacenter.clicrbs.com.br/templates/home.aspx?channel=44&amp;channelImage=http://mediacenter.clicrbs.com.br/includes/topo_RBSTV_RS.gif&amp;channelColor=0xDDDFE2"&gt;&lt;param name="movie" value="http://mediacenter.clicrbs.com.br/skins/default/swf/playerChannel.swf?mediaXML=http://mediacenter.clicrbs.com.br/templates/RequestUrlEmbed.aspx;contentId=46999///channel=45&amp;color=0x7684B3&amp;autoStart=false&amp;thumb=http://mediacenter.clicrbs.com.br/medias/IMAGES/616283.jpg&amp;channelLink=http://mediacenter.clicrbs.com.br/templates/home.aspx?channel=44&amp;channelImage=http://mediacenter.clicrbs.com.br/includes/topo_RBSTV_RS.gif&amp;channelColor=0xDDDFE2"/&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="quality" value="high" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Gabriel&lt;/b&gt;, o "Runner" (a partir de 13:40): &lt;br /&gt;&lt;object data="http://mediacenter.clicrbs.com.br/skins/default/swf/playerChannel.swf?mediaXML=http://mediacenter.clicrbs.com.br/templates/RequestUrlEmbed.aspx;contentId=168712///channel=45&amp;amp;color=0x7684B3&amp;amp;autoStart=false&amp;amp;thumb=http://mediacenter.clicrbs.com.br/medias/IMAGES/1365382.jpg&amp;amp;channelLink=http://mediacenter.clicrbs.com.br/templates/home.aspx?channel=44&amp;amp;channelImage=http://mediacenter.clicrbs.com.br/includes/topo_RBSTV_RS.gif&amp;amp;channelColor=0xDDDFE2" height="376" id="playerFlash" type="application/x-shockwave-flash" width="400"&gt;&lt;param name="movie" value="http://mediacenter.clicrbs.com.br/skins/default/swf/playerChannel.swf?mediaXML=http://mediacenter.clicrbs.com.br/templates/RequestUrlEmbed.aspx;contentId=168712///channel=45&amp;color=0x7684B3&amp;autoStart=false&amp;thumb=http://mediacenter.clicrbs.com.br/medias/IMAGES/1365382.jpg&amp;channelLink=http://mediacenter.clicrbs.com.br/templates/home.aspx?channel=44&amp;channelImage=http://mediacenter.clicrbs.com.br/includes/topo_RBSTV_RS.gif&amp;channelColor=0xDDDFE2"/&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="quality" value="high" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-7145421165304245823?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/7145421165304245823/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/11/atletas-elsa.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7145421165304245823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7145421165304245823'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/11/atletas-elsa.html' title='Atletas ELSA'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-7999428280838282649</id><published>2011-11-04T11:27:00.000-02:00</published><updated>2011-11-04T11:27:40.957-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webdriver'/><category scheme='http://www.blogger.com/atom/ns#' term='selenium'/><category scheme='http://www.blogger.com/atom/ns#' term='testes'/><title type='text'>Testes com Selenium WebDriver</title><content type='html'>&lt;br /&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;O&amp;nbsp;&lt;a href="http://code.google.com/p/selenium/"&gt;&lt;span style="color: blue;"&gt;Selenium WebDriver&lt;/span&gt;&lt;/a&gt;&amp;nbsp;éa união de duas ferramentas e visa facilitar a criação de testes automatizadospara interfaces de aplicações web. A intenção das novas versões do Selenium (apartir da 2.0) é focar no desenvolvedor para que ele gere também os códigos dostestes. Neste post vamos explicar em alguns passos como começar a fazer seuspróprios testes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;No nosso exemplo vamos utilizar comolinguagem de programação o Java e como ambiente de desenvolvimento o&amp;nbsp;&lt;a href="http://www.eclipse.org/"&gt;&lt;span style="color: blue;"&gt;Eclipse&lt;/span&gt;&lt;/a&gt;. Para executar os testes utilizaremos o&amp;nbsp;&lt;a href="http://pt.wikipedia.org/wiki/JUnit"&gt;&lt;span style="color: blue;"&gt;JUnit&lt;/span&gt;&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;O primeiro passo é adicionar os JARspara que consigamos utilizar o WebDriver. Para fazer o download da últimaversão vá até&amp;nbsp;&lt;a href="http://code.google.com/p/selenium/downloads/list"&gt;&lt;span style="color: blue;"&gt;http://code.google.com/p/selenium/downloads/list&lt;/span&gt;&lt;/a&gt;. Descompacte o arquivo e adicione os JARs ao seuprojeto no Eclipse clicando com o botão direito do mouse em cima da raiz do seuprojeto e depois em "Properties".&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-sR-MdAJikpM/TrPVClXxfXI/AAAAAAAAAtU/v2af-5CYGvI/s1600/eclipse_properties.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/-sR-MdAJikpM/TrPVClXxfXI/AAAAAAAAAtU/v2af-5CYGvI/s640/eclipse_properties.png" width="337" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;No menu esquerdo clique em "JavaBuild Path", selecione a aba "Libraries" e clique em "AddExternal JARs...". Navegue até a pasta onde estão os arquivos que você fezdownload, selecione todos e clique em "Abrir". Depois clique em "OK".Pronto, você já pode começar a gerar seus códigos de testes!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-F5F6LImiJBY/TrPVX1bYDWI/AAAAAAAAAtg/G6za0NiH56g/s1600/add_jar.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://4.bp.blogspot.com/-F5F6LImiJBY/TrPVX1bYDWI/AAAAAAAAAtg/G6za0NiH56g/s400/add_jar.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;A partir de agora começaremos o nossoteste. Neste exemplo vamos mostrar passo a passo como criamos um teste paraverificar a interface de autenticação do nosso sistema.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="code brush: java;"&gt;public class LoginTest {&lt;br /&gt; &lt;br /&gt; @Test&lt;br /&gt; public void loginTest() {&lt;br /&gt;  WebDriver driver = new FirefoxDriver();&lt;br /&gt;  driver.get("localhost:8080/elsa/login");&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Inicialmentenosso teste não verifica nada, apesar de ficar com a barra verde ele apenasabre uma janela do Firefox com o endereço do nosso servidor de testes.Roubamos... mas precisamos partir de algum lugar!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Apósverificar que a janela do navegador abriu corretamente a tela de autenticação dosistema vamos tentar realizar a autenticação.&lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="code brush: java;"&gt;public class LoginTest {&lt;br /&gt; &lt;br /&gt; @Test&lt;br /&gt; public void loginTest() {&lt;br /&gt;  WebDriver driver = new FirefoxDriver();&lt;br /&gt;  &lt;br /&gt;  driver.get("localhost:8080/elsa/login");&lt;br /&gt;  &lt;br /&gt;  driver.findElement(By.id("username")).sendKeys("usuario");&lt;br /&gt;  driver.findElement(By.id("password")).sendKeys("senha");&lt;br /&gt;  driver.findElement(By.id("loginButton")).click();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Como &lt;i&gt;WebDriver&lt;/i&gt; buscamos pelos elementosexibidos na tela através dos seus identificadores e inserimos os valoresdesejados para usuário e senha. Além de buscar pelos elementos da página porseus &lt;i&gt;id’s&lt;/i&gt; também é possível buscarpelo nome da &lt;i&gt;tag&lt;/i&gt;, do &lt;i&gt;name&lt;/i&gt;, do &lt;i&gt;link&lt;/i&gt; e até mesmo do estilo CSS aplicado ao elemento.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Apartir daqui nos damos conta que em qualquer teste do nosso sistema teremos quepassar pela tela de login, então podemos utilizar o padrão chamado de PageObjects. Para tanto, criamos uma classe chamada LoginPage que inicialmente teráum método que fará login no sistema.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="code brush: java;"&gt;public class LoginPage {&lt;br /&gt; &lt;br /&gt; public void login(WebDriver driver){&lt;br /&gt;  driver.findElement(By.id("username")).sendKeys("usuario");&lt;br /&gt;  driver.findElement(By.id("password")).sendKeys("senha");&lt;br /&gt;  driver.findElement(By.id("loginButton")).click();&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Eagora sim podemos realizar nosso teste, na classe LoginTest.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="code brush: java;"&gt;public class LoginTest {&lt;br /&gt; &lt;br /&gt; public LoginPage loginPage;&lt;br /&gt; public WebDriver driver;&lt;br /&gt; &lt;br /&gt; @Before&lt;br /&gt; public void setup() {&lt;br /&gt;  loginPage = new LoginPage();&lt;br /&gt;  &lt;br /&gt;  driver = new FirefoxDriver();&lt;br /&gt;  driver.get("localhost:8080/elsa/login");&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; @Test&lt;br /&gt; public void loginTest() {&lt;br /&gt;  loginPage.login(driver);&lt;br /&gt;  &lt;br /&gt;  String welcomeMessage = driver.findElement(&lt;br /&gt;    By.xpath("/html/body/div/div[4]/div/ul/li/span")).getText();&lt;br /&gt;&lt;br /&gt;  assertEquals("Bem vindo ao Prontuário Eletrônico Online do ELSA.",&lt;br /&gt;    welcomeMessage);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Aqui já passamos a instanciarLoginPage e o WebDriver no método &lt;i&gt;setup&lt;/i&gt;que está anotado com &lt;i&gt;@Before&lt;/i&gt; e, destaforma, é executado sempre antes de cada método anotado com &lt;i&gt;@Test&lt;/i&gt;. Além disso, buscamos o valor da mensagem de boas vindasatravés do método &lt;i&gt;findElement&lt;/i&gt; eutilizamos como parâmetro a busca de um elemento presente na página pelo &lt;i&gt;xpath&lt;/i&gt; correspondente. Finalmente,fizemos uma asserção para garantir que a mensagem que aparece é a esperada.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Agora que nosso teste estápronto executamos esperando a barra verde que instantaneamente fica vermelha,informando que o nosso teste falhou. Aqui vale uma breve explicação. Comoestamos trabalhando com ambiente web, devemos saber que nem sempre a resposta éimediata para as requisições feitas para os servidores onde estão asaplicações. Então o melhor a ser feito para contornarmos o problema éimplementarmos uma condição esperada de parada com um &lt;i&gt;timeout&lt;/i&gt;, desta maneira o teste pode ser executado com mais confiabilidade.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;Para tanto, será necessáriosfazer algumas mudanças no método &lt;i&gt;loginTest&lt;/i&gt;.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="code brush: java;"&gt;@Test&lt;br /&gt;public void loginTest() {&lt;br /&gt; loginPage.login(driver);&lt;br /&gt;  &lt;br /&gt; ExpectedCondition&amp;lt;boolean&amp;gt; expectedCondition = new ExpectedCondition&amp;lt;boolean&amp;gt;() {&lt;br /&gt;  public Boolean apply(WebDriver webDriver) {&lt;br /&gt;   webDriver.findElement(By.xpath("/html/body/div/div[4]/div/ul/li/span"));&lt;br /&gt;   return true;&lt;br /&gt;  }&lt;br /&gt; };&lt;br /&gt;&lt;br /&gt; Wait&amp;lt;webdriver&amp;gt; wait = new WebDriverWait(driver, 15);&lt;br /&gt; wait.until(expectedCondition);&lt;br /&gt;  &lt;br /&gt; String welcomeMessage = driver.findElement(&lt;br /&gt;    By.xpath("/html/body/div/div[4]/div/ul/li/span")).getText();&lt;br /&gt;&lt;br /&gt; assertEquals("Bem vindo ao Prontuário Eletrônico Online do ELSA.",&lt;br /&gt;    welcomeMessage);&lt;br /&gt;}&lt;/pre&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;Agorasim, nosso teste é executado e temos a barra verde!&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Basicamenteimplementamos a condição de parada esperada que, neste caso, é o surgimento daprópria mensagem de boas vindas do sistema. Depois, instanciamos o &lt;i&gt;wait&lt;/i&gt; com o nosso &lt;i&gt;driver&lt;/i&gt; e um &lt;i&gt;timeout&lt;/i&gt; de 15segundos e esperamos que a condição seja satisfeita por no máximo 15 segundos,caso contrário o teste falhará.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Claroque o exemplo depende das credenciais utilizadas para realizar o login e apenasele não garante que a tela de login do nosso sistema está funcionando. Comoteste complementar podemos acessar o sistema com uma senha errada e fazer umaasserção em cima da mensagem de falha de login.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 8.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-7999428280838282649?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/7999428280838282649/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/11/testes-com-selenium-webdriver.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7999428280838282649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7999428280838282649'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/11/testes-com-selenium-webdriver.html' title='Testes com Selenium WebDriver'/><author><name>Bruno Fritzen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-sR-MdAJikpM/TrPVClXxfXI/AAAAAAAAAtU/v2af-5CYGvI/s72-c/eclipse_properties.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-5802241620387414867</id><published>2011-11-01T16:34:00.000-02:00</published><updated>2011-11-01T16:35:22.937-02:00</updated><title type='text'>PrimeFaces autoComplete weird behavior</title><content type='html'>&lt;p&gt;A few weeks ago, while changing the behavior of an auto-complete field we have in our system, I came across a very weird bug. The field was supposed to suggest a list of Technicians, based on the name the user typed.&lt;/p&gt;&lt;p&gt;I was asked to have it accept not only the name of the Technician but also their ids.&lt;/p&gt;&lt;p&gt;To make the long story short: we are using a &lt;a href="http://www.primefaces.org/showcase/ui/autocompleteHome.jsf"&gt;PrimeFaces AutoComplete&lt;/a&gt; component with the &lt;i&gt;forceSelection&lt;/i&gt; flag set to true.The problem was that even tough the user did not selected any of the suggestions on the list, the value he typed was still being submitted to the form.&lt;/p&gt;&lt;p&gt;At first this was not a problem, because our &lt;a href="http://download.oracle.com/javaee/5/api/javax/faces/convert/Converter.html"&gt;Converter&lt;/a&gt; is using the Technician id, and when searching for a name, there was no match. But when the search includes the id, undesired thing happens, &lt;i&gt;i.e.&lt;/i&gt; the field which as supposed to be empty, was filled with the Technician's information whose id the user typed.&lt;/p&gt;&lt;p&gt;With the help of &lt;a href="https://addons.mozilla.org/pt-br/firefox/addon/firebug/"&gt;Firebug&lt;/a&gt;, I found out that the hidden input &lt;a href="http://www.primefaces.org/"&gt;Primefaces&lt;/a&gt; uses to implement the auto-completion, was not being cleaned when none of the suggestions was picked, thus, submitting a value the user didn't know was there.&lt;/p&gt;&lt;p&gt;To solve the problem, I hacked into &lt;a href="http://www.primefaces.org/"&gt;Primefaces&lt;/a&gt;'s jar, and, after formatting the autocomplete.js with the help of my friend &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;, I found this line:&lt;/p&gt;&lt;pre class="code brush: html;"&gt;jQuery(this).val("");&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;On a lucky/educated guess, I added the following line below that one:&lt;/p&gt;&lt;pre class="code brush: html;"&gt;jQuery(a.jqh).val("");&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;After repacking the jar, the problem was gone. I am not sure if this is a bug or the correct behavior, but it happened in &lt;a href="http://www.primefaces.org/"&gt;Primefaces&lt;/a&gt; version 2.2.1.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-5802241620387414867?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/5802241620387414867/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/11/primefaces-autocomplete-weird-behavior.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/5802241620387414867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/5802241620387414867'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/11/primefaces-autocomplete-weird-behavior.html' title='PrimeFaces autoComplete weird behavior'/><author><name>Matheus Abegg</name><uri>http://www.blogger.com/profile/12532808602195590461</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-1565129099075596677</id><published>2011-09-22T18:29:00.000-03:00</published><updated>2011-09-22T18:35:19.251-03:00</updated><title type='text'>Presentation Layer Validation: Bean Validation Within JSF 2.0</title><content type='html'>This week, at Elsa Development, we’ve been implementing some customized validators using &lt;a href="http://download.oracle.com/javaee/6/tutorial/doc/gircz.html"&gt;Bean Validation API&lt;/a&gt;. Everything was going fine, until the shadows of &lt;a href="http://en.wikipedia.org/wiki/Murphy%27s_law"&gt;Murphy&lt;/a&gt; appear. OK, putting aside the drama, a few validators have been implemented successfully, passing all tests, all of them but one...&lt;p&gt;&lt;b&gt;The Problem&lt;/b&gt;&lt;/p&gt;Two constraints were created and for each one, a validator was implemented (which executes the validation logic). Both constraints were used at &lt;a href="http://docs.jboss.org/hibernate/validator/4.2/reference/en-US/html_single/#d0e281"&gt;field-level&lt;/a&gt; on JPA entities, the Username and FloatRange constraints were annotated on fields of type string and float, respectively. However, just the Username constraint worked.. Hereunder you can take a look at the implemented code, or part of it :)&lt;p&gt;&lt;pre class="code brush: html;"&gt;@Documented&lt;br /&gt;@Retention(RetentionPolicy.RUNTIME)&lt;br /&gt;@Constraint(validatedBy = UsernameValidator.class)&lt;br /&gt;@Target({&lt;br /&gt;    ElementType.METHOD,&lt;br /&gt;    ElementType.FIELD,&lt;br /&gt;    ElementType.ANNOTATION_TYPE&lt;br /&gt;})&lt;br /&gt;public @interface Username {&lt;br /&gt;    String message() default "{constraint.username.invalid}";&lt;br /&gt;    Class&amp;lt;? extends Payload&amp;gt;[] payload() default {};&lt;br /&gt;    Class&amp;lt;?&amp;gt;[] groups() default {};&lt;br /&gt;}&lt;/pre&gt;&lt;center&gt;&lt;b&gt;Code 1.&lt;/b&gt; The working constraint.&lt;/center&gt;&lt;/p&gt;&lt;p&gt;&lt;pre class="code brush: html;"&gt;public class UsernameValidator&lt;br /&gt;        implements ConstraintValidator&amp;lt;Username, String&amp;gt; {&lt;br /&gt;    @Override&lt;br /&gt;    public void initialize(Username annotation) {}&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public boolean isValid(String value,&lt;br /&gt;            ConstraintValidatorContext context) {&lt;br /&gt;        // validation logic ommited&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;center&gt;&lt;b&gt;Code 2.&lt;/b&gt; The validation for @Username constraint.&lt;/center&gt;&lt;/p&gt;&lt;p&gt;&lt;pre class="code brush: html;"&gt;@Documented&lt;br /&gt;@Retention(RetentionPolicy.RUNTIME)&lt;br /&gt;@Constraint(validatedBy = FloatRangeValidator.class)&lt;br /&gt;@Target({&lt;br /&gt;    ElementType.METHOD,&lt;br /&gt;    ElementType.FIELD,&lt;br /&gt;    ElementType.ANNOTATION_TYPE&lt;br /&gt;})&lt;br /&gt;public @interface FloatRange {&lt;br /&gt;&lt;br /&gt;    String message() default "{constraint.range}";&lt;br /&gt;    Class&amp;lt;? extends Payload&amp;gt;[] payload() default {};&lt;br /&gt;    Class&amp;lt;?&amp;gt;[] groups() default {};&lt;br /&gt;    float min();&lt;br /&gt;    float max();&lt;br /&gt;}&lt;/pre&gt;&lt;center&gt;&lt;b&gt;Code 3.&lt;/b&gt; The “murphyfied” constraint (i.e. did not work).&lt;/center&gt;&lt;/p&gt;&lt;p&gt;&lt;pre class="code brush: html;"&gt;public class FloatRangeValidator&lt;br /&gt;        implements ConstraintValidator&amp;lt;FloatRange, Float&amp;gt; {&lt;br /&gt;    private float min;&lt;br /&gt;    private float max;&lt;br /&gt; &lt;br /&gt;    @Override&lt;br /&gt;    public void initialize(FloatRange annotation) {&lt;br /&gt;        this.min = annotation.min();&lt;br /&gt;        this.max = annotation.max();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public boolean isValid(Float value,&lt;br /&gt;            ConstraintValidatorContext context) {&lt;br /&gt;        // validation logic ommited&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;center&gt;&lt;b&gt;Code 4.&lt;/b&gt; The “murphyfied” constraint.&lt;/center&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Solution&lt;/b&gt;&lt;/p&gt;After a lot of googling and force brute tests... A co worker (Marcelo Yamashita) came with the solution. He tried to use the @FloatRange constraint at &lt;a href="http://docs.jboss.org/hibernate/validator/4.2/reference/en-US/html_single/#d0e301"&gt;property-level&lt;/a&gt;, man... that worked! Then, reading more carefully the Hibernate Validator documentation, more specifically the item 2.1.1. Field-level constraints, i noticed the note that says:&lt;p&gt;&lt;blockquote&gt;&lt;p&gt;Static fields and properties cannot be validated.&lt;/p&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/blockquote&gt;&lt;/p&gt;Well, if i've got it right, by properties it means POJO fields which have getter/setter, or not? If so, then houston, we have a problem... both target annotated fields, belong to JPA entities thus, they have getters and setters! It doesn’t make them properties? Anyway, the workaround rocks, but if you have any idea about the why this happens, please, feel free to share it with the world :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-1565129099075596677?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/1565129099075596677/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/09/presentation-layer-validation-bean_22.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/1565129099075596677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/1565129099075596677'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/09/presentation-layer-validation-bean_22.html' title='Presentation Layer Validation: Bean Validation Within JSF 2.0'/><author><name>Diego Borges</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_eTMeitcXlkk/S40J96ku3eI/AAAAAAAAAO4/Kahtq9wTPzg/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-4593364225847303094</id><published>2011-09-09T14:17:00.000-03:00</published><updated>2011-09-09T14:19:25.942-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='teste'/><category scheme='http://www.blogger.com/atom/ns#' term='Test Party'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing Day'/><title type='text'>Test Party</title><content type='html'>&lt;div style="text-align: justify;"&gt;Inspirados em uma &lt;a href="http://www.qafest.com/?p=7"&gt;Lightening Talk&lt;/a&gt; assistida por alguns membros da equipe, realizamos uma Test Party (ou Testing Day, como também é conhecido). Uma Test Party consiste em um momento onde todos os envolvidos no desenvolvimento (desenvolvedores, QA, "gerência", e P.O.s) realizariam testes no sistema, em busca de possíveis erros, de forma que estes não cheguem à produção. O uso de pontuação e gratificação ao final serviriam como estímulo aos participantes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;No nosso caso, participaram as equipes de desenvolvimento e QA. O objetivo era deixar o sistema mais confiável e aumentar a interação das equipes com o sistema do ponto de vista de usuário e não de desenvolvedor.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-x9hz-qoW0VQ/Tmoh3ll129I/AAAAAAAADnw/T2D5mfEh6pM/s1600/DSC05208.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-x9hz-qoW0VQ/Tmoh3ll129I/AAAAAAAADnw/T2D5mfEh6pM/s1600/DSC05208.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-x9hz-qoW0VQ/Tmoh3ll129I/AAAAAAAADnw/T2D5mfEh6pM/s320/DSC05208.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Os participantes foram organizados em duplas através de sorteio. As regras foram então apresentadas para as duplas:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- O que testar? Deixamos livre a decisão sobre o que cada dupla iria testar, pois o sistema possui diferentes funcionalidades e, portanto,&amp;nbsp; havia a possibilidade de que a intersecção dos erros encontrados fosse pequena.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Como testar? Os testes seriam feitos manualmente, de acordo com um objetivo da dupla (realização de uma tarefa no sistema) ou focados na funcionalidade sendo testada. Casos de teste ou erros encontrados poderiam ter &lt;i&gt;scripts&lt;/i&gt; de reprodução/automatização criados. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Pontuação: 1 ponto para &lt;i&gt;bug&lt;/i&gt; encontrado, 2 pontos para caso de teste automatizado, e 3 pontos para &lt;i&gt;script&lt;/i&gt; que reproduza o &lt;i&gt;bug&lt;/i&gt;. A ferramenta utilizada foi o Selenium IDE (pela facilidade e agilidade no uso).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Gratificação: chocolate para a dupla vencedora.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Juiz: uma analista de QA foi designada como juiza, confirmando se o comportamento encontrado era de fato um erro e atribuindo os pontos para cada dupla.&amp;nbsp; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Todos entraram no clima de competição e cada ponto obtido era comemorado pelas duplas. A dinâmica foi bem recebida pela equipe, que se empenhou em fazer bons testes, com mais probabilidade de encontrar erros.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Algo interessante foi o pouco &lt;i&gt;overlap&lt;/i&gt; que ocorreu entre os &lt;i&gt;bugs&lt;/i&gt; encontrados, pois cada equipe explorou aspectos diferentes do sistema. Até mesmo em áreas exploradas por mais de uma dupla, diferentes &lt;i&gt;bugs&lt;/i&gt; foram encontrados por cada uma. Isso ocorreu não necessariamente pela quantidade de erros naquela região, mas pelo tipo de abordagem de cada dupla.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/-vUImME66yLA/TmpBVuf8EhI/AAAAAAAADn0/VYhRizO_lng/s1600/DSC05209.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-vUImME66yLA/TmpBVuf8EhI/AAAAAAAADn0/VYhRizO_lng/s320/DSC05209.JPG" width="320" /&gt;&lt;/a&gt;Em retrospectiva com as equipes, após a "festa", reflexões sobre os pontos positivos e negativos foram feitas. A técnica ajudou os desenvolvedores a sair da zona de conforto e ter contato com problemas que os usuários enfrentam durante o uso. Mesmo com a reformulação do sistema e a aplicação de boas práticas de desenvolvimento, foi possível ver que somente estas não resolvem todos os problemas, e erros podem "escapar" e chegar ao usuário final. A ideia é que o raciocínio utilizado para encontrar os erros seja aplicado na programação, evitando que se repitam.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Sugestões para as próximas edições incluem:&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Cada dupla ter definidos os seus usuários e os seus participantes específicos para os testes, para não haver conflitos;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- A versão do sistema que será utilizada para os testes deve ser implantada com maior antecedência;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Definir horário de início e fim, ao invés de aguardar que as duplas terminem suas tarefas;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Fazer a "festa" fora do horário de expediente para que todos possam se dedicar sem ficar preocupados com as tarefas que "deveriam estar fazendo". Fazendo fora do expediente também permite um clima mais informal, sem pessoas entrando na sala e estranhando as tiaras coloridas e o "clima de festinha" em pleno expediente.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/-E-eh4yK-KwM/TmpDLbqAvaI/AAAAAAAADn4/ZvXeaFXVcnY/s1600/DSC05215.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-E-eh4yK-KwM/TmpDLbqAvaI/AAAAAAAADn4/ZvXeaFXVcnY/s320/DSC05215.JPG" width="320" /&gt;&lt;/a&gt;Os erros encontrados foram registrados na nossa ferramenta &lt;i&gt;bug tracker&lt;/i&gt; (com seus respectivos &lt;i&gt;scripts&lt;/i&gt; de reprodução), geraram tarefas para programação e estão em fase de correção.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A técnica gerou bons resultados e teve &lt;i&gt;feedback&lt;/i&gt; positivo. Muitos dos &lt;i&gt;bugs&lt;/i&gt; encontrados já foram resolvidos, o uso do Selenium foi incentivado e membros que ainda não o utilizavam com frequência passaram a usar.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Aguardemos então as próximas edições. :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-4593364225847303094?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/4593364225847303094/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/09/test-party.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/4593364225847303094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/4593364225847303094'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/09/test-party.html' title='Test Party'/><author><name>Nadjia</name><uri>http://www.blogger.com/profile/02545410773339979270</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-x9hz-qoW0VQ/Tmoh3ll129I/AAAAAAAADnw/T2D5mfEh6pM/s72-c/DSC05208.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-3316453346191813489</id><published>2011-09-06T09:12:00.000-03:00</published><updated>2011-09-06T11:07:05.637-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='instalação'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='pacs'/><category scheme='http://www.blogger.com/atom/ns#' term='dcm4chee'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Tutorial de Instalação do dcm4chee</title><content type='html'>&lt;div style="text-align: justify; "&gt;&lt;span style="font-family: sans-serif; font-size: 100%; "&gt;O &lt;a href="http://www.dcm4che.org/confluence/display/ee2/Home"&gt;dcm4chee&lt;/a&gt; é um &lt;a href="http://pt.wikipedia.org/wiki/PACS"&gt;PACS&lt;/a&gt; &lt;a href="http://pt.wikipedia.org/wiki/C%C3%B3digo_aberto"&gt;open source&lt;/a&gt; que implementa o padrão &lt;a href="http://pt.wikipedia.org/wiki/DICOM"&gt;DICOM&lt;/a&gt;. Ele é compatível com diferentes SGBD’s (MySQL, PostgreSQL, Oracle, etc.) e sistemas operacionais (Windows, Linux e Mac OS).&lt;br /&gt;&lt;br /&gt;Neste tutorial vamos descrever a instalação do dcm4chee 2.17.0 em sua versão para o PostgreSQL na plataforma Windows 7 (32 bits). A instalação num ambiente diferente deste pode requerer configurações extras, não descritas neste tutorial.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1. Requisitos básicos&lt;/h3&gt;&lt;h4&gt;JDK versão 5 ou superior&lt;/h4&gt;As instruções de instalação da JDK 6 e a configuração da variável de ambiente JAVA_HOME estão disponíveis &lt;a href="http://blogdocaze.com.br/2011/02/24/tutorial-como-instalar-e-configurar-o-java-jdk-no-windows/"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;PostgreSQL&lt;/h4&gt;Apesar de já disponível, a versão 9 do PostgreSQL exige configurações extras não abordadas neste tutorial. Recomendamos a versão 8.4, cujas instruções de instalação estão disponíveis &lt;a href="http://desenvolvimentoelsa.blogspot.com/2011/09/instalacao-do-postgresql.html"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;2. Downloads&lt;/h3&gt;&lt;h4&gt;JBossAS&lt;/h4&gt;O dcm4chee roda sobre o servidor de aplicação JBoss 4.2.3 GA,  especificamente. Faça o download do JBoss do &lt;a href="http://www.jboss.org/"&gt;site oficial&lt;/a&gt; através deste link: &lt;a href="http://sourceforge.net/projects/jboss/files/JBoss/JBoss-4.2.3.GA/jboss-4.2.3.GA.zip/download"&gt;jboss-4.2.3.GA.zip&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;dcm4chee&lt;/h4&gt;Faça o download do dcm4chee em sua versão para o PostgreSQL do &lt;a href="http://www.dcm4che.org/"&gt;site oficial&lt;/a&gt; através deste link: &lt;a href="http://sourceforge.net/projects/dcm4che/files/dcm4chee/2.17.0/dcm4chee-2.17.0-psql.zip/download"&gt;dcm4chee-2.17.0-psql.zip&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;ARR&lt;/h4&gt;O dcm4chee permite a auditoria das operações realizadas, como transferência de arquivos, buscas, etc. Porém esta funcionalidade está num módulo separado, o Audit Record Repository (ARR). Faça o download do ARR em sua versão para o PostgreSQL do &lt;a href="http://www.dcm4che.org/"&gt;site oficial&lt;/a&gt; através deste link: &lt;a href="http://sourceforge.net/projects/dcm4che/files/dcm4chee-arr/3.0.11/dcm4chee-arr-3.0.11-psql.zip/download"&gt;dcm4chee-arr-3.0.11-psql.zip&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3. Estrutura de pastas&lt;/h3&gt;Descompacte os arquivos baixados na seção anterior numa pasta de sua preferência. É importante o caminho da pasta não conter espaços, pois isto pode acarretar em erros na instalação.&lt;br /&gt;&lt;br /&gt;No exemplo deste tutorial vamos extraí-los na pasta “C:\dicom”. Assim, teremos a estrutura de pastas da figura abaixo:&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh3.googleusercontent.com/gVyyl94g28kXV0xJtCmYOn8er9ogXZTN-zr6hkNi6lTSDzWCGkFlgUJs0WG6gpsNxNKOhVvXFUI4IKOracR2I76nhaxLrsIoaY6RBA7AjmTTLwUbPPY" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4. Bases de dados&lt;/h3&gt;&lt;h4&gt;pacsdb&lt;/h4&gt;Para criar a base de dados utilizada pelo dcm4chee, abra o prompt de comando e execute o comando “createdb” passando o nome da nova base de dados, “pacsdb”. No exemplo deste tutorial o comando fica assim: “createdb -U postgres pacsdb”.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh3.googleusercontent.com/8H-s0WMnkFcc-dlFmaymUvNNSQPuxo0K1TuEzQsxDHDue6TfIly8d3kwHL-9cAsbAK8kfI6Td_NjClg_hs-Zb_VqWBXQ7WK8QPC3QlX0zAt3s3xRAo8" width="600px;" height="302px;" /&gt;&lt;br /&gt;&lt;br /&gt;O parâmetro “postgres” é o usuário utilizado para conectar no banco de dados, no caso o super-usuário, por questões de permissão. O mesmo será passado como parâmetro nos comandos seguintes.&lt;br /&gt;&lt;br /&gt;O script de criação das tabelas e outras estruturas da base de dados “pacsdb” está disponível no arquivo “create.psql”, presente na pasta “sql”, dentro da pasta raiz de instalação do dcm4chee.&lt;br /&gt;&lt;br /&gt;Execute o comando “psql” passando como parâmetros o nome da base de dados, “pacsdb”,  e o arquivo que contém o script. No exemplo deste tutorial o comando fica assim: “psql -d pacsdb -U postgres -f C:\dicom\dcm4chee-2.17.0-psql\sql\create.psql”.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh6.googleusercontent.com/-oyAQfTN0mYSaScQ2e_MNEKo5r8UxrZtC8vGjoxhFMt9sRSiZpH2Wch830dIs8TdWbL1vbNdGwaqb390VtbrO6RWpfAISTj2fycBV8xozc0ORZmmWu0" width="600px;" height="302px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;arrdb&lt;/h4&gt;O ARR possui sua própria base de dados, de nome “arrdb”. Para criar esta base de dados, no prompt de comando execute o comando “createdb” passando o nome da nova base de dados, “arrdb”. No exemplo deste tutorial o comando fica assim: “createdb -U postgres arrdb”.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh5.googleusercontent.com/WoqjD0vkqvz8uaD8Chb9jN8NfKK1tffsNrCE-s9RY9pnae1TIkSTK7sc5jWcXG7c9Tol_aHXUpBh4Q12tOXlDH-oiBQow360r1C9QmRP7h2h3rki-GM" width="600px;" height="302px;" /&gt;&lt;br /&gt;&lt;br /&gt;O script de criação das tabelas e outras estruturas da base de dados “arrdb” está disponível no arquivo “dcm4chee-arr-sql.ddl”, presente na pasta “sql”, dentro da pasta raiz de instalação do ARR.&lt;br /&gt;&lt;br /&gt;Execute o comando “psql” passando como parâmetros o nome da base de dados, “arrdb”,  e o arquivo que contém o script. No exemplo deste tutorial o comando fica assim: “psql -d arrdb -U postgres -f C:\dicom\dcm4chee-arr-3.0.11-psql\sql\dcm4chee-arr-sql.ddl”.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh6.googleusercontent.com/TxUs8RC6lPb67WEQBCwAuoWeGJ6AbXrOxipCl6scEZNIgbNx8O2InGTXzMxC2Umh6oHKjl8INaW7aDsVPQkAFoKQPoE3XoMpdo9I9uJcMF7VeXvYCks" width="600px;" height="302px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Permissões&lt;/h4&gt;Para que o dcm4chee e o ARR consigam acessar as suas bases de dados é preciso configurar as respectivas conexões no arquivo “pg_hba.conf”, localizado na pasta “data” dentro da pasta raiz de instalação do PostgreSQL.&lt;br /&gt;No exemplo deste tutorial é a pasta: “C:\Program Files\PostgreSQL\8.4\data”.&lt;br /&gt;&lt;br /&gt;Neste arquivo adicione as linhas:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: monospace; font-size: 100%; "&gt;&lt;pre&gt;&lt;b&gt;host    pacsdb      postgres    127.0.0.1/32          trust&lt;br /&gt;host    arrdb       postgres    127.0.0.1/32          trust&lt;br /&gt;&lt;/b&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-family: sans-serif; font-size: 100%; "&gt;Logo &lt;b&gt;acima&lt;/b&gt; da linha:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: monospace; font-size: 100%; "&gt;&lt;pre&gt;&lt;b&gt;host    all         all         127.0.0.1/32          md5&lt;br /&gt;&lt;/b&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-family: sans-serif; font-size: 100%; "&gt;Conforme a figura abaixo.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh5.googleusercontent.com/FVYeDAwnHwHG03lc1iHEiT6mf5tywjES2tTDqZyGzkT05HqP3-66_zebhMuUpcEqV7wtYsq4CZPpnDNAxDI2xwvZz9mmoK-2JzD-dxcN-6gttRqmsbA" width="600px;" height="358px;" /&gt;&lt;br /&gt;&lt;br /&gt;Salve o arquivo. Esta configurção dá permissão de acesso às bases de dados pacsdb e arrdb para o usuário “postgres” (utilizado pelo dcm4chee e pelo ARR por padrão) para conexões solicitadas pelo IP local (127.0.0.1). Para outras conexões é solicitada a senha do usuário.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;5. Scripts finais de instalação&lt;/h3&gt;O próximo passo da instalação do dcm4chee é rodar o script “install_jboss.bat”, localizado na pasta “bin” dentro da pasta raiz de instalação do dcm4chee, passando a pasta raiz de instalação do JBoss como parâmetro. No exemplo deste tutorial o comando para executar este script fica assim:&lt;br /&gt;“install_jboss C:\dicom\jboss-4.2.3.GA”.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh5.googleusercontent.com/3gPeStn5YFqxU6Fwc_rn2l2ZFuKi73B_v38phw5SLDe-1YVjC7ick2h1H8i8O0BBxL018zvTpoSYqwkn2hjd9WA0VJeSNPbEgfr08_g2geozCsXM42I" width="600px;" height="302px;" /&gt;&lt;br /&gt;&lt;br /&gt;Este script vai integrar o dcm4chee com o JBoss, copiando arquivos deste último para a estrutura de pastas do dcm4chee.&lt;br /&gt;&lt;br /&gt;Para completar a instalação, temos de rodar o script “install_arr.bat”, localizado na pasta “bin” dentro da pasta raiz de instalação do dcm4chee, passando a pasta raiz de instalação do ARR. No exemplo deste tutorial o comando para executar o script fica assim: “install_arr C:\dicom\dcm4chee-arr-3.0.11-psql”.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh6.googleusercontent.com/Z8OXz3biKfngXoX0kEwZLQ0B12ldXQlf4B2D1zNSk3fhP95YN8tLaugZMqgX_5b3ocTG4cCIAQU5VZO-2w6ku7Zn0fVxDl4e-NHia1icYoqQ2qpKKbU" width="600px;" height="302px;" /&gt;&lt;br /&gt;&lt;br /&gt;Este script vai integrar o dcm4chee com o ARR, copiando arquivos deste último para a estrutura de pastas do dcm4chee.&lt;br /&gt;&lt;br /&gt;Pronto. A instalação está completa.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;6. Testando a instalação&lt;/h3&gt;Para testar a instalação, execute o script “run.bat”, localizado na pasta “bin” dentro da pasta raiz de instalação do dcm4chee. Este script vai inicializar o servidor dcm4chee.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh4.googleusercontent.com/RjmVR49wmvM5PSX8CeE_C-V5frwrdQUNdXlwqlQ4vuitsY3b-TVYd3ij6dlLrkRo1HT2w74aYcFua-L13NfuSZtP_ompjAjOd5INySAzBQXvy6oPDGM" width="600px;" height="302px;" /&gt;&lt;br /&gt;&lt;br /&gt;Se todos os passos anteriores deram certo, não haverá mensagem de erro (ERROR) na console, apenas informativas (INFO), como na figura abaixo.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh5.googleusercontent.com/qTn4plBCeqgHgsd6ubt1_nuWxDHEoSNep2VOvOrx9sMhhx6oRMbxj-BI8jm0yz8DNbc9ngqyaoXLumpFTtGkhkrLuwgOiCwkIzHExAN0MKFuFYAhFNU" width="600px;" height="302px;" /&gt;&lt;br /&gt;&lt;br /&gt;Para testar o dcm4chee, acesse a URL “http://localhost:8080/dcm4chee-web” no seu navegador. Faça o login com o usuário “admin” e senha “admin”.&lt;br /&gt;&lt;br /&gt;Para testar o ARR, clique no link “Audit Repository”. Forneça o usuário “admin” e a senha “admin”.&lt;br /&gt;&lt;br /&gt;Para parar o dcm4chee pressione as teclas &lt;b&gt;Ctrl + C&lt;/b&gt; na console onde o dcm4chee foi inicializado.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;7. Configurações adicionais&lt;/h3&gt;&lt;h4&gt;Permissões do sistema de arquivos&lt;/h4&gt;Para configurar as permissões de escrita e leitura do dcm4chee no sistema de arquivos do Windows, acesse a URL “http://localhost:8080/jmx-console” no seu browser (o dcm4chee tem de estar inicializado). Forneça o usuário “admin” e a senha “admin”.&lt;br /&gt;&lt;br /&gt;Selecione o link “group=ONLINE_STORAGE, service=FileSystemMgt”, sob o cabeçalho “dcm4chee.archive”.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh3.googleusercontent.com/C29iWqNcRClmlPusjeeJx8WB6QapQFKIp40Q5SuU_fLVS4wd_H-7BwN05x8e7DewVPlRhakUaYEVh7gKi0gyCXGUXnOZxLHcqcyN_m2bI0ocMtgeIfQ" width="421px;" height="216px;" /&gt;&lt;br /&gt;&lt;br /&gt;Localize o cabeçalho “addRWFileSystem()”&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh6.googleusercontent.com/KQ3D6E9RALPUpb6otEsxL0hk-ljpOk3b3szPt7QeFq9xJuLn00zSvsfugzNeHKDLEXa4u5ubHAsJyb2FWfbAnE8A0Me3PPgynXUHeB2glCpwUAb1frc" width="579px;" height="210px;" /&gt;&lt;br /&gt;&lt;br /&gt;Clique no botão “Invoke”.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Instalar o dcm4chee como serviço&lt;/h4&gt;Para não ter de executar o comando “run” a cada vez que for utilizar o dcm4chee, você pode instalá-lo como um serviço do Windows. Assim, ele será inicializado a cada vez que o Windows iniciar.&lt;br /&gt;&lt;br /&gt;Para tanto, execute o script “install_service.bat”, localizado na pasta “bin” dentro da pasta raiz de instalação do dcm4chee, passando o parâmetro “service”.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh5.googleusercontent.com/75C4I7QBEAiefJCBQXrQOAyLt1ywo9da1hlVQqFrLxXPNVZJCwTTOVdcwy7U6i4z7Y70e5EsDnkv41IJqj-aptv2bJOY_vy2G-7j4Tvz9y5C7IPHCL4" width="600px;" height="302px;" /&gt;&lt;br /&gt;&lt;br /&gt;Se receber uma mensagem de acesso negado, abra o prompt de comando como administrador (clique com o botão direito do mouse sobre o ícone do prompt de comando e selecione a opção “Executar como administrador”) e tente novamente.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-3316453346191813489?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/3316453346191813489/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/09/tutorial-de-instalacao-do-dcm4chee.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/3316453346191813489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/3316453346191813489'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/09/tutorial-de-instalacao-do-dcm4chee.html' title='Tutorial de Instalação do dcm4chee'/><author><name>Luciano Witt</name><uri>http://www.blogger.com/profile/10198167119172333448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-6059179537629654125</id><published>2011-09-02T15:07:00.000-03:00</published><updated>2011-09-05T11:53:10.842-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='instalação'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Instalação do PostgreSQL</title><content type='html'>&lt;div style="text-align: justify; "&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Neste tutorial vamos instalar o PostgreSQL 8.4 no Windows 7 Professional.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Faça o download da versão 8.4.8-1 para Windows do PostgreSQL:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;a href="http://www.enterprisedb.com/products-services-training/pgdownload"&gt;http://www.enterprisedb.com/products-services-training/pgdownload&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Execute o instalador baixado (arquivo postgresql-8.4.1-1-windows.exe).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Aparecerá a tela de boas vindas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh5.googleusercontent.com/xPXnIT-bnFjIs5GqQa49uQUFZAocOUUp6MwrLtxi8iMnpi9G39sl1pSw9qC7E0d9lQYcyMvBGTpkMxbFnDrUVO3ShmdQR_bH6jMOrylY7zLONbEILxU" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Clique no botão “Next”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Será solicitada a escolha de um diretório raiz para a instalação do PostgreSQL. Por padrão a instalação ocorre no diretório “C:\Program Files\PostgreSQL\8.4”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh6.googleusercontent.com/Eg6LeUqnOKNT_2m0un1-ECcycCYLOhkX45bE-nIWJ6Pd_mO_ayzOWA9MG2OJwLK4rS3irCdlowxlOXaB9Z5bPTq1LEPz8S0hC9Cg9AR4Q6ga9eveHRw" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Clique no botão “Next”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Será solicitada a escolha de um diretório de armazenamento dos dados do banco. Por padrão a instalação ocorre no diretório “C:\Program Files\PostgreSQL\8.4\data”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh4.googleusercontent.com/uQxY0Ks5x5xL4FN-BmyzJPVfSkFsuBj9hT1RY-gNcO-jCdmCSEGGZJLOwb8vVIOl4ra0MxoA7HqlRXrZZ5XSEOZWWIoYj06LjjKq6mdtUasGvRYxLAc" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Clique no botão “Next”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Será solicitada a escolha da senha do super-usuário do banco de dados. Digite a senha escolhida e repita-a no segundo campo para a confirmação.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh6.googleusercontent.com/ZXS7K5iP_YAiuHA0MYz9JKNwN67bDPaSwpeAVYNp28v6W4jYIMEPrNTLWah1mBPhyUPunshM7nIhbPZ49uLDbMtzAhbwhQ_XpP6VdfzXij8ZVR5hwVQ" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Clique no botão “Next”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Será solicitada a escolha do número da porta, a ser utilizado por outras aplicações para conectarem-se ao banco de dados. Recomenda-se deixar o padrão 5432.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh6.googleusercontent.com/LPMQE1ULj2Xp59VD02K8fqlVm5LJCQhur9HrpYH4znVWfttwAONTrmYvGRjRzYmCeMxHuOMSGzbOPwvr6e2yUWMUzIar2WhZNnvy_x5GFlgf63CGH9k" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Clique no botão “Next”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Na próxima tela será solicitada a escolha da localidade, para as configurações de linguagem da interface e formatos de data. Selecione “Portuguese, Brazil”. Nesta mesma tela você também pode escolher se deseja que a linguagem pl/psql seja instalada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh4.googleusercontent.com/mFwr7vdsGNH2Qs74wsa7_JoRcv05zDHJ1_VkvtqlYthSZfEVtQXQp6LcaxzQUTtmN-mAGTUmwZB6Necp4fy1pQ7-NZNhlT5AKiySNd0FJb4t5P98Vi8" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Clique no botão “Next”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;A próxima tela apenas informa que o instalador está pronto para iniciar a instalação.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh6.googleusercontent.com/eUyDbRMSBKMZ4lyG_EufdmQKmijalDsTeHltXFPAvlN7jhJt8j04aHgtq_46jeq6zbgQF-SjU_jV1l5cwCz82G_8luvEIzYfAIELFNqsOgBBjodWAA4" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Clique no botão “Next”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Aguarde a instalação terminar.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh3.googleusercontent.com/QSK4GCn7x8ttI1Cl68tmUFDZbZqgi_0b96bUj47pl2zZDzGvZPJEOlOohudPxqF0wYa8tvcyeB3ojkF3Is0G6jnMVZiIQ8Pyf6S7enEVtWQHRJnHvd8" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Clique no botão “Next”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Pronto, a instação está conculída. Caso queira instalar complementos ao PostgreSQL deixe marcada a opção “Launch Stack Builder at exit?”. Senão, desmarque esta opção.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh5.googleusercontent.com/TZPJxQJR_S4ZXm8Pu05_CXPqzDz8tMjwvgQBi_onwrjvKYA8ckQWkua1BbNAfkcUhE0Xe3LKwCcJVDNVAi7MKgs3pR4UFfZbdtMjjoEHVzPHdafiprc" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Clique no botão “Finish”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;A partir de agora você pode gerenciar seu banco de dados através da aplicação pgAdmin, que oferece uma interface gráfica pra tanto.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh6.googleusercontent.com/svrcTrfH1WbXQxkA6fZcVgK3WiJ6Rn5hSSc-T6bZwY48e9m9BthQkymtyy0Y-rs14iQ_LxodNmFfup3PYESX9EcFbaS9jT-UzOhAE4IUZUXPvY2UQKk" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;br /&gt;Você também pode gerenciá-lo através do prompt de comando, chamando o comando “psql” na pasta “bin” dentro do diretório de instalação do PostgreSQL (para o diretório padrão da instalação, é a pasta “C:\Program Files\PostgreSQL\8.4\bin”).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;No exemplo abaixo, estou chamando o comando psql passando o nome do usuário “postgres” como parâmetro. Para maiores detalhes sobre os parâmetros, chame o comando “psql --help”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img width="600" heigth="302" src="https://lh3.googleusercontent.com/wUUSBA9tfoTDrNO-Hrbzwem55kMOl6FS-HHp4yQMoFF8lyZ7ixKE5FIgywt3y42clPti4enJ5C9CAvbklZHT1sFhKXZL9X6zr_GyV1VAs18hWlvFfwo" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Para mostrar a lista de comandos do psql digite “\?”. Para mostrar a lista de comandos SQL digite “\h”. Para sair do psql digite o comando “\q”.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Para executar o psql de qualquer diretório, adicione o caminho da pasta “bin” do PostgreSQL à variável de ambiente “Path” do Windows.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;A mensagem de aviso da imagem acima ocorre porque a página de código padrão do prompt de comando do Windows difere da utilizada pelo psql. Para evitar este problema, temos de alterar a página de código do prompt de comando do windows. Para isso, antes de chamar o psql, digite o comando "cmd /c chcp 1252".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh4.googleusercontent.com/5JtzXQKQN0_G4lV_jBPStFtNpusOVar53kb5TBktVoxF0Mrdmz2UqOfvO0ZrH2WG5uLSs3tGipmJqm7oY40R68DKsgJBjjf6D64myukJ-3DpibIt8nU" width="600" heigth="302" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Isto vai recarregar o prompt de comando com a página de código utilizada pelo psql. Porém, a fonte padrão do prompt de comando não é adequada para esta página de código, tendo de ser alterada. Para tanto, clique com o botão direito do mouse sobre a barra superior da janela e selecione a opção "Propriedades".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh4.googleusercontent.com/CPOk6kGO_5Yrt7hRYqEgU5avVojms7wDh1StL4mYbUXvcYUEwlaxhk_9xV8GJroXprPrhzHhaN_Fr7xBIBLI8YdMoBFPUDH-9KQRHOckvbCrhnskjHU" width="600" heigth="302" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Na aba "Fonte", selecione a fonte "Lucida Console" e clique no botão "OK".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh4.googleusercontent.com/LCj0_WjECeM0EJHT3eHWNIL41aguYV5-urPpRXMQ_Ti9csWnfkKT7lrraCbCifF4CStcPWS9yHvw8NjWjL9bfO_tbrVdWzng8qjbLQ84LXsJsYR5sKQ" width="420px;" height="474px;" id="internal-source-marker_0.1024506725370884" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;Pronto, agora você pode chamar o comando psql sem problemas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 100%; "&gt;&lt;img src="https://lh4.googleusercontent.com/SQc-nEUKC4JQju_0rweh0earu2avhwnH28PyZdDkQMhCHlMcQvdW73hhaKPNQXVOC6MZkoziFylqST3th-37JTQUwnDO5xg7OD79CjEuimKNvYMEdR0" width="600" heigth="302" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-6059179537629654125?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/6059179537629654125/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/09/instalacao-do-postgresql.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/6059179537629654125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/6059179537629654125'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/09/instalacao-do-postgresql.html' title='Instalação do PostgreSQL'/><author><name>Luciano Witt</name><uri>http://www.blogger.com/profile/10198167119172333448</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-1418531769531922294</id><published>2011-06-09T14:00:00.000-03:00</published><updated>2011-06-17T19:19:21.614-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='integração continua'/><category scheme='http://www.blogger.com/atom/ns#' term='junit'/><category scheme='http://www.blogger.com/atom/ns#' term='testes'/><title type='text'>All Tests?</title><content type='html'>Uma das características mais presentes no nosso dia-a-dia de desenvolvimento é a interiorização de práticas de integração contínua. Todos temos o hábito de baixar para a própria máquina todos os códigos-fonte, no início do dia. Trabalhar sobre eles até que, ao final do dia, seja feito upload/commit das modificações. Sem erros, claro.&lt;br /&gt;&lt;br /&gt;No entanto, acabamos descobrindo esses dias que algumas vezes a prática de subir para o servidor os novos códigos estava quebrando a regra de termos apenas códigos 100%. Nos cobramos mutuamente na retrospectiva, mas não tínhamos a detecção real do problema.&lt;br /&gt;&lt;br /&gt;Eis que alguém resolveu dar uma olhada no AllTests e descobriu o real problema: nem todas as novas classes de teste estavam sendo adicinoadas lá. Com isso, alguns testes não estavam sendo executados, e erros não estavam sendo encontrados. Se uma solução rápida seria atualizar a suíte de teste, decidimos por uma ainda mais ágil: apagar a suíte.&lt;br /&gt;&lt;br /&gt;Por mais que a decisão pareça radical, ela é simples: ao invés de mandar rodar o AllTests, usamos o botão direito em cima da fonte de código com os pacotes de teste e um "Run As..". Esse procedimento executa absolutamente todos os testes, no Eclipse. Agora, voltamos a ter certeza que o servidor está 100%.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-1418531769531922294?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/1418531769531922294/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/06/all-tests.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/1418531769531922294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/1418531769531922294'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/06/all-tests.html' title='All Tests?'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-7969076432426106200</id><published>2011-06-01T15:08:00.001-03:00</published><updated>2011-06-02T17:32:26.525-03:00</updated><title type='text'>Integração de Componentes PrimeFaces</title><content type='html'>Esses dois trechos parecem equivalentes, né?&lt;br /&gt;&lt;br /&gt;Trecho 1:&lt;br /&gt;&lt;pre class="brush: html;"&gt; &lt;br /&gt; &amp;lt;f:facet name=&amp;quot;header&amp;quot;&amp;gt;&lt;br /&gt;     #{gen[&amp;#39;th.user&amp;#39;]}&lt;br /&gt; &amp;lt;/f:facet&amp;gt;&lt;br /&gt; &amp;lt;h:outputtext value=&amp;quot;#{entry.user.name}&amp;quot;/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Trecho 2:&lt;br /&gt;&lt;pre class="brush: html;"&gt; &lt;br /&gt; &amp;lt;f:facet name=&amp;quot;header&amp;quot;&amp;gt;&lt;br /&gt;     &amp;lt;h:outputtext value=&amp;quot;#{gen[&amp;#39;th.user&amp;#39;]}&amp;quot;/&amp;gt;&lt;br /&gt; &amp;lt;/f:facet&amp;gt;&lt;br /&gt; &amp;lt;h:outputtext value=&amp;quot;#{entry.user.name}&amp;quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Mas não são. O primeiro vai mostrar na tela direitinho. Mas não vai necessariamente integrar bem com outros componentes Primefaces, como o exportador de pdf. Essa é um exemplo das várias recomendações da maioria dos tutoriais de JSF: sempre que for escrever algo na tela, use um componente pra isso. No mínimo vai facilitar a integração.&lt;br /&gt;&lt;br /&gt;Fica a dica.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-7969076432426106200?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/7969076432426106200/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/06/integracao-de-componentes-primefaces.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7969076432426106200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7969076432426106200'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/06/integracao-de-componentes-primefaces.html' title='Integração de Componentes PrimeFaces'/><author><name>Celi Gomes</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-7613023251584616917</id><published>2011-04-11T11:02:00.001-03:00</published><updated>2011-04-11T12:12:47.747-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='campus'/><category scheme='http://www.blogger.com/atom/ns#' term='foto'/><category scheme='http://www.blogger.com/atom/ns#' term='paparazzi'/><category scheme='http://www.blogger.com/atom/ns#' term='facool'/><title type='text'>Brilhando no Facool</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/--w3uR_jVobM/TaMLlE98JYI/AAAAAAAAACg/iCyepZ0wMzo/s1600/dsc_0901.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 213px;" src="http://2.bp.blogspot.com/--w3uR_jVobM/TaMLlE98JYI/AAAAAAAAACg/iCyepZ0wMzo/s320/dsc_0901.jpg" alt="" id="BLOGGER_PHOTO_ID_5594327893740889474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-kLI_TMsGcuc/TaMLhbPNv7I/AAAAAAAAACY/elGOarf0C9U/s1600/dsc_0902.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 213px;" src="http://4.bp.blogspot.com/-kLI_TMsGcuc/TaMLhbPNv7I/AAAAAAAAACY/elGOarf0C9U/s320/dsc_0902.jpg" alt="" id="BLOGGER_PHOTO_ID_5594327830999449522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Transitar entre o campus não é mais passar em branco, sem ser percebido. Agora, sair para pegar um sol é ser alvo de &lt;span style="font-style: italic;"&gt;paparazzi&lt;/span&gt;. Nas fotos, &lt;a href="http://www.facool.com.br/galeria/view/44#/7933aaaf"&gt;Amanda&lt;/a&gt;, &lt;a href="http://www.facool.com.br/galeria/view/44#/3e93d07f"&gt;Carolina, Diogo e Luciano&lt;/a&gt;. Os originais estão em lá no site do Facool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-7613023251584616917?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/7613023251584616917/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/04/brilhando-no-facool.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7613023251584616917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7613023251584616917'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/04/brilhando-no-facool.html' title='Brilhando no Facool'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/--w3uR_jVobM/TaMLlE98JYI/AAAAAAAAACg/iCyepZ0wMzo/s72-c/dsc_0901.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-2362769971020097300</id><published>2011-03-10T17:44:00.000-03:00</published><updated>2011-03-10T17:46:45.230-03:00</updated><title type='text'>Seleção ELSA</title><content type='html'>A seleção que está em andamento para o preenchimento de vagas, prevista para encerrar amanhã (10/03), será prorrogada por mais alguns dias, devido a grande procura.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-2362769971020097300?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/2362769971020097300/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/03/selecao-elsa.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/2362769971020097300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/2362769971020097300'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/03/selecao-elsa.html' title='Seleção ELSA'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-4164837337696983685</id><published>2011-01-11T20:47:00.001-02:00</published><updated>2011-01-11T20:52:56.141-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eh'/><category scheme='http://www.blogger.com/atom/ns#' term='versao'/><title type='text'>Sistema de Coleta Versão 1.0</title><content type='html'>&lt;div style="text-align: justify;"&gt;A última implantação no servidor de produção de 2010 acabou sofrendo com final de semestre e festas de fim de ano e virou a primeira de 2011. Com ela, finalmente, a versão 1.0 do sistema de coleta de dados. Pensando que a primeira funcionalidade usada foi liberada em dezembro de 2008, essa distância de tempo é sucesso ou fracasso?&lt;br /&gt;&lt;br /&gt;Do ponto de vista extremamente tradicional, poderia ser avaliado como fracasso, pois alguns centros do estudo já não estão coletando dados diretamente com os participantes. Contudo, a natureza incremental do desenvolvimento, associado a uma definição de prioridades pelo product owner, gerou diferentes implantações que foram agregando valor desde a primeira liberação.&lt;br /&gt;&lt;br /&gt;O trabalho não acabou. A cadeia de produtos para estudos epidemiológicos que estamos criando sempre traz novidades para serem implementadas. No entanto, é bom saber que chegamos à totalidade dos formulários e funcionalidades de coleta. Que arredondamos o número da versão para 1.0. Porém, o melhor de tudo, é saber que os seis centros não estavam parados a espera da primeira versão do software. É comprovar na prática que o ROI já vinha sendo percebido a bem mais tempo.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-4164837337696983685?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/4164837337696983685/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/01/sistema-de-coleta-versao-10_11.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/4164837337696983685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/4164837337696983685'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2011/01/sistema-de-coleta-versao-10_11.html' title='Sistema de Coleta Versão 1.0'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-6868978509493890338</id><published>2010-09-21T15:02:00.000-03:00</published><updated>2010-09-21T15:10:24.325-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='internship'/><category scheme='http://www.blogger.com/atom/ns#' term='position'/><category scheme='http://www.blogger.com/atom/ns#' term='visitor'/><title type='text'>Java programmer positions for foreign students / visiting professors</title><content type='html'>The ELSA-Brasil project (Longitudinal Study of Adult Health - Brazil) is a&lt;br /&gt;multi-center cohort study now completing its baseline visit of 15 000&lt;br /&gt;employees of public universities and research centers of southern,&lt;br /&gt;southeastern and northeastern Brazil: FIOCRUZ, UFBA, UFES, UFMG, UFRGS and&lt;br /&gt;USP). Its objective is to investigate the development of chronic diseases,&lt;br /&gt;especially cardiovascular problems and diabetes. Part of the project´s&lt;br /&gt;activities has been and will continue to be the development of a web-based&lt;br /&gt;data management system and an accompanying PACS for image transmission.&lt;br /&gt;&lt;br /&gt;The data system is based on Java technology and has been developed in &lt;a href="http://maps.google.com.br/maps?f=q&amp;source=s_q&amp;hl=pt-BR&amp;geocode=&amp;q=ramiro+ba rcellos,+2600+-+porto+alegre+-+brazil&amp;sll=53.752425,8.764431&amp;sspn=38.79748,1 14.169922&amp;ie=UTF8&amp;hq=&amp;hnear=R.+Ramiro+Barcelos,+2600+-+Santana,+Porto+Alegre +-+Rio+Grande+do+Sul&amp;ll=-30.042712,-51.20793&amp;spn=0.006845,0.013937&amp;z=17"&gt;Porto&lt;br /&gt;Alegre - RS - Brazil&lt;/a&gt; by a team using agile methods (Scrum+XP) in a&lt;br /&gt;distributed architecture.&lt;br /&gt;&lt;br /&gt;ELSA-Brasil is offering short term positions within the context of academic&lt;br /&gt;interchange for Java software developers with experience in&lt;br /&gt;building enterprise web applications. This will include coding, unit&lt;br /&gt;testing, using design patterns, learning new technologies, and having&lt;br /&gt;a lot of fun doing it.&lt;br /&gt;&lt;br /&gt;We are looking for individuals in an academic setting&lt;br /&gt;- with a bachelor´s degree in computer science or a related field or&lt;br /&gt;- pursuing an undergraduate degree in computer science or a related course&lt;br /&gt;&lt;br /&gt;Required Skills:&lt;br /&gt;- OO design&lt;br /&gt;- Java (J2EE)&lt;br /&gt;- Unit Testing (JUnit)&lt;br /&gt;- Fluency in English or Portuguese&lt;br /&gt;- Teamwork and communication skills&lt;br /&gt;&lt;br /&gt;Desired Skills:&lt;br /&gt;- EJB&lt;br /&gt;- JSF&lt;br /&gt;- Selenium&lt;br /&gt;&lt;br /&gt;We can offer financial support to cover plane flight and living expenses in&lt;br /&gt;Porto Alegre.&lt;br /&gt;&lt;br /&gt;If interested please submit a letter summarizing your circumstances and&lt;br /&gt;explaining your interest, accompanied by your CV, in English or Portuguese,&lt;br /&gt;to Emerson Hernandez in the address below.&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_Fix7TetF6VY/TJj0Ix_AhuI/AAAAAAAAACE/yetw7WnJjfk/s320/mail+emerson.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5519429775036286690" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-6868978509493890338?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/6868978509493890338/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/09/java-programmer-positions-for-foreign.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/6868978509493890338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/6868978509493890338'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/09/java-programmer-positions-for-foreign.html' title='Java programmer positions for foreign students / visiting professors'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Fix7TetF6VY/TJj0Ix_AhuI/AAAAAAAAACE/yetw7WnJjfk/s72-c/mail+emerson.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-2087356826892005427</id><published>2010-09-01T08:25:00.000-03:00</published><updated>2010-09-01T08:39:48.262-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='artigo'/><category scheme='http://www.blogger.com/atom/ns#' term='Congresso'/><category scheme='http://www.blogger.com/atom/ns#' term='CBIS'/><title type='text'>ELSA no CBIS</title><content type='html'>&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 240px; height: 312px;" src="http://3.bp.blogspot.com/_Fix7TetF6VY/TH44qEZqcBI/AAAAAAAAAB8/QzqL63Tcl8w/s320/logo-acbis-2010.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5511905289335107602" /&gt; De 18 a 22 de outubro vai acontecer em Porto de Galinhas, Pernambuco, o XII Congresso Brasileiro de Informática em Saúde (&lt;a href="http://www.itarget.com.br/newclients/cbis2010.com.br/2009/?"&gt;CBIS&lt;/a&gt;). O ELSA vai se fazer presente lá com um artigo explicando um pouco da arquitetura do sistema dentro do contexto de sistemas de informação na área de epidemiologia. Se você não puder ir até lá prestigiar a apresentação, ou quer entender um pouco do que a gente faz, segue abaixo o nosso resumo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;O projeto ELSA (Estudo Longitudinal de Saúde do Adulto) é um estudo de coorte multi-cêntrico que incluirá em sua totalidade 15 mil funcionários de instituições públicas de ensino superior das regiões sul, sudeste e nordeste do Brasil (FIOCRUZ, UFBA, UFES, UFMG, UFRGS e USP). Seu objetivo é investigar o desenvolvimento de doenças crônicas, principalmente problemas cardiovasculares e o diabetes. Dentro das atividades do projeto está incluído o desenvolvimento de um sistema de coleta de dados, cujo objetivo é dar suporte às atividades do projeto. Este sistema foi construído por uma equipe utilizando métodos ágeis em uma arquitetura distribuída. Esta arquitetura é dividida em módulos que compõem o sistema e foi sofrendo contínuas evoluções conforme as necessidades do usuário e da implementação. Com a evolução do sistema e da equipe, foi possível perceber como o desenvolvimento incremental e iterativo de software auxiliou na criação de uma arquitetura consistente.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-2087356826892005427?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/2087356826892005427/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/09/elsa-no-cbis.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/2087356826892005427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/2087356826892005427'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/09/elsa-no-cbis.html' title='ELSA no CBIS'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Fix7TetF6VY/TH44qEZqcBI/AAAAAAAAAB8/QzqL63Tcl8w/s72-c/logo-acbis-2010.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-6681828053468153063</id><published>2010-08-05T17:52:00.000-03:00</published><updated>2010-08-11T14:45:15.884-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='taquara'/><category scheme='http://www.blogger.com/atom/ns#' term='ebh'/><category scheme='http://www.blogger.com/atom/ns#' term='treinamento'/><title type='text'>Treinamento Java</title><content type='html'>&lt;div style="text-align: justify;"&gt;Dos dias 12 a 27 de julho, dois membros da equipe tiveram a oportunidade de passar adiante um pedaço do conhecimento adquirido no desenvolvimento do sistema ELSA, ministrando um curso para a &lt;a href="http://www.cr.inf.br/"&gt;CR Sistemas e Web&lt;/a&gt;, de Taquara. O pessoal presente ao curso era composta de analistas, programadores e  testadores, assim como pessoal de suporte. Os assuntos abordados incluiram tópicos desde as bases de Orientação a Objetos até JEE usando tecnologias como &lt;a href="http://www.blogger.com/seamframework.org/"&gt;JBoss Seam&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; width: 320px; height: 153px;" src="http://4.bp.blogspot.com/_Fix7TetF6VY/TFxjUWOEFUI/AAAAAAAAABs/priojbUlqjU/s320/treinamento+cr.jpg" alt="" id="BLOGGER_PHOTO_ID_5502382045953004866" border="0" /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Atividades de apresentações internas já foram usadas algumas vezes na equipe de desenvolvimento. Essa, porém, foi a primeira vez que a colocamos em um ambiente externo. A experiência foi extremamente gratificante e agora estamos na espera dos resultados práticos deste treinamento no dia-a-dia da equipe da CR.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-6681828053468153063?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/6681828053468153063/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/08/treinamento-java.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/6681828053468153063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/6681828053468153063'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/08/treinamento-java.html' title='Treinamento Java'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Fix7TetF6VY/TFxjUWOEFUI/AAAAAAAAABs/priojbUlqjU/s72-c/treinamento+cr.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-3507228429397179780</id><published>2010-06-29T20:16:00.000-03:00</published><updated>2010-08-11T14:47:48.477-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Congresso'/><category scheme='http://www.blogger.com/atom/ns#' term='eh'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Brazil'/><title type='text'>Desenvolvimento ELSA no Agile Brazil 2010</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agilebrazil.com/2010/"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 409px; height: 140px;" src="http://www.agilebrazil.com/2010/imagens/logo-trans.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nos dias 24 e 25 de julho, Porto Alegre sediou o &lt;a href="http://www.agilebrazil.com/2010/pt/index.html"&gt;Agile Brazil 2010&lt;/a&gt;. É sempre muito interessante ter cabeças pensantes reunidas em um mesmo lugar para trocar experiências. Ainda mais com visitas ilustres como &lt;a href="http://martinfowler.com/"&gt;Martin Fowler&lt;/a&gt;, que fez o primeiro &lt;span style="font-style:italic;"&gt;keynote&lt;/span&gt; do evento. Sendo em Porto Alegre, foi também uma ótima oportunidade de reencontrar alguns amigos que acabo vendo pouco. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/woompa/sets/72157624355059258/"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 213px;" src="http://1.bp.blogspot.com/_Fix7TetF6VY/TCp_MsgS7pI/AAAAAAAAABk/0wpnmsrGLIQ/s320/4733918197_2d0a7e4c89.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5488338951986146962" /&gt;&lt;/a&gt; A equipe do desenvolvimento estava presente quase que em sua totalidade. Números oficiais do evento informavam cerca de 800 inscritos, fazendo com que o ELSA representasse 1% de todo mundo. Na foto ao lado, metade do time em um pequeno registro feito pelo &lt;a href="http://twitter.com/flaviosteffens"&gt;@flaviosteffens&lt;/a&gt;: Émerson, Nadjia, Daniel e Diego.&lt;br /&gt;&lt;br /&gt;Passado algum tempo do evento, acho que o principal efeito que ficou na comunidade que participou das atividades foi a vontade de fazer. Todos com muitas ideias e empolgação. Acho que até por isso a expectativa de que o do próximo seja ainda melhor que esse, principalmente nas trilhas praticante/experiente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-3507228429397179780?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/3507228429397179780/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/06/nos-dias-24-e-25-de-julho-porto-alegre.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/3507228429397179780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/3507228429397179780'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/06/nos-dias-24-e-25-de-julho-porto-alegre.html' title='Desenvolvimento ELSA no Agile Brazil 2010'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Fix7TetF6VY/TCp_MsgS7pI/AAAAAAAAABk/0wpnmsrGLIQ/s72-c/4733918197_2d0a7e4c89.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-7527114612559599166</id><published>2010-06-07T13:49:00.000-03:00</published><updated>2010-06-07T13:53:18.484-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animação'/><category scheme='http://www.blogger.com/atom/ns#' term='vídeo'/><category scheme='http://www.blogger.com/atom/ns#' term='autonomia'/><category scheme='http://www.blogger.com/atom/ns#' term='propósito'/><category scheme='http://www.blogger.com/atom/ns#' term='domínio'/><title type='text'>Animação sobre Motivação</title><content type='html'>Em agosto do ano passado escrevi um &lt;a href="http://desenvolvimentoelsa.blogspot.com/2009/08/autonomia-dominio-e-proposito.html"&gt;post&lt;/a&gt; sobre um vídeo que havia assistido sobre Autonomia, Domínio e Propósito. Agora descobri uma nova versão, em animação, que vale muito a pena: "&lt;a href="http://www.youtube.com/watch?v=u6XAPnuFjJc"&gt;RSA Animate - Drive: The surprising truth about what motivates us&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-7527114612559599166?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/7527114612559599166/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/06/em-agosto-do-ano-passado-escrevi-um.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7527114612559599166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7527114612559599166'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/06/em-agosto-do-ano-passado-escrevi-um.html' title='Animação sobre Motivação'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-7578208134970217446</id><published>2010-04-28T13:25:00.000-03:00</published><updated>2010-04-28T13:29:04.589-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='valorizar pessoas'/><category scheme='http://www.blogger.com/atom/ns#' term='eh'/><category scheme='http://www.blogger.com/atom/ns#' term='sucesso'/><category scheme='http://www.blogger.com/atom/ns#' term='certificação'/><category scheme='http://www.blogger.com/atom/ns#' term='chaos report'/><title type='text'>Foco nas Pessoas</title><content type='html'>O &lt;a href="http://www1.standishgroup.com/newsroom/chaos_2009.php"&gt;Chaos Report&lt;/a&gt; do ano passado mostrou que apenas 32% dos projetos em TI são bem-sucedidos. Segundo a tabela comparativa (e aqui embaixo reproduzida em apenas uma linha) retirada de uma &lt;a href="http://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.html"&gt;entrada&lt;/a&gt; do site Project Smart, houve um decréscimo em relação a 2006 (de 35% para 32%), mas uma melhora significativa em relação à década passada (de 16% para 32%).&lt;br /&gt;&lt;br /&gt;As explicações são muitas. O &lt;span style="font-style: italic;"&gt;post&lt;/span&gt; de onde essa tabela foi retirada aponta como uma das grandes vantagens o aumento de profissionais certificados. Esse argumento é base pra uma briga boa que encontra como principal confrontador o &lt;a href="http://blog.objectmentor.com/articles/2010/04/27/certification-dont-waste-your-time"&gt;Uncle Bob&lt;/a&gt;. Ninguém tem dúvida que existe muita gente a favor das letrinhas mágicas (uma rápida olhada nos seus contatos do LinkedIn prova isso). Mas, será que são as certificações que fazem diferença?&lt;br /&gt;&lt;br /&gt;O sucesso de nosso último release foi, para mim, baseado em dois aspectos. Primeiramente, diferente de algumas outras vezes a iteração foi bem-definida e executada. Adicionalmente, criamos o desafio de mudar algumas tecnologias para outras que já havíamos avaliado como melhores do que as que estavamos usando. Depois de muito tempo de "nessa iteração não temos tempo para migrar", definimos em conjunto pela mudança. Esse motivador surgiu da equipe. Resultado final: &lt;span style="font-style: italic;"&gt;software&lt;/span&gt; entregue no prazo, com todas as funcionalidades e com melhora no processo de desenvolvimento, através de novas práticas e tecnologias. O que será que mudou? Ninguém foi certificado em nada de um &lt;span style="font-style: italic;"&gt;release&lt;/span&gt; para o outro...&lt;br /&gt;&lt;br /&gt;Para mim, a resposta para o sucesso está em uma das bases do &lt;a href="http://www.manifestoagil.com.br/"&gt;Manifesto Ágil&lt;/a&gt; foi cumprida: "valorizar: 1. Indivíduos e interação entre eles mais que processos e ferramentas". A equipe tinha uma clara ideia do que deveria ser feito, sem pendências de requisitos. As funcionalidades foram entregues para teste em tempo hábil e está sendo colocado a campo para gerar &lt;span style="font-style: italic;"&gt;feedback&lt;/span&gt; em situações reais. A comunicação entre essas duas "equipes" e o trabalho que elas devem executar para garantir um bom &lt;span style="font-style: italic;"&gt;software&lt;/span&gt; foi valorizado acima de tempo ou prazo. Mesmo havendo troca de ferramenta, ela foi feita como desafio para os desenvolvedores, ou seja, foi encaminhada como motivador da curiosidade natural de quem trabalha com programação, ao invés de imposição de alguém. Ou seja, independente de como é feito, de qual tecnologia é usada, os sistemas sempre serão baseados em pessoas e elas são o verdadeiro &lt;span style="font-style: italic;"&gt;kernel&lt;/span&gt; de qualquer projeto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-7578208134970217446?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/7578208134970217446/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/04/foco-nas-pessoas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7578208134970217446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/7578208134970217446'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/04/foco-nas-pessoas.html' title='Foco nas Pessoas'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-4137214846848684573</id><published>2010-03-18T15:56:00.000-03:00</published><updated>2010-04-26T11:19:18.934-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eh'/><category scheme='http://www.blogger.com/atom/ns#' term='svnkit'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='autor'/><title type='text'>Acentos no século XXI</title><content type='html'>É incrível como alguns serviços ainda não conseguem trabalhar com acentos. Minha surpresa, hoje, foi descobrir que eu baguncei a vida do SVN para todos os arquivos que fiz upload. Assim, para você, que como eu, acabou colocando acento e tem de voltar atrás para trocar o seu nome na integração Eclipse + SVNKit a dica é a seguinte: &lt;br /&gt;&lt;br /&gt;apague o arquivo .&lt;span style="font-style:italic;"&gt;keyring &lt;/span&gt;que fica no diretório &lt;span style="font-style:italic;"&gt;ECLIPSE_HOME/configuration/org.eclipse.core.runtime/&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Outras alternativas como &lt;span style="font-style:italic;"&gt;eclipse.exe -vmargs -Duser.name=”usuario”&lt;/span&gt; &lt;span style="font-weight:bold;"&gt;NÃO&lt;/span&gt; vão funcionar. Ele até troca o valor do @author, mas não atualiza a conexão com o servidor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-4137214846848684573?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/4137214846848684573/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/03/acentos-no-seculo-xxi.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/4137214846848684573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/4137214846848684573'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/03/acentos-no-seculo-xxi.html' title='Acentos no século XXI'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-8719249629107061818</id><published>2010-02-25T17:17:00.000-03:00</published><updated>2010-02-25T18:11:19.074-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engenharia'/><category scheme='http://www.blogger.com/atom/ns#' term='gka'/><category scheme='http://www.blogger.com/atom/ns#' term='propósito'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Burj Al Arab e a casa do cachorro</title><content type='html'>Esse é um assunto que está batendo na minha cabeça faz algum tempo e acho que agora consegui dar uma certa forma, encontrando a metáfora correta: &lt;a href="http://en.wikipedia.org/wiki/Burj_Al_Arab"&gt;Burj Al Arab&lt;/a&gt; e a casa do cachorro.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/DubAymx.JPG/450px-DubAymx.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 167px; height: 222px;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/DubAymx.JPG/450px-DubAymx.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;O Burj Al Arab é um dos pináculos da engenharia. Belo, sofisticado, bem planejado, robusto, seguro e pensado para satisfazer aos mais exigentes. Enfim, um pedaço do paraíso (para os que acreditam).&lt;br /&gt;&lt;br /&gt;E a casa de cachorro? Bom, é aquela singela construção que lembra uma casa mas que, bem, só serve ao cachorro e não imagino agradar nem a ele.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/a/ab/DogHouse_Dash_President_Harrison.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 166px; height: 132px;" src="http://upload.wikimedia.org/wikipedia/commons/a/ab/DogHouse_Dash_President_Harrison.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mas porque trazer essas duas imagens? Porque quero abordar desenvolvimento de programas e sistemas que muitas vezes oscilam entre o Burj Al Arab e a casa de cachorro. Nos falta (me refiro aos desenvolvedores) uma melhor organização e (agora para pânico de muitos) regulamentação. Por que temos tanto preconceito com a regulamentação da profissão? Alguém já imaginou comprar uma casa (ou mesmo morar numa) que não tenha uma planta baixa? Que não tenha um engenheiro responsável? Alguém aceitaria ser operado por um pedreiro (infelizmente sim com as inúmeras cirurgias espirituais, mas estou digredindo)? A resposta, para a maioria das pessoas, seria não para ambas as perguntas. Todos querem que alguém assuma as responsabilidades e que os profissionais tenham sido aprovados por um órgão regulamentador. Então por que se aceita que alguém não cientista da computação faça o sistema web da sua empresa?&lt;br /&gt;&lt;br /&gt;A razão é simples, o cliente quer um Burj Al Arab mas para isso pagar como se fosse uma casa de cachorro.&lt;br /&gt;&lt;br /&gt;Outro ponto em que esta metáfora se aplica é quanto ao processo de desenvolvimento. É razoável que se espere o concreto secar para se iniciar os trabalhos de interiores. Ninguém, em sã consciência, aceitaria que se levantassem paredes sem que as fundações estejam prontas e devidamente verificadas. Não se coloca o telhado antes das paredes. Não se assume que: "bom, se não ficar de pé tentamos mais uma vez" seja uma metodologia aceitável. Posso mandar o meu "faz-tudo" de plantão montar uma casa para o meu cachorro e se não der certo, bom, faz-se outra. Se a entrada ficar pequena para o cachorro? Desgaste-se a entrada até ele passar. Se na primeira chuva a casinha se enterrar na lama do quintal? Azar, amanhã colocamos umas pedras para ver se resolve.&lt;br /&gt;&lt;br /&gt;Acho que ficou claro o paralelo. Hoje vemos sistemas sendo construídos como se fossem casa de cachorro: sem planejamento, sem uma visão de vida útil, sem responsabilidade. O que é nosso é de ninguém. Qualquer um que sabe um pouco de estrutura de dados se julga desenvolvedor de programas. O mercado está tão saturado de "faz-tudo" que ninguém está prestando atenção nos verdadeiros engenheiros. Mas o que observo é que todos esperam um Burj Al Arab. Ainda não se entendeu que isso só é possível quando o profissional é capacitado e experiente e que custa caro, MUITO caro. Qualquer um faz uma casinha de cachorro. Basta ver as atrocidades cometidas em JavaScript, PHP, Java EE, etc.&lt;br /&gt;&lt;br /&gt;Para mim é uma aberração escutar que site X e Y foram vitimas de SQL Injection. A reação que tenho é a mesma que tive quando soube do caso do &lt;a href="http://pt.wikipedia.org/wiki/Palace_II"&gt;Palace I e II&lt;/a&gt; no Rio de Janeiro. Como é que pode um sistema sofre com um ataque tão ridículo? É o mesmo que um prédio cair por erro de cálculo estrutural (o B-A-BA do engenheiro civil). É como um médico &lt;a href="http://noticias.terra.com.br/brasil/interna/0,,OI3241441-EI8139,00-RS+familia+afirma+que+medico+amputou+perna+errada.html"&gt;amputar a perna errada&lt;/a&gt; de um paciente.&lt;br /&gt;&lt;br /&gt;Isso deveria ser visto como uma aberração e o profissional ser afastado pelo resto de sua vida de suas funções. &lt;br /&gt;&lt;br /&gt;Não acho natural aceitar que se desenvolva sistemas como se fossem casas de cachorro. O que parece ser a prática comum, principalmente com prazos no mínimo otimistas que gerentes de projeto impõem. Este normalmente são dotados de um total desprendimento ou mesmo noção da realidade do que é desenvolvimento de software.&lt;br /&gt;&lt;br /&gt;A realidade está batendo na porta: 1.000.000 de "faz-tudo" não irão construir um Burj Al Arab e os melhores engenheiros do mundo tampouco o farão em 2 anos. No final das contas não existe mágica: o teu sistema será tão bom quanto os profissionais que se tem a disposição e que condições se aplica ao desenvolvimento.&lt;br /&gt;&lt;br /&gt;Abraços,&lt;br /&gt;&lt;br /&gt;Gustavo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-8719249629107061818?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/8719249629107061818/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/02/burj-al-arab-e-casa-do-cachorro.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/8719249629107061818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/8719249629107061818'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2010/02/burj-al-arab-e-casa-do-cachorro.html' title='Burj Al Arab e a casa do cachorro'/><author><name>Gustavo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_D1tXstLYwnc/THJF7liSOEI/AAAAAAAADPk/W3oDpvYy218/S220/chimas-7-1x1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-5457871267766667991</id><published>2009-12-21T10:54:00.000-02:00</published><updated>2010-08-12T10:40:47.924-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='retrospectiva'/><category scheme='http://www.blogger.com/atom/ns#' term='eh'/><category scheme='http://www.blogger.com/atom/ns#' term='post-it'/><title type='text'>Retrospectiva do Ano</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Fix7TetF6VY/Sy9wO5Zq_qI/AAAAAAAAABU/1pWOrpGn-_0/s1600-h/IMG_0238.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_Fix7TetF6VY/Sy9wO5Zq_qI/AAAAAAAAABU/1pWOrpGn-_0/s320/IMG_0238.jpg" alt="" id="BLOGGER_PHOTO_ID_5417672277978971810" border="0" /&gt;&lt;/a&gt;Se você está acostumado aos métodos ágeis, sabe que &lt;span style="font-style: italic;"&gt;feedback&lt;/span&gt; é um dos valores fundamentais. Ele é dado em diferentes momentos e, de forma sistemática, aparece a cada final de iteração no que se convencionou chamar &lt;span style="font-weight: bold;"&gt;retrospectiva&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Fora da informática esse termo não é incomum. Todos os meios de comunicação, por exemplo, fazem retrospectivas do ano. Ali eles  apresentam todos os fatos que consideraram relevantes. No contexto de desenvolvimento de sistemas,  a ideia é pegar a informação do time de desenvolvimento. Sem limitação sobre os assuntos.&lt;br /&gt;&lt;p:colorscheme colors="#ffffff,#000000,#cc0000,#009900,#cccc00,#3333cc,#000000,#808080"&gt;&lt;/p:colorscheme&gt;&lt;br /&gt;Normalmente as nossas retrospectivas são feitas verbalmente com auxílio de papel e caneta. Pela primeira vez, resolvemos fazer um período maior que o &lt;span style="font-style: italic;"&gt;sprint&lt;/span&gt; e usando &lt;span style="font-style: italic;"&gt;post-its&lt;/span&gt;. Dessa vez, fizemos para o ano todo, separando a parede em três grandes colunas rotuladas como: "Boas", "Não Funcionaram" e "A Melhorar".&lt;br /&gt;&lt;br /&gt;O funcionamento da atividade é simples. Vários &lt;span style="font-style: italic;"&gt;post-its&lt;/span&gt; e canetas a disposição de todos. Cada um do time escreve o que quiser. Todos tem direito de ler o que os outros escreveram, assim como repetir o que já foi apontado, para reforçar alguma ideia. Depois do número de colagens na parede ter estabilizado, vem a rodada de comentários sobre os pontos levantados.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Fix7TetF6VY/Sy91vv_50zI/AAAAAAAAABc/GmiXxHw5NDo/s1600-h/IMG_0233.jpg"&gt;&lt;img style="margin: 10pt 10px 10px 10pt; float: right; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_Fix7TetF6VY/Sy91vv_50zI/AAAAAAAAABc/GmiXxHw5NDo/s320/IMG_0233.jpg" alt="" id="BLOGGER_PHOTO_ID_5417678339948794674" border="0" /&gt;&lt;/a&gt;O resultado foi ótimo. O fortalecimento das relações da equipe foram repetidamente ressaltadas. Mais do que isso, aquilo que não funcionou além de identificado, foi analisado. Sem exceção, tudo relacionado a segunda coluna recebeu propostas de alteração para que efetivamente sejam melhor praticadas. Ainda estamos compilando os resultados para que possamos decidir, entre todas as possibilidades, quais atacar prioritariamente.&lt;br /&gt;&lt;br /&gt;2010 promete!&lt;br /&gt;&lt;br /&gt;E você, tem feito retrospectivas?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-5457871267766667991?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/5457871267766667991/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/12/retrospectiva-do-ano.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/5457871267766667991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/5457871267766667991'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/12/retrospectiva-do-ano.html' title='Retrospectiva do Ano'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Fix7TetF6VY/Sy9wO5Zq_qI/AAAAAAAAABU/1pWOrpGn-_0/s72-c/IMG_0238.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-2463423519535306505</id><published>2009-12-08T17:36:00.000-02:00</published><updated>2009-12-08T18:53:16.867-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='gka'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><category scheme='http://www.blogger.com/atom/ns#' term='JProfiler'/><title type='text'>JBoss, JProfiler, Eclipse e Linux</title><content type='html'>Para usar o JProfiler no Eclipse dentro do Linux (testado no Fedora 12) são necessários os seguintes passos:&lt;br /&gt;&lt;br /&gt;1. Instalar o &lt;a href="http://fedoraproject.org/"&gt;Fedora 12&lt;/a&gt;&lt;br /&gt;2. Instalar o &lt;a href="http://www.eclipse.org/downloads/"&gt;Eclipse&lt;/a&gt;&lt;br /&gt;3. Instalar o &lt;a href="http://download.eclipse.org/webtools/downloads/"&gt;Web Tools Platform&lt;/a&gt;&lt;br /&gt;4. Instalar o &lt;a href="http://www.jboss.org/tools/download/dev.html"&gt;JBoss Tools&lt;/a&gt;&lt;br /&gt;5. Instalar o &lt;a href="http://www.ej-technologies.com/products/jprofiler/overview.html"&gt;JProfiler&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Uma vez feita a integração com o Eclipse (leia a documentação do JProfiler) e também a integração do Eclipse com o JBoss Tools (configurado) é necessário adicionar as bibliotecas do JProfiler na carga de bibliotecas do sistema:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;#---&lt;br /&gt;cat &gt; /etc/ld.so.conf.d/jprofiler.conf &lt;&lt; __END__&lt;br /&gt;/opt/jprofiler6/bin/linux-x86/&lt;br /&gt;__END__&lt;br /&gt;ldconfig&lt;br /&gt;#---&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Adicionar a linha: "&lt;span style="font-style:italic;"&gt;-agentlib:jprofilerti=port=2025&lt;/span&gt;" a execução do JBoss no Eclise:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_D1tXstLYwnc/Sx6u9gWYbjI/AAAAAAAAC-0/fyFBeKVIvo4/s1600-h/jboss.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://3.bp.blogspot.com/_D1tXstLYwnc/Sx6u9gWYbjI/AAAAAAAAC-0/fyFBeKVIvo4/s400/jboss.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5412956173824978482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ao executar o JBoss disparar o JProfiler e conectar à uma nova seção remota na porta &lt;span style="font-weight:bold;"&gt;2025&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-2463423519535306505?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/2463423519535306505/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/12/jboss-jprofiler-eclipse-e-linux.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/2463423519535306505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/2463423519535306505'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/12/jboss-jprofiler-eclipse-e-linux.html' title='JBoss, JProfiler, Eclipse e Linux'/><author><name>Gustavo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_D1tXstLYwnc/THJF7liSOEI/AAAAAAAADPk/W3oDpvYy218/S220/chimas-7-1x1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_D1tXstLYwnc/Sx6u9gWYbjI/AAAAAAAAC-0/fyFBeKVIvo4/s72-c/jboss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-438886927307947625</id><published>2009-12-07T18:07:00.000-02:00</published><updated>2009-12-07T18:18:34.985-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='gka'/><title type='text'>Problemas com Eclipse no Fedora 12</title><content type='html'>Descrição do problema:&lt;br /&gt;&lt;br /&gt;Alguns botões, especialmente &lt;span style="font-style:italic;"&gt;OK&lt;/span&gt; e &lt;span style="font-style:italic;"&gt;Finish&lt;/span&gt;, não respondem ao clique do mouse. É necessário manter o foco no botão (mantendo o mouse sobre o botão, por exemplo) e pressionar a tecla &lt;span style="font-style:italic;"&gt;ENTER&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Solução (simples):&lt;br /&gt;&lt;br /&gt;É necessário sobre-escrever uma variável de ambiente antes de executar o eclipse:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;#---&lt;br /&gt;GDK_NATIVE_WINDOWS=true eclipse&lt;br /&gt;#---&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;solução (para atalho no desktop):&lt;br /&gt;&lt;br /&gt;Crie um script shell e o use como comando no atalho:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;#---&lt;br /&gt;cat &gt; ~/bin/eclipse.sh &lt;&lt; __END__&lt;br /&gt;GDK_NATIVE_WINDOWS=true eclipse&lt;br /&gt;__END__&lt;br /&gt;chmod 755 ~/bin/eclipse.sh&lt;br /&gt;#---&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_D1tXstLYwnc/Sx1i4D4a-rI/AAAAAAAAC-M/99cLHBhwlOE/s1600-h/eclipse.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 203px;" src="http://2.bp.blogspot.com/_D1tXstLYwnc/Sx1i4D4a-rI/AAAAAAAAC-M/99cLHBhwlOE/s400/eclipse.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5412591042423356082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fonte: &lt;a href="http://forums.fedoraforum.org/showthread.php?s=a3c988d542abeeb3b04991ab5c12070d&amp;p=1301362#post1301362"&gt;http://forums.fedoraforum.org/showthread.php?s=a3c988d542abeeb3b04991ab5c12070d&amp;p=1301362#post1301362&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-438886927307947625?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/438886927307947625/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/12/problemas-com-eclipse-no-fedora-12.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/438886927307947625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/438886927307947625'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/12/problemas-com-eclipse-no-fedora-12.html' title='Problemas com Eclipse no Fedora 12'/><author><name>Gustavo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_D1tXstLYwnc/THJF7liSOEI/AAAAAAAADPk/W3oDpvYy218/S220/chimas-7-1x1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_D1tXstLYwnc/Sx1i4D4a-rI/AAAAAAAAC-M/99cLHBhwlOE/s72-c/eclipse.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-3147729166932603326</id><published>2009-10-27T13:23:00.000-02:00</published><updated>2009-10-27T13:38:54.135-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eh'/><category scheme='http://www.blogger.com/atom/ns#' term='Retinografia'/><category scheme='http://www.blogger.com/atom/ns#' term='Grupo de Discussão'/><category scheme='http://www.blogger.com/atom/ns#' term='Ecocardiografia'/><category scheme='http://www.blogger.com/atom/ns#' term='DICOM'/><title type='text'>DICOM</title><content type='html'>A transmissão de imagens médicas vem sendo feita há algum tempo. Nada mais natural, então, que surgissem alguns padrões nessa área, como o &lt;a href="http://medical.nema.org/"&gt;DICOM&lt;/a&gt;. Aqui, o estamos usando no manuseio de alguns exames, como Ecocardiografia e Retinografia. Tenho certeza que mais empresas e estudos brasileiros também estão. Assim, criamos uma lista de discussão para que diferentes pessoas possam trocar experiências e dúvidas. Se te interessa, dá uma conferida:&lt;br /&gt;&lt;br /&gt;* Nome do grupo: &lt;span class="il"&gt;DICOM&lt;/span&gt; - Brasil&lt;br /&gt;* Página inicial do grupo: &lt;a href="http://groups.google.com.br/group/dicom-brasil" target="_blank"&gt;http://groups.google.com.br/&lt;wbr&gt;group/&lt;span class="il"&gt;dicom&lt;/span&gt;-brasil&lt;/a&gt;&lt;br /&gt;* Endereço de e-mail do grupo: &lt;a href="mailto:dicom-brasil@googlegroups.com"&gt;&lt;span class="il"&gt;dicom&lt;/span&gt;-brasil@googlegroups.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-3147729166932603326?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/3147729166932603326/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/10/dicom.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/3147729166932603326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/3147729166932603326'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/10/dicom.html' title='DICOM'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-9014937547797675796</id><published>2009-08-31T15:16:00.000-03:00</published><updated>2009-08-31T23:34:02.363-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agil'/><category scheme='http://www.blogger.com/atom/ns#' term='eh'/><category scheme='http://www.blogger.com/atom/ns#' term='autonomia'/><category scheme='http://www.blogger.com/atom/ns#' term='propósito'/><category scheme='http://www.blogger.com/atom/ns#' term='domínio'/><title type='text'>Autonomia, Domínio e Propósito</title><content type='html'>O Gustavo me mandou um &lt;a href="http://www.youtube.com/watch?v=rrkrvAUbU9Y"&gt;vídeo&lt;/a&gt; muito interessante sobre motivação. O &lt;a href="http://www.danpink.com/"&gt;apresentador&lt;/a&gt; reflete sobre a obsolência do sistema de recompensa e apresenta uma solução para o século XXI. Para ele, uma melhor abordagem para a resolução de problemas é baseada em "&lt;span style="font-weight: bold;"&gt;Autonomia&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Domínio &lt;/span&gt;e &lt;span style="font-weight: bold;"&gt;Propósito&lt;/span&gt;". Eu estava mesmo lendo esses dias um &lt;a href="http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf"&gt;material&lt;/a&gt; que citava como um dos valores centrais da comunidade ágil a autoridade sobre os assuntos técnicos. Segundo os autores, os desenvolvedores estão sempre batalhando para manter seu código simples e direto. Eles avançam sempre para estar de acordo com o que há de melhor em solução tecnológica.&lt;br /&gt;&lt;br /&gt;Olhando para os quadros com tarefas (presentes em XP, Lean/Kanbam e afins) onde cada membro da equipe escolhe o que fazer, vemos um bom exemplo de autonomia. Ora, quer melhor exemplo que a livre escolha, sem microgerência, para desenvolver o coeficiente de viração própria e a responsabilidade? Ter o poder de decidir qual tarefa atacar, podendo se basear no que já conhece para ganhar tempo, ou no que não sabe para ganhar conhecimento, fortalece toda a equipe. Longa vida ao nosso quadro!&lt;br /&gt;&lt;br /&gt;Aqui no Elsa, é fácil ver o propósito do projeto. Ajudar a ciência e a população são causas muito nobres. Domínio, é uma busca individual, coletiva e diária. Acho que estamos no caminho certo.  E você, também está?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-9014937547797675796?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/9014937547797675796/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/08/autonomia-dominio-e-proposito.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/9014937547797675796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/9014937547797675796'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/08/autonomia-dominio-e-proposito.html' title='Autonomia, Domínio e Propósito'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-6614980656781715177</id><published>2009-08-27T17:22:00.000-03:00</published><updated>2009-09-08T13:54:47.073-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agil'/><category scheme='http://www.blogger.com/atom/ns#' term='gka'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Segurança ou paranóia</title><content type='html'>Quando se trata de segurança normalmente existem dois grupos de pessoas: os paranóicos e os otimistas. Eu faço parte do primeiro. Mas a questão é até que ponto a paranóia é realmente paranóia e quando ela passa a ser necessária? O que se observa em metodologias ágeis é que se deve fazer aquilo que é estritamente necessário para o funcionamento do sistema/programa. Mas puxando a "brasa" para o meu lado: quando o sistema deixou de funcionar porque houve um problema segurança, isso não entra no estritamente necessário? Afinal deixou de funcionar.&lt;br /&gt;&lt;br /&gt;A questão vai além da definição mais clássica segurança, que é a proteção do sistema contra acesso não autorizado. Mas isso se aplica também a questões de acesso indevido mas autorizado. Como uma funcionalidade que deveria ter acesso restrito à alguns usuários mas por descuido ou relaxamento do programador não teve a sua restrição imposta. Além disso existem as questões da chamada "programação otimista", onde se confia que as coisas irão funcionar, sem que se busque verificar se elas realmente funcionam. Lógico que "blindar" cada parafuso do sistema é bobagem, assim como tentar aplicar alguma validação formal em todos os métodos (nada a ver com TDD). Mas existem momentos em que sim a paranóia não somente é necessária mas como pré-requisito para que se evitem dores de cabeças no futuro (nem tão) distante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-6614980656781715177?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/6614980656781715177/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/08/seguranca-ou-paranoia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/6614980656781715177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/6614980656781715177'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/08/seguranca-ou-paranoia.html' title='Segurança ou paranóia'/><author><name>Gustavo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_D1tXstLYwnc/THJF7liSOEI/AAAAAAAADPk/W3oDpvYy218/S220/chimas-7-1x1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-116339063138100750.post-108888202264279374</id><published>2009-08-24T13:56:00.000-03:00</published><updated>2009-08-25T10:54:57.947-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agil'/><category scheme='http://www.blogger.com/atom/ns#' term='eh'/><category scheme='http://www.blogger.com/atom/ns#' term='on-site costumer'/><category scheme='http://www.blogger.com/atom/ns#' term='xp'/><category scheme='http://www.blogger.com/atom/ns#' term='whole team'/><category scheme='http://www.blogger.com/atom/ns#' term='cliente presente'/><title type='text'>Cliente Presente</title><content type='html'>Fui a uma formatura esses dias e o paraninfo tinha uma frase de cumplicidade com seus afilhados que era algo como "&lt;i&gt;Tamo junto&lt;/i&gt;". A origem da frase remetia ao fato de tanto o professor como os alunos estarem no mesmo lado, trabalhando pela formação acadêmica todas as sextas a noite e sábados dia todo. Alguns dias depois, fui a um &lt;a href="http://guts-rs.blogspot.com/2009/08/material-apresentacao-escolas-de-testes.html"&gt;evento de testes&lt;/a&gt; onde o palestrante pediu para os presentes se apresentarem. Após um membro da platéia se definir programador, surgiu a piadinha "&lt;i&gt;Temos um inimigo na trincheira.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;Essas duas situações me fizeram refletir um pouco sobre algumas práticas ágeis e como elas são importantes para o sucesso do sistema. Uma delas, definida como &lt;b&gt;Cliente Presente&lt;/b&gt; (do original em inglês &lt;a href="http://www.extremeprogramming.org/rules/customer.html"&gt;&lt;i&gt;On-site Costumer&lt;/i&gt;&lt;/a&gt;) e preza que todos os colaboradores de um projeto devem sentar juntos, formando &lt;b&gt;um&lt;/b&gt; time. Com isso, absolutamente todos são contribuintes em uma equipe ágil. Vale para equipe técnica e para clientes. Principalmente para o segundo grupo, essa atuação vale em qualquer ponto onde a possam exercer, como na definição de prioridades e/ou criação de testes. Assim, acaba acontecendo que cada um dos papéis possíveis não seja necessariamente propriedade exclusiva de um indivíduo.&lt;br /&gt;&lt;br /&gt;Aqui no &lt;a href="http://www.elsa.org.br/"&gt;ELSA&lt;/a&gt;, essa prática  é bastante real e fácil de ser observada. Temos uma equipe epidemiológica perto e sempre presente nas definições, análises e testes, facilitando muito o trabalho da equipe de desenvolvimento. Sendo a estrutura organizacional do projeto construída sobre um modelo de colegiado, possuir pessoas capacitadas a garantir o papel de &lt;i&gt;Product Owner&lt;/i&gt; geograficamente vizinhas às atividades de análise, programação e testes é fundamental. No caso específico dos releases, seus testes de aceitação, complementares aos testes feitos pela equipe durante o desenvolvimento, nos garantem o sucesso das novas versões do sistema que são visíveis aos outros centros do estudo.&lt;br /&gt;&lt;br /&gt;É bom saber que aqui estamos mais de acordo com o paraninfo. Se todos os membros da equipe querem o sucesso do mesmo software, a quem serve criar inimizades no grupo?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/116339063138100750-108888202264279374?l=desenvolvimentoelsa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvimentoelsa.blogspot.com/feeds/108888202264279374/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/08/cliente-presente.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/108888202264279374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/116339063138100750/posts/default/108888202264279374'/><link rel='alternate' type='text/html' href='http://desenvolvimentoelsa.blogspot.com/2009/08/cliente-presente.html' title='Cliente Presente'/><author><name>Émerson Hernandez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Fix7TetF6VY/So1X7MkjfmI/AAAAAAAAAAM/LoYoDU9Tncw/S220/facebook.jpg'/></author><thr:total>0</thr:total></entry></feed>
