<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="weebly" -->
<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/" >

<channel><title><![CDATA[sysVIBE - Blog]]></title><link><![CDATA[http://www.sysvibe.com/blog.html]]></link><description><![CDATA[Blog]]></description><pubDate>Wed, 31 Dec 2008 21:02:01 +0700</pubDate><generator>Weebly</generator><item><title><![CDATA[CFC para cálculo geodésico 2]]></title><link><![CDATA[http://www.sysvibe.com/1/post/2008/10/cfc-para-clculo-geodsico-2.html]]></link><comments><![CDATA[http://www.sysvibe.com/1/post/2008/10/cfc-para-clculo-geodsico-2.html#comments]]></comments><pubDate>Mon, 13 Oct 2008 09:44:46 +0700</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://www.sysvibe.com/1/post/2008/10/cfc-para-clculo-geodsico-2.html</guid><description><![CDATA[Acabei de subir uma vers&atilde;o atualizada (com algumas corre&ccedil;&otilde;es e melhorias) do CFC para c&aacute;lculo geod&eacute;sico; enjoy! [...] ]]></description><content:encoded><![CDATA[<p  style=" text-align: left; ">Acabei de subir uma vers&atilde;o atualizada (com algumas corre&ccedil;&otilde;es e melhorias) do CFC para c&aacute;lculo geod&eacute;sico; <a href="http://www.sysvibe.com/cf-phpci.html">enjoy</a>!<br /></p>]]></content:encoded></item><item><title><![CDATA[Going to PHP]]></title><link><![CDATA[http://www.sysvibe.com/1/post/2008/09/going-to-php.html]]></link><comments><![CDATA[http://www.sysvibe.com/1/post/2008/09/going-to-php.html#comments]]></comments><pubDate>Tue, 30 Sep 2008 00:21:36 +0700</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://www.sysvibe.com/1/post/2008/09/going-to-php.html</guid><description><![CDATA[N&atilde;o faz muito tempo, o PHP sempre me despertou uma certa curiosidade em termos de desenvolvimento, n&atilde;o s&oacute; pelo fato de ser gratuito, mas tamb&eacute;m por ser mais popular do que o CF.Claro que toda essa vis&atilde;o um tanto po&eacute;tica tem um interesse pr&aacute;tico e descarado: se por um lado o ColdFusion se mostra uma &oacute;tima RAD para desenvolvimentos rel&acirc;mpagos, manuten&ccedil;&a [...] ]]></description><content:encoded><![CDATA[<p  style=" text-align: left; ">N&atilde;o faz muito tempo, o <a href="http://www.php.net">PHP</a> sempre me despertou uma certa curiosidade em termos de desenvolvimento, n&atilde;o s&oacute; pelo fato de ser gratuito, mas tamb&eacute;m por ser mais popular do que o CF.<br /><br />Claro que toda essa vis&atilde;o um tanto po&eacute;tica tem um interesse pr&aacute;tico e descarado: se por um lado o ColdFusion se mostra uma &oacute;tima RAD para desenvolvimentos rel&acirc;mpagos, manuten&ccedil;&atilde;o pr&aacute;tica e f&aacute;cil, sem maiores estripulias com compila&ccedil;&otilde;es, etc, por outro, ele acaba sendo caro demais para alguns poucos clientes; da&iacute; a sa&iacute;da de sempre ter uma segunda carta na manga; carta esta que no m&iacute;nimo seja compat&iacute;vel com o CF em termos de tempo de desenvolvimento/implementa&ccedil;&atilde;o e com um plus a mais: que n&atilde;o seja cara. Entretanto, para este &uacute;ltimo par&aacute;grafo, o PHP at&eacute; pouco tempo atr&aacute;s, se mostrava muito chato, demorado e complicado demais em certas ocasi&otilde;es, sobretudo por suas peculiaridades em rela&ccedil;&atilde;o &agrave; sintaxe, estrutura de c&oacute;digo, etc; mas como tudo na vida tende a melhorar e a inovar (CF 8 que o diga), o danado do PHP acabou encontrando outras vias para me conquistar: trata-se do <a href="http://codeigniter.com/">CodeIginiter</a>.<br /><br />Para quem n&atilde;o sabe o CI, como &eacute; conhecido para os &iacute;ntimos, &eacute; um framework open source, muito bem feito e estruturado para o desenvolvimento em PHP,ao mais famoso estilo MVC,  patrocinado pela n&atilde;o t&atilde;o conhecida <a href="http://ellislab.com/">ellisLab</a>; ele possui um core bastante poderoso de classes, tornando f&aacute;cil a automatiza&ccedil;&atilde;o de tarefas &oacute;bvias e particularmente chatas: conex&atilde;o com banco de dados, trace/dump de a&ccedil;&otilde;es de back-end, entre outras coisitas mais, sendo poss&iacute;vel inclusive, extender suas funcionalidades atrav&eacute;s de plugins e do desenvolvimento de suas pr&oacute;prias classes; ele lembra um pouco os conceitos do <a href="http://www.cfwheels.com/">CF on Wheels</a> em termos de implementa&ccedil;&atilde;o, o que ajudou bastante para assimilar muita coisa; diria que o CI est&aacute; para o PHP como o CF est&aacute; para o JAVA, mas de uma maneira bem mais transparente e compreens&iacute;vel, pelo menos para mim. E para n&atilde;o achar que tou puxando muita sardinha para o garoto, vale lembrar que o CI foi capaz at&eacute; mesmo de arrancar elogios do pr&oacute;prio criador do PHP: "because it is faster, lighter and the least like a framework", segundo palavras do pr&oacute;prio Rasmus Lerdorf, numa recente confer&ecirc;ncia.<br /><br />Novidades s&atilde;o sempre bem-vindas e devo confessar que as tags do CF estavam manjadas demais, e que eu precisava mudar um pouco a linha de codifica&ccedil;&atilde;o: tags, no more... (rsrsrsr, brincadeirinha, pessoal). A grande verdade &eacute; que no final das contas acabei alterando meu veredicto final para a escolha da minha segunda cartada, e que inclusive estou fazendo uso em um dos meus projetos; &eacute; esperar pra ver como vai ficar.<br /></p>]]></content:encoded></item><item><title><![CDATA[OOP é fácil...]]></title><link><![CDATA[http://www.sysvibe.com/1/post/2008/08/oopfcil.html]]></link><comments><![CDATA[http://www.sysvibe.com/1/post/2008/08/oopfcil.html#comments]]></comments><pubDate>Sun, 10 Aug 2008 10:00:04 +0700</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://www.sysvibe.com/1/post/2008/08/oopfcil.html</guid><description><![CDATA[... para quem n&atilde;o come&ccedil;a de maneira f&aacute;cil.Se n&atilde;o fosse pelo fato de ter come&ccedil;ado a programar em ColdFusion, diria que ao longo da minha jornada no mundo da programa&ccedil;&atilde;o, eu teria quebrado menos &agrave; cabe&ccedil;a para assimilar alguns paradigmas do desenvolvimento de software;&nbsp; e neste tocante, nem me apego &agrave; quest&atilde;o da curva de aprendizado ser muito curta, mas sim, ao  fato do CF s [...] ]]></description><content:encoded><![CDATA[<p  style=" text-align: left; ">... para quem n&atilde;o come&ccedil;a de maneira f&aacute;cil.<br /><br />Se n&atilde;o fosse pelo fato de ter come&ccedil;ado a programar em ColdFusion, diria que ao longo da minha jornada no mundo da programa&ccedil;&atilde;o, eu teria quebrado menos &agrave; cabe&ccedil;a para assimilar alguns paradigmas do desenvolvimento de software;&nbsp; e neste tocante, nem me apego &agrave; quest&atilde;o da curva de aprendizado ser muito curta, mas sim, ao  fato do CF ser baseado em tags, o que foge &agrave; regra da maioria das linguagens para web e o que de certa forma, acabou deixando os rec&eacute;m desenvolvedores confusos sobre uma s&eacute;rie de conceitos importantes. <br /><br />Orienta&ccedil;&atilde;o &agrave; objetos, conceitos de acesso/leitura, de conex&atilde;o OPEN/CLOSE, s&atilde;o alguns dos exemplos que o CF por ser t&atilde;o "f&aacute;cil", acabou meio que emburrando as pessoas em rela&ccedil;&atilde;o &agrave; eles.<br /> <br />Para sintetizar de maneira mais completa o que quero dizer, vale a leitura do post do Rodrigo Urubatan, que sem muita hipocresia desmascara a grande verdade para a maioria das pessoas que como eu, de uma maneira ou de outra come&ccedil;aram com linguagens f&aacute;ceis, e tivemos que assimilar o conceito de OOP: nos ferramos!<br /><br /><a href="http://www.urubatan.com.br/orientacao-a-objetos-e-facil-as-pessoas-e-que-complicam/">Orienta&ccedil;&atilde;o a objetos &eacute; f&aacute;cil, as pessoas &eacute; que complicam</a><br /></p>]]></content:encoded></item><item><title><![CDATA[ROWNUM do Oracle]]></title><link><![CDATA[http://www.sysvibe.com/1/post/2008/07/rownum-do-oracle.html]]></link><comments><![CDATA[http://www.sysvibe.com/1/post/2008/07/rownum-do-oracle.html#comments]]></comments><pubDate>Sun, 27 Jul 2008 20:15:26 +0700</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://www.sysvibe.com/1/post/2008/07/rownum-do-oracle.html</guid><description><![CDATA[Dica r&aacute;pida: ao contr&aacute;rio do que muita gente imagina, a cl&aacute;usula rownum do oracle - geralmente utilizada para limitar a quantidade de registros que uma query pode trazer - n&atilde;o funciona corretamente caso voc&ecirc; considere a hip&oacute;tese de que o atributo ROWNUM &eacute; uma propriedade da tabela. Para ficar mais f&aacute;cil o entendimento, imagine a seguinte query: select *  [...] ]]></description><content:encoded><![CDATA[<p  style=" text-align: left; ">Dica r&aacute;pida: ao contr&aacute;rio do que muita gente imagina, a cl&aacute;usula rownum do oracle - geralmente utilizada para limitar a quantidade de registros que uma query pode trazer - n&atilde;o funciona corretamente caso voc&ecirc; considere a hip&oacute;tese de que o atributo ROWNUM &eacute; uma propriedade da tabela.<br /><br /> Para ficar mais f&aacute;cil o entendimento, imagine a seguinte query:<br /><br /><span style="font-weight: bold;"> select * </span><span style="font-weight: bold;">  from &lt;tabela&gt; </span><span style="font-weight: bold;"> where ROWNUM </span><span style="font-weight: bold;">&gt; 1</span><span style="font-weight: bold;">;<br /><br /></span> Caso voc&ecirc; execute essa query, ver&aacute; que registro nenhum ser&aacute; trazido; isso porque, a pseudo coluna ROWNUM somente passa a existir, depois do resultSet retornar do banco; neste caso, se a a inten&ccedil;&atilde;o &eacute; limitar os itens de um determinado select, considerando algum tipo de ordena&ccedil;&atilde;o a forma correta do select acima seria, no caso de limitar os resultados em apenas 5 itens seria este:<br /><br /><span style="font-weight: bold;"> select *</span><span style="font-weight: bold;">from (select * from &lt;tabela&gt; order by sal desc) </span><span style="font-weight: bold;">where ROWNUM &lt;= 5;</span><br /><br />Como se pode ver, primeiro &eacute; necess&aacute;rio trazer os registro do banco (obter o resultsSet), para que&nbsp; depois disso, se possa limitar a quantidade de linhas, atrav&eacute;s do ROWNUM.<br /><br />Uma &oacute;tima documenta&ccedil;&atilde;o para aprofundar o entendimento desse e de outros tipos de abordagens do ROWNUM, voc&ecirc; pode conferir em: <a href="http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html">http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html</a><br /> </p>]]></content:encoded></item><item><title><![CDATA[cfdocument e o erro "The document has no pages." ]]></title><link><![CDATA[http://www.sysvibe.com/1/post/2008/07/cfdocumento-erro-the-document-has-no-pages.html]]></link><comments><![CDATA[http://www.sysvibe.com/1/post/2008/07/cfdocumento-erro-the-document-has-no-pages.html#comments]]></comments><pubDate>Sat, 19 Jul 2008 20:29:13 +0700</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://www.sysvibe.com/1/post/2008/07/cfdocumento-erro-the-document-has-no-pages.html</guid><description><![CDATA[O Adobe ColdFusion a partir da vers&atilde;o 7, passou a ter a capacidade de gerar documentos PDF e FlashPaper de maneira "on the fly", tornando uma tarefa que antigamente era trabalhosa e chata (algu&eacute;m lembra da custom CF_PDF? argh?!..) em algo simples na hora de gerar tais documentos.A tal facilidade passou a ser um problema dia desses, quando implementei em um dos meus clientes a fun&ccedil;&atilde;o de gera&ccedil;&atilde;o em formato PDF de [...] ]]></description><content:encoded><![CDATA[<p  style=" text-align: left; ">O Adobe ColdFusion a partir da vers&atilde;o 7, passou a ter a capacidade de gerar documentos PDF e FlashPaper de maneira "on the fly", tornando uma tarefa que antigamente era trabalhosa e chata (algu&eacute;m lembra da custom CF_PDF? argh?!..) em algo simples na hora de gerar tais documentos.<br /><br />A tal facilidade passou a ser um problema dia desses, quando implementei em um dos meus clientes a fun&ccedil;&atilde;o de gera&ccedil;&atilde;o em formato PDF de documentos, para padronizar a impress&atilde;o; pois bem, ocorre que por motivos de log dos arquivos que eram gerados, ficou definido que os mesmos, seriam salvos fisicamente no servidor, para que posteriormente fossem anexados e enviados por email; a inten&ccedil;&atilde;o de salvar localmente os arquivos era t&atilde;o somente por conta do envio desse log por e-mail; tanto, que na configura&ccedil;&atilde;o da gera&ccedil;&atilde;o do arquivo .pdf, defini um valor padr&atilde;o para o nome do arquivo, que seria substitu&iacute;do em request futuros, caso o arquivo j&aacute; existisse. <br />O mecanismo at&eacute; que funcionou perfeitamente por alguns dias, at&eacute; que outros usu&aacute;rios, come&ccedil;aram &agrave; fazer uso da fun&ccedil;&atilde;o, causando repentinamente em hor&aacute;rios de pico de uso do sistema, uma lentid&atilde;o consider&aacute;vel do application server e um erro estranho na tentativa de gera&ccedil;&atilde;o do documento:<br /><br /><span style="font-style: italic;">ExceptionConverter: java.io.IOException: The document has no pages.</span><span style="font-style: italic;">&nbsp;at com.lowagie.text.pdf.PdfPages.writePageTree(Unknown Source)</span><span style="font-style: italic;">&nbsp;at com.lowagie.text.pdf.PdfWriter.close(Unknown Source)</span><span style="font-style: italic;">&nbsp;at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)</span><span style="font-style: italic;">&nbsp;at com.lowagie.text.Document.close(Unknown Source)</span><span style="font-style: italic;">&nbsp;at coldfusion.tagext.lang.DocumentTag.doAfterBody(DocumentTag.java:1225)</span><span style="font-style: italic;">(...)</span><br /><br />Depois de tanto alterar c&oacute;digo, pensado que fosse algo ligado &agrave; performance da gera&ccedil;&atilde;o, ou at&eacute; algum poss&iacute;vel bug, com uma suposi&ccedil;&atilde;o com rela&ccedil;&atilde;o &agrave; escrita de arquivos em disco r&iacute;gido, a primeira linha (<span style="font-style: italic;">ExceptionConverter: java.io.IOException: The document has no pages.</span>) foi matadora para diagnoticar o que estava acontecendo: a condi&ccedil;&atilde;o de gravar o arquivo de log, sempre gerava o mesmo nome para o dito cujo: algo parecido com xyz.pdf. E era exatamente essa a condi&ccedil;&atilde;o err&ocirc;nea: deixar que dois usu&aacute;rios pudessem gerar um arquivo pdf com o mesmo nome em um mesmo diret&oacute;rio: erros de <span style="font-style: italic; font-weight: bold;">io</span> geralmente s&atilde;o derivados de situa&ccedil;&otilde;es de escrita ou leitura, e permitindo que usu&aacute;rios tivessem acesso &agrave; essa gera&ccedil;&atilde;o sem qualquer tipo de controle, fazia com que o erro fosse lan&ccedil;ado (o mecanismo de gera&ccedil;&atilde;o do PDF, simplesmente n&atilde;o conseguia criar dois documentos de forma simult&acirc;nea), e deixasse o app server lento (enquanto o request, n&atilde;o era abortado, o CF aguardava a libera&ccedil;&atilde;o de escrita).<br /><br />A dica para resolver o problema ficou por conta de alterar a condi&ccedil;&atilde;o de nomea&ccedil;&atilde;o dos arquivos para impedir esses tipos de acessos inv&aacute;lidos;<br /><br />Entretanto, a mensagem "The document has no pages." possui uma outra causa, por conta de problemas na resolu&ccedil;&atilde;o de DNS quando se referencia arquivos externos no documento tais como imagens, etc. Encontrei durante minha pesquisa para solu&ccedil;&atilde;o do problema, um <a href="http://www.bennadel.com/blog/266-CFDocument-Errors-And-Resolving-DNS.htm">post</a> que comenta em detalhes o motivo e a solu&ccedil;&atilde;o para este outro problema.<br /></p>]]></content:encoded></item><item><title><![CDATA[CFC para cálculo geodésico ]]></title><link><![CDATA[http://www.sysvibe.com/1/post/2008/07/cfc-para-clculo-geodsico.html]]></link><comments><![CDATA[http://www.sysvibe.com/1/post/2008/07/cfc-para-clculo-geodsico.html#comments]]></comments><pubDate>Sun, 13 Jul 2008 15:57:52 +0700</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://www.sysvibe.com/1/post/2008/07/cfc-para-clculo-geodsico.html</guid><description><![CDATA[Terminei recentemente a implementa&ccedil;&atilde;o de um componente em ColdFusion para calcular a dist&acirc;ncia entre dois pontos, dados a latitude a longitude de ambos; para evitar que voc&ecirc; passe pelo caminho das pedras para encontrar o c&aacute;lculo, segue o fonte para downlod...Desde j&aacute; cr&iacute;ticas e sugest&otilde;es de novas implementa&ccedil;&otilde;es s&atilde;o bem vindas!Enjoy! [...] ]]></description><content:encoded><![CDATA[<p  style=" text-align: left; ">Terminei recentemente a implementa&ccedil;&atilde;o de um componente em ColdFusion para calcular a dist&acirc;ncia entre dois pontos, dados a latitude a longitude de ambos; para evitar que voc&ecirc; passe pelo caminho das pedras para encontrar o c&aacute;lculo, segue o fonte para downlod...<br />Desde j&aacute; cr&iacute;ticas e sugest&otilde;es de novas implementa&ccedil;&otilde;es s&atilde;o bem vindas!<br />Enjoy!<br /></p><div ><a href="/uploads/3/7/2/2/37229/geodesico.zip"><img src="http://www.weebly.com/weebly/images/file_icons/gz.png" style="float: left; position: relative; left: 0px; top: 0px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; border: 0;" /></a><div style="float: left; width: 200px; text-align: left; position: relative;"><table style="font-size: 12px; font-family: tahoma; line-height: .9;"><tr><td colspan="2"><b> geodesico.zip</b></td></tr><tr><td>File Size:  </td><td>1 kb</td></tr><tr><td>File Type:  </td><td> zip</td></tr></table><a href="/uploads/3/7/2/2/37229/geodesico.zip" style="font-weight: bold;">Download File</a></div><hr style="clear: both; width: 100%; visibility: hidden"></hr></div>]]></content:encoded></item><item><title><![CDATA[Artigos e dicas de CF]]></title><link><![CDATA[http://www.sysvibe.com/1/post/2008/07/artigos-e-dicas-de-cf.html]]></link><comments><![CDATA[http://www.sysvibe.com/1/post/2008/07/artigos-e-dicas-de-cf.html#comments]]></comments><pubDate>Thu, 10 Jul 2008 06:52:11 +0700</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://www.sysvibe.com/1/post/2008/07/artigos-e-dicas-de-cf.html</guid><description><![CDATA[Para quem se lembra dos v&aacute;rios outros blogs por onde j&aacute; passei, cheguei &agrave; escrever alguns artigos em forma de tutorial para o pessoal novo que est&aacute; chegando, ou que por algum motivo tem curiosidades de conhecer alguns meandros do Adobe ColdFusion, enquanto application server.Fiz uma cole&ccedil;&atilde;o desses artigos em uma sess&atil [...] ]]></description><content:encoded><![CDATA[<p  style=" text-align: left; ">Para quem se lembra dos v&aacute;rios outros blogs por onde j&aacute; passei, cheguei &agrave; escrever alguns artigos em forma de tutorial para o pessoal novo que est&aacute; chegando, ou que por algum motivo tem curiosidades de conhecer alguns meandros do Adobe ColdFusion, enquanto application server.<br /><br />Fiz uma cole&ccedil;&atilde;o desses artigos em uma <a href="http://www.sysvibe.com/coldfusion.html"><span style="text-decoration: underline;">sess&atilde;o espec&iacute;fica</span></a><a href="/"></a> aqui no site da VIBE, s&oacute; para isso; para galera que j&aacute; leu, vale como consulta/refer&ecirc;ncia e para os novatos, vale a pena a leitura.<br /></p>]]></content:encoded></item><item><title><![CDATA[de volta, galera!!!!]]></title><link><![CDATA[http://www.sysvibe.com/1/post/2008/07/first-post.html]]></link><comments><![CDATA[http://www.sysvibe.com/1/post/2008/07/first-post.html#comments]]></comments><pubDate>Tue, 08 Jul 2008 01:45:19 +0700</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://www.sysvibe.com/1/post/2008/07/first-post.html</guid><description><![CDATA[Faaaaaaaaaaaaaaaaaaaaaala galera!Pela vig&eacute;sima oitava vez, aqui estou retornando ao mundinho da blogsfera para compartilhar minhas revoltas, descobertas e d&uacute;vidas com voc&ecirc;s; ap&oacute;s uma longa pausa, aos poucos as coisas est&atilde;o voltando &agrave; normalidade da n&atilde;o fren&eacute;tica&nbsp; correria.T&atilde;o logo termine de organizar as coisas, volto &agrave; trocar id&eacute;ia com voc&ecirc;s. [...] ]]></description><content:encoded><![CDATA[<p  style=" text-align: left; ">Faaaaaaaaaaaaaaaaaaaaaala galera!<br />Pela vig&eacute;sima oitava vez, aqui estou retornando ao mundinho da blogsfera para compartilhar minhas revoltas, descobertas e d&uacute;vidas com voc&ecirc;s; ap&oacute;s uma longa pausa, aos poucos as coisas est&atilde;o voltando &agrave; normalidade da n&atilde;o fren&eacute;tica&nbsp; correria.<br /><br />T&atilde;o logo termine de organizar as coisas, volto &agrave; trocar id&eacute;ia com voc&ecirc;s.<br /><br /></p>]]></content:encoded></item></channel></rss>
