<?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-24628424</id><updated>2011-11-27T23:02:37.564-02:00</updated><category term='xargs'/><category term='load'/><category term='dump'/><category term='php'/><category term='svnadmin'/><category term='svn'/><category term='rm'/><category term='phpconf'/><category term='geoweb'/><category term='.svn'/><category term='spider'/><title type='text'>augustowebd</title><subtitle type='html'>espaço reservado ao debate de tecnologias empregadas na WEB, tais como, SGDB[MySQL, PostgreSQL, Access, etc], javascript, ajax, XML, Tablelss, Web Standards, etc.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-24628424.post-5272487083510350307</id><published>2011-01-30T13:55:00.000-02:00</published><updated>2011-01-30T13:55:38.736-02:00</updated><title type='text'>O NetBeans como alternativa ao eclipse PDT</title><content type='html'>&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Em um projeto que estou fazendo para &lt;a href="http://www.lavenere.adv.br/"&gt;Lavenere Advocacia&lt;/a&gt; sentir a necessidade de automatizar a criação de metodos '&lt;i&gt;getters/setters&lt;/i&gt;', mas até então usava o &lt;a href="http://www.eclipse.org/pdt/"&gt;Eclipse PDT&lt;/a&gt;, porém, a grande questão é que esta ferramenta é um esforço da comunidade em criar um plugin para Eclipse trabalhar com PHP. Sendo o PDT uma alterantiva ao&lt;a href="http://www.zend.com/en/products/studio/"&gt; Zend Studio&lt;/a&gt;, fica fácil notar que seus recursos são limitados apenas ao básico em se tratando de funcionalidades&amp;nbsp; para a edição PHP se &lt;a href="http://www.zend.com/en/products/studio/comparison"&gt;comparado&lt;/a&gt; a sua versão comercial, Zend Studio.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bom, entrei em contato com o &lt;a href="http://www.phpdf.org.br/"&gt;grupo PHP de discussão de Brasília&lt;/a&gt;, o qual faço parte, perguntando se alguém conhecia um plugin para que o PDT habilitasse o recurso de geração dos bendidos '&lt;i&gt;getters/setters&lt;/i&gt;', ajuda daqui, ajuda dalí até que o Pablo Sanches indicou um site, que levou a outro site que tinha algo parecido com o que precisava, thread abaixo, o Carlos indicou o &lt;a href="http://marketplace.eclipse.org/content/php-source-plugin"&gt;PHP Source Plugin&lt;/a&gt;. Já estava quase satisfeito quando resolvi perguntar a outro amigo (Uilson) se o &lt;a href="http://www.google.com.br/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CCMQFjAA&amp;amp;url=http%3A%2F%2Fwww.netbeans.org%2F&amp;amp;rct=j&amp;amp;q=netbens&amp;amp;ei=oIdFTeCHMIqcgQfb5OnwAQ&amp;amp;usg=AFQjCNGXEZrzV0QrmVNuy79PoebH7M4D7w&amp;amp;sig2=iBPlkbVgHZ_Ejr4BO4A9bw&amp;amp;cad=rja"&gt;NetBeans&lt;/a&gt; possuia tal recursos para PHP e pra minha grata surpresa o recurso é nativo para qualquer linguagem, incluindo PHP.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Assim, deste momento em diante meu editor padrão passou a ser o NetBens.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Netbeans use sem moderação!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-5272487083510350307?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/5272487083510350307/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=5272487083510350307' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/5272487083510350307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/5272487083510350307'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2011/01/o-netbeans-como-alternativa-ao-eclipse.html' title='O NetBeans como alternativa ao eclipse PDT'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-3823764451969310758</id><published>2010-09-10T15:51:00.002-03:00</published><updated>2011-03-09T20:52:41.982-03:00</updated><title type='text'>svn rollback</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;Devido a política de desenvolvimento da empresa em que trabalhei, Vox(www.voxtecnologia.com), alterações de códigos existente(correções de modo geral) só podem sem gravadas no “&lt;b&gt;branch&lt;/b&gt;” do projeto, porém,&amp;nbsp; aconteceu de algumas alterações ter sido gravadas no “&lt;b&gt;trunk&lt;/b&gt;” o que fatalmente acarretará em conflito no momento do “merge” entre o “brach” e “&lt;b&gt;trunk&lt;/b&gt;”.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;&lt;br /&gt;Em busca de um "&lt;b&gt;svn rollback&lt;/b&gt;" vi que a coisa não era tão simples quanto esperava, pois para executar esta tarefa é necessário efetuar, ao menos, dois passos:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;&lt;br /&gt;1: Obter as revisões afetadas pela(s) gravação(ões) que ser(ão) revertida(s)&lt;br /&gt;2:&amp;nbsp; e,&amp;nbsp; efetuar o rollback propriamente dito&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;Um terceiro passo, que na verdade seria um intermediário entre o 1º e o 2º passo, mas não obrigatório, seria a verificação dos arquivos afetados pela mudada.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;&lt;br /&gt;Para exemplificar vamos usar um repositório fictício “&lt;b&gt;foo&lt;/b&gt;” de endereço local &lt;b&gt;/var/svn/foo&lt;/b&gt;, ou se preferir, remove: &lt;b&gt;http://localhost/svn/foo&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;u&gt;passo-a-passo:&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;&lt;br /&gt;criando um copia de trabalho:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# svn co http://localhost/svn/foo/trunk&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;Entre na pasta criada pelo checkout cima: &lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# cd trunk&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;&lt;br /&gt;Obtendo as alterações no repositório:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;# svn log&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;&lt;br /&gt;-- output --&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;------------------------------------------------------------------------&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;r8 | augustowebd | 2010-09-09 11:03:41 -0300 (Thu, 09 Sep 2010) | 1 line&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[MERGE] -estabilizacao do da 'tag.1.0.0a'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;------------------------------------------------------------------------&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;r4 | augustowebd | 2010-08-26 10:32:27 -0300 (Thu, 26 Aug 2010) | 2 lines&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[ADD]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;- carga inicial do trunk&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;------------------------------------------------------------------------&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;r3 | root | 2010-08-26 10:31:42 -0300 (Thu, 26 Aug 2010) | 1 line&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;configuracao inicial&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;-- output --&lt;br /&gt;&lt;br /&gt;Com isso podemos saber exatamente o que foi alterado no repositório, assim, supondo que o erro ocorreu ao efetuar o &lt;b&gt;MERGE&lt;/b&gt;, na revisão 8 "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;r8&lt;/b&gt; | augustowebd |&lt;/span&gt;", o comando para reverter a alteração ficaria:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# svn merge -r:3:4 http://localhost/svn/foo/trunk&lt;/span&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/24628424-3823764451969310758?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/3823764451969310758/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=3823764451969310758' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/3823764451969310758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/3823764451969310758'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2010/09/svn-rollback.html' title='svn rollback'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-6912899095639692859</id><published>2010-05-11T08:33:00.002-03:00</published><updated>2010-05-11T08:47:23.310-03:00</updated><title type='text'>Fotos Ensol</title><content type='html'>Conforme prometido, estou disponibilizando todas as [&lt;a href="http://picasaweb.google.com/augustowebd/Ensol?authkey=Gv1sRgCOuF0YSMh_3v9wE&amp;amp;feat=directlink"&gt;fotos&lt;/a&gt;] que tirei no Ensol.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-6912899095639692859?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/6912899095639692859/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=6912899095639692859' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/6912899095639692859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/6912899095639692859'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2010/05/fotos-ensol.html' title='Fotos Ensol'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-8091272873320377168</id><published>2010-05-08T09:56:00.009-03:00</published><updated>2010-05-10T18:29:43.076-03:00</updated><title type='text'>Enfim uma caneca do PHP com assinatura do criador do PHP</title><content type='html'>&lt;span style="font-size:85%;"&gt;Ramus: "O que você fará para ela nunca sair daí?"&lt;br /&gt;Augusto: "Eu nunca mais vou usá-la!"&lt;br /&gt;Ramus: "good idea!(rss)"&lt;br /&gt;:D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_N-sKZdbC_W4/S-VhzT0C2qI/AAAAAAAAAR4/8C_HJexIkMk/s1600/DSC05068.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_N-sKZdbC_W4/S-VhzT0C2qI/AAAAAAAAAR4/8C_HJexIkMk/s400/DSC05068.JPG" alt="" id="BLOGGER_PHOTO_ID_5468884856631122594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Rasmus, Ensol 2010, em nosso Stand antes de sua palestra.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_N-sKZdbC_W4/S-Vh_Y6JrbI/AAAAAAAAASA/VHIKpbucKOE/s1600/DSC05073.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_N-sKZdbC_W4/S-Vh_Y6JrbI/AAAAAAAAASA/VHIKpbucKOE/s400/DSC05073.JPG" alt="" id="BLOGGER_PHOTO_ID_5468885064157343154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ele já estava ao meu lado mesmo, entao...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_N-sKZdbC_W4/S-ViF8xyOaI/AAAAAAAAASI/8Q1JRpN1s2M/s1600/DSC05075.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_N-sKZdbC_W4/S-ViF8xyOaI/AAAAAAAAASI/8Q1JRpN1s2M/s400/DSC05075.JPG" alt="" id="BLOGGER_PHOTO_ID_5468885176865143202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;pedi para autografar minha caneca, eu já tinha planejado isso ;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-8091272873320377168?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/8091272873320377168/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=8091272873320377168' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/8091272873320377168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/8091272873320377168'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2010/05/em-fim-uma-caneca-do-php-com.html' title='Enfim uma caneca do PHP com assinatura do criador do PHP'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_N-sKZdbC_W4/S-VhzT0C2qI/AAAAAAAAAR4/8C_HJexIkMk/s72-c/DSC05068.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-5905385083839251415</id><published>2010-05-06T22:18:00.016-03:00</published><updated>2010-05-08T22:46:29.270-03:00</updated><title type='text'>1º dia Ensol 4ª edição</title><content type='html'>&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt; &lt;style type="text/css"&gt;&lt;!--   @page { margin: 0.79in }   P { margin-bottom: 0.08in }  --&lt;/style&gt;&lt;span style="font-size:85%;"&gt;A primeira edição do &lt;a href="http://phpne.ensol.org.br/"&gt;PHP-NE&lt;/a&gt; verdadeiramente abriu a 4ª edição do &lt;a href="http://www.ensol.org.br/"&gt;ENSOL&lt;/a&gt;, realizado em Ponta do Seixas na Paraíba[1], falar que este lugar é bonito chega ser um pleonasmo, poís bem, chegamos ao evento as 9.45hs( Bruno “Porkaria”, Ricardo[2] e Eu ) e fomos em busca de informações sobre credenciamento, local de palestra, etc,. No ínicio foi um pouco truncado, mas logo tudo se resolveu e fomos para o local.&lt;/span&gt; &lt;/div&gt;&lt;p  style="margin-bottom: 0in; text-align: justify;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;A palestra foi iniciada com certa de 20 ou 30 congrecistas, devido ao atraso  no redenciamento ocasionado pelo sistema ou a falha do mesmo, o &lt;a href="http://www.phpmaranhao.com.br/"&gt;Ricardo&lt;/a&gt; fez a abertura do &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://phpne.ensol.org.br/"&gt;PHP-NE&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; e em seguida o &lt;a href="http://www.porkaria.com.br/"&gt;Porkaria&lt;/a&gt; falou um pouco e logo depois me passou a palavra.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt; &lt;/div&gt;&lt;p  style="margin-bottom: 0in; text-align: justify;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;Falei exatos 55mins sobre XDebug no eclipse(XDebug e Eclipse) para uma platéia[3] extremamente atenta ao que eu falava algumas interações no decorrer da palestra e ao final algumas dúvidas, normal.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt; &lt;/div&gt;&lt;p  style="margin-bottom: 0in; text-align: justify;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;Após o almoço veio abetura oficial do evento onde estavam presentes ninguém mais ningém menos do que &lt;a href="http://pt.wikipedia.org/wiki/Jon_Hall"&gt;Jon "maddog" Hall&lt;/a&gt; falando sobre o projeto “&lt;a href="http://www.projectcaua.org/"&gt;Cauã&lt;/a&gt;” e na platéia, ao meu lado &lt;a href="http://lerdorf.com/"&gt;Rasmus&lt;/a&gt; concentrado em seu notebook, acho que no twitter.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt; &lt;/div&gt;&lt;p  style="margin-bottom: 0in; text-align: justify;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;Após a abertura oficial do ENSOL fomos para 3ª palesra do &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://phpne.ensol.org.br/"&gt;PHP-NE&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; que abordou &lt;i&gt;&lt;span style="font-weight: normal;"&gt;noSQL&lt;/span&gt;&lt;/i&gt; e depois a 4ª e última palestra sobre &lt;i&gt;&lt;b&gt;Drupal&lt;/b&gt;&lt;/i&gt;&lt;span style="font-style: normal;"&gt;&lt;span style="font-weight: normal;"&gt;, aos 45mins do Rasmus entra no auditório e senta ali no quanto tranquilamente e começa assistir a palestra sobre o Drupal. Finalizada a apresentação fizemos um breve encerramento e todos os presentes fomos tirar fotos ao lado do criado do PHP, bom demais!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-bottom: 0in; text-align: justify;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: normal;"&gt;&lt;span style="font-weight: normal;"&gt;E fomos para o PHPinga acompanhado de Rasmus Lerdorf[4].&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-bottom: 0in; text-align: justify;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: normal;"&gt;&lt;span style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: center;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_N-sKZdbC_W4/S-N01Gv6NQI/AAAAAAAAARQ/fZbZ8J1usvw/s400/dsc04923.jpg" alt="" id="BLOGGER_PHOTO_ID_5468342828251362562" border="0" /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;Chegada ao Ensol&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p  style="margin-bottom: 0in; text-align: center;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_N-sKZdbC_W4/S-N2_clDfzI/AAAAAAAAARY/qnEd1eeYRJE/s1600/chegada_ensol.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_N-sKZdbC_W4/S-N2_clDfzI/AAAAAAAAARY/qnEd1eeYRJE/s400/chegada_ensol.jpg" alt="" id="BLOGGER_PHOTO_ID_5468345204933361458" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;Ricardo, Bruno "Porkaria" e alguém tem de tirar a foto.&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-bottom: 0in; text-align: center;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_N-sKZdbC_W4/S-N4EwWvqAI/AAAAAAAAARg/iF5Fu1KNLOM/s1600/plateia_xdebug_phpne.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_N-sKZdbC_W4/S-N4EwWvqAI/AAAAAAAAARg/iF5Fu1KNLOM/s400/plateia_xdebug_phpne.jpg" alt="" id="BLOGGER_PHOTO_ID_5468346395653023746" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;Palestra sobre XDebug no EclipsePDT&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-bottom: 0in; text-align: center;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_N-sKZdbC_W4/S-N5q-SPc0I/AAAAAAAAARo/zNqEitCdVj4/s1600/dsc05029.jpgbd_rasmus.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_N-sKZdbC_W4/S-N5q-SPc0I/AAAAAAAAARo/zNqEitCdVj4/s400/dsc05029.jpgbd_rasmus.jpg" alt="" id="BLOGGER_PHOTO_ID_5468348151738889026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Augsuto e Rasmus Lerdof.&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-bottom: 0in; text-align: center;font-family:verdana;" lang="pt-BR"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_N-sKZdbC_W4/S-N58v1KvdI/AAAAAAAAARw/eptuMHOyxqU/s1600/phpinga_com_rasmus.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_N-sKZdbC_W4/S-N58v1KvdI/AAAAAAAAARw/eptuMHOyxqU/s400/phpinga_com_rasmus.jpg" alt="" id="BLOGGER_PHOTO_ID_5468348457096494546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;PHPinga histórico.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-5905385083839251415?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/5905385083839251415/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=5905385083839251415' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/5905385083839251415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/5905385083839251415'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2010/05/1-dia-ensol-4-edicao.html' title='1º dia Ensol 4ª edição'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_N-sKZdbC_W4/S-N01Gv6NQI/AAAAAAAAARQ/fZbZ8J1usvw/s72-c/dsc04923.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-6032708582970283722</id><published>2010-05-06T14:15:00.013-03:00</published><updated>2010-05-06T17:17:32.048-03:00</updated><title type='text'>Palestra ENSOL 2010 - Paraíba</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;A recepção dos Paraibanos ao 1º PHP-NE não poderia ser melhor, o auditório ficou completamente lotado para assitir minha palestra sobre &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://www.phphederal.com.br/wp-content/uploads/2010/05/xdebug-ensol-2010.odp"&gt;XDebug&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; e eclipsePDT.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a style="font-family: trebuchet ms;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_N-sKZdbC_W4/S-MgmFDIbgI/AAAAAAAAAQ4/l9uQdQ9Qjg8/s1600/dsc04925.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 220px;" src="http://2.bp.blogspot.com/_N-sKZdbC_W4/S-MgmFDIbgI/AAAAAAAAAQ4/l9uQdQ9Qjg8/s400/dsc04925.jpg" alt="" id="BLOGGER_PHOTO_ID_5468250211120344578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Entrada da Estação Ciência no credenciamento&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: trebuchet ms;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_N-sKZdbC_W4/S-MhMSIpdpI/AAAAAAAAARI/-7_qubKLv_s/s1600/palestra_1ne_ensol.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 220px;" src="http://4.bp.blogspot.com/_N-sKZdbC_W4/S-MhMSIpdpI/AAAAAAAAARI/-7_qubKLv_s/s400/palestra_1ne_ensol.jpg" alt="" id="BLOGGER_PHOTO_ID_5468250867468170898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Palestra XDebug&lt;/span&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/24628424-6032708582970283722?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/6032708582970283722/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=6032708582970283722' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/6032708582970283722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/6032708582970283722'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2010/05/palestra-ensol-2010-paraiba.html' title='Palestra ENSOL 2010 - Paraíba'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_N-sKZdbC_W4/S-MgmFDIbgI/AAAAAAAAAQ4/l9uQdQ9Qjg8/s72-c/dsc04925.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-3469210543974817563</id><published>2010-04-14T12:33:00.005-03:00</published><updated>2010-04-14T13:03:14.756-03:00</updated><title type='text'>Ensol - PHP e muito Sol</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Salve galera,&lt;br /&gt;&lt;br /&gt;Uma notícia para os amantes do PHP:&lt;br /&gt;&lt;br /&gt;"De 6 a 9 de maio de 2010 na &lt;a href="http://ensol.org.br/destaque/estacao-cabo-branco"&gt;Estação Cabo Branco&lt;/a&gt; em João Pessoa, acontecerá o &lt;a href="http://ensol.org.br/"&gt;Ensol&lt;/a&gt; que conterá com a presença de ninguém mais ninguém menos que &lt;a href="http://lerdorf.com/bio.php"&gt;Rasmus Lerdorf&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;continuando...&lt;br /&gt;&lt;br /&gt;"O projeto &lt;a href="http://www.eclipse.org/pdt/"&gt;Eclipse PDT&lt;/a&gt; é uma esforço da comunidade em manter uma verão gratuíta do eclipse capaz de desenvolver códigos PHP, porém, alguns dos recursos encontrado no &lt;a href="http://www.zend.com/products/studio/"&gt;Zend Studio&lt;/a&gt;, versão mantida pela &lt;a href="http://www.zend.com/"&gt;Zend Tecnologia&lt;/a&gt; sob o eclipse, como um debugador interno não vem por padrão no PDT.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Visto a necessidade e utilidade de debugar o código ainda em seu ambiente de desenvolvimento, esta palestra tem por objetivo apresentar o Eclipse PDT e &lt;a href="http://xdebug.org/"&gt;XDebug&lt;/a&gt; e integrá-los para que possam ser usados em conjuntos"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;será com esta palestra que abrirei o ENSOL 2010.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;até lá!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-3469210543974817563?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/3469210543974817563/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=3469210543974817563' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/3469210543974817563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/3469210543974817563'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2010/04/ensol-php-e-muito-sol.html' title='Ensol - PHP e muito Sol'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-7492762814470821230</id><published>2010-01-15T09:21:00.000-02:00</published><updated>2010-01-15T09:22:08.239-02:00</updated><title type='text'>Permission denied: .htaccess pcfg_openfile</title><content type='html'>&lt;span style="color: rgb(153, 0, 0);"&gt;Contra&lt;/span&gt; "Permission denied: .htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable." &lt;span style="color: rgb(0, 51, 0);"&gt;chmod 755 resolve!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-7492762814470821230?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/7492762814470821230/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=7492762814470821230' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/7492762814470821230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/7492762814470821230'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2010/01/permission-denied-htaccess-pcfgopenfile.html' title='Permission denied: .htaccess pcfg_openfile'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-8421912671294204604</id><published>2009-12-10T14:39:00.002-02:00</published><updated>2009-12-10T14:47:00.611-02:00</updated><title type='text'>Google tem dessas coias...</title><content type='html'>A mais ou menos dois dias atrás eu recebi um e-mail de ninguém mais ninguém menos que o Google anunciando seu navegador web Chrome para linux.&lt;br /&gt;Opa! pensei, é hora de sair da monoescolha FFX e ter um concorrente, então fui ao site indicado no e-mail e mandei ver.&lt;br /&gt;&lt;br /&gt;Escolhi a versão adequada para Ubuntu e 'letisgo!'.&lt;br /&gt;&lt;br /&gt;Tudo muito bem, tudo muito bom, ou quase, após instalar 9 extensões ficou leeeeeeeeennnntooo! Mas o problema ainda não foi este.&lt;br /&gt;&lt;br /&gt;Hoje o Marcio falou uma coisa e após testar veio a confirmação: Sem eu pedir o Google foi lá em minha source.list e adicionou seus próprios canais de software após instalar seu Chrome, pelo menos no Ubuntu  :| &lt;br /&gt;&lt;br /&gt;Vá no console e digita:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$ apt-get update&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;saída:&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Obter:1 http://dl.google.com stable Release.gpg [189B]                                                                 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Ign http://dl.google.com stable/main Translation-pt_BR                                                                  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Obter:2 http://dl.google.com stable Release [2540B]                                                                     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Obter:3 http://dl.google.com stable/main Packages [850B] &lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Pois é!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-8421912671294204604?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/8421912671294204604/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=8421912671294204604' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/8421912671294204604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/8421912671294204604'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2009/12/google-tem-dessas-coias.html' title='Google tem dessas coias...'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-4231034243214875790</id><published>2009-11-30T01:39:00.005-02:00</published><updated>2009-11-30T01:56:49.733-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geoweb'/><category scheme='http://www.blogger.com/atom/ns#' term='spider'/><category scheme='http://www.blogger.com/atom/ns#' term='phpconf'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>PHPConf 2009</title><content type='html'>Em sua terceira edição o evento contou com minha presença ;ç), como congressista, além das presenças internacionais do Sebastian Bergmann, Criador da PHPUnit, e Eli White que falou sobre testes e escalibilidade, repectivamente.&lt;br /&gt;&lt;br /&gt;Entre os "menos conhecidos" tivemos ótimas palestras que posso citar aqui o Leandro Lages falando sobre o desenvolvimento de spider com Zend Framework, o Alex Piaz falando sobre GeoWeb com um Bob Marley de fundo(muito bom!) e sua luta por um sinal de Internet :D.&lt;br /&gt;&lt;br /&gt;Parabéns a todos e até o ano que vem!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-4231034243214875790?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/4231034243214875790/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=4231034243214875790' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/4231034243214875790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/4231034243214875790'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2009/11/phpconf-2009.html' title='PHPConf 2009'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-4593890566681628913</id><published>2009-11-10T13:31:00.007-02:00</published><updated>2009-11-22T00:45:13.767-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dump'/><category scheme='http://www.blogger.com/atom/ns#' term='load'/><category scheme='http://www.blogger.com/atom/ns#' term='svnadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Backup de respositório SVN</title><content type='html'>Recentemente tive a necessidade de transferir os repositórios svn de um server para outro, então fui pesquisar como este processo deveria ser feito e descobrir que, igual ao MySQL, o SVN também possuí uma ferramenta de dump e de funcionamento tão ou mais simples que mysqldump, para maiores informações sobre o comando execute:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# svnadmin dump --help&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ok, então vamos ao dump:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# svnadmin dump /var/svn/nomerepositorio &gt; ~/backup_svn/nomerepositorio.bkp&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;O svn vai gerar uma saida semelhante a:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;* Extraída revisão 0.&lt;br /&gt;...&lt;br /&gt;* Extraída revisão n.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Onde cada linha representa uma versão do respotório.&lt;br /&gt;&lt;br /&gt;O conteúdo do repositório informado por nomerepositorio será colocado em '~/backup_svn/nomerepositorio.bkp'. Atenção: Antes de executar este comando certifique-se de que o ditetório de destino existe e lembre-se de trocar o caminho do repostório para refletir sua realidade. Tudo ocorrendo nas normalidades, você terá um arquivo chamado nomerepositorio.bkp em uma subpasta no seu home. Se o novo respotório ainda não existir, execute:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# svnadmin create /var/svn/novorepositorio&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;e finalmente carregue de volta o backup feito pelo load acima:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# svnadmin load /var/svn/novorepositorio &lt; ~/backup_svn/nomerepositorio.bkp&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;o comando acima deverá gerar uma saída semelhante a:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# svnadmin load /var/svn/novorepositorio &lt; ~/backup_svn/nomerepositorio.bkp &lt;&lt;&gt;&lt;br /&gt;&lt;br /&gt;Pronto, se seus repositorios svn possuir proteção de acesso e este novo estive sob estra proteção, edite seu arquivo e insira as entradas necessárias para que seus usuários possam fazer checkout/commit, etc.&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-4593890566681628913?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/4593890566681628913/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=4593890566681628913' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/4593890566681628913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/4593890566681628913'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2009/11/backup-de-respositorio-svn.html' title='Backup de respositório SVN'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-4193781004735763387</id><published>2009-11-09T09:23:00.011-02:00</published><updated>2009-11-09T09:44:13.277-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xargs'/><category scheme='http://www.blogger.com/atom/ns#' term='rm'/><category scheme='http://www.blogger.com/atom/ns#' term='.svn'/><title type='text'>Removendo .svn</title><content type='html'>De quando em vez tenho a necessidade de remover todos os diretórios de controle do svn, os famigerados ".svn", isso seria tarefa facil se o projeto fosse pequeno, porém, acontece de um único projeto gerar mais de 1000 desses diretórios.&lt;br /&gt;Então a ideia eh realiazar uma pesquisa num dados diretório em busca dos tais ".svn" e para cada ocorrência encotrada executar o "rm -rf" passando a ocorrência encontrada como argumento( xargs )&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;find . -iname .svn | xargs rm -fr&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note que foi usado '&lt;span style="font-weight: bold;"&gt;-iname&lt;/span&gt;' ao invés de '&lt;span style="font-weight: bold;"&gt;-name&lt;/span&gt;' para ignorar diferenciação entre maiscula e miniscula.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;find&lt;/span&gt; . -iname .svn: Encontra todos os arquivos ou diretórios que se chamem .svn&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;xargs rm -rf&lt;/span&gt;: O xargs é um programa que executa o que vier depois dele pra cada linha que ele receber como entrada. Por isso apaga todos os .svn.&lt;/li&gt;&lt;/ul&gt;Claro que você pode evitar a criação destes diretórios simplismente dando um:&lt;br /&gt;&lt;span class="ListContent"&gt;&lt;blockquote style="font-weight: bold;"&gt;svn export DESTINO&lt;/blockquote&gt;Mas se eles já existirem fica a dica, outra coisa é que basta você trocar o nome do diretório que se deseja excluir e a dica é válida do mesmo jeito.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-4193781004735763387?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/4193781004735763387/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=4193781004735763387' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/4193781004735763387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/4193781004735763387'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2009/11/removendo-svn.html' title='Removendo .svn'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-9048944497624378519</id><published>2009-10-30T11:13:00.005-02:00</published><updated>2009-10-30T13:40:01.814-02:00</updated><title type='text'>palestra sobre certificação PHP</title><content type='html'>Este post rápido é só para agradescer a todos os que compareceram ontem, 29/10, a faculdade Unisaber, Brasília, para palestra sobre certificação PHP que ministrei.&lt;br /&gt;A quem interessar os slides segue o &lt;a href="http://f1.grp.yahoofs.com/v1/cP_qSj9qmb-ATusPs-8yhLJ1gVys4bI7b4vzsQMDUDD2pYSDDYugkxBtg02ZFRQalJceTL4XCYTbX1ePaLWDvQ/curso_palestra/certifcao_php/zcf.odp.tar.gz"&gt;link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-9048944497624378519?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/9048944497624378519/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=9048944497624378519' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/9048944497624378519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/9048944497624378519'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2009/10/palestra-sobre-certificacao-php.html' title='palestra sobre certificação PHP'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-6012130661093543344</id><published>2009-09-12T21:51:00.002-03:00</published><updated>2009-09-12T21:58:31.655-03:00</updated><title type='text'>Mini-Curso PHP Pra Quem Sabe PHP, mas nem tanto.</title><content type='html'>salve a todos,&lt;br /&gt;      Sábado(12/09) foi realizado o primeiro(de uma sérias de cursos futuros) ministrado por mim, vimos nestes primeiro encontro a instalação no MS Windows do Apache2, PHP e a criação de um script básico para testar a instalação.&lt;br /&gt;&lt;br /&gt;     Com base no que foi visto, vamos dá continuidade nesta inciativa apoiada pela Faculdade Michelangelo de Brasília(local onde foi realizado o encontro) que prontamente cedeu seu laboratório para que o evento pudesse ser realizado.&lt;br /&gt;    Os kilos de alimentos arrecadados fora doados.&lt;br /&gt;&lt;br /&gt;   A todos os presentes, MEU MUITO OBRIGADO!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-6012130661093543344?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/6012130661093543344/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=6012130661093543344' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/6012130661093543344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/6012130661093543344'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2009/09/mini-curso-php-pra-quem-sabe-php-mas.html' title='Mini-Curso PHP Pra Quem Sabe PHP, mas nem tanto.'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-7026618366558214911</id><published>2009-04-01T20:25:00.006-03:00</published><updated>2009-04-01T20:59:10.051-03:00</updated><title type='text'>PHP5(exec) e Java</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;"&gt;S&lt;/span&gt;alve a todos, eu sei faz muito tempo que não posto nada,&lt;br /&gt;esta semana aqui no trabalho tive uma demanda na qual foi necessário utilizar um objeto Java, por assim dizer, no PHP, bem tudo bem se estivessímos no PHP 4, mas pra minha infelicidade geral fiz uma busca no google e o resultado não foi muito animador, pra resumir a história a melhor opção encontrada foi um projeto denominado "&lt;span style="font-weight: bold;"&gt;Bridge&lt;/span&gt;".&lt;br /&gt;Analisando o tal "&lt;span style="font-weight: bold;"&gt;Bridge&lt;/span&gt;" não demorou para notar que não me atenderia:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;é necessário instalar o tomcat&lt;/li&gt;&lt;li&gt;era necessário  rodar a app no cliente( ah, esqueci de mencionar era uma app &lt;a href="http://gtk.php.net/"&gt;php-gtk&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt;Exposto estes dois pequenos detalhes logo você vai deduzir que não vou sair instalando um servidor de app na máquina de meus clientes :)&lt;br /&gt;&lt;br /&gt;Analisando o caso, chegamos em na seguinte conclusão:&lt;br /&gt;- vamos criar uma classe que irar intermediar minha app com as classes java e conforme a necessidade eu executo chamadas por meio do como &lt;a href="http://br2.php.net/manual/en/book.exec.php"&gt;exec&lt;/a&gt; do php uma espécie de interface.&lt;br /&gt;&lt;br /&gt;Para exemplificar vamos criar uma classe simple em java( Hello ) que vai mudar seu retorno de acordo com sua chamada, depois um arquivo php que fara a chamada a esta classe.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-- begin Hello.java&lt;br /&gt;/**&lt;br /&gt;* testa a quantidade de argumentos recebido e no caso&lt;br /&gt;* de nenhum argumento seja inforamdo retorna um objeto&lt;br /&gt;* em notação JSON com o status de false ou true se ao&lt;br /&gt;* menos um argumento for inforamdo&lt;br /&gt;*&lt;br /&gt;* @name Hello&lt;br /&gt;* @return String&lt;br /&gt;* @example java Hello | java Hello somevalue&lt;br /&gt;*/&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;class&lt;/span&gt; Hello{&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;public static void&lt;/span&gt; main( String args[] ){&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt; if&lt;/span&gt;( args.length == &lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;)&lt;br /&gt; System.out.println(&lt;span style="color: rgb(153, 51, 153);"&gt;"{\"&lt;/span&gt;status&lt;span style="color: rgb(153, 51, 153);"&gt;\": \"&lt;/span&gt;false&lt;span style="color: rgb(153, 51, 153);"&gt;\"}"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;else&lt;/span&gt;&lt;br /&gt;System.out.println(&lt;span style="color: rgb(153, 51, 153);"&gt;"{\"&lt;/span&gt;status&lt;span style="color: rgb(153, 51, 153);"&gt;\": \"true\"}"&lt;/span&gt; );&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;-- end Hello.java&lt;br /&gt;&lt;/pre&gt;simples como tem de ser :), claro, neste exemplo.&lt;br /&gt;&lt;br /&gt;agora vamos ao exemplo( vou fazer a chamada diretamente no PHP sem nenhuma saida em GTK porque o intuito é mostrar apenas o funcionamento).&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-- begin testPHP5Java.php&lt;br /&gt;*?php&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$obj&lt;/span&gt; = exec(&lt;span style="color: rgb(204, 51, 204);"&gt;"java Hello"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(204, 51, 204);"&gt;"resultado:&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;\n\n&lt;/span&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;"&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;print_r(&lt;/span&gt; json_decode&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;$obj&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;) );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;echo&lt;/span&gt; "&lt;span style="color: rgb(102, 51, 255);"&gt;\n\n\n\n&lt;/span&gt;";&lt;br /&gt;-- enf testPHP5Java.php&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;basta ir ao seu shell preferido e digitar:&lt;br /&gt;php testPHP5Java.php&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-7026618366558214911?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/7026618366558214911/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=7026618366558214911' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/7026618366558214911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/7026618366558214911'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2009/04/php5-e-java-com-exec.html' title='PHP5(exec) e Java'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-6653714450109158116</id><published>2007-06-24T14:38:00.000-03:00</published><updated>2007-09-02T12:48:30.834-03:00</updated><title type='text'>O objeto não pode estar aberto a tudo.</title><content type='html'>Mais uma salve a todos,&lt;br /&gt;&lt;br /&gt;Ha algum tempo trabelhei numa empresa onde conheci uma pessoa, que nesta empresa ela, trabalhava com entre outras coisa o &lt;a href="http://java.sun.com/"&gt;Java &lt;/a&gt;e certa vez ela fez uma observação que um objeto em &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt; poderia iniciar com um atributo e no decorrer de sua vida ele poderia ir adquirindo vários outros e que no &lt;a href="http://java.sun.com/"&gt;Java&lt;/a&gt; isso não era possível, de fato o &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt; tem disso, e de fato isso não desejável e outro de fato é que ele tinha razão, mas e o &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt; evolui e isso é uma consante. Para enteder melhor o que estou tentando externar, vai um exemplo:&lt;br /&gt;&lt;pre&gt;&lt;ol&gt;&lt;li style="color: rgb(153, 0, 0);"&gt;&amp;lt;php&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;   class &lt;/span&gt;Foo&lt;span style="color: rgb(0, 0, 153);"&gt;{ }&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;$f = &lt;span style="color: rgb(51, 153, 153);"&gt;new &lt;/span&gt;Foo();&lt;/li&gt;&lt;li&gt;$f&lt;span style="color: rgb(51, 153, 153);"&gt;-&gt;&lt;/span&gt;nome = "João Roberto";&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;echo &lt;/span&gt;$f&lt;span style="color: rgb(51, 153, 153);"&gt;-&gt;&lt;/span&gt;nome;&lt;/li&gt;&lt;li style="color: rgb(204, 0, 0);"&gt;?&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;saída&lt;/span&gt;: João Roberto.&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;Este comportamento, inadequado ao meu ver se dá devido ao &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt; ter sua verificação relaxada ou seja  ele verifica se é um objeto, mas se o atributo existe ou não para ele tanto faz. Na verdade não existir ele criará em run-time. Mas nem sempre isso é desejável. queremos  uma forma de dizer ao &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt; que se o atributo existir ele atribua o valor informado a este, porém, se não existir ele lance um &lt;span style="font-style: italic;"&gt;SuperNomeGrandeParaDefinirQueAlgoNãoEstaCertoException&lt;/span&gt;. Nossa!&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li style="color: rgb(204, 0, 0);"&gt;&amp;lt;php&lt;/li&gt;&lt;li&gt;     &lt;span style="color: rgb(51, 153, 153);"&gt;class &lt;/span&gt;Foo{&lt;/li&gt;&lt;li&gt;            &lt;span style="color: rgb(51, 153, 153);"&gt;public&lt;/span&gt; $nome;&lt;/li&gt;&lt;li&gt;            &lt;span style="color: rgb(51, 153, 153);"&gt;public function &lt;/span&gt;__set&lt;span style="color: rgb(0, 0, 153);"&gt;( &lt;/span&gt;$nomeAtributo, $valorAtribtuo &lt;span style="color: rgb(0, 0, 153);"&gt;){&lt;/span&gt;&lt;/li&gt;&lt;li&gt;                &lt;span style="color: rgb(51, 153, 153);"&gt; if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;(&lt;/span&gt; isset&lt;span style="color: rgb(0, 0, 153);"&gt;(&lt;/span&gt; $this-&gt;$nomeAtributo &lt;span style="color: rgb(0, 0, 153);"&gt;) )&lt;/span&gt;&lt;/li&gt;&lt;li&gt;                     $this-&gt;$nomeAtributo = $valorAtribtuo;&lt;/li&gt;&lt;li&gt;                 &lt;span style="color: rgb(51, 153, 153);"&gt;else&lt;/span&gt;&lt;/li&gt;&lt;li&gt;                     &lt;span style="color: rgb(51, 153, 153);"&gt;throw new&lt;/span&gt; Exception&lt;span style="color: rgb(0, 0, 153);"&gt;( &lt;/span&gt;"Error: O atributo: {$nomeAtributo} não existe."&lt;span style="color: rgb(0, 0, 153);"&gt; )&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;           &lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 153);"&gt; }&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; $f = &lt;span style="color: rgb(51, 153, 153);"&gt;new &lt;/span&gt;Foo&lt;span style="color: rgb(0, 0, 153);"&gt;()&lt;/span&gt;;&lt;/li&gt;&lt;li&gt; $f&lt;span style="color: rgb(51, 153, 153);"&gt;-&gt;&lt;/span&gt;nomes = "João Roberto";&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;?&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;O método mágico __set é executado imediatamente antes de uma atribuição de valor a um atributo. Isso possibilitará a verificação se tal atributo existe ou não. Pausa para as apresentações:&lt;br /&gt;&lt;br /&gt;void &lt;b class="methodname"&gt;__set&lt;/b&gt; ( string name, mixed value )&lt;br /&gt;&lt;br /&gt;Onde &lt;span style="font-weight: bold; font-style: italic;"&gt;void&lt;/span&gt; é retorno, ou seja, não retorna nada. &lt;span style="font-weight: bold; font-style: italic;"&gt;string name&lt;/span&gt; é o nome do atributo que está sendo informado e por fim &lt;span style="font-style: italic; font-weight: bold;"&gt;mixed value&lt;/span&gt; é o valor que está sendo atribuido para este atributo.&lt;br /&gt;&lt;br /&gt;. . .continuando . . .&lt;br /&gt;&lt;br /&gt;Com isso a gente força o PHP a não aceitar qualquer coisa, afinal, ele não é nem de longe é parente do ponto&lt;a href="http://guia-er.sourceforge.net/ponto.html#2_1_1"&gt;( . )&lt;/a&gt; das &lt;a href="http://guia-er.sourceforge.net/"&gt;Expressões Regulares&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Em nosso próximo encontro estaremos vendo sobrecarga de métodos.&lt;br /&gt;Até Lá.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-6653714450109158116?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/6653714450109158116/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=6653714450109158116' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/6653714450109158116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/6653714450109158116'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2007/06/o-objeto-no-pode-est-berto-tudo.html' title='O objeto não pode estar aberto a tudo.'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-812647018487418122</id><published>2007-05-02T08:41:00.000-03:00</published><updated>2007-09-02T12:53:28.573-03:00</updated><title type='text'>toString ou __toString?</title><content type='html'>&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Salve a todos,&lt;br /&gt;&lt;br /&gt;  Em recente labuta com as várias e várias formas de se fazer algo igual de forma diferente com o PHP, o que é extremamente bacana :), me deparei com uma função pra lá de útil  quando estamos trabalhando com classes.&lt;br /&gt;&lt;br /&gt; Mas desta vez eu encontrei apenas uma forma correta de fazer o que queria: Ao chamar o objeto ele me mostrar os valores de seus atributos, todos eles, sem ter que ficar criando um &lt;span style="color: rgb(51, 51, 255);"&gt;echo&lt;/span&gt; ou um &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; para cada um destes atributos.&lt;br /&gt;&lt;br /&gt; Sim tem como sim.&lt;br /&gt; Até pouco tempo atrás eu criava um método para quando eu o chamasse fosse impresso todos os valores dos atributos da classes, mas isso me forçava a invocar o objeto com o nome deste método:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;?php&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    //    ...&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;$objeto&lt;/span&gt;-&gt;verValoresAtributos();&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;    //    ...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;?&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Que tem de errado nisso? Nada! Mas, pra que você vai reinventar  a roda se o PHP já lhe dá um método próprio para isso? Além do mais quando você usa o método correto você não precisa invocar o método, o PHP vai verificar que estar tentando exibir o objeto e ao invés de responder com uma resposta tipo:&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Saída na tela:&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Catchable fatal error: Object of class NossaClasse could not be converted to string in /srv/www/htdocs/NossaClasse.php on line 16&lt;br /&gt;&lt;br /&gt;Cá pra nós tem coisa mais chata do que uma resposta destas? Quando queria-mos algo como:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Saída na tela:&lt;/span&gt; Olá&lt;/span&gt;&lt;/span&gt; augustowebd, eu tenho aqui os seguintes atributos: atributo1: valor do atributo1, atributo2: valor do atributo 2, ...&lt;br /&gt;&lt;br /&gt; Então vamos fazer a coisa da forma certa. Definamos uma classes para nosso teste.&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;?php&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;class&lt;/span&gt; NossaClasse{&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;        //    atributo qualquer&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        private&lt;/span&gt; $nome;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 192, 192);"&gt;        //    construtor recebe valor para atributo qualquer&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;        public function&lt;/span&gt; NossaClasse( &lt;span style="color: rgb(153, 0, 0);"&gt;$nome&lt;/span&gt; = null ){&lt;br /&gt;         &lt;span style="color: rgb(153, 0, 0);"&gt;    $this&lt;/span&gt;-&gt;nome = &lt;span style="color: rgb(153, 0, 0);"&gt;$nome&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: rgb(51, 51, 255);"&gt;public function&lt;/span&gt; __toString(){&lt;br /&gt;  return &lt;span style="color: rgb(204, 0, 0);"&gt;$this&lt;/span&gt;-&gt;nome;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;?&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;  Agora é criar seu objeto e dá um &lt;span style="color: rgb(51, 102, 255);"&gt;echo&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;?php&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;//    ...&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(204, 0, 0);"&gt;$meuObjeto&lt;/span&gt;  = new &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:verdana;font-size:85%;"  &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;NossaClasse( "augustowebd" );&lt;br /&gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;echo&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="color: rgb(204, 0, 0);"&gt;$meuObjeto;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;?&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Por fim, vamos cientificamente conhecer o __toString:&lt;br /&gt;  A assinatura do __toString é: &lt;span style="color: rgb(204, 0, 0);"&gt;function&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;string&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;__toString&lt;/span&gt;( &lt;span style="color: rgb(0, 102, 0);"&gt;void&lt;/span&gt; )&lt;br /&gt;  O que quer dizer: Este método retorna uma string e que não recebe nenhum paramentro( void ).&lt;br /&gt;&lt;br /&gt;  Respondendo a pergunta do título: __toString com dois underlines :).&lt;br /&gt;&lt;br /&gt;Um abraço e até a próxima.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-812647018487418122?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/812647018487418122/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=812647018487418122' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/812647018487418122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/812647018487418122'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2007/05/tostring-ou-tostring.html' title='toString ou __toString?'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24628424.post-114316107303259031</id><published>2006-03-23T21:40:00.000-03:00</published><updated>2006-03-23T22:01:17.923-03:00</updated><title type='text'>boas vindas</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic;"&gt;S&lt;/span&gt;&lt;/span&gt;alve a todos os navegantes, tudo bem essa frase é do Fernando Alsemo, mas, aqui nada, tem a ver com essa figura, por sinal, me parece ser muito querida pela comunidade Java, continuando, gostaria de agradecer a todos que de propósito ou descuido vieram parar nesse humilde diário.&lt;br /&gt;&lt;br /&gt;Aqui, futuramente, nós iremos falar sobre assuntos bastantes interessantes, tais como, javascript, XML, PHP( essa salva o mundo quando se trata de WEB ), isso mesmo sou programador Web based, ou se preferir PHPBased, falaremos sempre que necessário de bancos, o MySQL, por mim é mais usado, HTML, Tableless, Ajax, etc.&lt;br /&gt;Este humilde espaço também estará a sua disposição para sempre que quiser postar seus comentários e seus artigos.&lt;br /&gt;&lt;br /&gt;Sem mais, devido ao grande número de afazeres, vou ficando por aqui, em meu próximo post falarei um pouco sobre javascript onde iniciaremos com alguns exemplos e também alguns bons links para o mesmo.&lt;br /&gt;até a próxima.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24628424-114316107303259031?l=augustowebd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://augustowebd.blogspot.com/feeds/114316107303259031/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=24628424&amp;postID=114316107303259031' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/114316107303259031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24628424/posts/default/114316107303259031'/><link rel='alternate' type='text/html' href='http://augustowebd.blogspot.com/2006/03/boas-vindas.html' title='boas vindas'/><author><name>augustowebd</name><uri>http://www.blogger.com/profile/01742368439599797015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_N-sKZdbC_W4/SdQB5GYPTmI/AAAAAAAAAMY/uzq3TKCF7vs/S220/fotoGTalk.jpeg'/></author><thr:total>2</thr:total></entry></feed>
