<?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-7604782773155525118</id><updated>2011-04-21T10:57:08.748-07:00</updated><category term='linux'/><category term='postgresql'/><category term='pessoal'/><category term='metal'/><category term='computação'/><category term='python'/><title type='text'>zefacts</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-6504188364187200721</id><published>2009-01-07T10:23:00.000-08:00</published><updated>2009-01-07T10:24:50.621-08:00</updated><title type='text'>Novo endereço</title><content type='html'>&lt;a href="http://zefacts.benetasso.com"&gt;Zefacts na Locaweb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ainda estou migrando, mas já anotem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-6504188364187200721?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/6504188364187200721/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=6504188364187200721' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6504188364187200721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6504188364187200721'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2009/01/novo-endereo.html' title='Novo endereço'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-6330180176646090873</id><published>2009-01-02T05:39:00.000-08:00</published><updated>2009-01-02T05:45:02.463-08:00</updated><title type='text'>2009 - primeiros dias</title><content type='html'>&lt;p&gt;Olá galera.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Provavelmente migrarei este site para a Locaweb. Só não bati o martelo em qual CMS usarei. Os dois candidatos são:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.opencms.org/"&gt;OpenCMS&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://plone.org/"&gt;Plone&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Mas o que há de errado com o blogspot? Não tem nada de errado com ele, mas como conhecedor e trabalhador da área, preciso explorar as possibilidades.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Já usou algum deles? Se sim, poste um comentário.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-6330180176646090873?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/6330180176646090873/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=6330180176646090873' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6330180176646090873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6330180176646090873'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2009/01/2009-primeiros-dias.html' title='2009 - primeiros dias'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-7925295608085024181</id><published>2008-12-31T15:00:00.000-08:00</published><updated>2008-12-31T15:10:29.908-08:00</updated><title type='text'>Preview Fedora 11</title><content type='html'>Enquanto não termino a configuração do nss+pam para usar postgresql (quem me conhece sabe que sou perfeccionista), o último artigo do ano.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a href="http://fedoraproject.org/wiki/Releases/11/FeatureList"&gt;Fedora 11 Feature list&lt;/a&gt;&lt;/h2&gt;&lt;br /&gt;&lt;p&gt; Das coisas que li, duas me chamaram a atenção:&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;yum-presto&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Isso é um projeto que já pensei em fazer. É um diff de pacotes que atualiza somente o que foi mudado, economizando banda e tempo. Pode parecer pouco um update de máquina, mas pense do lado do servidor: menos espaço e máquina. Vale a pena!&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Windows cross-compiler&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Isso é bem excêntrico. Pode ajudar algumas pessoas.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;É isso aí. Bom 2009&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-7925295608085024181?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/7925295608085024181/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=7925295608085024181' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7925295608085024181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7925295608085024181'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/12/preview-fedora-11.html' title='Preview Fedora 11'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-6110564396412456662</id><published>2008-12-21T07:17:00.000-08:00</published><updated>2008-12-21T07:44:04.486-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Autenticando usuários do linux no Postgresql - parte 1</title><content type='html'>Depois de algum tempo sem escrever nada técnico, quebrarei o silêncio e colocarei algo do meu interesse: como autenticar usuários do linux no Postgresql.&lt;br /&gt;&lt;br /&gt;Primeiro, uma enrolação: por que fazer isso? Centralizar os logins é uma boa prática para administrar a rede, pois assim os usuários precisam se lembrar de menos senhas, sendo possível também implantar Single Sign On (SSO) e colocar a sua senha apenas uma vez por dia e com isso estar autenticado em todos os sistemas e simplificar e muito a administração do ecossistema implantado.&lt;br /&gt;&lt;br /&gt;Uma rede bem feita poderia ter o seguinte fluxo de trabalho: o RH faz o cadastro de um funcionário novo, e com isso o login do cliente já é inserido no banco de dados. Depois disso o administrador responsável coloca o usuários nos grupos adequados e com isso o novo funcionário só precisa trocar a senha inicial por uma forte (eu disse forte!) e pronto! Depois de alguns meses o infeliz faz algo muito errado e é convidado a conhecer outros lugares, fazer novas experiências e basta o superior dele entrar em contato com o RH para que a conta dele seja bloqueada de imediato (RH ou o administrador da rede, depende em quem confia mais).&lt;br /&gt;&lt;br /&gt;Esse é o meu mundo ideal, mas na prática nunca vi nenhum lugar onde precisasse de apenas uma senha.&lt;br /&gt;&lt;br /&gt;Agora um pouco de teoria. No linux para integrar os logins, você precisa de duas coisas: integrar o nsswitch e o PAM&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;NSSWITCH: responsável por fazer o mapeamento id para login ou grupo. É possível criar arquivos ou diretórios com qualquer id, mesmo não tendo o login criado, mas é uma péssima prática&lt;/li&gt;&lt;br /&gt;&lt;li&gt;PAM: responsável pela autenticação dos usuários. É um serviço independente do acima&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cejoOIpK4B8/SU5jdM_1aRI/AAAAAAAAACY/rvrFjKLbCv4/s1600-h/setup.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 179px;" src="http://2.bp.blogspot.com/_cejoOIpK4B8/SU5jdM_1aRI/AAAAAAAAACY/rvrFjKLbCv4/s320/setup.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282268766308493586" /&gt;&lt;/a&gt;&lt;br /&gt;Algumas pessoas podem fazer a pergunta: Por que não LDAP? Para quem não sabe, o AD da Microsoft é um LDAP também, e é a solução mais indicada para guardar esse tipo de dado, pois a sua estrutura interna é feita para leituras frequentes e poucas atualizações. O LDAP para autenticação é uma maravilha, e já vem integrado com a maior parte das distribuições.&lt;br /&gt;&lt;br /&gt;Então por que Postgresql? Porque programar sistemas em LDAP não é nada fácil e o fato dos usuários estarem dentro do banco de dados fazem as integrações ficarem muito legais por causa de chaves estrangeiras: tudo fica muito consistente.&lt;br /&gt;&lt;br /&gt;Na próxima parte, falarei sobre a primeira alternativa que conheço: libss_pgsql e pam_pgsql.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-6110564396412456662?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/6110564396412456662/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=6110564396412456662' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6110564396412456662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6110564396412456662'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/12/autenticando-usurios-do-linux-no.html' title='Autenticando usuários do linux no Postgresql - parte 1'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cejoOIpK4B8/SU5jdM_1aRI/AAAAAAAAACY/rvrFjKLbCv4/s72-c/setup.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-2317588306848549321</id><published>2008-12-14T05:34:00.000-08:00</published><updated>2008-12-14T05:38:28.388-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>O melhor desenho de todos!!!</title><content type='html'>Charlie Brown &amp;eacute; o rei!!!&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1TR1AEHAo9U&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/1TR1AEHAo9U&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qcU6nW635JY&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/qcU6nW635JY&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/dTUdV1duL-k&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/dTUdV1duL-k&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-2317588306848549321?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/2317588306848549321/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=2317588306848549321' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/2317588306848549321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/2317588306848549321'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/12/o-melhor-desenho-de-todos.html' title='O melhor desenho de todos!!!'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-8113588952529051185</id><published>2008-11-29T07:40:00.000-08:00</published><updated>2008-11-29T07:44:53.422-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='metal'/><title type='text'>Anos 90...</title><content type='html'>Ae!&lt;br /&gt;&lt;br /&gt;Post curto. Banda divertida dos anos 90: Cycle Sluts From Hell. Acho que para esse vídeo o embed está bloqueado, então colocarei só o link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=qfC5Mn7t7uQ"&gt;Cycle Sluts From Hell - I Wish You Were A Beer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.myspace.com/cycleslutsfromhell"&gt;My Space&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-8113588952529051185?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/8113588952529051185/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=8113588952529051185' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/8113588952529051185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/8113588952529051185'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/11/anos-90.html' title='Anos 90...'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-8364663872125564518</id><published>2008-11-16T08:00:00.000-08:00</published><updated>2008-11-16T08:11:59.145-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computação'/><title type='text'>Aplicações online são o futuro?</title><content type='html'>Fico pensando sobre a computação daqui a alguns anos, vendo as aplicações online do Google e escutando que o futuro é online.&lt;br /&gt;&lt;br /&gt;Realmente esse é um futuro que eu não gosto. Acho ruim depender de um browser para trabalhar. Hoje uso o Firefox E Konqueror para navegar, e ainda tenho problemas com Javascript, Flash, etc. e ainda querem que eu use mais o meu browser? Ele consome mais da metade da memória da minha máquina no trabalho.&lt;br /&gt;&lt;br /&gt;Aplicações online tem sua utilidade: um sistema de chamados ou ERP / CRM onlines facilitam a programação. Lojas são legais, imagine precisar baixar um programa para o E-Bay, outro para Amazon, Submarino, etc. Já acho um saco baixar plugins para deixar o Internet Banking mais seguro. Mas um editor de texto? Interpretador python ou compilador? Planilhas? Eu discordo.&lt;br /&gt;&lt;br /&gt;Mas hoje eu encontrei algo que na minha opinião é mais viável para o futuro: sistemas completos no pen drive. Por exemplo este: https://fedorahosted.org/liveusb-creator/ . O liveusb-creator serve para vc fazer um pen drive bootável e ainda com espaço para armazenamento. Eu posso por exemplo configurar um pen-drive com as ferramentas que trabalho e usar qualquer máquina do escritório ou minha máquna em casa para trabalhar. Testar novos sistemas antes de instalar e me preocupar menos com a segurança da web ou falta de link.&lt;br /&gt;&lt;br /&gt;Aliás, já estou formatando o meu pen drive para a preview do Fedora 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-8364663872125564518?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/8364663872125564518/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=8364663872125564518' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/8364663872125564518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/8364663872125564518'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/11/aplicaes-online-so-o-futuro.html' title='Aplicações online são o futuro?'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-7163751980492334871</id><published>2008-11-09T14:01:00.000-08:00</published><updated>2008-11-09T14:08:10.277-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>TV - Que rock é esse?</title><content type='html'>Seguindo os conselhos do meu amigo Marcel, vou fazer mais posts no meu blog de coisas diversas.&lt;br /&gt;&lt;br /&gt;O Multishow é o único motivo pelo qual alguém optaria pela net ao invés da TVA. Globo News é ridículo perto da Band News, e é do grupo Globo.&lt;br /&gt;&lt;br /&gt;Quem se salva é o Multishow que sempre tem programas diferentes, passa vários shows completos, como do Iron Maiden, passa mais videoclipes que a MTV, além dos programas porn de madrugada.&lt;br /&gt;&lt;br /&gt;Zapeando os canais achei no Multishow o programa "Que rock é esse?" Que conta a história do rock de 80 pra cá, com algumas explicações dos anos 60 e 70 para contextualizar melhor. Imperdível para quem gosta de rock.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-7163751980492334871?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/7163751980492334871/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=7163751980492334871' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7163751980492334871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7163751980492334871'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/11/tv-que-rock-esse.html' title='TV - Que rock é esse?'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-801442770161801995</id><published>2008-10-17T09:57:00.000-07:00</published><updated>2008-10-20T13:33:48.470-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Usando GIT</title><content type='html'>Depois de alguma resistência, muita conversa com o meu PO (product owner para quem não conhece Scrum) &lt;a href="http://www.akitaonrails.com/"&gt;Fabio Akita&lt;/a&gt;, acabei aqui em casa em um caso perfeito do uso do GIT.&lt;br /&gt;&lt;br /&gt;Há um tempo atrás, comecei a mexer no pacote PAM PGSQL. Ele serve para o sistema procurar informações de usuários em uma base Postgresql. O que eu realmente queria é que o Postgresql tivesse o seguinte comportamento:&lt;br /&gt;&lt;br /&gt;1) Um cliente começa uma autenticação no Postgresql, o postgresql passa essa autenticação para o PAM&lt;br /&gt;2) O PAM analisa os módulos, e após passar por módulos adicionados por mim, voltasse a autenticação para o Postgresql&lt;br /&gt;3) O banco autenticasse o cliente usando a pg_shadow&lt;br /&gt;&lt;br /&gt;Basicamente queria a autenticação normal do Postgresql, porém com o PAM no meio do caminho, para usar o módulo pam_abl por exemplo.&lt;br /&gt;&lt;br /&gt;Baixei o código fonte do projeto e saí programando. Até um certo momento que fiz um arquivo .spec para o projeto. Tirando o código que fiz para a autenticação acima, o resto era de boa utilidade para o projeto, então fiz mais duas cópias do projeto: uma "pristine" e outra só o patch do spec, para enviar para o projeto. Nesse ponto estou com 3 diretórios no computador: o original, um só com o spec e os patches para este funcionar, e outro com a minha cópia de trabalho.&lt;br /&gt;&lt;br /&gt;O tempo passou e o dono do projeto lançou outra versão. O que acontece agora? O meu projeto está desatualizado. Não tem mais importância porque descobri que apaguei a cópia errada e não tenho mais o código. Aff.&lt;br /&gt;&lt;br /&gt;Usando o git nesse caso seria uma mão na roda:&lt;br /&gt;&lt;br /&gt;* baixo a primeira versão do projeto&lt;br /&gt;* adiciono ao git&lt;br /&gt;* crio um branch para o meu devel&lt;br /&gt;* crio um branch para trocar patches com o dono do projeto&lt;br /&gt;* baixo o projeto novo&lt;br /&gt;* atualizo o meu desenvolvimento&lt;br /&gt;&lt;br /&gt;Isso em comandos fica (o diretório é dentro do projeto):&lt;br /&gt;&lt;br /&gt;git init&lt;br /&gt;git add .&lt;br /&gt;git commit .&lt;br /&gt;git tag -a 0.6.5&lt;br /&gt;git branch pg-pam-pg&lt;br /&gt;git checkout pg-pam-pg&lt;br /&gt;&lt;br /&gt;Tá, eu sei, roubei alguns comandos, mas a idéia é essa. Ainda acho que não tem nada de errado com o Subversion, pois se tem um projeto que não pretende abrir, não tem vantagem clara o git, mas sempre é bom conhecer outras ferramentas.&lt;br /&gt;&lt;br /&gt;Em tempo. Refiz o patch e ficou muito melhor dessa vez!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-801442770161801995?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/801442770161801995/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=801442770161801995' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/801442770161801995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/801442770161801995'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/10/usando-git.html' title='Usando GIT'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-7595176014080034836</id><published>2008-10-08T09:57:00.000-07:00</published><updated>2008-10-08T10:56:20.725-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Notificações no postgresql</title><content type='html'>Notificações são simplesmente eventos no Postgresql. Não é novidade para ninguém o uso de notificações: O unix possui o comando kill para mandar sinais para processos, Java Beans é baseado em eventos para atualizar as visões, ou seja, até aqui nenhuma novidade.&lt;br /&gt;&lt;br /&gt;As vantagens que vejo em notificações em bancos de dados são para esses tipos de sistema:&lt;br /&gt;&lt;br /&gt;* Aplicações com caches locais&lt;br /&gt;* Replicação&lt;br /&gt;&lt;br /&gt;As notificações eliminam a necessidade de pooling, que além de chato de fazer, pode sobrecarregar a base de dados.&lt;br /&gt;&lt;br /&gt;Infelizmente em java a arquitetura do JDBC, apesar de muito bem feita, tem limitações e enviar eventos assíncronos é uma delas, mas outras linguagens como Python não possuem essa limitação.&lt;br /&gt;&lt;br /&gt;Para implementar em java notificações, nada melhor que a documentação do driver: &lt;a href="http://jdbc.postgresql.org/documentation/83/listennotify.html" &gt;Listen / Notify&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Em python, as linhas gerais são essas:&lt;br /&gt;&lt;br /&gt;import psycopg2&lt;br /&gt;import psycopg2.extensions&lt;br /&gt;from select import select&lt;br /&gt;&lt;br /&gt;conn = psycopg2.connect('dbname=ze')&lt;br /&gt;conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)&lt;br /&gt;cur = conn.cursor()&lt;br /&gt;cur.execute('LISTEN evento')&lt;br /&gt;select([cur], [], [])&lt;br /&gt;&lt;br /&gt;O código ficará travado até receber uma notificação de evento. O código está bem simples, mas em produção várias situações devem ser tratadas:&lt;br /&gt;&lt;br /&gt;Apesar de quando a conexão morre o select retorna, pode existir alguma situação que isso não aconteça, então coloque um timeout e cheque a conexão (conn.status, conn.closed, cur.isready() etc.). O evento ficará ativo até alguma atividade no banco zerar ele (pode ser um 'select 1').&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-7595176014080034836?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/7595176014080034836/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=7595176014080034836' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7595176014080034836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7595176014080034836'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/10/notificaes-no-postgresql.html' title='Notificações no postgresql'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-3262515030342159764</id><published>2008-10-06T12:22:00.001-07:00</published><updated>2008-10-06T12:29:03.798-07:00</updated><title type='text'>Atulização profissional</title><content type='html'>É... já se passou 5 anos desde que formei e não fiz nada de atualização profissional. Quer dizer, tirei uma certificação e só.&lt;br /&gt;&lt;br /&gt;O problema está que eu no final da faculdade aprendi a me virar, e sempre que fazia curso ficava frustado por ser básico demais. Outra coisa que estou levando muito em consideração é o seguinte: depois que se tem um emprego legal, o peso de certificações cai demais. Na minha opinião elas valem muito no início e depois vão valendo cada vez menos, a medida que se tem um monte de projetos no currículo e as melhores vagas são por indicação.&lt;br /&gt;&lt;br /&gt;A minha estratégia agora é atacar uma pós. Não gosto muito de MBA, apesar de que algumas pessoas falarem que para mim seria legal. O que eu queria mesmo é um título de mestre, porém não fiz uma boa rede de contatos com professores na faculdade, e nem era um aluno exemplar. Terei que fazer um MBA mesmo ou então procurar alguma faculdade mais fácil de entrar no mestrado.&lt;br /&gt;&lt;br /&gt;Apesar de tudo isso não fiquei parado. Aprendi python e estou começando a ficar bom nisso (na minha opinião, devo saber quase 1/3 de Python do que sei de java) e reaprendi C, mas enquanto não entregar algum projeto com essas tecnologias, é o mesmo que não ter feito nada.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-3262515030342159764?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/3262515030342159764/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=3262515030342159764' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/3262515030342159764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/3262515030342159764'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/10/atulizao-profissional.html' title='Atulização profissional'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-272646988290972258</id><published>2008-10-03T14:59:00.000-07:00</published><updated>2008-10-03T15:00:02.696-07:00</updated><title type='text'>Um dos melhores vídeos do YouTube!</title><content type='html'>Muito loko!&lt;br /&gt;&lt;br /&gt;http://www.youtube.com/experiencewii&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-272646988290972258?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/272646988290972258/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=272646988290972258' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/272646988290972258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/272646988290972258'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/10/um-dos-melhores-vdeos-do-youtube.html' title='Um dos melhores vídeos do YouTube!'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-4125469376957370774</id><published>2008-09-15T14:55:00.000-07:00</published><updated>2008-10-08T10:56:50.368-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Usando os models do Django em scripts</title><content type='html'>Apanhei um pouco para fazer isso, o Juliano do trabalho encontrou um link e me mandou, porém aparentemente em Django a documentação não é o forte e o projeto está recente demais.&lt;br /&gt;&lt;br /&gt;Aqui como se faz isso da melhor maneira que achei:&lt;br /&gt;&lt;br /&gt;&lt;div style="white-space: pre;"&gt;import sys&lt;br /&gt;&lt;br /&gt;sys.path.append('DIR_DJANGO')&lt;br /&gt;os.environ['DJANGO_SETTINGS_MODULE'] = 'PROJECT.settings'&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;DIR_DJANGO: Local onde vc rodou "django-admin.py startproject"&lt;br /&gt;PROJECT: Nome do projeto.&lt;br /&gt;&lt;br /&gt;A partir do '...' pode colocar o seu código.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-4125469376957370774?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/4125469376957370774/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=4125469376957370774' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4125469376957370774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4125469376957370774'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/09/usando-os-models-do-django-em-scripts.html' title='Usando os models do Django em scripts'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-324425509028515532</id><published>2008-09-12T07:50:00.000-07:00</published><updated>2008-09-12T08:01:04.117-07:00</updated><title type='text'>Browsers</title><content type='html'>Ontem o meu Firefox atualizou sozinho para a versão 3.0.2. Para o usuário é praticamente igual...&lt;br /&gt;&lt;br /&gt;Só que as minhas senhas sumiram! Metade dos sites que entro não me lembro mais a senha, só uso o recurso de senha mestra e assim sei uma e tenho acesso a todas. Até comecei a lançar um bug, mas como o processo é complicado eu desisti.&lt;br /&gt;&lt;br /&gt;Ontem também passou um documentário sobre a internet, mais especificamente a guerra dos browsers. Foi foda o que a Microsoft fez para quebrar a Netscape.&lt;br /&gt;&lt;br /&gt;Vendo a evolução dos browsers, acho que nos últimos tempos não tivemos grandes novidades, mas as melhorias foram essas entre outras:&lt;br /&gt;&lt;br /&gt;Firefox Places: Salvar o histórico em um SQLite foi uma idéia muito boa. Ficou muito bom!&lt;br /&gt;&lt;br /&gt;Firefox Add-on: O firefox só é mais legal por causa dos plugins, em especial Delicious e Firebug&lt;br /&gt;&lt;br /&gt;Chrome: Ainda está engatinhando, mas a arquitetura dele é bem melhor. O grande problema dos browsers é o consumo de memória. Na verdade é como a memória é alocada. No firefox existe 2 grandes problemas: leaks e fragmentação da memória, o segundo faz com o que o browser não consiga devolver para o S.O. a memória liberada. Com o Chrome isso é mais fácil pois cada aba é um processo. Acredito que no final o Chrome consumirá mais memória que outros, mas será muito mais estável e não precisará mais fechar tudo a cada 2 horas.&lt;br /&gt;&lt;br /&gt;O Chrome juntou 2 coisas muito boas (places e o engine do Safari) e juntou com o multi-processamento. Pode ser o passo do futuro.&lt;br /&gt;&lt;br /&gt;Com essa última mancada do Firefox, estou deixando de ser fã dele, e daqui a pouco terei opção, felizmente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-324425509028515532?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/324425509028515532/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=324425509028515532' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/324425509028515532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/324425509028515532'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/09/browsers.html' title='Browsers'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-4890613910079268840</id><published>2008-09-07T09:14:00.000-07:00</published><updated>2008-09-07T09:26:26.535-07:00</updated><title type='text'>A internet e o excesso de informação</title><content type='html'>Impressionante a quantidade de Frameworks e linguagens de programação que existem hoje em dia. Sem falar nas tecnologias REST que já está forte, o Web-services, que começou a consolidar e já está indo (na minha opinião durou demais), blogs de jornalistas, comentários esportivos, e por aí vai.&lt;br /&gt;&lt;br /&gt;Quem não tem um monte de livros comprados e não lidos? E PDFs então... Pois é, o grande problema de hoje em dia é a quantidade de coisas que quero ler o tempo que tenho disponível. Até que tempo dá para conseguir mais, mas nos horários alternativos eu não consigo ler, fico simplesmente olhando as letras e esperando a osmose agir (ps. aprender por osomose não funciona).&lt;br /&gt;&lt;br /&gt;Limitar é preciso. Hoje tento ler só as tecnologias que posso aplicar dentro de 6 meses. Se passar disso não leio e espero a próxima onda surgir, afinal não dá para pegar todas as ondas na informática.&lt;br /&gt;&lt;br /&gt;O que me empolga hoje: Python. Ainda prefiro java, para o projeto atual eu ficaria muito mais feliz. Mas instalar java + tomcat em 1000 servidores diferentes não é algo simples.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-4890613910079268840?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/4890613910079268840/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=4890613910079268840' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4890613910079268840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4890613910079268840'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/09/internet-e-o-excesso-de-informao.html' title='A internet e o excesso de informação'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-4871039947029046606</id><published>2008-08-18T08:39:00.000-07:00</published><updated>2008-08-18T08:52:12.723-07:00</updated><title type='text'>Adeus</title><content type='html'>Quinta-feira eu perdi meu pai. Não era meu pai, também era o meu melhor amigo.&lt;br /&gt;&lt;br /&gt;Estou muito sentido já que eu convivia com ele todos os dias, morando somente eu e ele na mesma casa há quase um ano.&lt;br /&gt;&lt;br /&gt;Minha vida nunca mais será a mesma. Obrigado por tudo pai, continuarei a seguir os seus conselhos e pensarei sempre em você.&lt;br /&gt;&lt;br /&gt;Adeus.&lt;br /&gt;&lt;br /&gt;José Evangelista Villanova Filho&lt;br /&gt;* 21/08/1950 + 14/08/2008&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-4871039947029046606?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/4871039947029046606/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=4871039947029046606' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4871039947029046606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4871039947029046606'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/08/adeus.html' title='Adeus'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-4834781100247941024</id><published>2008-08-08T06:17:00.000-07:00</published><updated>2008-10-08T10:57:20.761-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='computação'/><title type='text'>Python: chamando todos os testes unitários de  um diretório</title><content type='html'>Esse é o primeiro código que considero legal que fiz em python.&lt;br /&gt;&lt;br /&gt;O layout de projeto que estou usando no momento é um diretório raiz, com 2 diretórios dentro: src e test, padrão em muitos lugares.&lt;br /&gt;&lt;br /&gt;A função que fiz chama todos os testes do diretório test:&lt;br /&gt;&lt;br /&gt;&lt;div style="white-space: pre;"&gt;def runTests(source='src', test='test', ignore='.svn'):&lt;br /&gt;   '''Dynamically, load all tests from test/ dir'''&lt;br /&gt;&lt;br /&gt;   import unittest, os&lt;br /&gt;   sys.path.append(source)&lt;br /&gt;   sys.path.append(test)&lt;br /&gt;   tests = []&lt;br /&gt;   for dirpath, dirnames, filenames in os.walk(test):&lt;br /&gt;       if dirpath.find(ignore) != -1:&lt;br /&gt;           continue&lt;br /&gt;       for file in filenames:&lt;br /&gt;           if not file.endswith('.py'):&lt;br /&gt;               continue&lt;br /&gt;           module_name = os.path.join(dirpath, file)[5:-3]&lt;br /&gt;           module_name = module_name.replace('/', '.')&lt;br /&gt;           module = __import__(module_name)&lt;br /&gt;           for key in module.__dict__.keys():&lt;br /&gt;               clazz = module.__dict__[key]&lt;br /&gt;               ret = False&lt;br /&gt;               try:&lt;br /&gt;                   ret = issubclass(clazz, unittest.TestCase)&lt;br /&gt;               except TypeError:&lt;br /&gt;                   pass&lt;br /&gt;               if (ret == True):&lt;br /&gt;                    tests.append(unittest.TestLoader()&lt;br /&gt;                            .loadTestsFromTestCase(clazz))&lt;br /&gt;    alltests = unittest.TestSuite(tests)&lt;br /&gt;    unittest.TextTestRunner(verbosity=2).run(alltests)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Se eu encontrar alguma maneira melhor de mostrar o código, irei colocar aqui. Sobre a função, ainda precisa de alguns ajustes, como aceitar uma lista de ignores e integrar com o distutils, mas já está legal para quem programa Python há menos de um mês.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-4834781100247941024?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/4834781100247941024/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=4834781100247941024' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4834781100247941024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4834781100247941024'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/08/python-chamando-todos-os-testes.html' title='Python: chamando todos os testes unitários de  um diretório'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-4126402020726080629</id><published>2008-08-08T06:00:00.000-07:00</published><updated>2008-08-08T06:02:21.236-07:00</updated><title type='text'>Coisas que só acontecem comigo #2</title><content type='html'>Ontem estava acabando o combustível do meu carro. Parei no posto e falei "Completa". Como o carro tem trava elétrica, só tirei a chave do contato para abrir o tanque.&lt;br /&gt;&lt;br /&gt;Só que não abriu...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-4126402020726080629?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/4126402020726080629/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=4126402020726080629' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4126402020726080629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4126402020726080629'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/08/coisas-que-s-acontecem-comigo-2.html' title='Coisas que só acontecem comigo #2'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-1567242078400810926</id><published>2008-08-05T19:19:00.000-07:00</published><updated>2008-08-06T17:10:45.152-07:00</updated><title type='text'>Sites da nova internet</title><content type='html'>Se não entrou, entre:&lt;br /&gt;&lt;br /&gt;* &lt;a href="https://twitter.com/"&gt;Twitter&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www.cuil.com/"&gt;Cuil&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-1567242078400810926?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/1567242078400810926/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=1567242078400810926' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/1567242078400810926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/1567242078400810926'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/08/sites-da-nova-internet.html' title='Sites da nova internet'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-3932028063844873870</id><published>2008-08-05T18:33:00.000-07:00</published><updated>2008-08-05T18:40:47.617-07:00</updated><title type='text'>Locaweb com mod_rails em Linux compartilhados</title><content type='html'>Na crista da onda da tecnologia web, a &lt;a href="http://www.locaweb.com.br"&gt;Locaweb&lt;/a&gt; disponibiliza em seu ambiente Linux compartilhado a possibilidade de colocar em produ&amp;ccedil;&amp;atilde;o sua aplica&amp;ccedil;&amp;atilde;o Ruby on Rails usando o inovador &lt;a href="http://www.modrails.com"&gt;Phusion Passenger&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A vantagem &amp;eacute; simples: performance.&lt;br /&gt;&lt;br /&gt;Anúncio oficial: &lt;a href="http://blog.locaweb.com.br/archives/347"&gt;Ruby on Rails em produ&amp;ccedil;&amp;atilde;o nas hospedagens Linux!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;Eacute; isso a&amp;iacute;, usem Linux!&lt;br /&gt;&lt;br /&gt;* Sim, sou programador java, mas toda linguagem tem sua função. Para fazer blog, Pet Store e-commerce, rails é a melhor solução.&lt;br /&gt;&lt;br /&gt;* Escolham a Locaweb, ela é a melhor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-3932028063844873870?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/3932028063844873870/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=3932028063844873870' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/3932028063844873870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/3932028063844873870'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/08/locaweb-com-modrails-em-linux.html' title='Locaweb com mod_rails em Linux compartilhados'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-5507991375667435643</id><published>2008-08-05T18:27:00.000-07:00</published><updated>2008-08-05T18:42:08.391-07:00</updated><title type='text'>Agora eu saberei quem são vocês!</title><content type='html'>Seguindo uma dica do meu grande amigo e colega de trabalho, Luiz, que aliás tem um blog interessante (links do meu site, OFF TOPIC), instalei o Google Analytics no meu site.&lt;br /&gt;&lt;br /&gt;Não entrarei em muito detalhes, se quiser fazer o mesmo é só procurar no Google.&lt;br /&gt;&lt;br /&gt;O fato agora é: "Eu sei o seu ip!".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-5507991375667435643?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/5507991375667435643/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=5507991375667435643' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/5507991375667435643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/5507991375667435643'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/08/agora-eu-saberei-quem-so-vocs.html' title='Agora eu saberei quem são vocês!'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-5557060954148786314</id><published>2008-08-03T08:55:00.000-07:00</published><updated>2008-08-03T08:58:33.211-07:00</updated><title type='text'>Coisas que só acontecem comigo</title><content type='html'>Sem comentários!&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_cejoOIpK4B8/SJXVcGFqFtI/AAAAAAAAABg/buoGgwRviQU/s1600-h/Untitled.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_cejoOIpK4B8/SJXVcGFqFtI/AAAAAAAAABg/buoGgwRviQU/s320/Untitled.png" alt="" id="BLOGGER_PHOTO_ID_5230321220908095186" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-5557060954148786314?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/5557060954148786314/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=5557060954148786314' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/5557060954148786314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/5557060954148786314'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/08/coisas-que-s-acontecem-comigo.html' title='Coisas que só acontecem comigo'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_cejoOIpK4B8/SJXVcGFqFtI/AAAAAAAAABg/buoGgwRviQU/s72-c/Untitled.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-4837695258389166573</id><published>2008-08-03T08:30:00.000-07:00</published><updated>2008-08-03T08:33:08.966-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computação'/><title type='text'>KDE 4.1</title><content type='html'>Finalmente um KDE 4 para usar. Não se engane! Ainda é para aventureiros, 'early-adopters'.&lt;br /&gt;&lt;br /&gt;Ultimamente tenho instalado muita coisa beta no computador, e por isso tenho vários travamentos, mas algumas coisas compensam... depois de um tempo o tédio começa a bater e vc começa a se acomodar. Assim vc sempre está pesquisando, mantendo a mente ativa.&lt;br /&gt;&lt;br /&gt;Para usuários de fedora 9:&lt;br /&gt;&lt;br /&gt;# yum --enablerepo=updates-testing update 'kde*'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-4837695258389166573?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/4837695258389166573/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=4837695258389166573' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4837695258389166573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4837695258389166573'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/08/kde-41.html' title='KDE 4.1'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-4340378186761096115</id><published>2008-08-03T07:16:00.000-07:00</published><updated>2008-08-03T07:31:45.876-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>Meu irmão em Hollywood</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_cejoOIpK4B8/SJW-0R4MTqI/AAAAAAAAABY/uzLGW2HFM3M/s1600-h/253911%7EJason-Statham-Posters.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_cejoOIpK4B8/SJW-0R4MTqI/AAAAAAAAABY/uzLGW2HFM3M/s320/253911%7EJason-Statham-Posters.jpg" alt="" id="BLOGGER_PHOTO_ID_5230296347622264482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;O cara novo do trabalho que falou... de início achei que ele tinha consumido drogas, mas depois que achei essa foto...&lt;br /&gt;&lt;br /&gt;Só ganhar uns 20kg em músculo, usar roupa social novamente e pelo menos 10cm de altura...&lt;br /&gt;&lt;br /&gt;Jason Statham do filme carga explosiva.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-4340378186761096115?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/4340378186761096115/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=4340378186761096115' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4340378186761096115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/4340378186761096115'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/08/meu-irmo-em-hollywood.html' title='Meu irmão em Hollywood'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_cejoOIpK4B8/SJW-0R4MTqI/AAAAAAAAABY/uzLGW2HFM3M/s72-c/253911%7EJason-Statham-Posters.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-682233176483478681</id><published>2008-07-27T07:43:00.000-07:00</published><updated>2008-07-27T07:52:11.951-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>Relax time</title><content type='html'>Conforme o meu grande amigo (literalmente!) Marcel, blog é pra postar bobagem mesmo, pros camaradas estressados ficarem olhando depois de horas procurando o bug e não encontram.&lt;br /&gt;&lt;br /&gt;Sempre gostei de clips com animações ou historinhas, coisas tipo Beavis and Butthead. E nesse naipe, na minha opinião, os do Rammstein são muito bons!&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/x5dm7AYZ-tg&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/x5dm7AYZ-tg&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-682233176483478681?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/682233176483478681/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=682233176483478681' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/682233176483478681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/682233176483478681'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/07/relax-time.html' title='Relax time'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-8712601269752123199</id><published>2008-07-23T06:09:00.000-07:00</published><updated>2008-07-23T06:27:38.247-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computação'/><title type='text'>O que está me mantendo ocupado</title><content type='html'>Trabalhar com computador (informática o caralho! Não fico montando micro) é uma profissão de tempo integral. Até alguns meses atrás estava muito resistente com tecnologias novas, até perceber: "poutz, estou ficando velho e obsoleto".&lt;br /&gt;&lt;br /&gt;Não por isso! Acelerei o meu aprendizado de Ruby on Rails (o fato da empresa querer que eu saiba ajuda, já que a água estava chegando perto da bunda), e também comecei a aprender Python. Não só isso, estou aprimorando os meus conhecimentos de Linux também. Resumidamente o que me mantém ocupado ultimatemente:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Linux, principalmente a parte de RPM, nada de programas perdidos pelo disco&lt;/li&gt;&lt;li&gt;C: estou aprendendo melhor e criando alguns patchs. Estou tentando lançar um patch meu para o iptables e começar alguns projetos para Postgresql e PAM&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ruby on Rails: Chega de fazer CRUD! Usando RoR é possível pegar freelancer sussa ou então assumir um projeto sem precisar de toupeiras para completar o time&lt;/li&gt;&lt;li&gt;Python: uma linguagem com umas das piores sintaxes que eu já vi! Em contrapartida a Red Hat investe muito, e se tiver Red Hat instalado, tem Python. É muito melhor que Perl pois é legível, rápido e orientado a objetos&lt;/li&gt;&lt;/ul&gt;É meio complicado conciliar vida pessoal e profissional, e estou aproveitando o fato de ainda morar separado da mulher, mas infelizemente se não se mexe fica pra trás mesmo. Trabalhar com internet é diferente de trabalhar em banco por exemplo, a renovação é muito mais rápida, só que é muito divertido e diversificado o trabalho.&lt;br /&gt;&lt;br /&gt;Trabalha com computação? Não escolha linguagem, aprenda o maior número que puder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-8712601269752123199?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/8712601269752123199/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=8712601269752123199' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/8712601269752123199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/8712601269752123199'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/07/o-que-est-me-mantendo-ocupado.html' title='O que está me mantendo ocupado'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-3899402294520487317</id><published>2008-06-25T18:47:00.000-07:00</published><updated>2008-06-25T18:50:11.898-07:00</updated><title type='text'>Tornando-se um DBA Master</title><content type='html'>DBA é aquele sujeito que é o chato, a não ser no dia em que a base dá problema, e aí ele vira o sujeito mais importante da empresa, se conseguir resolver o problema.&lt;br /&gt;&lt;br /&gt;Esses são os dias que você terá para se destacar, então obviamente é necessário valorizar a situação, mesmo tendo a resposta na ponta da língua.&lt;br /&gt;&lt;br /&gt;Para se tornar um DBA Master, será necessário sair do trivial e ter conhecimentos muito acima da média. Uma lista para ajudar:&lt;br /&gt;&lt;br /&gt;1) Saiba fazer o básico rápido&lt;br /&gt;&lt;br /&gt;Ok, temos um problema e precisamos buscar a solução. A primeira coisa é saber reproduzir o problema e testar os procedimentos antes de fazer em produção. Quando trabalhava com menos bases, eu sempre tinha um ambiente de testes, homologação e produção. Trabalhando com diversas bases e diversas versões isso complica. Saiba instalar todas as versões necessárias rapidamente para subir um ambiente do nada caso necessário.&lt;br /&gt;&lt;br /&gt;2) O manual é obrigação&lt;br /&gt;&lt;br /&gt;Testar todos os comandos que existem para uma base de dados e saber para que eles servem é o básico. Isso pode resolver seu problema em segundos.  Saiba para que serve cada arquivo, onde eles ficam, os parâmetros de start, aumentar a geração de logs e saber interpretar, conhecer bem o catálogo do sistema para conseguir gerar scripts rapidamente.&lt;br /&gt;&lt;br /&gt;3) Backup sempre em mãos&lt;br /&gt;&lt;br /&gt;Caso trabalhe em um lugar grande e o backup é tarefa de uma outra equipe, peça uma vez por mês o backup e suba em uma base de testes. Teste sua integridade. Isso é o básico, e o que pode facilitar sua vida é saber fazer rápido outras coisas como: restaurar toda a base, algumas ou somente uma tabela, restaurar em bases diferentes, tabelas com nome diferente, enfim, conseguir realizar diversas operações com o backup, já que tudo isso pode ser útil quando uma tabela corrompe.&lt;br /&gt;&lt;br /&gt;4) Pratique, organize&lt;br /&gt;&lt;br /&gt;Nunca se sabe quando a base irá pifar, mas quando acontecer, esteja preparado e com tudo necessário em mãos.&lt;br /&gt;&lt;br /&gt;5) Ir além do manual&lt;br /&gt;&lt;br /&gt;Essa é a parte quando você realmente se torna master em alguma coisa. Saber como as coisas funcionam realmente. No caso de um banco de dados o que é necessário para um DBA é conseguir recuperar pelo menos parte da informação perdida, ou levantar rapidamente um sistema travado. Para ganhar esse conhecimento é necessário simular diversos problemas que podem acontecer em uma base. Apague arquivos, zere alguns arquivos, aumente eles de tamanho, diminua, altere os arquivos (mesmo os binários), ou seja, destrua a base e tente recuperá-la.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-3899402294520487317?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/3899402294520487317/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=3899402294520487317' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/3899402294520487317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/3899402294520487317'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/06/tornando-se-um-dba-master.html' title='Tornando-se um DBA Master'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-5132440103620245325</id><published>2008-06-17T18:08:00.000-07:00</published><updated>2008-06-17T18:29:36.535-07:00</updated><title type='text'>PreparedStatements com cláusulas IN</title><content type='html'>Antes da febre dos frameworks de mapeamento objeto / tabela, era muito comum no mundo Java escrever classes DAO. Você escrevia dentro dela todo o SQL, fazia vários tipos de malabarismos com a conexão e deixava toda parte suja lá dentro. Uma coisa que eu fazia muito era SQL dinâmico. Na época não parava para pensar em uma solução melhor, mas já sabia dos problemas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Encontrar o trecho que gerou o SQL&lt;/li&gt;&lt;li&gt;Pooling de Statements&lt;/li&gt;&lt;/ul&gt;Apesar do driver do Postgres JDBC não fazer pooling de Statements, alguns Pools de conexões fazem.&lt;br /&gt;&lt;br /&gt;Voltando ao problema inicial, imagine uma lista de empresas, selecionamos várias empresas para atualizar um campo. Por baixo dos panos estamos criando uma lista (java.util.List provavelmente) e passando isso como parâmetro para o método correto do DAO. Dentro do DAO tem um loop que gera algo como isso: where id_empresa in (?, ?, ?, ?). Toda vez que o número de parâmetros muda, lá se vai o cache caso existir. Pela internet já encontrei várias soluções, algumas muito toscas como fazer vários métodos com um número pré-determinado, mas uma que me agradou (infelizmente eu perdi o link) era enviar apenas 1 parâmetro. Como? Esse parâmetro é para uma função:  id_empresa in (string2arr(?)).&lt;br /&gt;&lt;br /&gt;Achei a idéia bem interessante e caso não sua aplição deixe fazer isso, sugiro usar nativamente arrays: id_empresa = ANY (?). Não é tão compatível e ainda será necessário implementar a classe, mas acho que vale a pena essa solução.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-5132440103620245325?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/5132440103620245325/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=5132440103620245325' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/5132440103620245325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/5132440103620245325'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/06/preparedstatements-com-clusulas-in.html' title='PreparedStatements com cláusulas IN'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-1584863658060932660</id><published>2008-06-15T08:07:00.001-07:00</published><updated>2008-06-15T08:18:02.974-07:00</updated><title type='text'>Sarna para se coçar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cejoOIpK4B8/SFUyX417LQI/AAAAAAAAABQ/ku98XhyiP48/s1600-h/penguin1.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_cejoOIpK4B8/SFUyX417LQI/AAAAAAAAABQ/ku98XhyiP48/s320/penguin1.gif" alt="" id="BLOGGER_PHOTO_ID_5212127529728158978" border="0" /&gt;&lt;/a&gt;Pretendia fazer um artigo sobre o Postgres neste final de semana, tentando seguir o pensamento de um amigo sobre colocar coisas que não estão no manual, tanto para tornar o blog mais interessante quanto para acrescentar para quem já usa. Isso é algo um pouco complicado já que o Postgres tem um manual que na minha opinião é bem organizado e completo.&lt;br /&gt;&lt;br /&gt;Mas o que consumiu grande parte do meu final de semana foi reinstalar o sistema mais uma vez, porém um Fedora 9 x86_64. Já comecei errado não checando se o DVD que gravei estava ok (não estava) e formatei a máquina. Nem tinha mais mídia em casa para gravar de novo. Tive que instalar um Linux mais velho, comprar a preço de ouro um DVD perto de casa (para não perder muito tempo) e instalar de novo. Também apanhei novamente com a minha placa de rede Wireless, pois não consegui fazer o Ndiswrapper funcionar. Felizmente no Fedora 9 finalmente existe um driver que funciona na Distro. Menos coisas para eu me preocupar.&lt;br /&gt;&lt;br /&gt;Ainda preciso fazer algumas coisas para a máquina ficar mais ou menos como estava antes, mas já estou bem próximo disso. O Postgres 8.3.3 já está instalado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-1584863658060932660?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/1584863658060932660/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=1584863658060932660' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/1584863658060932660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/1584863658060932660'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/06/sarna-para-se-coar.html' title='Sarna para se coçar'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cejoOIpK4B8/SFUyX417LQI/AAAAAAAAABQ/ku98XhyiP48/s72-c/penguin1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-6940653403436481886</id><published>2008-06-11T08:25:00.000-07:00</published><updated>2008-06-11T08:30:13.595-07:00</updated><title type='text'>Rápida...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cejoOIpK4B8/SE_vcHRciFI/AAAAAAAAABI/IGAxgTL4j3A/s1600-h/viva_zen.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_cejoOIpK4B8/SE_vcHRciFI/AAAAAAAAABI/IGAxgTL4j3A/s320/viva_zen.png" alt="" id="BLOGGER_PHOTO_ID_5210646560158550098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Montagem feita pelo Sensei... algumas pessoas que me conhecem com certeza irão concordar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-6940653403436481886?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/6940653403436481886/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=6940653403436481886' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6940653403436481886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6940653403436481886'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/06/rpida.html' title='Rápida...'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cejoOIpK4B8/SE_vcHRciFI/AAAAAAAAABI/IGAxgTL4j3A/s72-c/viva_zen.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-2503681593442604644</id><published>2008-06-05T19:06:00.000-07:00</published><updated>2008-06-05T19:14:50.729-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Postgresql - Organizando a base com esquemas</title><content type='html'>O postgresql como outros bancos de dados possui o recurso de criar esquemas&lt;br /&gt;dentro da base. Um esquema é basicamente um diretório, com a diferença que não&lt;br /&gt;é possível criar esquemas dentro de esquemas como é possível em sistemas de&lt;br /&gt;arquivos.&lt;br /&gt;&lt;br /&gt;Criar um esquema, objetos dentro dele e acessá-los é simples:&lt;br /&gt;&lt;br /&gt;$ create schema seguranca;&lt;br /&gt;$ create table seguranca.usuarios (id serial, login varchar(20), password varchar (32));&lt;br /&gt;$ select * from seguranca.usuarios;&lt;br /&gt; id | login | password&lt;br /&gt;----+-------+----------&lt;br /&gt;(0 rows)&lt;br /&gt;&lt;br /&gt;Usando outro recurso do Postgresql, o esquema pode ser tornar algo muito mais&lt;br /&gt;poderoso: o &lt;span class="nfakPe"&gt;search_path&lt;/span&gt;. O padrão do banco é "$user", public o que significa&lt;br /&gt;que o primeiro lugar que o banco busca uma tabela é em um esquema com o mesmo&lt;br /&gt;nome que o usuário, depois no esquema public (o padrão). Funciona da mesma&lt;br /&gt;maneira que a variável PATH das shells de Unix, para quem conhece.&lt;br /&gt;&lt;br /&gt;Um bom caso de uso é um banco para uma aplicação para empresas, que necessita&lt;br /&gt;de tabelas específicas para cada, porém elas compartilham um cadastro básico&lt;br /&gt;de cidades. O layout seria como esse:&lt;br /&gt;&lt;br /&gt;$ create schema comum;&lt;br /&gt;$ create table comum.cidades (id serial, estado char(2), cidade varchar(100));&lt;br /&gt;$ create schema empresa1;&lt;br /&gt;[Tabelas da primeira empresa]&lt;br /&gt;$ create schema empresa2;&lt;br /&gt;[Tabelas da segunda empresa]&lt;br /&gt;&lt;br /&gt;Juntando com a variável &lt;span class="nfakPe"&gt;search_path&lt;/span&gt; (o alter user faz essa mudança ser&lt;br /&gt;persistente):&lt;br /&gt;&lt;br /&gt;$ alter user jabvlinux1 set &lt;span class="nfakPe"&gt;search_path&lt;/span&gt; = "$user", public, comum;&lt;br /&gt;&lt;br /&gt;Quando uma nova conexão é criada, podemos executar o seguinte comando para, a&lt;br /&gt;partir deste ponto, não precisar mais de especificar o esquema nas consultas /&lt;br /&gt;atualizações.&lt;br /&gt;&lt;br /&gt;$ set &lt;span class="nfakPe"&gt;search_path&lt;/span&gt; = "$user", public, comum;&lt;br /&gt;&lt;br /&gt;Desta maneira, com uma pequena alteração no código, é possível separar de&lt;br /&gt;maneira eficiente e organizada os dados dentro do banco.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-2503681593442604644?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/2503681593442604644/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=2503681593442604644' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/2503681593442604644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/2503681593442604644'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/06/postgresql-organizando-base-com.html' title='Postgresql - Organizando a base com esquemas'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-6076692553632818700</id><published>2008-06-01T06:26:00.000-07:00</published><updated>2008-06-01T06:51:12.964-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>O melhor do pior</title><content type='html'>Como muitos já devem saber sou fissurado em games antigos. A simplicidade e a nostalgia desses games me atraem. Outra coisa que também sou fissurado é desenho animado. Anime, CG, velhos, curto muita coisa disso. Agora a tosqueira do dia: &lt;a href="http://www.g4tv.com/codemonkeys/index.html"&gt;Code Monkeys&lt;/a&gt;. Programadores de jogos em desenho animado estilo 8-bits! Tosco demais! Vi sábado no Multishow de noite. Aliás o Multishow está com vários desenhos adultos bizarros, como &lt;a href='http://www.comedycentral.com/shows/drawn_together/index.jhtml'&gt;Drawn Together&lt;/a&gt;. Bizarro!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-6076692553632818700?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/6076692553632818700/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=6076692553632818700' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6076692553632818700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/6076692553632818700'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/06/o-melhor-do-pior.html' title='O melhor do pior'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-923225896795281406</id><published>2008-05-22T18:46:00.000-07:00</published><updated>2008-05-22T18:51:25.832-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>Reinstalando o Comp</title><content type='html'>Resolvi atualizar o Linux. Mais uma vez. Claro que a minha máquina mais uma vez parou de funcionar e estraguei arquivos que não queria estragar, alguns programas deixaram de funcionar como deveriam, esse tipo de coisa. Aliás nem sei porque resolvi reinstalar, pois já sabia que essas coisas aconteceriam e estava tudo funcionando como deveria.&lt;br /&gt;&lt;br /&gt;Por um outro lado também não posso parar no tempo. Eu me pego de vez em quando criticando coisas novas falando que as coisas velhas eram melhores. Parei para pensar... que pensamento de velho! E é por isso que eu reinstalo a máquina, quebro e conserto: para continuar aprendendo coisas. Seria mais produtivo instalar um Oracle e ficar consertando/quebrando. E melhor para o meu futuro. Mas agora já foi e passarei grande parte do final de semana vendo o porque os programas que gosto não estão funcionando. Acho que é isso, as pessoas não aprendem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-923225896795281406?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/923225896795281406/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=923225896795281406' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/923225896795281406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/923225896795281406'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/05/reinstalando-o-comp.html' title='Reinstalando o Comp'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-2048815123094433783</id><published>2008-05-20T16:58:00.000-07:00</published><updated>2008-06-01T06:52:52.696-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>Novos rumos para este espaço</title><content type='html'>Tentei evitar, pensei em vários tópicos, falar do cotidiano, jogos, política, etc. porém não tem jeito: sou mais conhecido na internet pelo lado profissional.&lt;br /&gt;&lt;br /&gt;Aconteceram algumas coisas onde trabalho que me pegaram de surpresa, mas não são negativas, porém mostram que o tempo está passando e estou deixando ele ir embora.&lt;br /&gt;&lt;br /&gt;Onde trabalho, tirando a minha equipe, tem duas ou três pessoas que sabem de coisas legais que sei fazer, parte do potencial que tenho que não estou usando agora. É mais fácil chamarem alguém de fora para coisas que sei do que ficarem sabendo que existe alguém lá dentro com a capacidade.&lt;br /&gt;&lt;br /&gt;Por causa disso decidi dedicar este espaço para colocar coisas que sei e melhorar o meu marketing pessoal. Aliás, o nome do blog surgiu por causa desse meu lado, então agora, para os que trabalharam comigo na secretaria fará mais sentido.&lt;br /&gt;&lt;br /&gt;O tema da vez será Postgresql. Quem sabe mais para frente fale também de entrelinhas do Linux, um pouco de java, outros bancos ou até coisas novas que estou aprendendo como RoR.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-2048815123094433783?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/2048815123094433783/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=2048815123094433783' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/2048815123094433783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/2048815123094433783'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/05/novos-rumos-para-este-espao.html' title='Novos rumos para este espaço'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-2204268313045081357</id><published>2008-05-17T08:01:00.000-07:00</published><updated>2008-06-01T06:52:42.226-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>Perdido na web</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cejoOIpK4B8/SC7zl4B-WmI/AAAAAAAAAA0/IJIJAPgBq6A/s1600-h/Battle+City+%28J%29_005.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 240px; height: 225px;" src="http://2.bp.blogspot.com/_cejoOIpK4B8/SC7zl4B-WmI/AAAAAAAAAA0/IJIJAPgBq6A/s320/Battle+City+%28J%29_005.png" alt="" id="BLOGGER_PHOTO_ID_5201362451680877154" border="0" /&gt;&lt;/a&gt;A internet pode ser um lugar entediante. No começo tudo é novidade, depois vai começando a freqüentar mais constantemente os mesmos sites ou vai parando de fuçar. Ultimamente o meu site preferido é o http://www.youtube.com/ , pois é o melhor lugar para escutar umas músicas aleatoriamente e ainda acaba conhecendo outras coisas vendo nos itens relacionados. Outra coisa que eu comecei a curtir muito é o http://del.icio.us/ , (meu perfil: http://del.icio.us/azlev), afinal, os links dos caras tranqueiras como vocês devem apontar para coisas que gosta, oi coisas que pode vir a gostar.&lt;br /&gt;&lt;br /&gt;Aliás, no meu delicious tem o site que eu baixei as ROMs de NES. Ainda irá demorar para conseguir colocar todos os bookmarks que tenho para dentro dele, pois queria filtrar as tranqueiradas antes de importar, então decidi fazer isso com calma.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-2204268313045081357?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/2204268313045081357/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=2204268313045081357' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/2204268313045081357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/2204268313045081357'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/05/perdido-na-web.html' title='Perdido na web'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cejoOIpK4B8/SC7zl4B-WmI/AAAAAAAAAA0/IJIJAPgBq6A/s72-c/Battle+City+%28J%29_005.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-7836185267539092887</id><published>2008-05-05T17:38:00.000-07:00</published><updated>2008-06-01T06:52:26.646-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_cejoOIpK4B8/SB-oum3AW0I/AAAAAAAAAAs/ysz-WPMsfRo/s1600-h/Battletoads+%28E%29_001.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_cejoOIpK4B8/SB-oum3AW0I/AAAAAAAAAAs/ysz-WPMsfRo/s320/Battletoads+%28E%29_001.png" alt="" id="BLOGGER_PHOTO_ID_5197058013667547970" border="0" /&gt;&lt;/a&gt;Deixar de ser sedentário é uma tarefa árdua. Depois que saí da república, onde jogava bola uma vez por semana, o máximo que fiz foi comprar um skate  e dar umas poucas voltas, nem 1/10 do que eu fazia quando era moleque, e ainda virou presente para o filho do ladrão do meu carro. Dá raiva pensar nisso. Mas agora as coisas estão mudando. Estou farto de pegar horas de congestionamento e gente irada com a vida no trânsito, e também penso em não seguir o exemplo do meu pai que acabou operando o coração, e logo logo começarei a ir de bike para o trabalho. Ainda vai demorar um pouco para isso acontecer, já que mal aguento fazer o percurso, porém logo não serei eu o mala parado no congestionamento na frente do seu carro. Espero que isso se torne realidade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-7836185267539092887?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/7836185267539092887/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=7836185267539092887' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7836185267539092887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7836185267539092887'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/05/deixar-de-ser-sedentrio-uma-tarefa-rdua.html' title=''/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cejoOIpK4B8/SB-oum3AW0I/AAAAAAAAAAs/ysz-WPMsfRo/s72-c/Battletoads+%28E%29_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-3972958604788187264</id><published>2008-05-01T08:26:00.000-07:00</published><updated>2008-06-01T06:52:06.461-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>Nintendo 8-bits...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_cejoOIpK4B8/SBnhl23AWzI/AAAAAAAAAAk/SIIPyTqYAYI/s1600-h/ninja_gaiden.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_cejoOIpK4B8/SBnhl23AWzI/AAAAAAAAAAk/SIIPyTqYAYI/s320/ninja_gaiden.jpg" alt="" id="BLOGGER_PHOTO_ID_5195431685646211890" border="0" /&gt;&lt;/a&gt;Jogar NES é uma sensação muito boa para mim, afinal devo ser um dos últimos players deste console. Emulador na verdade.&lt;br /&gt;&lt;br /&gt;Talvez seja nostalgia, preguiça de aprender jogos com mais de 2 botões, sei lá, provavelmente nostalgia mesmo. Lembra a minha infância, de reunir com os amigos para jogar Atari, de dormir a tarde toda depois da aula.&lt;br /&gt;&lt;br /&gt;A minha idéia nesse blog era não é fazer posts com títulos, mas com imagens de jogos, preferencialmente de 8-bits, que hoje é um dos meus passatempos favoritos.&lt;br /&gt;&lt;br /&gt;Talvez coloque algumas coisas de programação, mas daí o blog iria ficar nerd demais para alguns. Enfim, sei lá.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-3972958604788187264?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/3972958604788187264/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=3972958604788187264' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/3972958604788187264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/3972958604788187264'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/05/nintendo-8-bits.html' title='Nintendo 8-bits...'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cejoOIpK4B8/SBnhl23AWzI/AAAAAAAAAAk/SIIPyTqYAYI/s72-c/ninja_gaiden.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7604782773155525118.post-7254362832880556955</id><published>2008-04-28T05:58:00.000-07:00</published><updated>2008-06-01T06:51:44.548-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>Por que fundo preto...</title><content type='html'>Porque economiza energia e força menos a visão:&lt;br /&gt;&lt;br /&gt;http://jbonline.terra.com.br/extra/2007/07/11/e11075668.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7604782773155525118-7254362832880556955?l=zefacts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zefacts.blogspot.com/feeds/7254362832880556955/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7604782773155525118&amp;postID=7254362832880556955' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7254362832880556955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7604782773155525118/posts/default/7254362832880556955'/><link rel='alternate' type='text/html' href='http://zefacts.blogspot.com/2008/04/por-que-fundo-preto.html' title='Por que fundo preto...'/><author><name>Zé</name><uri>http://www.blogger.com/profile/14054674156194000237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_cejoOIpK4B8/SOziv5IjMHI/AAAAAAAAACA/UFuaHltv-C8/S220/Ze_programador_de_final_de_semana.png'/></author><thr:total>2</thr:total></entry></feed>
