<?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-9142338785199116552</id><updated>2011-11-27T23:51:38.487-02:00</updated><category term='mobile'/><category term='apache'/><category term='artigos'/><category term='emerging'/><category term='shell script'/><category term='dicas'/><category term='html5'/><category term='web'/><category term='QA'/><category term='security'/><category term='C'/><category term='optimizing'/><category term='css3'/><category term='best practices'/><category term='outros'/><category term='bancos de dados'/><category term='engenharia reversa'/><category term='emergente'/><category term='formatos de arquivo'/><category term='assembly'/><category term='tradução de clássicos'/><category term='databases'/><category term='microformats'/><category term='PHP'/><category term='fatos'/><category term='segurança'/><category term='css'/><category term='otimização'/><category term='tips'/><category term='Linux'/><category term='facts'/><category term='utilidades'/><category term='design'/><category term='tipografia'/><category term='errata'/><category term='SO'/><title type='text'>keepLearning</title><subtitle type='html'>Artigos, tutoriais, sugestões de leitura, dicas rápidas e relatos de experiências com sistemas operacionais, linguagens de programação e desenvolvimento, focado em código aberto</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>67</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3416717910875477889</id><published>2011-07-25T20:32:00.001-03:00</published><updated>2011-07-25T20:32:52.248-03:00</updated><title type='text'>formspring.me</title><summary type='text'>O que você quer saber? (What'd you wanna know?) http://formspring.me/davispeixoto</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3416717910875477889/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2011/07/formspringme.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3416717910875477889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3416717910875477889'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2011/07/formspringme.html' title='formspring.me'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-2004233649169849592</id><published>2010-11-01T11:12:00.000-02:00</published><updated>2010-11-01T11:12:46.903-02:00</updated><title type='text'>Testes de Software - Inspeção de código e teste unitário</title><summary type='text'>Fala pessoal, olha eu reacendendo a série sobre testes de software. No último post falei sobre testes de requisito. Agora é hora de falar do segundo lugar onde mais se encontram e corrigem defeitos: inspeção de código e testes unitários.

A inspeção de códigoEste teste se caracteriza pelo fato de ser executado apenas por quem entende o código-fonte, quem vai testar precisa ser desenvolvedor </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/2004233649169849592/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/11/testes-de-software-inspecao-de-codigo-e.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2004233649169849592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2004233649169849592'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/11/testes-de-software-inspecao-de-codigo-e.html' title='Testes de Software - Inspeção de código e teste unitário'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8934988879772089217</id><published>2010-10-28T16:31:00.001-02:00</published><updated>2010-10-31T14:17:16.314-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='optimizing'/><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='artigos'/><title type='text'>Exemplo de desnormalização de banco de dados</title><summary type='text'>Se você já trabalhou a mais de 2 meses em TI já ouviu os termos "normalização de banco de dados" e 
"boas práticas". E provavelmente também ouviu a relação das duas coisas: é uma boa prática normalizar um banco de dados.

Não há o que se discutir sobre isso numa primeira instância. Sim, porque uma das técnicas avançadas de tuning é a desnormalização. Aqui vamos a um exemplo prático de como se </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8934988879772089217/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/10/exemplo-de-desnormalizacao-de-banco-de.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8934988879772089217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8934988879772089217'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/10/exemplo-de-desnormalizacao-de-banco-de.html' title='Exemplo de desnormalização de banco de dados'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-252107960635643160</id><published>2010-10-09T14:20:00.000-03:00</published><updated>2010-10-09T14:20:12.240-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Turbinando suas buscas internas</title><summary type='text'>O problemaQuase sempre vemos um formulário de busca interna em sites que publicam conteúdos com frequencia. Este formulário, assim como a navegação por categorias ou por tags, ajuda muito os visitantes a encontrarem o que procuram. Mas desenvolvedores iniciantes - ou nem tão iniciantes assim - ainda implementam esse mecanismo de busca de uma forma "crua".

Geralmente é um simples formulário, com </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/252107960635643160/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/10/turbinando-suas-buscas-internas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/252107960635643160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/252107960635643160'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/10/turbinando-suas-buscas-internas.html' title='Turbinando suas buscas internas'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-6790372317900177314</id><published>2010-09-20T23:29:00.000-03:00</published><updated>2010-09-20T23:29:59.281-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>PHP Mail Class</title><summary type='text'>Subi hoje no sourceforge uma classe que fiz a quase um ano, e que me ajudou muito.

É uma classe para envio de emails no PHP, inclusive com arquivos anexados. A classe é bem simples, enxuta e muito útil (senão eu não estaria compartilhando).

Dúvidas? Deixe um comentário.
----------- keepReading</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/6790372317900177314/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/php-mail-class.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6790372317900177314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6790372317900177314'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/php-mail-class.html' title='PHP Mail Class'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-5253524553540693324</id><published>2010-09-17T16:52:00.000-03:00</published><updated>2010-09-17T16:52:31.996-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tipografia'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Tipografia básica para web</title><summary type='text'>Desde o meu início com o desenvolvimento para web, sempre foquei mais em programação, códigos, bancos de dados do que em design. Isto por aptidão. E se falta talento e bom gosto, também me faltou informação simples, direta e suficiente para criar algo esteticamente atraente. Não uma obra-prima, mas visualmente decente.

Vamos ao básico da tipografia, que é a área do design que estuda as fontes, </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/5253524553540693324/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/tipografia-basica-para-web.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5253524553540693324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5253524553540693324'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/tipografia-basica-para-web.html' title='Tipografia básica para web'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8553089902841634701</id><published>2010-09-17T11:58:00.000-03:00</published><updated>2010-09-17T11:58:03.371-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Algumas coisas sobre PHP que você provavelmente não sabia...</title><summary type='text'>Pois é, tem milhares e milhares de páginas e posts na internet com um título semelhante, e chegou minha hora de escrever um também.

Depois de alguns anos de muito código e de muito polir eles me sinto confortável pra fazer um posts desse que relatem algo realmente útil e não apenas justifique o porque usar aspas simples ou duplas no echo.

1 - Use variáveis de servidorVemos muita aplicação dos </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8553089902841634701/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/algumas-coisas-sobre-php-que-voce.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8553089902841634701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8553089902841634701'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/algumas-coisas-sobre-php-que-voce.html' title='Algumas coisas sobre PHP que você provavelmente não sabia...'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-6888358397029377810</id><published>2010-09-16T19:24:00.001-03:00</published><updated>2010-09-16T20:37:34.023-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='outros'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='artigos'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Como os crawlers funcionam?</title><summary type='text'>Crawler, spider, bot, entre outros nomes, são programas que navegam na internet e indexam conteúdo. Os mais famosos de longe são os do google e do yahoo. Mas existem diversos, e o funcionamento básico deles é bem parecido (o que difere é como cada sistema organiza e classifica as páginas para mostrar nos resultados).

De alguma forma eles chegam à sua página, seja buscando nos bancos de DNS </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/6888358397029377810/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/como-os-crawlers-funcionam.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6888358397029377810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6888358397029377810'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/como-os-crawlers-funcionam.html' title='Como os crawlers funcionam?'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-697147279184742417</id><published>2010-09-16T18:55:00.000-03:00</published><updated>2010-09-16T18:55:46.116-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css3'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='emergente'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Qual a diferença?</title><summary type='text'>No meio do boom de possibilidades e novos recursos trazidos pelo CSS3 temos as Media Queries. E do meu ponto de vista esse novo recurso vem numa velha roupagem, trazendo junto algo que parece persistir no mundo do desenvolvimento para web.

O que são as media queries?No CSS 2, havia a possibilidade de definir folhas de estilo diferentes para meios diferentes. O exemplo clássico é usar duas folhas</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/697147279184742417/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/qual-diferenca.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/697147279184742417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/697147279184742417'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/qual-diferenca.html' title='Qual a diferença?'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-2314646142388319173</id><published>2010-09-14T19:14:00.000-03:00</published><updated>2010-09-14T19:14:20.207-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microformats'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='emergente'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Web Semântica: HTML5 e Microformats</title><summary type='text'>O que é Web Semântica?No início da internet, tivemos o HTML para criar e marcar o conteúdo. Com ele, que é usado até hoje em todas as páginas existentes, é possível criar textos, links, inserir imagens e tabelas, formulários, e muito mais. Porém a classificação e o uso destes elementos permite apenas funcionalidade e não significado. Um link geralmente assume a forma de um texto ou imagem, que </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/2314646142388319173/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/web-semantica-html5-e-microformats.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2314646142388319173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2314646142388319173'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/web-semantica-html5-e-microformats.html' title='Web Semântica: HTML5 e Microformats'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-9206028905250530220</id><published>2010-09-04T17:52:00.001-03:00</published><updated>2010-09-04T18:07:16.048-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='emergente'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='artigos'/><title type='text'>Criando bordas semi-transparentes com CSS3 (ou CSS3 glass effect borders)</title><summary type='text'>Criando bordas semi-transparentes com CSS3

O CSS3 está aí, junto com o HTML5, e mesmo que ainda não seja seguro ou mesmo viável pela disponibilidade de suporte, usar todos os recursos, existem muitos efeitos que podem ser usados a partir de agora.



O que vamos fazer aqui não é nada novo, afinal, as bordas arredondadas ou molduras estão presentes na maioria dos sites, mas a criação das mesmas </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/9206028905250530220/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/criando-bordas-semi-transparentes-com.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/9206028905250530220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/9206028905250530220'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/criando-bordas-semi-transparentes-com.html' title='Criando bordas semi-transparentes com CSS3 (ou CSS3 glass effect borders)'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cvvgeNfI7ZA/TIK05yNLOJI/AAAAAAAAAGM/gkdiY95GJZ4/s72-c/css3-glass-border.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-5995814108046935810</id><published>2010-09-04T17:47:00.002-03:00</published><updated>2010-09-04T17:47:47.468-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='emerging'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Por que tudo igual?</title><summary type='text'>Este artigo é inspirado nos artigos Ignorance Is Bliss, de Andy Clarke, e Make Your Mockup In Markup, de Meagan Fisher, publicados no 24ways.

Um dos pontos mais problemáticos no desenvolvimento de um site, ao lado da acessibilidade, é o layout. Em especial fazer com que o site tenha exatamente a mesma aparência em todos os navegadores, em todas as plataformas e em todas as resoluções de tela.

</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/5995814108046935810/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/por-que-tudo-igual.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5995814108046935810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5995814108046935810'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/por-que-tudo-igual.html' title='Por que tudo igual?'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-6450804968488777256</id><published>2010-09-02T11:27:00.000-03:00</published><updated>2010-09-02T11:27:04.070-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><category scheme='http://www.blogger.com/atom/ns#' term='emergente'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Evolução dos navegadores... de novo</title><summary type='text'>No começo de 2008 ouvi o burburinho sobre o navegador do Google, o Chrome. Baixei para experimentar. Minha primeira impressão foi: é a mistura do Opera com o Firefox. Visual clean, alguns recursos de customização, mas fora o rápido engine de javascript, o resto era MUITO imaturo ainda. Faltavam muitos recursos para poder ser considerado um browser do mainstream, mas sendo do google, isso era </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/6450804968488777256/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/evolucao-dos-navegadores-de-novo.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6450804968488777256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6450804968488777256'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/09/evolucao-dos-navegadores-de-novo.html' title='Evolução dos navegadores... de novo'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-4763716857928582631</id><published>2010-08-18T15:19:00.003-03:00</published><updated>2010-08-18T15:27:26.693-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='tradução de clássicos'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Canto da segurança: Fixação de sessão</title><summary type='text'>Continuando com a seção de traduções de artigos, lá vem mais um do Chris Shiflett, complementar à tradução anterior. Lá vai:

Canto da segurança: Fixação de sessão
Segurança está ganhando mais e mais atenção entre os profissionais de PHP. Como o PHP continua sendo um componente chave do futuro da web, atacantes maliciosos começaram a atacar fraquezas nas aplicações em PHP de forma mais frequente,</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/4763716857928582631/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/08/canto-da-seguranca-fixacao-de-sessao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/4763716857928582631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/4763716857928582631'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/08/canto-da-seguranca-fixacao-de-sessao.html' title='Canto da segurança: Fixação de sessão'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-198185444932362004</id><published>2010-08-18T15:17:00.000-03:00</published><updated>2010-08-18T15:17:45.964-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='optimizing'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>CSS Hacks, IE e Standards</title><summary type='text'>Não, este não é um post para falar de como os outros navedores são mais legais que o Internet Explorer, e sim sobre como fazer uma "gambiarra elegante".

OK, não fui completamente sincero. O IE carece sim de muitos recursos e suporte que os outros navegadores dispõe, e isso faz diferença para quem trabalha com web. O que poucos desenvolvedores e webdesigners sabem na verdade é que o IE tem muitas</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/198185444932362004/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/08/css-hacks-ie-e-standards.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/198185444932362004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/198185444932362004'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/08/css-hacks-ie-e-standards.html' title='CSS Hacks, IE e Standards'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-4220865075220554309</id><published>2010-07-19T11:00:00.000-03:00</published><updated>2010-07-19T11:00:06.141-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='outros'/><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><title type='text'>Impacto dos computadores sobre o meio ambiente</title><summary type='text'>Pouca gente se preocupa ou pensa sobre isso. Aqui vai um infográfico que ilustra isso.



----------- keepReading</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/4220865075220554309/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/impacto-dos-computadores-sobre-o-meio.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/4220865075220554309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/4220865075220554309'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/impacto-dos-computadores-sobre-o-meio.html' title='Impacto dos computadores sobre o meio ambiente'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-1319219910435404633</id><published>2010-07-17T23:34:00.001-03:00</published><updated>2010-10-31T14:19:52.792-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='artigos'/><title type='text'>Exemplo prático de normalização de banco de dados</title><summary type='text'>Este post pretende ser muito menos teórico e muito mais prático sobre um tema que todo desenvolvedor já leu e, provavelmente, procurou saber mais. Normalização de bancos de dados.

O por que?Claro, antes de meter a mão na massa, a motivação do post. Já vi em muitos foruns perguntas cuja resposta pode ser dada por um design apropriado do banco de dados, feitas tanto por quem está começando, quanto</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/1319219910435404633/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/exemplo-pratico-de-normalizacao-de.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1319219910435404633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1319219910435404633'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/exemplo-pratico-de-normalizacao-de.html' title='Exemplo prático de normalização de banco de dados'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3316955048937243094</id><published>2010-07-17T21:59:00.000-03:00</published><updated>2010-07-17T21:59:57.105-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emerging'/><category scheme='http://www.blogger.com/atom/ns#' term='formatos de arquivo'/><category scheme='http://www.blogger.com/atom/ns#' term='emergente'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Standards e a praticidade</title><summary type='text'>Antes de prosseguir com o texto, vou deixar uma coisa bem clara: sou um standardista, ou em outras palavras, acredito que seguir normas e padrões pré-definidos de uma tecnologia são o caminho mais correto e eficiente para garantir um bom produto.

Dito isto, explico o por que. Eu estou participando das listas de discussão do HTML 5 da WHATWG e da W3C. Para cada ponto a ser incluído na norma, </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3316955048937243094/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/standards-e-praticidade.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3316955048937243094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3316955048937243094'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/standards-e-praticidade.html' title='Standards e a praticidade'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-5633816357380430307</id><published>2010-07-17T20:51:00.000-03:00</published><updated>2010-07-17T20:51:58.866-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='outros'/><title type='text'>Testes de requisito</title><summary type='text'>Para começar a explicar em detalhes os principais tipos de testes existentes vou atacar a base: testes de requisitos.

Por que testes de requisitos?Em uma frase: porque é onde os projetos nascem.

Qualquer software, desde uma simples calculadora até uma aplicação de grande porte passa de alguma forma por esta fase, mesmo que informalmente.

Definir requisitos é descrever um pedido, uma idéia, </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/5633816357380430307/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/testes-de-requisito.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5633816357380430307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5633816357380430307'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/testes-de-requisito.html' title='Testes de requisito'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-7143605006092191426</id><published>2010-07-12T21:05:00.000-03:00</published><updated>2010-07-12T21:05:20.774-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='emergente'/><title type='text'>Testes de Software - Tipos de teste</title><summary type='text'>Falar em testes de software pode ser um tanto subjetivo. Para evitar essa abertura de interpretação, até mesmo porque é um serviço que exige rigor, vamos ver os tipos de teste. Quais são, quais as finalidades e como avaliá-los no processo.

Existem vários tipos de teste, cada um para avaliar uma determinada característica da aplicação.

Testes funcionais - estes são os testes que servem para </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/7143605006092191426/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/testes-de-software-tipos-de-teste.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/7143605006092191426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/7143605006092191426'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/testes-de-software-tipos-de-teste.html' title='Testes de Software - Tipos de teste'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3576026497571094938</id><published>2010-07-12T14:31:00.000-03:00</published><updated>2010-07-12T14:31:03.476-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='emergente'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Qualidade de Software</title><summary type='text'>Na China antiga havia uma família de curandeiros, um dos quais era conhecido em toda a terra e trabalhava como médico de um grande senhor. O médico foi perguntado sobre quem de sua família era o curandeiro mais habilidoso. Ele respondeu:
"Eu atendo os doentes terminais com tratamentos dramáticos, e de vez em quando alguém é curado e meu nome sai entre os senhores."
"Meu irmão mais velho que eu </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3576026497571094938/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/qualidade-de-software.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3576026497571094938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3576026497571094938'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/qualidade-de-software.html' title='Qualidade de Software'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-1911848741874447501</id><published>2010-07-11T23:55:00.000-03:00</published><updated>2010-07-11T23:55:59.483-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='outros'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>O grande desafio da web</title><summary type='text'>É inegável que a internet revolucionou a que nós vivemos. Compartilhar fotos, vídeos, músicas, conversar com amigos e parentes distantes em tempo real, fazer novas amizades - e, por que não, amores (sou um exemplo vivo disso) - dividir conhecimento, agilizar processos, integrar negócios... Tudo isto é possível por causa da internet.

Ainda que haja muito lixo virtual, o potencial criativo e </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/1911848741874447501/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/o-grande-desafio-da-web.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1911848741874447501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1911848741874447501'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/07/o-grande-desafio-da-web.html' title='O grande desafio da web'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-5761727250082326096</id><published>2010-06-07T16:32:00.000-03:00</published><updated>2010-06-07T16:32:36.939-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='artigos'/><title type='text'>Tipo ENUM no MySQL e no PostgreSQL</title><summary type='text'>Tempos atrás eu publiquei aqui, sobre os tipos ENUM e SET no MySQL, porém as respostas dos leitores deixaram claro que eu não havia explicado o assunto direito. E relendo o texto, realmente assumo que ficou péssimo. Não consegui passar o conceito, quanto menos a aplicabilidade desses recursos.

Então aqui cabe a redenção. Vamos ao tipo ENUM. Ele não é um tipo definido no padrão SQL, e sim </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/5761727250082326096/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/06/tipo-enum-no-mysql-e-no-postgresql.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5761727250082326096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5761727250082326096'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/06/tipo-enum-no-mysql-e-no-postgresql.html' title='Tipo ENUM no MySQL e no PostgreSQL'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8945490708697131756</id><published>2010-06-02T16:12:00.000-03:00</published><updated>2010-06-02T16:12:33.614-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><title type='text'>Open Source e o bug tracking</title><summary type='text'>Fala pessoal,

nem preciso dizer que sou um entusiasta do movimento do software livre. Embora existam algumas divergências e tecnicismos sobre as definições e terminologias sobre o que é open source, o que é livre e etc... uma coisa é certa: o espírito de ajuda mútua em criar algo que beneficie quem usa os softwares.

E isso é feito de várias formas. Uma das bases desse mundo é a relatação de </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8945490708697131756/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/06/open-source-e-o-bug-tracking.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8945490708697131756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8945490708697131756'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/06/open-source-e-o-bug-tracking.html' title='Open Source e o bug tracking'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-7379752353497379417</id><published>2010-06-02T12:02:00.000-03:00</published><updated>2010-06-02T12:02:32.874-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='tradução de clássicos'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>A Verdade sobre Sessões</title><summary type='text'>Estou iniciando uma série aqui no blog. Vou traduzir artigos e posts renomados sobre programação e desenvolvimento.

Para a estréia, escolhi um artigo altamente esclarecedor do Chris Shiflett, The Truth About Sessions, que explica em detalhes como as seções do PHP funcionam. Este artigo está originalmente sob licensa Creative Commons, bem como esta tradução. Vamos lá.

IntroduçãoPraticamente toda</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/7379752353497379417/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/06/verdade-sobre-sessoes.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/7379752353497379417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/7379752353497379417'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/06/verdade-sobre-sessoes.html' title='A Verdade sobre Sessões'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cvvgeNfI7ZA/S_8Ma_U9ftI/AAAAAAAAAF8/_yJXcNMeZMQ/s72-c/the_truth_about_sessions_1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3901568173346143611</id><published>2010-05-25T10:37:00.001-03:00</published><updated>2010-05-25T10:39:17.275-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Robots.txt - Ajudando os buscadores</title><summary type='text'>Voltamos a mais um artigo sobre boas práticas de web.

O assunto de hoje não tem a ver diretamente com usuários, e sim com os buscadores: robots.txt

O que é?O arquivo robots.txt é algo extremamente simples. De verdade. É um arquivo, com o nome "robots.txt", que deve ficar na raíz do site, e com um conteúdo similar a:

User-agent: *
Disallow: /img/
Disallow: /styles/
Disallow: /scripts/
Disallow:</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3901568173346143611/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/robotstxt-ajudando-os-buscadores.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3901568173346143611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3901568173346143611'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/robotstxt-ajudando-os-buscadores.html' title='Robots.txt - Ajudando os buscadores'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-1554086845796071874</id><published>2010-05-24T17:12:00.002-03:00</published><updated>2010-05-24T18:51:16.884-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Sitemaps -- Como fazer e o que fazer com eles</title><summary type='text'>Fala pessoal, vamos continuar o assunto de boas práticas e de design voltado ao usuário que abordei nos dois últimos posts desse blog.

Os sitemaps são uma poderosa ferramenta de organização e SEO. Alguns buscadores aceitam que você envie o sitemap o seu site. Assim eles sabem exatamente o que indexar, ao invés de apenas ir navegando e filtrando. Outro lugar onde você pode fazer referência ao seu</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/1554086845796071874/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/sitemaps-como-fazer-e-o-que-fazer-com.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1554086845796071874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1554086845796071874'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/sitemaps-como-fazer-e-o-que-fazer-com.html' title='Sitemaps -- Como fazer e o que fazer com eles'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-878479786735267299</id><published>2010-05-21T16:44:00.002-03:00</published><updated>2010-05-25T10:45:21.490-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Páginas de erro 404 úteis - Nos bastidores</title><summary type='text'>No artigo passado sobre páginas de erro 404 úteis, vimos que existem possibilidades de sugestões e alternativas para ajudar pessoas e navegadores a encontrar o conteúdo que procuram.

Agora é hora de uma pitada técnica sobre os cabeçalhos HTTP envolvidos nesse processo, e como eles afetam sua página nos buscadores.

É de uso comum e corrente, que quando uma página não é encontrada, se faça um </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/878479786735267299/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/paginas-de-erro-404-uteis-nos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/878479786735267299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/878479786735267299'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/paginas-de-erro-404-uteis-nos.html' title='Páginas de erro 404 úteis - Nos bastidores'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-9151385905249189471</id><published>2010-05-21T16:21:00.001-03:00</published><updated>2010-05-21T16:54:14.886-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='artigos'/><title type='text'>Criando páginas 404 úteis</title><summary type='text'>As famosas páginas de error 404 - Documento não encontrado são um saco. Ninguém gosta de clicar num link e ver uma página de erro, em branco asséptico, com a única opção de voltar ou ver se digitou errado (quando vc digita o endereço ainda vai, o problema é quando vc clica e cai numa página de erro.)

Bom, ninguém gosta dessas páginas. Nem os motores de busca. Mas o que fazer? Bom, é dever de </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/9151385905249189471/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/criando-paginas-404-uteis.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/9151385905249189471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/9151385905249189471'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/criando-paginas-404-uteis.html' title='Criando páginas 404 úteis'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3880667845107477002</id><published>2010-05-14T18:18:00.000-03:00</published><updated>2010-05-14T18:18:30.438-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Validações em PHP</title><summary type='text'>Andei trabalhando bastante com web esses últimos tempos, e uma coisa que sempre consome muito tempo e neurônios é segurança em geral.

Até que eu encontrei uns artigos do Chris Shifflet. Todos artigos do cara são muito bons. Vale a pena dar uma lida com carinho.

Eu já havia lido algumas coisas publicadas por ele, mas apenas para Sessões PHP. Desta vez encontrei uma frase que mudou meu conceito </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3880667845107477002/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/validacoes-em-php.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3880667845107477002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3880667845107477002'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/05/validacoes-em-php.html' title='Validações em PHP'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-1487449529778112852</id><published>2010-03-23T10:48:00.003-03:00</published><updated>2010-03-23T11:25:56.051-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emerging'/><category scheme='http://www.blogger.com/atom/ns#' term='emergente'/><title type='text'>HTML 5 e CSS 3</title><summary type='text'>Já faz algum tempo (desde 2007 pelo que eu vejo), alguns blogs e portais de desenvolvimento vem falando sobre as novas versões das linguagens mais comuns para marcação e estilo usadas para web.Com o boom da web 2.0 e com os buscadores valorizando mais o conteúdo, visando uma web mais útil, rica e interativa, a tendência de que as linguagens evoluissem para acompanhar os rumos e necessidades, </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/1487449529778112852/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2010/03/html-5-e-css-3.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1487449529778112852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1487449529778112852'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2010/03/html-5-e-css-3.html' title='HTML 5 e CSS 3'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3543881321195446487</id><published>2009-12-08T12:58:00.004-02:00</published><updated>2009-12-08T13:41:28.604-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outros'/><title type='text'>Santos Dummont era open source</title><summary type='text'>Tirando as teias de aranha daqui, volto com um post que foge da linha técnica.Deixa eu começar com uma história que me aconteceu uns dias atrás. Uma amiga minha, a Jaque, começou a fazer uns cursos voltados para desenvolvimento web. Ela, designer, ficou um tanto espantada com a complicação que é fazer a coisa direito (tags, HTML x XHTML, CSS, seletores, propriedades, navegadores diferentes </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3543881321195446487/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2009/12/santos-dummont-era-open-source.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3543881321195446487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3543881321195446487'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2009/12/santos-dummont-era-open-source.html' title='Santos Dummont era open source'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-7120863935625197921</id><published>2009-02-22T20:23:00.002-03:00</published><updated>2009-02-22T21:31:31.200-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Editores e mais editores - além do highlighting</title><summary type='text'>Fala, pessoal.Vira e mexe vejo disucussões sobre os editores e IDEs preferidos do pessoal. Muitos são incompreendidos, muitos são desconhecidos...Bom aqui vão meus pitacos e dicas do que vale a pena dar uma olhada.Começando pelos pesos-leve, os que vale a pena citar são:Notepad++ (para windows, pode ser emulado via wine no Linux)Facilidade para mudar o encoding do arquivo, suporte a várias </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/7120863935625197921/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2009/02/editores-e-mais-editores-alem-do.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/7120863935625197921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/7120863935625197921'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2009/02/editores-e-mais-editores-alem-do.html' title='Editores e mais editores - além do highlighting'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3127748330674381583</id><published>2009-02-10T11:59:00.003-02:00</published><updated>2009-02-10T12:47:22.883-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Monitor novo, vida nova</title><summary type='text'>Fala pessoal.Sei que prometi um novo formato e tals, mas o fato é que fiquei praticamente um mês sem meu PC. O monitor LG 500, um CRT de 15 polegadas velho de guerra, enfim bateu as botas.Comprei nada mais nada menos que um Samsung 2232BW Plus para substituí-lo. Sim, um LCD TFT de 22 polegadas. Ignorância desmedida à parte, o fato é que foi a melhor relação custo/benefício que encontrei.Nada </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3127748330674381583/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2009/02/monitor-novo-vida-nova.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3127748330674381583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3127748330674381583'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2009/02/monitor-novo-vida-nova.html' title='Monitor novo, vida nova'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-6823788610039829382</id><published>2008-08-30T14:55:00.002-03:00</published><updated>2008-08-30T14:57:47.178-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='SO'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Recuperando o grub</title><summary type='text'>Eu uso muito pouco os produtos da M$ em casa. E tempos atrás o Windows deu pau pra variar. Fosse outra época, eu gastaria dias recuperando o sistema, os documentos, etc... Mas já faz muito tempo que não tenho saco pra ele.Existem uns pouquíssimos motivos para eu continuar com ele na minha máquina, mas ele ainda é necessário sim. Pois bem, depois de muito postergar resolvi meter a mão na massa e </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/6823788610039829382/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/08/recuperando-o-grub.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6823788610039829382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6823788610039829382'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/08/recuperando-o-grub.html' title='Recuperando o grub'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8114852150788733260</id><published>2008-08-16T14:41:00.002-03:00</published><updated>2008-08-16T16:01:08.430-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='shell script'/><title type='text'>IFS - Internal Field Separator</title><summary type='text'>No post anterior, eu disse que o script reconhecia nomes de arquivos que incluiam espaços e outros caracteres especiais, mas não escrevi sobre como fiz isso. Aliás, este foi um dos passos que mais me deu dor de cabeça durante o desenvolvimento do script.Voltando um pouco na causa... minha esposa e eu temos o costume de renomear em massa os arquivos e as cópias que ela faz, usando espaços nos </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8114852150788733260/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/08/ifs-internal-field-separator.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8114852150788733260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8114852150788733260'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/08/ifs-internal-field-separator.html' title='IFS - Internal Field Separator'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-5094539335406006760</id><published>2008-08-07T23:48:00.005-03:00</published><updated>2008-08-08T00:14:29.217-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='shell script'/><title type='text'>Script para remover arquivos duplicados</title><summary type='text'>Fala pessoal, tudo certo?Venho postar aqui pela primeira vez um presente meu para vocês: um scriptzinho (em shell script) para remover arquivos duplicados. O link é esse aqui. Tá no 4shared, então não tem complicação para fazer o download.O uso do mesmo é bem simples.$./check_dups.sh /dir/to/scan/ /another/dir/to/scan/ /and/one/more/O script lê todos os arquivos dentro dos diretórios passados, </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/5094539335406006760/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/08/script-para-remover-arquivos-duplicados.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5094539335406006760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5094539335406006760'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/08/script-para-remover-arquivos-duplicados.html' title='Script para remover arquivos duplicados'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-768706768268572987</id><published>2008-08-06T23:10:00.003-03:00</published><updated>2008-08-06T23:53:54.740-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Um pouquinho de velocidade</title><summary type='text'>Fala pessoal.Como sempre venho trazer alguma coisa para vocês, baseada em erros comuns que vejo. E hoje trago algumas dicas de como melhorar o desempenho em bancos de dados.Tempos atrás eu já tinha publicado algo sobre isso em relação ao Postgre aqui.Bem, negócio seguinte, quando tratamos com uma quantidade grande de dados (1GB ou mais), algumas mudanças podem e devem ser feitas para acelerar o </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/768706768268572987/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/08/um-pouquinho-de-velocidade.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/768706768268572987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/768706768268572987'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/08/um-pouquinho-de-velocidade.html' title='Um pouquinho de velocidade'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-2340968483825522618</id><published>2008-07-22T22:56:00.003-03:00</published><updated>2008-07-22T23:30:39.607-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Dica rápida (1) - baixar sites</title><summary type='text'>Fala pessoal. Enquanto arrumo os preparativos para o primeiro artigo no novo formato, vai aí uma dica retirada do VOL (mais especifamente, daqui) e que me quebrou um galhão.O problema: queria baixar todo o conteúdo de um site. (nada de pirataria, era para abaixar apostilas e tudo o mais de uma vez só, porque enche o saco ficar clicando e salvando um por um).A solução: depois de experimentar </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/2340968483825522618/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/07/dica-rpida-1-baixar-sites.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2340968483825522618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2340968483825522618'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/07/dica-rpida-1-baixar-sites.html' title='Dica rápida (1) - baixar sites'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8351022446476326037</id><published>2008-07-20T12:11:00.003-03:00</published><updated>2008-07-20T12:29:29.501-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Depois do novo visual, novos bagulhos</title><summary type='text'>Fala pessoal. Tudo certo?Depois de mudar o layout dos meus blogs, foi hora de implementar algumas melhorias. Primeiro foi no meu outro blog, e agora trago as mudanças à este.Ainda estou organizando muita coisa aqui no meu PC depois de um baita upgrade, mas fica a promessa de que em breve um novo formato, modéstia à parte, bem mais interessante, será implementado aqui. Inclusive já há uma fornada </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8351022446476326037/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/07/depois-do-novo-visual-novos-bagulhos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8351022446476326037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8351022446476326037'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/07/depois-do-novo-visual-novos-bagulhos.html' title='Depois do novo visual, novos bagulhos'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8763088730380877655</id><published>2008-07-04T23:41:00.003-03:00</published><updated>2008-07-20T17:59:46.465-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Rootkits - checando a sua máquina</title><summary type='text'>Fala pessoal.Aqui vai uma dica rápida de dois programas que podem ser uma mão na roda na hora de checar a sua máquina quando algo suspeito acontece, no ambiente GNU/Linux.chkrootkitVocê pode baixá-lo em http://www.chkrootkit.org/. Após descomprimir o tarball, basta entrar no diretório criado e compilar com:# make sensePara ver os testes disponíveis, use:#./chkrootkit -lPara fazer o checkout </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8763088730380877655/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/07/rootkits-checando-sua-mquina.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8763088730380877655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8763088730380877655'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/07/rootkits-checando-sua-mquina.html' title='Rootkits - checando a sua máquina'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-1817485459851514370</id><published>2008-06-29T22:13:00.004-03:00</published><updated>2008-06-29T23:37:17.363-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Uma conversa sobre boas práticas de desenvolvimento</title><summary type='text'>Quando começamos a desenvolver, a principal meta é obter uma aplicação que funcione. E com o tempo vamos melhorando nossas práticas, facilitando e polindo nosso código - claro que estou me referindo aos verdadeiros profissionais.Mas mesmo assim, na enorme maioria das vezes os desenvolvedores não vão tão a fundo sobre o funcionamento da aplicação, sendo que isto muitas vezes pode ser muito útil. </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/1817485459851514370/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/06/uma-conversa-sobre-boas-prticas-de.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1817485459851514370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1817485459851514370'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/06/uma-conversa-sobre-boas-prticas-de.html' title='Uma conversa sobre boas práticas de desenvolvimento'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-6123606421471786037</id><published>2008-05-17T23:50:00.001-03:00</published><updated>2008-05-18T00:02:14.155-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Toolbox</title><summary type='text'>Começo este post como o anterior. Com uma historinha, um desabafo. Claro que o objetivo também é levar conhecimento – um pouco do pouco que tenho.Hoje vou falar sobre ferramentas. Eu tenho um sério problema com ferramentas que facilitam a vida como frameworks, códigos prontos, e outras coisas empacotadas para viagem.Isso começou a mais de uma década – nossa, agora eu me senti um velhão. Comecei a</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/6123606421471786037/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/05/toolbox.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6123606421471786037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6123606421471786037'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/05/toolbox.html' title='Toolbox'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-4928600021622372912</id><published>2008-05-17T23:46:00.004-03:00</published><updated>2008-07-20T17:58:49.988-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='formatos de arquivo'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='engenharia reversa'/><category scheme='http://www.blogger.com/atom/ns#' term='assembly'/><title type='text'>Polindo bytes</title><summary type='text'>Depois de um enorme recesso, volto a publicar alguma coisa. O meu maior bloqueio em escrever algo, é minha preocupação em escrever algo realmente instrutivo. Algo que eu gostaria de ler. Que ensinasse as coisas sem muita encheção de lingüiça. Porém sempre acho que tudo o que quero escrever já foi escrito, ou que pouco acrescentaria a algum bom tutorial que eu tenha lido.Mas, até como é o </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/4928600021622372912/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/05/polindo-bytes.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/4928600021622372912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/4928600021622372912'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/05/polindo-bytes.html' title='Polindo bytes'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8267584397009344615</id><published>2008-03-02T15:46:00.003-03:00</published><updated>2008-07-20T17:18:41.025-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SO'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Reforma total</title><summary type='text'>A tempos eu estava deixando um upgrade para depois... e até que enfim realizei.Eu tinha um pente de memória DDR 333 de 512MB, e uma placa de vídeo GeForce XFX 5200 (com 64MB de memória) AGP.Tirei o pente de memória e enchi a placa com 3 pentes de memória DDR 400 de 1GB, chegando ao máximo de memória e podendo elevar o clock do processador a 3200 GHz, além de trocar a placa de vídeo - coloquei uma</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8267584397009344615/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/03/reforma-total.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8267584397009344615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8267584397009344615'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/03/reforma-total.html' title='Reforma total'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-6989372137160653439</id><published>2008-02-04T21:49:00.003-02:00</published><updated>2008-07-20T17:56:23.257-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Conexão segura - Apache2 + OpenSSL no Linux</title><summary type='text'>Com certeza falei neste blog e no meu outro que sempre quis montar uma estação de trabalho para web development bacana em Linux.Batalhei bastante com isso, mas nunca de forma contínua. Sempre foram de saltos, afinal também preciso estudar, trabalhar e dividir minhas atenções com entes queridos.Para mim a estação de desenvolvimento ideal é aquela que simula os recursos disponíveis nos servidores. </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/6989372137160653439/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/02/conexo-segura-apache2-openssl-no-linux.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6989372137160653439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6989372137160653439'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/02/conexo-segura-apache2-openssl-no-linux.html' title='Conexão segura - Apache2 + OpenSSL no Linux'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-62182075474630072</id><published>2008-01-09T00:45:00.002-02:00</published><updated>2008-07-20T17:51:58.493-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='facts'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>PostgreSQL - Inserindo múltiplas linhas só depois da versão 8.2</title><summary type='text'>A batalha de hoje foi contra um velho costume (mal) adquirido do MySQL.Criei uma tabela muito simples no PostgreSQL através do psql, na linha de comando mesmo.CREATE TABLE pessoas (id INT,nome varchar(40),sexo char(1));Incluí um registro. Ótimo. Depois tentei incluir mais de um com um comando só:INSERT INTO pessoas (id, nome, sexo) VALUES (2, 'José', 'M'), (3, 'Maria', 'F');E ganhei um erro </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/62182075474630072/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/01/postgresql-inserindo-mltiplas-linhas-s.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/62182075474630072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/62182075474630072'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/01/postgresql-inserindo-mltiplas-linhas-s.html' title='PostgreSQL - Inserindo múltiplas linhas só depois da versão 8.2'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8867134452796429616</id><published>2008-01-07T23:34:00.004-02:00</published><updated>2008-07-20T17:49:36.700-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='shell script'/><category scheme='http://www.blogger.com/atom/ns#' term='artigos'/><title type='text'>PostgreSQL - instalando</title><summary type='text'>A tempos atrás instalei o PostgreSQL 8.0 na minha máquina. Lembro que foi um tanto penoso para entender como proceder logo após a instalação dele no sistema, pensei até em escrever aqui mas devido à falta de tempo não escrevi nada, e é o que venho fazer agora.O material é um tanto escasso em português, e as explicações geralmente confusas. Vou tentar dar um passo-a-passo.Instalei no Ubuntu 6.06 </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8867134452796429616/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/01/postgresql-instalando.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8867134452796429616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8867134452796429616'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/01/postgresql-instalando.html' title='PostgreSQL - instalando'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-1414886862523678777</id><published>2008-01-07T20:12:00.000-02:00</published><updated>2008-01-07T20:25:22.303-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>O MySQL não checa chaves estrangeiras!</title><summary type='text'>Dando uma lida na documentação recentemente fiquei pasmo ao descobrir que as chaves estrangeiras não servem para absolutamente nada funcional no MySQL.Sim, você leu direito. As chaves estrangeiras não servem para absolutamente nada no MySQL.Ao definí-las, elas podem ser usadas como um lembrete, um aviso, etc... Mas os engines, com exceção ao InnoDB, não fazem checagem se o mesmo existe (na </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/1414886862523678777/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/01/o-mysql-no-checa-chaves-estrangeiras.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1414886862523678777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/1414886862523678777'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/01/o-mysql-no-checa-chaves-estrangeiras.html' title='O MySQL não checa chaves estrangeiras!'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-668934139969796837</id><published>2008-01-06T14:56:00.001-02:00</published><updated>2008-07-20T17:32:25.747-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='optimizing'/><category scheme='http://www.blogger.com/atom/ns#' term='otimização'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='artigos'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Dicas de otimização e segurança</title><summary type='text'>Olá, amigos. Depois de muito tempo away deste blog volto a publicar algumas informações coletadas e experimentadas.Estudei bastante e fiz várias anotações durante os últimos meses. Além deste post se preparem para mais novidades legais em breve.Neste reinício trago a vocês dicas sobre otimização e segurança. Algumas boas práticas que espero ser de valia.Uma das decisões mais importantes durante o</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/668934139969796837/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2008/01/dicas-de-otimizao-e-segurana.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/668934139969796837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/668934139969796837'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2008/01/dicas-de-otimizao-e-segurana.html' title='Dicas de otimização e segurança'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cvvgeNfI7ZA/R4ETp70U6AI/AAAAAAAAAA8/L_qDaQ-_tT0/s72-c/path14892.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3144031748242804912</id><published>2007-05-28T21:09:00.000-03:00</published><updated>2007-05-28T23:37:17.517-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='formatos de arquivo'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='engenharia reversa'/><category scheme='http://www.blogger.com/atom/ns#' term='assembly'/><title type='text'>Indo a fundo - assembly e engenharia reversa</title><summary type='text'>Aprender assembly e engenharia reversa. Eis o galho. Difícil de encontrar material, e principalmente códigos para ler.Nem tanto. Um ótimo livro, The Art of Assembly Programming, de Randall Hyde. Abrange desde o que é um sistema de numeração binária, até HLA (High-Level Assembly). Referência em tantas outras obras, este livro só falta pegar no colo.O site Numa Boa, também tem um tutorial em </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3144031748242804912/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/05/indo-fundo-assembly-e-engenharia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3144031748242804912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3144031748242804912'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/05/indo-fundo-assembly-e-engenharia.html' title='Indo a fundo - assembly e engenharia reversa'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-2524927020113424772</id><published>2007-04-27T21:34:00.000-03:00</published><updated>2007-04-27T22:34:09.353-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>O modo texto</title><summary type='text'>O pessoal que entra no mundo linux logo descobre que as coisas mais animais que dá pra se fazer é através da linha de comando. Porém para a maioria das atividades rotineiras, acaba-se usando ferramentas gráficas para isso.Usar o OpenOffice.org, navegar com o Firefox, usar o K3B para gravar um CD,.... tarefas comuns, rotineiras e que têm uma solução de interface gráfica, que praticamente dispensa </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/2524927020113424772/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/04/o-modo-texto.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2524927020113424772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2524927020113424772'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/04/o-modo-texto.html' title='O modo texto'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-5485150728741090669</id><published>2007-04-27T20:41:00.000-03:00</published><updated>2007-04-27T20:57:46.014-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Uma referência da linguagem C</title><summary type='text'>Eu sempre gostei de referências completas. O problema sempre foi achá-las. E nos últimos dias procurei algo sobre linguagem C.A idéia surgiu depois de eu ter lido um código-fonte cheio de includes. Me perguntei se era necessário tudo aquilo, e mais importante, quais funções são fornecidas por cada um dos header files.Ao conferir os próprios arquivos, vi que apesar de bem documentados, eram </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/5485150728741090669/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/04/uma-referncia-da-linguagem-c.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5485150728741090669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5485150728741090669'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/04/uma-referncia-da-linguagem-c.html' title='Uma referência da linguagem C'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-5611468220843315249</id><published>2007-04-19T19:43:00.002-03:00</published><updated>2008-07-20T17:27:29.900-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='SO'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='shell script'/><title type='text'>Conhecendo o linux um pouco mais a fundo</title><summary type='text'>O GNU/Linux tem uma infinidade de comandos e utilitários. Não conheço uma pessoa sequer que conheça todos os comandos. Digitando: $ echo $PATH;num console você vê os caminhos onde o sistema busca os programas para executar (geralmente /bin/, /sbin/, /usr/bin/,...). Fui conferir o que existia nestes diretórios e me deparei com uma quantidade muito maior de programas do que eu imaginava.Digitar man</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/5611468220843315249/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/04/conhecendo-o-linux-um-pouco-mais-fundo.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5611468220843315249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5611468220843315249'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/04/conhecendo-o-linux-um-pouco-mais-fundo.html' title='Conhecendo o linux um pouco mais a fundo'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-2064645502843010511</id><published>2007-03-28T19:35:00.000-03:00</published><updated>2007-03-28T19:37:47.058-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SO'/><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>De tirar o chapéu</title><summary type='text'>Foi divulgada a segunda falha de segurança remota no sistema operacional OpenBSD... em 10 anos!Tá certo que ele é um sistema projeto para ser o mais seguro quanto possível, mas assim é demais. Duas falhas em 10 anos de existência não é pra qualquer um.E aliás a falha já foi corrigida rapidamente, como é quase regra no mundo dos Unix-Like.Ah, se meu banco usasse esse sistema...-----------</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/2064645502843010511/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/de-tirar-o-chapu.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2064645502843010511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2064645502843010511'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/de-tirar-o-chapu.html' title='De tirar o chapéu'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3758844435053464751</id><published>2007-03-15T15:26:00.000-03:00</published><updated>2007-12-22T11:54:12.205-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><title type='text'>Novidades sobre este blog</title><summary type='text'>Pessoal, logo um amigo meu, o Júlio, estará contribuindo com seu conhecimento e experiência aqui também.E a partir desta semana seremos bilingues! Traduziremos os posts antigos e artigos. E os novos posts serão publicados nas duas línguas.Té+--edit--Eu conheço o Júlio e sei que ele aprecia uma boa leitura, boa mesmo. E se for para publicar algo que não contenha um conteúdo rico ele prefere não </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3758844435053464751/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/novidades-sobre-este-blog.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3758844435053464751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3758844435053464751'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/novidades-sobre-este-blog.html' title='Novidades sobre este blog'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-3559309145642036338</id><published>2007-03-12T14:27:00.000-03:00</published><updated>2007-03-12T14:36:36.568-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Uso inteligente de recursos</title><summary type='text'>Uma das vantagens do software livre é a possibilidade de exploração e reaproveitamento de recursos.Recentemente publiquei dois artigos no meu outro blog, com características menos técnicas. Os links estão aqui e aqui.Mas voltando à parte mais técnica, encontrei alguns artigos no site Viva o Linux que cobrem com uma riqueza maior de detalhes algumas dessas possibilidades.Os links dos artigos na </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/3559309145642036338/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/uso-inteligente-de-recursos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3559309145642036338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/3559309145642036338'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/uso-inteligente-de-recursos.html' title='Uso inteligente de recursos'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-9147232908145133771</id><published>2007-03-06T21:03:00.000-03:00</published><updated>2007-03-06T21:05:44.368-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Enfim meu site saiu do forno</title><summary type='text'>Depois de bastante tempo coloquei meu site no ar. Ainda não está no ponto em que eu queria, mas já está bom o bastante (do meu ponto de vista) para ir ao ar.Inicialmente havia uma seção de matérias, mas como já mantenho dois blogs pessoais e o serviço de hospedagem fornece mais um, desisti (pelo menos por enquanto), de manter uma seção assim.Uma outra seção, a de enquetes, será incluída após o </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/9147232908145133771/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/enfim-meu-site-saiu-do-forno.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/9147232908145133771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/9147232908145133771'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/enfim-meu-site-saiu-do-forno.html' title='Enfim meu site saiu do forno'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-6165036646993003398</id><published>2007-03-01T16:04:00.000-03:00</published><updated>2007-03-01T16:10:16.949-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Logs no celular</title><summary type='text'>Após ver este artigo no site Viva o Linux, fiquei pensando em como seria montar uma linha de defesa (firewall+IDS) e mandar os logs para o celular. Já pensou poder monitorar as tentativas de invasão pelo celular? E o melhor mesmo alguém invadindo e apagando os logs, você conta com um backup para fazer auditoria.Té+-----------keepReading</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/6165036646993003398/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/logs-no-celular.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6165036646993003398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6165036646993003398'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/03/logs-no-celular.html' title='Logs no celular'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-391349715289601426</id><published>2007-02-26T23:21:00.000-03:00</published><updated>2007-03-01T16:03:52.727-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Testando o indexador do Google</title><summary type='text'>Duas ferramentas google das quais faço uso são:- Google Analytics- Ferramentas Google para WebmastersSem muito mais comentários sobre elas. Se você nunca viu, recomendo fortemente experimentar.Mas o galho é que as páginas do keepLearning não apareciam como sendo rastreadas nas Ferramentas Google para Webmasters.No google, ao procurar por keeplearningblog, apareciam apenas duas páginas, meus dois </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/391349715289601426/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/testando-o-indexador-do-google.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/391349715289601426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/391349715289601426'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/testando-o-indexador-do-google.html' title='Testando o indexador do Google'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8095051726989306544</id><published>2007-02-24T19:26:00.000-02:00</published><updated>2007-02-24T19:28:39.217-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='errata'/><title type='text'>Errata - artigo sobre Transações</title><summary type='text'>No artigo sobre Transações que publiquei, havia dito que o Python não suportava diretamente os commits e rollbacks da vida.Na verdade o módulo MySQLdb têm os métodos de suporte commit() e rollback(), assim como o PHP.[retirado do manual do módulo MySQLdb versão revisada 1.1, por Andy Dustman]-----------keepReading</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8095051726989306544/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/errata-artigo-sobre-transaes.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8095051726989306544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8095051726989306544'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/errata-artigo-sobre-transaes.html' title='Errata - artigo sobre Transações'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-5419909260115165701</id><published>2007-02-24T18:23:00.000-02:00</published><updated>2007-02-24T19:26:07.833-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Aventuras e soluções - Javascript</title><summary type='text'>Ainda estou muito longe de programar de forma eficiente e levando em conta todas as exigências de um site eficiente e politicamente correto: regras de acessibilidade, normas, etc... Mas faço o possível para chegar cada vez mais próximo disso.O caso é que o famigerado Ajax NÃO é um padrão, e por isso mesmo nunca fiz questão de ir muito atrás para aprender. Porém resolvi usá-lo num site meu, como </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/5419909260115165701/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/aventuras-e-solues-javascript.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5419909260115165701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/5419909260115165701'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/aventuras-e-solues-javascript.html' title='Aventuras e soluções - Javascript'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-2709345389711372633</id><published>2007-02-20T23:13:00.000-02:00</published><updated>2007-02-21T00:11:22.993-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Trabalhando com a classe DOM do PHP</title><summary type='text'>No artigo que publiquei há uma chamada de uma função, a addToLog.Bem, ela trabalha basicamente com a classe DOM do PHP. Esta classe tem muitas aplicações, podendo ser amplamente usada com arquivos XML (e SGML em geral), como, por exemplo, RSS.Vou descrever aqui seu funcionamento. Primeiro vamos supor uma estrutura inicial para o arquivo. Algo assim:&lt;log&gt;  &lt;entrada&gt;    &lt;data&gt;&lt;/data&gt;    &lt;ip&gt;&lt;/ip&gt;  </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/2709345389711372633/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/trabalhando-com-classe-dom-do-php.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2709345389711372633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2709345389711372633'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/trabalhando-com-classe-dom-do-php.html' title='Trabalhando com a classe DOM do PHP'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-6888445393357590834</id><published>2007-02-20T22:56:00.000-02:00</published><updated>2007-02-20T23:10:18.399-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='artigos'/><title type='text'>Artigo - Transações</title><summary type='text'>O artigo sobre transações em bancos de dados está concluído e pronto para download.Para baixar basta ir aqui.Os próximos artigos que pretendo publicar nesta linha sobre bancos de dados são sobre:Stored Procedures e Funções;Triggers;Scheduled Events;Views;e talvez sobre Replicação e Otimização.Sugestões de temas para artigos são bem-vindas.Té+-----------keepReading</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/6888445393357590834/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/artigo-transaes.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6888445393357590834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/6888445393357590834'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/artigo-transaes.html' title='Artigo - Transações'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-8559442362800851330</id><published>2007-02-13T09:28:00.000-02:00</published><updated>2007-02-12T19:19:40.113-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Destrinchando</title><summary type='text'>Tem algumas ferramentas que são indispensáveis para um webmaster. Não estou falando de editores WYSIWYG, ou criadores de animação. Estou falando de add-ons do Mozilla Firefox e serviços web-based como o google analytics. Resolvi conhecer o google analytics faz pouco tempo, depois de ler uma matéria no site Info Western.Realmente ele é uma ferramenta e tanto para webmasters e seus clientes. Mas o </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/8559442362800851330/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/destrinchando.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8559442362800851330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/8559442362800851330'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/destrinchando.html' title='Destrinchando'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-9156313793142829985</id><published>2007-02-12T18:55:00.000-02:00</published><updated>2007-02-11T13:16:55.183-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><title type='text'>Bancos de dados - Transações</title><summary type='text'>Muita gente conhece por vários nomes: Integridade Referencial, Consistência de dados, Transação... O importante é que os dados e as operações fiquem em seus devidos lugares, contornando os erros.O exemplo clássico do uso das transações é numa transferência bancária. Uma transferência constitui-se basicamente de duas operações:- se tira dinheiro de uma conta- e se deposita em outraMas e se uma </summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/9156313793142829985/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/bancos-de-dados-transaes.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/9156313793142829985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/9156313793142829985'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/bancos-de-dados-transaes.html' title='Bancos de dados - Transações'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9142338785199116552.post-2827345016327832551</id><published>2007-02-10T08:03:00.000-02:00</published><updated>2007-02-10T08:01:26.888-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fatos'/><title type='text'>Início</title><summary type='text'>Sabem como é iniciar um blog... (se não sabe inicie um). Aqui vou compartilhar dicas rápidas, tutoriais, artigos, matérias, sugerir leituras e fontes de pesquisa, tudo relacionado à computação.Sou apenas um programador, insatisfeito com os fóruns e portais da vida, onde geralmente se cobre tópicos repetidos, conteúdo be-a-bá, etc... Se você é curioso como eu e o basicão já não te agrada tanto (</summary><link rel='replies' type='application/atom+xml' href='http://keeplearningblog.blogspot.com/feeds/2827345016327832551/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/incio_10.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2827345016327832551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9142338785199116552/posts/default/2827345016327832551'/><link rel='alternate' type='text/html' href='http://keeplearningblog.blogspot.com/2007/02/incio_10.html' title='Início'/><author><name>Davis Peixoto</name><uri>http://www.blogger.com/profile/17579952192507703594</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cvvgeNfI7ZA/TKOPl9YxFwI/AAAAAAAAAGQ/f08KXZV_bZk/S220/davis_peixoto.jpg'/></author><thr:total>0</thr:total></entry></feed>
