<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Erick Sasse &#187; Delphi</title>
	<atom:link href="http://www.ericksasse.com.br/category/delphi/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ericksasse.com.br</link>
	<description>Desenvolvimento de software, tecnologia e afins.</description>
	<lastBuildDate>Wed, 25 Jan 2012 02:30:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Presidente da Embarcadero do Brasil no TPodcast</title>
		<link>http://www.ericksasse.com.br/presidente-da-embarcadero-do-brasil-no-tpodcast/</link>
		<comments>http://www.ericksasse.com.br/presidente-da-embarcadero-do-brasil-no-tpodcast/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 23:45:39 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1330</guid>
		<description><![CDATA[Inicialmente a idéia era ter o Kelver Merlotti, gerente de treinamento da Embarcadero, como convidado para o TPodcast, mas depois de tantas perguntas não relacionadas a treinamento, o presidente da Embarcadero, José Eugênio Braga, se interessou em participar, para poder responder de forma mais abrangente as questões dos desenvolvedores brasileiros. A gravação que estava agendada <a href="http://www.ericksasse.com.br/presidente-da-embarcadero-do-brasil-no-tpodcast/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Inicialmente a idéia era ter o Kelver Merlotti, gerente de treinamento da Embarcadero, como convidado para o TPodcast, mas depois de <a href="http://goo.gl/mod/KnsK" target="_blank">tantas perguntas</a> não relacionadas a treinamento, o presidente da Embarcadero, José Eugênio Braga, se interessou em participar, para poder responder de forma mais abrangente as questões dos desenvolvedores brasileiros.</p>
<p>A gravação que estava agendada para ontem, foi adiada para 05/12. Portanto, continuem contribuindo com as perguntas no <a href="http://goo.gl/mod/KnsK" target="_blank">Google Moderator</a>. Vamos selecionar as mais votadas até 30/11 para poder enviar a eles com antecedência.</p>
<p>Acho que é uma boa oportunidade de ouvir os planos da Embarcadero no Brasil, fazer reclamações, dar feedback, elogiar, etc. Participem!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/presidente-da-embarcadero-do-brasil-no-tpodcast/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Kelver Merlotti da Embarcadero no próximo TPodcast</title>
		<link>http://www.ericksasse.com.br/kelver-merlotti-da-embarcadero-no-proximo-tpodcast/</link>
		<comments>http://www.ericksasse.com.br/kelver-merlotti-da-embarcadero-no-proximo-tpodcast/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 14:19:37 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1326</guid>
		<description><![CDATA[No próximo episódio do TPodcast nosso convidado será o Kelver Merlotti, gerente de treinamento da Embarcadero do Brasil. Ajude a escolher as perguntas que faremos a ele através do Google Moderator. Envie suas perguntas ou vote em perguntas existentes. As mais votadas serão utilizadas durante a gravação, que deve acontecer na próxima segunda, então não <a href="http://www.ericksasse.com.br/kelver-merlotti-da-embarcadero-no-proximo-tpodcast/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>No próximo episódio do <a title="TPodcast" href="http://www.ericksasse.com.br/tpodcast/">TPodcast</a> nosso convidado será o <a href="https://twitter.com/kmerlotti" target="_blank">Kelver Merlotti</a>, gerente de treinamento da Embarcadero do Brasil.</p>
<p>Ajude a escolher as perguntas que faremos a ele através do <a href="http://goo.gl/mod/KnsK" target="_blank">Google Moderator</a>.</p>
<p>Envie suas perguntas ou vote em perguntas existentes. As mais votadas serão utilizadas durante a gravação, que deve acontecer na próxima segunda, então não deixe de participar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/kelver-merlotti-da-embarcadero-no-proximo-tpodcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buscando comentários sobre drivers dbExpress do Delphi</title>
		<link>http://www.ericksasse.com.br/buscando-comentarios-sobre-drivers-dbexpress-do-delphi/</link>
		<comments>http://www.ericksasse.com.br/buscando-comentarios-sobre-drivers-dbexpress-do-delphi/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 20:56:38 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[dbx]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1291</guid>
		<description><![CDATA[Há anos venho utilizando drivers dbExpress de terceiros (DevArt) em meus aplicativos. O motivo é simples: sempre comprei Delphi Professional, que não traz drivers para Firebird e MSSQL. No Delphi XE2 fiz upgrade de todas as licenças para Enterprise, e esta versão já traz os drivers. Então estou considerando migrar dos drivers da DevArt para <a href="http://www.ericksasse.com.br/buscando-comentarios-sobre-drivers-dbexpress-do-delphi/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Há anos venho utilizando drivers dbExpress de terceiros (DevArt) em meus aplicativos. O motivo é simples: sempre comprei Delphi Professional, que não traz drivers para Firebird e MSSQL.</p>
<p>No Delphi XE2 fiz upgrade de todas as licenças para Enterprise, e esta versão já traz os drivers. Então estou considerando migrar dos drivers da DevArt para eles, e ter um produto de terceiro a menos para me preocupar.</p>
<p>Gostaria de saber de quem usa esses drivers se estão satisfeitos. Só preciso acessar Firebird 2.5+ e SQL Server 2005+. Agradeço qualquer comentário.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/buscando-comentarios-sobre-drivers-dbexpress-do-delphi/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Prova de Certificação Delphi Developer</title>
		<link>http://www.ericksasse.com.br/prova-de-certificacao-delphi-developer/</link>
		<comments>http://www.ericksasse.com.br/prova-de-certificacao-delphi-developer/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 10:38:01 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1260</guid>
		<description><![CDATA[Recentemente a Embarcadero ressuscitou o programa de certificação para desenvolvedores Delphi, conforme comentamos no episódio #03 do TPodcast.  São dois níveis, Delphi Developer e Delphi Master Developer. Junto com a volta do programa, ela presenteou todos os donos de Delphi registrado com um voucher para fazer a prova do primeiro nível, Delphi Developer, gratuitamente. Não tinha intenção <a href="http://www.ericksasse.com.br/prova-de-certificacao-delphi-developer/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recentemente a Embarcadero ressuscitou o <a href="http://www.embarcadero.com/certification" target="_blank">programa de certificação</a> para desenvolvedores Delphi, conforme comentamos no <a title="TPodcast #03 – Injeção de Dependência com Magno Machado" href="http://www.ericksasse.com.br/tpodcast-03-injecao-de-dependencia-com-magno-machado/" target="_blank">episódio #03</a> do TPodcast.  São dois níveis, Delphi Developer e Delphi Master Developer.</p>
<p>Junto com a volta do programa, ela presenteou todos os donos de Delphi registrado com um voucher para fazer a prova do primeiro nível, Delphi Developer, gratuitamente. Não tinha intenção em me certificar, mas já que era free, porque não experimentar?</p>
<p>São 60 questões de diversas categorias como fundamentos, tipos de dados, variáveis, procedures e functions, classes e objetos, interfaces, pacotes, gerenciamento de memória, banco de dados, etc. Você tem 60 minutos para responder todas.</p>
<p>Eu fiz em 30 minutos e acertei 58 de 60. Infelizmente não consegui descobrir quais errei.</p>
<p style="text-align: center;"><a href="http://www.ericksasse.com.br/wp-content/uploads/2011/08/370310725.png"><img class="size-full wp-image-1261 aligncenter" title="Certificação Delphi - 58 de 60" src="http://www.ericksasse.com.br/wp-content/uploads/2011/08/370310725.png" alt="" width="549" height="77" /></a><a href="http://www.ericksasse.com.br/wp-content/uploads/2011/08/370310741.png"><img class="aligncenter size-medium wp-image-1262" title="Certificação Delphi - Resultado por assunto" src="http://www.ericksasse.com.br/wp-content/uploads/2011/08/370310741-e1313490446840-300x239.png" alt="" width="300" height="239" /></a></p>
<p>A prova é fácil. Eu fui praticamente lendo, selecionando e pulando para a próxima. Em média gastei 30 segundos por questão. O conteúdo é algo que todo desenvolvedor Delphi realmente deveria saber sem pensar muito. Se esse era o objetivo da prova, acho que foi alcançado.</p>
<p>Ao final, se você for aprovado, tem direito a baixar um certificado em PDF de 9 MB assinado pelo David I:</p>
<p><a href="http://www.ericksasse.com.br/wp-content/uploads/2011/08/370322279.png"><img class="aligncenter size-medium wp-image-1263" title="Embarcadero Certificate of Excellence" src="http://www.ericksasse.com.br/wp-content/uploads/2011/08/370322279-300x221.png" alt="" width="300" height="221" /></a></p>
<p>&nbsp;</p>
<p>Conforme eu já comentei no TPodcast, se você é um desenvolvedor Delphi, eu acho que vale a pena investir nessa certificação. Eu certamente daria uma atenção especial ao currículo de um desenvolvedor certificado, só pelo fato de ele ter ido atrás, ter tido o interesse em fazer a prova, investido tempo nisso, etc. Master Developer certamente teria um peso bem maior, mas até esse primeiro certificado, já seria um bom diferencial.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/prova-de-certificacao-delphi-developer/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Prova do Google Developer Day em Delphi</title>
		<link>http://www.ericksasse.com.br/prova-do-google-developer-day-em-delphi/</link>
		<comments>http://www.ericksasse.com.br/prova-do-google-developer-day-em-delphi/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 11:11:28 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1247</guid>
		<description><![CDATA[Essa foi a primeira vez que decidi resolver a prova proposta pelo Google para quem quer participar do Google Developer Day. Basicamente você tinha que escrever código para ler e extrair informações de um texto. Palavras que tem tamanho X e começam com letras específicas, palavras que tem tamanho Y e não possuem determinada letra, <a href="http://www.ericksasse.com.br/prova-do-google-developer-day-em-delphi/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Essa foi a primeira vez que decidi resolver a prova proposta pelo Google para quem quer participar do <a href="http://www.google.com/events/developerday/2011/sao-paulo/" target="_blank">Google Developer Day</a>.</p>
<p>Basicamente você tinha que escrever código para ler e extrair informações de um texto. Palavras que tem tamanho X e começam com letras específicas, palavras que tem tamanho Y e não possuem determinada letra, converter palavras em números usando uma formula maluca deles, ordenar o texto usando uma ordem de alfabeto totalmente diferente do nosso. Coisas desse tipo.</p>
<p>O mais interessante é que eles deram dois textos, em um deles já informando as respostas e o outro é o que você tinha que usar para responder. Isso facilitou muito.</p>
<p>Decidi usar <a href="http://pt.wikipedia.org/wiki/Test_Driven_Development" target="_blank">TDD</a>. Criei <a href="https://bitbucket.org/esasse/gdd2011/src/tip/GooglonParser.pas" target="_blank">minha classe</a> para fazer a leitura do texto com os métodos e propriedades que ela precisaria expor para me informar as respostas e antes de codificar a classe, já escrevi os testes baseados nas respostas do texto A. Rodei os testes e obviamente todos falharam, a partir daí comecei a codificar para cada um dos testes passar. Depois dos testes passarem, fiz um segundo projeto com interface visual, permitindo que o usuário digitasse qualquer texto em &#8220;Googlon&#8221;, que seria automaticamente processado pelo meu parser.</p>
<p>O bom desse tipo de abordagem é que depois você pode refatorar o código sem medo, pois está protegido pelos testes. Se caso você quebre alguma coisa, vai saber imediatamente. Tanto que quando estava escrevendo esse post, percebi que eu tinha uma lista totalmente desnecessária na minha classe. <a href="https://bitbucket.org/esasse/gdd2011/changeset/8c2ebd2c9de8" target="_blank">Removi</a> e rodei os testes. Todos passaram, o que quer dizer que não quebrei nada. Não precisei sequer rodar o projeto com a interface visual para testar a mudança. Ou seja, além de tranquilidade, TDD te dá muito mais produtividade, pois você consegue alterar o código com muito mais rapidez.</p>
<p>As duas coisas que deram mais trabalho na solução do problema em Delphi foram:</p>
<ul>
<li>Ordenar a string usando um alfabeto ordenado de forma diferente do nosso. Eu tinha certeza que existia algum algoritmo testado e comprovado para isso, pois é algo que já deve ter sido feito milhões de vezes. Perdi tempo procurando. Por fim não encontrei e fiz o meu mesmo. Ele vai comparando letra por letra e quando a letra é igual, compara a próxima. Se não existir a próxima letra em uma das palavras, ela é menor.</li>
<li>Perceber que o Delphi estava silenciosamente informando valores inválidos quando estourava a capacidade do tipo Integer. Isso eu achei bem estranho, pois esperava que fosse levantada uma exception em caso de estourar o tipo. <del>Por algum motivo que ainda não descobri, o código que eu escrevi para converter a palavra para valor numérico não levanta nada, simplesmente informa o valor errado se você usar Integer.</del> O que acontece é que, não sei por qual motivo, o Delphi vem por padrão com &#8220;Range Checking&#8221; desativado (valeu <a href="http://twitter.com/cesarliws" target="_blank">Cesar</a>!). Ativando esta opção, o código quebra e você consegue perceber o problema imediatamente. Troquei para Int64 e resolveu.</li>
</ul>
<p>Enfim, levei duas ou três horas para resolver os problemas e acho que valeu o desafio. Principalmente para ficar ainda mais atento com as limitações dos tipos (como no caso do Integer) e o tal do Range Checking desativado por padrão.</p>
<p>Acho que vale a pena tentar resolver, principalmente porque a prova é diferente para cada um. Esse é o <a href="http://developerquiz.appspot.com/?lang=pt" target="_blank">link para a prova</a>, e você pode fazer mesmo que não pretenda participar do evento. Meu projeto completo está <a href="https://bitbucket.org/esasse/gdd2011/" target="_blank">aqui</a>, mas recomendo você fazer o seu antes de analisar o meu. Quem sabe você não tem idéias muito melhores?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/prova-do-google-developer-day-em-delphi/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Novidades do Delphi XE2</title>
		<link>http://www.ericksasse.com.br/novidades-do-delphi-xe2/</link>
		<comments>http://www.ericksasse.com.br/novidades-do-delphi-xe2/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 23:52:01 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1243</guid>
		<description><![CDATA[Algumas novidades da nova versão do Delphi foram anunciadas. As mais importantes na minha opinião são: Suporte a criar aplicativos nativos para Windows 64-bit. Suporte a criar aplicativos nativos para Mac OS. Novo framework visual FireMonkey, com suporte a aceleração 3D. LiveBindings, que vai permitir conectar qualquer elemento visual com qualquer tipo de dado. O <a href="http://www.ericksasse.com.br/novidades-do-delphi-xe2/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Algumas novidades da nova versão do Delphi foram anunciadas. As mais importantes na minha opinião são:</p>
<ul>
<li>Suporte a criar aplicativos nativos para Windows 64-bit.</li>
<li>Suporte a criar aplicativos nativos para Mac OS.</li>
<li>Novo framework visual FireMonkey, com suporte a aceleração 3D.</li>
<li>LiveBindings, que vai permitir conectar qualquer elemento visual com qualquer tipo de dado.</li>
</ul>
<p>O <a title="" href="http://www.embarcadero.com/world-tour" target="_self">RAD Studio XE2 World Tour</a> vai apresentar as novidades em mais de 30 países, incluindo obviamente o Brasil.</p>
<p>Também é possível <a href="http://forms.embarcadero.com/forms/RADStudioXE2WinBeforeYouBuyPromo">se inscrever em uma promoção</a> que vai sortear algumas cópias da ferramenta.</p>
<p>Minha opinião inicial, sem saber muito como cada recurso vai funcionar, é que são melhorias muito bem-vindas. Windows 64, LiveBindings e provavelmente até FireMonkey, já tenho onde aplicar. Mac OS acho que dificilmente me será útil, como <a title="Delphi no MacOS: Será que precisamos disso?" href="http://www.ericksasse.com.br/delphi-no-macos-sera-que-precisamos-disso/">já tinha comentado</a> anteriormente.</p>
<p>E vocês, o que acharam? Quais são as novidades mais importantes? Deixe seus comentários aqui no post ou mande um comentário gravado em audio por e-mail, para que possamos utilizar no próximo episódio do <a title="TPodcast" href="http://www.ericksasse.com.br/tpodcast/">TPodcast</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/novidades-do-delphi-xe2/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>PDF do Fast Report compat&#237;vel apenas com Windows</title>
		<link>http://www.ericksasse.com.br/pdf-do-fast-report-compatvel-apenas-com-windows/</link>
		<comments>http://www.ericksasse.com.br/pdf-do-fast-report-compatvel-apenas-com-windows/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 03:43:44 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Fast Report]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/pdf-do-fast-report-compatvel-apenas-com-windows/</guid>
		<description><![CDATA[O Fast Report é com certeza um dos principais gerenciadores de relatório usado pelos desenvolvedores Delphi. É também o que eu uso em meus sistemas. O formato PDF, que, pra quem não sabe, significa Portable Document Format, tem como seu principal objetivo ser um formato para troca de arquivos com “formatação rica”. Ou seja, quando <a href="http://www.ericksasse.com.br/pdf-do-fast-report-compatvel-apenas-com-windows/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://www.fast-report.com">Fast Report</a> é com certeza um dos principais gerenciadores de relatório usado pelos desenvolvedores Delphi. É também o que eu uso em meus sistemas.</p>
<p>O <a href="http://www.adobe.com/br/products/acrobat/adobepdf.html">formato PDF</a>, que, pra quem não sabe, significa Portable Document Format, tem como seu principal objetivo ser um formato para troca de arquivos com “formatação rica”. Ou seja, quando você usa este formato, o objetivo é saber que seu documento vai manter a aparência visual não importa em qual aplicativo ou plataforma ele for aberto.</p>
<p>Infelizmente, para nossa surpresa, descobrimos que não é bem assim. Pelo menos não com os PDF gerados pelo Fast Report.</p>
<p>Alguns dias atrás um cliente entrou em contato nos reportando que um relatório gerado em PDF pelo nosso sistema não estava sendo visualizado corretamente no MacBook. Como eu mesmo tenho um MacBook, fui testar e confirmei o problema. Realmente os textos em negrito e as imagens do relatório simplesmente não apareciam no leitor nativo do Mac OS X. </p>
<p>Mais um pouco de testes e percebi que o problema não era exclusivo do Mac OS, mas também acontecia no iOS (iPad/iPhone/iPod) e no Android. Ou seja, só funcionava corretamente mesmo no Windows.</p>
<p>Apesar do Windows ser ainda a plataforma dominante, a cada dia temos mais usuários nas outras plataformas. Principalmente iOS com com iPad/iPhone e Android, com uma infinidade de aparelhos rodando esse sistema. Por isso não era um problema que poderia ser tratado com pouca importância.</p>
<p>Entramos em contato com o suporte do Fast Report e a primeira resposta que obtivemos foi de que teríamos que embutir as fontes no PDF. Fizemos o que nos pediram e o PDF subiu de 40K para 900K. Isso para um simples relatório de uma página com bem pouco texto. Fizemos testes com PDF gerados por outros aplicativos, usando a mesma fonte do nosso relatório (Arial) e em todos os casos os PDF funcionavam perfeitamente nas outras plataformas sem embutir a fonte. Ou seja, alguma coisa estava errada com o PDF do Fast Report.</p>
<p>Pressionamos mais um pouco o suporte do Fast Report e obtivemos a seguinte resposta:</p>
<blockquote><p>…you should also understand that pdf is not a simple format and only its more complicated version is really portable. At the moment our pdf produces documents targeted for Windows. We are making steps towards more portability, for example we are developing pdf/a version of the export, but I can&#8217;t estimate when really portable pdf export is ready.</p>
</blockquote>
<p>Ou seja, os PDFs gerados pelo FR são para Windows apenas e eles não sabem quando uma versão realmente portável estará disponível.</p>
<p>Nós obviamente já estamos procurando outras soluções. Infelizmente temos muitos relatórios em Fast Report, e mesmo diante desse absurdo, por mais que eu gostaria, inicialmente não estamos pensando em trocar de componente de relatório, mas apenas achar uma solução melhor para gerar os PDFs.</p>
<p>Portanto se você usa ou está pensando em usar Fast Report, fique atento com esse detalhe, que na minha opinião, é uma falha monstruosa do componente. Principalmente por saberem disso e não alertarem os clientes, simplesmente divulgando que geram os relatórios em PDF, sem especificar que é um PDF bizarro que vai de encontro ao principal motivo pelo qual o formato foi criado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/pdf-do-fast-report-compatvel-apenas-com-windows/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Padrão Publish/Subscribe em Delphi</title>
		<link>http://www.ericksasse.com.br/padrao-publishsubscribe-em-delphi/</link>
		<comments>http://www.ericksasse.com.br/padrao-publishsubscribe-em-delphi/#comments</comments>
		<pubDate>Tue, 03 May 2011 00:32:55 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1164</guid>
		<description><![CDATA[Imagine que você tem o cadastro do mesmo cliente aberto em várias janelas usando datasets diferentes. Ao atualizar um deles, você quer disparar um refresh nos outros. Um dos padrões que resolvem esse problema é o Publish/Subscribe. Ele permite que objetos interessados em uma mensagem, &#8220;assinem&#8221; notificações, de forma a serem avisados sempre que essa <a href="http://www.ericksasse.com.br/padrao-publishsubscribe-em-delphi/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Imagine que você tem o cadastro do mesmo cliente aberto em várias janelas usando datasets diferentes. Ao atualizar um deles, você quer disparar um refresh nos outros.</p>
<p>Um dos padrões que resolvem esse problema é o <a href="http://en.wikipedia.org/wiki/Publish/subscribe">Publish/Subscribe</a>. Ele permite que objetos interessados em uma mensagem, &#8220;assinem&#8221; notificações, de forma a serem avisados sempre que essa mensagem for disparada. A grande vantagem desse padrão é o desacoplamento, pois quem assina não necessariamente precisa conhecer quem publica e vice-versa.</p>
<p>Para utilizar esse padrão nos meus sistemas, implementei o <a href="https://bitbucket.org/esasse/notificationservice">NotificationService</a>.</p>
<p>Quando um objeto deseja ser notificado sobre um assunto, ele faz uma assinatura, passando o ID da mensagem que está interessado:</p>
<pre lang="delphi">GetNotificationService.Subscribe(MetodoASerExecutado, MsgUmClienteFoiAtualizado);</pre>
<p>Onde MetodoASerExecutado é um TNotifyEvent, que já estamos carecas de usar no dia a dia em todos os componentes do Delphi. Ele será executado sempre que a mensagem MsgUmClienteFoiAtualizado for disparada por outro objeto.</p>
<p>Para enviar a mensagem a todos os interessados, também é muito simples, bastando o objeto que está gerando a mensagem chamar:</p>
<pre lang="delphil">GetNotificationService.SendMessage(Self, MsgUmClienteFoiAtualizado);</pre>
<p>Nesse caso, ele passa um objeto como sender, que não necessariamente precisa ser ele mesmo (Self), e o ID da mensagem (MsgUmClienteFoiAtualizado). Feito isso, o NotificationService vai varrer a lista de assinantes, identificar quem está interessado nessa mensagem e disparar todos os métodos passando o mesmo sender.</p>
<p>Quando o objeto interessado na mensagem for destruído ou não desejar mais receber as notificações, basta cancelar a assinatura, chamando:</p>
<pre lang="delphi">GetNotificationService.UnSubscribe(MetodoASerExecutado);</pre>
<p>Bem simples de usar e muito útil para resolver alguns problemas no dia a dia de desenvolvimento. O código fonte inclui um demo com mais detalhes.</p>
<p>O projeto está hospedado no BitBucket. Se quiser baixar os fontes, instale o <a href="http://mercurial.selenic.com/">Mercurial</a> na sua máquina, abra uma linha de comando e digite:</p>
<pre lang="dos">hg clone https://bitbucket.org/esasse/notificationservice</pre>
<p>Um dos motivos em publicar esse projeto foi para conhecer os recursos do BitBucket e do Mercurial como DVCS. Por isso, se tiver alguma sugestão de melhoria no código ou simplesmente quiser fazer uma versão diferenciada, <a href="http://confluence.atlassian.com/display/BITBUCKET/Overview+-+Working+on+a+Copy+of+a+Bitbucket+Repository">faça um fork do projeto</a> no próprio BitBucket e fique a vontade!</p>
<p>Para mais informações sobre esses recursos de compartilhamento de código usando BitBucket e Mercurial, veja <a title="Social Coding e DVCS" href="http://www.ericksasse.com.br/social-coding-e-dvcs/">meu post anterior</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/padrao-publishsubscribe-em-delphi/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Usando Beyond Compare Lite do Delphi XE no TortoiseSVN</title>
		<link>http://www.ericksasse.com.br/usando-beyond-compare-lite-do-delphi-xe-no-tortoisesvn/</link>
		<comments>http://www.ericksasse.com.br/usando-beyond-compare-lite-do-delphi-xe-no-tortoisesvn/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 20:59:01 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1124</guid>
		<description><![CDATA[Há um bom tempo eu tenho usado a própria ferramenta de diff que acompanha o TortoiseSVN e estou satisfeito. Mas hoje lembrei que no Delphi XE você recebe a versão Lite do Beyond Compare e decidi testar. Como não uso a integração da IDE com o SVN, decidi trocar no Tortoise. Basta ir em Settings, <a href="http://www.ericksasse.com.br/usando-beyond-compare-lite-do-delphi-xe-no-tortoisesvn/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Há um bom tempo eu tenho usado a própria ferramenta de diff que acompanha o TortoiseSVN e estou satisfeito.</p>
<p>Mas hoje lembrei que no Delphi XE você recebe a versão Lite do Beyond Compare e decidi testar. Como não uso a integração da IDE com o SVN, decidi trocar no Tortoise.</p>
<p>Basta ir em Settings, External Programs, Diff Viewer, setar para External e colocar a linha de comando abaixo fazendo os devidos ajustes para a pasta onde você tem o Delphi XE instalado:</p>
<p><code>C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\BCompareLite.exe %base %mine /title1=%bname /title2=%yname /leftreadonly</code></p>
<p><a href="http://www.ericksasse.com.br/wp-content/uploads/2011/01/TortoiseDiff.jpg"><img class="size-full wp-image-1125 alignnone" title="TortoiseDiff" src="http://www.ericksasse.com.br/wp-content/uploads/2011/01/TortoiseDiff.jpg" alt="" width="699" height="464" /></a></p>
<p>Não sei se dá pra usar para Merge também, isso vou deixar para ver depois, se gostar do diff dele.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/usando-beyond-compare-lite-do-delphi-xe-no-tortoisesvn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Delphi Conference 2010</title>
		<link>http://www.ericksasse.com.br/delphi-conference-2010/</link>
		<comments>http://www.ericksasse.com.br/delphi-conference-2010/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 16:02:14 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1082</guid>
		<description><![CDATA[Essa semana aconteceu em São Paulo a Delphi Conference 2010, evento gratuito realizado pela Embarcadero para apresentar novidades do Delphi e demais ferramentas da empresa. Eu já tinha participado ano passado e estive presente novamente este ano. As palestras durante o dia todo abordaram vários temas em diferentes níveis, exatamente como já se é esperado neste <a href="http://www.ericksasse.com.br/delphi-conference-2010/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Essa semana aconteceu em São Paulo a Delphi Conference 2010, evento gratuito realizado pela Embarcadero para apresentar novidades do Delphi e demais ferramentas da empresa. Eu já tinha participado ano passado e estive presente novamente este ano.</p>
<p>As palestras durante o dia todo abordaram vários temas em diferentes níveis, exatamente como já se é esperado neste tipo de evento, e acredito que são muito válidas para os desenvolvedores que não acompanham as novidades dia-a-dia pela Internet.</p>
<p>No meu caso como sempre estou lendo blogs, acompanhando eventos online, etc, normalmente não existe muita novidade para se ver e o que vale a pena em participar é poder encontrar os amigos, bater papo e trocar idéias com outros desenvolvedores.</p>
<p>Por ser um evento gratuito, torna-se ainda mais fácil de participar, e nesse ponto a Embarcadero está de parabéns. Eventos gratuitos são bem raros. Então se você é desenvolvedor Delphi é um evento que eu certamente recomendo a participação.</p>
<p>Quis comentar aqui para apoiar o evento, pois acho importante termos um evento como esse no Brasil e não queria deixar passar em branco. Para um review um pouco mais detalhado, vejam o que o Leonel Togniolli <a href="http://www.itweb.com.br/blogs/blog.asp?cod=181">publicou no ITWeb</a>.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/delphi-conference-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

