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

<channel>
	<title>make all</title>
	<atom:link href="http://makeall.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://makeall.wordpress.com</link>
	<description>cd /usr/src/universe &#38;&#38; make all</description>
	<pubDate>Sun, 25 May 2008 04:06:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Personalizando o psql</title>
		<link>http://makeall.wordpress.com/2008/05/25/personalizando-o-psql/</link>
		<comments>http://makeall.wordpress.com/2008/05/25/personalizando-o-psql/#comments</comments>
		<pubDate>Sun, 25 May 2008 03:36:28 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[psql]]></category>

		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=54</guid>
		<description><![CDATA[Uma das ferramentas mais utilizadas na administração do PostgreSQL é o nosso bom e velho psql. Sua interface em modo texto permite a sua utilização local ou remota de maneira rápida e eficiente  nos presenteando com alguns recursos interessantes como por exemplo a complementação de código baseada em contexto (proporcionado pelo readline).
Outro recurso que utilizo [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft alignnone size-medium wp-image-5" style="border:0 none;float:left;margin:10px 5px;" src="http://makeall.files.wordpress.com/2008/03/database.png?w=42&#038;h=42" alt="Personalizando o psql" width="42" height="42" />Uma das ferramentas mais utilizadas na administração do PostgreSQL é o nosso bom e velho <em>psql</em>. Sua interface em modo texto permite a sua utilização local ou remota de maneira rápida e eficiente  nos presenteando com alguns recursos interessantes como por exemplo a complementação de código baseada em contexto (proporcionado pelo <em>readline</em>).</p>
<p>Outro recurso que utilizo é a personalização do <em>prompt</em>, e este é muito útil para quem está acostumado a conectar em vários servidores distintos, administrando várias bases de dados em cada um deles, pois ele pode lhe fornecer dados interessantes de uma forma simples e prática. Vou tentar exemplificar:</p>
<p>Imagine um cenário onde você administre 3 (três) servidores diferentes, cada um deles contendo algumas bases de dados, conforme a figura abaixo:</p>
<p style="text-align:center;"><img class="alignnone size-medium wp-image-56" src="http://makeall.files.wordpress.com/2008/05/diagrama_banco1.jpg?w=250&#038;h=189" alt="Personalizando o psql" width="250" height="189" /></p>
<p style="text-align:left;">Você pode utilizar o script a seguir para definir o um prompt personalizado para cada servidor.</p>
<pre>#!/bin/sh
########################################################
#
# Script inicializacao de parametros do psql
#
#
# 2007-2008 (c) Dickson Guedes &lt;guediz at gmail dot com&gt;
########################################################
ARG1=$1

PSQL_RC="$HOME/.psqlrc"

PROMPT_SRV01='%[%033[44;37;1m%](%`date +%H:%M:%S`) %n@%M:%&gt;/%/ %[%033[0m%]\\n%x%# '
PROMPT_SRV02='%[%033[43;37;1m%](%`date +%H:%M:%S`) %n@%M:%&gt;/%/ %[%033[0m%]\\n%x%# '
PROMPT_SRV03='%[%033[41;37;1m%](%`date +%H:%M:%S`) %n@%M:%&gt;/%/ %[%033[0m%]\\n%x%# '
PROMPT_DEFAULT='%[%033[40;37;1m%](%`date +%H:%M:%S`) %n@%M:%&gt;/%/ %[%033[0m%]\\n%x%# '

SERVIDOR=${ARG1:=srv01}

define_psqlrc() {
        echo "\set QUIET 1" &gt; $PSQL_RC
        echo "\pset null '(null)'" &gt;&gt; $PSQL_RC
        echo "\set PROMPT1 '$1'" &gt;&gt; $PSQL_RC
        echo "\set PROMPT2 '| '" &gt;&gt; $PSQL_RC
        echo "\set HISTSIZE 5000" &gt;&gt; $PSQL_RC
        echo "\set HISTFILE ~/.psql_history- :DBNAME" &gt;&gt; $PSQL_RC
        echo '\\timing' &gt;&gt; $PSQL_RC
        echo "\set QUIET 0" &gt;&gt; $PSQL_RC
}

case $1 in
        srv01) define_psqlrc "$PROMPT_SRV01" ;;
        srv02) define_psqlrc "$PROMPT_SRV02" ;;
        srv03) define_psqlrc "$PROMPT_SRV03" ;;
            *) define_psqlrc "$PROMPT_DEFAULT" ;;
esac

psql -h $SERVIDOR
## FIM DO SCRIPT
</pre>
<p style="text-align:left;">Com esse script eu posso executá-lo e obter <em>prompts</em> diferenciados para cada servidor:</p>
<p style="text-align:left;"><a href="http://makeall.files.wordpress.com/2008/05/psql_srv01.png"><img class="alignnone size-medium wp-image-57" src="http://makeall.files.wordpress.com/2008/05/psql_srv01.png?w=300&#038;h=126" alt="Personalizando o psql" width="300" height="126" /></a></p>
<p style="text-align:left;"><a href="http://makeall.files.wordpress.com/2008/05/psql_srv02.png"><img class="alignnone size-medium wp-image-58" src="http://makeall.files.wordpress.com/2008/05/psql_srv02.png?w=300&#038;h=126" alt="Personalizando o psql" width="300" height="126" /></a></p>
<p style="text-align:left;"><a href="http://makeall.files.wordpress.com/2008/05/psql_srv03.png"><img class="alignnone size-medium wp-image-59" src="http://makeall.files.wordpress.com/2008/05/psql_srv03.png?w=300&#038;h=126" alt="Personalizando o psql" width="300" height="126" /></a></p>
<p style="text-align:left;">A data é apresentada através do uso da sequência de escape<tt> %`</tt><tt><em>command</em></tt><tt>`.</tt><tt> </tt>Já as cores são mostradas através do uso da sequência de escape <tt>%[</tt> ... <tt>%].</tt></p>
<p style="text-align:left;">Outras sequências de escape e personalizações podem ser encontradas no manual do <a href="http://www.postgresql.org/docs/current/interactive/app-psql.html" target="_blank"><em>psql</em></a>.</p>
<p style="text-align:left;">Bom, é isso!</p>
<p style="text-align:left;">
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/54/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/54/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=54&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/05/25/personalizando-o-psql/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/03/database.png?w=24" medium="image">
			<media:title type="html">Personalizando o psql</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/05/diagrama_banco1.jpg?w=250" medium="image">
			<media:title type="html">Personalizando o psql</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/05/psql_srv01.png?w=300" medium="image">
			<media:title type="html">Personalizando o psql</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/05/psql_srv02.png?w=300" medium="image">
			<media:title type="html">Personalizando o psql</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/05/psql_srv03.png?w=300" medium="image">
			<media:title type="html">Personalizando o psql</media:title>
		</media:content>
	</item>
		<item>
		<title>FISL 9.0 - 18 de Abril</title>
		<link>http://makeall.wordpress.com/2008/04/22/fisl-90-18-de-abril-3/</link>
		<comments>http://makeall.wordpress.com/2008/04/22/fisl-90-18-de-abril-3/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 16:11:15 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[fisl9]]></category>

		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[bucardo]]></category>

		<category><![CDATA[comunidade]]></category>

		<category><![CDATA[fisl]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=53</guid>
		<description><![CDATA[A última palestra que participei foi a do Diogo Biazus sobre replicação assincrona multi-mestre, expondo de maneira clara, profissional e bem-humorada, sua experiência com Bucardo
Apesar das limitações do Bucardo, na sua versão atual, para a sua proposta ele trabalha muito bem, e tem um futuro promissor. Já andei olhando seu código fonte, e fazendo alguns [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft size-medium wp-image-47" style="border:0 none;float:left;margin:10px;" src="http://makeall.files.wordpress.com/2008/04/fislix.jpg?w=71&#038;h=72" alt="FISL 9.0 - 18 de Abril" width="71" height="72" />A última palestra que participei foi a do Diogo Biazus sobre replicação assincrona multi-mestre, expondo de maneira clara, profissional e bem-humorada, sua experiência com Bucardo</p>
<p>Apesar das limitações do Bucardo, na sua versão atual, para a sua proposta ele trabalha muito bem, e tem um futuro promissor. Já andei olhando seu código fonte, e fazendo alguns testes básicos e pretendo, seguindo as considerações expostas na palestra do Diogo, aplicá-lo em um ambiente com elevado número de transações por segundo e obviamente, os resultados serão postados aqui.</p>
<p>Em resumo, os contatos efetuados no FISL esse ano valeram a pena, bem como o elevado grau de informação, qualidade e profissionalismo dos palestrantes. Espero que o PgCon Brasil deste ano seja tão bom (ou melhor) quanto foram as palestras sobre o nosso elefantinho no FISL.</p>
<p>Bom é isso.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/53/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/53/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=53&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/04/22/fisl-90-18-de-abril-3/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/fislix.jpg?w=290" medium="image">
			<media:title type="html">FISL 9.0 - 18 de Abril</media:title>
		</media:content>
	</item>
		<item>
		<title>FISL 9.0 - 18 de Abril</title>
		<link>http://makeall.wordpress.com/2008/04/18/fisl-90-18-de-abril/</link>
		<comments>http://makeall.wordpress.com/2008/04/18/fisl-90-18-de-abril/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 02:40:44 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[fisl9]]></category>

		<category><![CDATA[comunidade]]></category>

		<category><![CDATA[jcompany]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=51</guid>
		<description><![CDATA[Hoje mudei um pouco a agenda, acabei visitando o estande do jCompany (community version) que foi lançado com licença GPLv3. Para quem não conhece a proposta do jCompany é de ser um framework para automatizar implementações em nível de Caso de Uso. Já o jCompany FS Framework é um software livre, totalmente escrito nas especificações [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft size-medium wp-image-47" style="border:0 none;float:left;margin:10px;" src="http://makeall.files.wordpress.com/2008/04/fislix.jpg?w=71&#038;h=72" alt="FISL 9.0 - 18 de Abril" width="71" height="72" />Hoje mudei um pouco a agenda, acabei visitando o estande do jCompany (community version) que foi lançado com licença GPLv3. Para quem não conhece a proposta do jCompany é de ser um framework para automatizar implementações em nível de Caso de Uso. Já o jCompany FS Framework é um software livre, totalmente escrito nas especificações Java EE 5 e que pode ser um fator importante para o o refatoramento de seu próprio código.<br />
Essa versão SL criará uma nova ramificação do jCompany, onde a criatividade da comunidade permitirá um conjunto de inovações, as quais serão aos poucos estudadas testadas e validadas antes de entrarem no mundo corporativo.</p>
<p>Com essa nova visão, talvez em um futuro próximo quem sabe, ele poderá se aproximar ao que hoje é o AndroMDA que, infelizmente, não teve nenhuma palestra abordada esse ano.</p>
<p>Quem sabe ano que vem alguém não se empolgue e tome a iniciativa, não é mesmo Lino? <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/51/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/51/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=51&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/04/18/fisl-90-18-de-abril/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/fislix.jpg" medium="image">
			<media:title type="html">FISL 9.0 - 18 de Abril</media:title>
		</media:content>
	</item>
		<item>
		<title>FISL 9.0 - 18 de Abril</title>
		<link>http://makeall.wordpress.com/2008/04/18/fisl-90-18-de-abril-2/</link>
		<comments>http://makeall.wordpress.com/2008/04/18/fisl-90-18-de-abril-2/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 14:30:51 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[fisl9]]></category>

		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[bancodedados]]></category>

		<category><![CDATA[buscatextual]]></category>

		<category><![CDATA[comunidade]]></category>

		<category><![CDATA[fts]]></category>

		<category><![CDATA[tsearch]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=52</guid>
		<description><![CDATA[A Embrapa apresentou uma palestra sobre recuperação de informações em base de dados textuais, demonstrando sua experiência com o uso de ferramentas, tanto proprietárias quanto livres.
Ao iniciarem seus estudos com ferramentas livres várias alternativas foram utilizadas, inclusive o tsearch2 do nosso elefantinho foi testado, no entanto, para a necessidade deles de fazer indexação de textos, [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft size-medium wp-image-47" style="border:0 none;float:left;margin:10px;" src="http://makeall.files.wordpress.com/2008/04/fislix.jpg?w=71&#038;h=72" alt="FISL 9.0 - 18 de Abril" width="71" height="72" />A Embrapa apresentou uma palestra sobre recuperação de informações em base de dados textuais, demonstrando sua experiência com o uso de ferramentas, tanto proprietárias quanto livres.<br />
Ao iniciarem seus estudos com ferramentas livres várias alternativas foram utilizadas, inclusive o tsearch2 do nosso elefantinho foi testado, no entanto, para a necessidade deles de fazer indexação de textos, as alternativas eram mais complexas e exigiam o acoplamento de outras soluções mais especializadas.</p>
<p>Em uma visão geral da palestra foram apresentados os seguintes topicos.</p>
<p><strong>Tecnicas de buscas textuais em banco de dados estudadas</strong></p>
<p>Foram analisadas &#8220;Full Text Search&#8221; e &#8220;TSearch2&#8243; (do nosso elefantinho), no entanto nenhuma delas satisfizeram as necessidades da Embrapa</p>
<p><strong>Ferramentas de indexação textual</strong></p>
<p>Foram analisadas SWISH-E, Lucene e OpenFTS, e delas a que mais se destacou foi a Lucene. principalmente pela compatibilidade com as linguagens de programação já utilizadas, que no caso seguiam a plataforma J2EE, e algo em PHP.</p>
<p><strong>Resultados obtidos</strong></p>
<p>O resultado pode ser visto no link: http://www.bdpa.cnptia.embrapa.br/busca.php e são bem expressivos em termos de tempo de resposta e sensibilidade ao contexto dos dados entrados.</p>
<p>Talvez esteja ai, uma extensão que nosso elefantinho posso começar a amadurecer, em minha singela opnião, acredito que um bom trabalho da comunidade poderia criar uma ferramenta que pudesse auxiliar nesse contexto, utilizando o PostgreSQL como servidor de aplicação.</p>
<p>Bom é isso..</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/52/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/52/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=52&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/04/18/fisl-90-18-de-abril-2/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/fislix.jpg" medium="image">
			<media:title type="html">FISL 9.0 - 18 de Abril</media:title>
		</media:content>
	</item>
		<item>
		<title>FISL 9.0 - 17 de Abril</title>
		<link>http://makeall.wordpress.com/2008/04/17/fisl-90-17-de-abril/</link>
		<comments>http://makeall.wordpress.com/2008/04/17/fisl-90-17-de-abril/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 02:00:59 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[fisl9]]></category>

		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=50</guid>
		<description><![CDATA[O clima hoje não ajudou, aeroporto em POA fechado e acabei chegando atrasado ao FISL, perdendo assim a palestra do Fike. Imprevistos à parte, o clima esse ano no FISL está show de bola. A abertura dos estandes ao público e o ambiente universitário da PUCRS deram ao evento um clima bem descontraído e recheado [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft size-medium wp-image-47" style="border:0 none;float:left;margin:10px;" src="http://makeall.files.wordpress.com/2008/04/fislix.jpg?w=71&#038;h=72" alt="FISL 9.0 - 17 de Abril" width="71" height="72" />O clima hoje não ajudou, aeroporto em POA fechado e acabei chegando atrasado ao FISL, perdendo assim a palestra do Fike. Imprevistos à parte, o clima esse ano no FISL está show de bola. A abertura dos estandes ao público e o ambiente universitário da PUCRS deram ao evento um clima bem descontraído e recheado de novidades.</p>
<p>Deu tempo de chegar para a palestra de Josh Berkus que foi bem interessante, as questões envolvendo segurança no PostgreSQL foram bem esplanadas. A diferença cultural não impediu que o publico participasse ativamente.</p>
<p>Logo em seguida, no mesmo auditório, David Fetter apresentou-nos sua palestra que exemplificou como utilizar o nosso Elefante como um Servidor de Aplicação. Dentre as inúmeras linguagens suportadas no PostgreSQL, ele focou seu exemplo em plperl/SQL frisando as questões de segurança, imutabilidade e clareza de código. Logo no início um pequeno trecho do Tropa de Elite que  demonstra, segundo David Fetter, a maneira pela qual certamente não é a experiência que se tem ao se desenvolver algo utilizando PostgreSQL como um servidor de aplicações.</p>
<p>Acabei perdendo a palestra do Telles por problemas particulares, mas ouvi ótimos comentários.</p>
<p>Em tempo, o estande do elefantinho está show de bola, vale a pena conferir..</p>
<p>Bom é isso&#8230; as fotos vem em breve assim que eu baixá-las&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/50/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/50/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=50&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/04/17/fisl-90-17-de-abril/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/fislix.jpg" medium="image">
			<media:title type="html">FISL 9.0 - 17 de Abril</media:title>
		</media:content>
	</item>
		<item>
		<title>Véspera de FISL 9.0&#8230;</title>
		<link>http://makeall.wordpress.com/2008/04/16/vespera-de-fisl-90/</link>
		<comments>http://makeall.wordpress.com/2008/04/16/vespera-de-fisl-90/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 13:14:56 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[fisl9]]></category>

		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[comunidade]]></category>

		<category><![CDATA[eventos]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=46</guid>
		<description><![CDATA[E amanhã começa o FISL 9.0, as expectativas são grandes, as palestras bem interessantes, e esse ano teremos uma participação forte do nosso amigo elefante (leia-se PostgreSQL).
Acabei montando minnha agenda no google calendar e publicando-a aqui. Todas as palestras do elefantinho estão lá bem como outras que tenho interesse, monte a sua também, imprime-a e [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft size-medium wp-image-47" style="border:0 none;float:left;margin:5px 10px;" src="http://makeall.files.wordpress.com/2008/04/fislix.jpg?w=71&#038;h=72" alt="Véspera de FISL 9.0..." width="71" height="72" />E amanhã começa o FISL 9.0, as expectativas são grandes, as palestras bem interessantes, e esse ano teremos uma participação forte do nosso amigo elefante (leia-se PostgreSQL).</p>
<p>Acabei montando minnha agenda no <a href="http://calendar.google.com" target="_blank">google calendar</a> e <a href="http://tinyurl.com/55yggl" target="_blank">publicando-a aqui</a>. Todas as palestras do elefantinho estão lá bem como outras que tenho interesse, monte a sua também, imprime-a e leve com você no FISL, esteja preparado pois eventuais mudanças de horário ocorrem e não esqueça de visitar nosso estande.</p>
<p>No decorrer do evento irei postar aqui no blog informações e imagens para os colegas que não puderem comparecer de alguma forma ou de outra ao evento.</p>
<p>E para ajudar o povo que está indo para lá alguns links:</p>
<p><a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=pt-BR&amp;om=1&amp;msa=0&amp;msid=115322913353021965536.000440cb4d0952635b2fd&amp;ll=-30.025111,-51.171227&amp;spn=0.129007,0.215607&amp;z=13" target="_blank">Mapa de localização do evento</a></p>
<p><a href="http://makeall.files.wordpress.com/2008/04/estande-postgresql-localizacao.jpg" target="_blank">Mapa de localização do estande do PostgreSQL (indicador azul)<br />
</a></p>
<p><a href="http://www.midstorm.org/~fike/weblog/index.php/2008/04/16/super-quinta-postgresql-no-fisl-90/" target="_blank">Palestras sobre PostgreSQL e Banco de dados<br />
</a></p>
<p><a href="http://tinyurl.com/55yggl" target="_blank">Minha agenda do FISL 9.0 com as palestras do PostgreSQL e outras</a></p>
<p><a href="http://fisl.softwarelivre.org/9.0/papers/pub/" target="_blank">Quadro de palestras do FISL 9.0</a></p>
<p>Bom, é isso! Nos vemos por lá&#8230; &#8220;:D</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/46/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/46/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=46&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/04/16/vespera-de-fisl-90/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/fislix.jpg" medium="image">
			<media:title type="html">Véspera de FISL 9.0...</media:title>
		</media:content>
	</item>
		<item>
		<title>Tamanho de tabelas no PostgreSQL</title>
		<link>http://makeall.wordpress.com/2008/04/11/tamanho-de-tabelas-no-postgresql/</link>
		<comments>http://makeall.wordpress.com/2008/04/11/tamanho-de-tabelas-no-postgresql/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 06:19:05 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[avancado]]></category>

		<category><![CDATA[patch]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=45</guid>
		<description><![CDATA[Caros, hoje pretendo ser o mais breve possível apresentando uma dica rápida. Pois bem, apesar de existirem algumas ferramentas gráficas como o Aqua Studio, DbVisualizer e o próprio pgAdminIII, o meu fiel companheiro de todos os dias acaba sendo o bom e velho psql. Leve, simples e bastante completo ele me proporciona agilidade em muitas [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://makeall.files.wordpress.com/2008/03/database.png?w=41&#038;h=41" alt="Tamanho de tabelas no PostgreSQL" width="41" height="41" class="alignleft size-medium wp-image-5" />Caros, hoje pretendo ser o mais breve possível apresentando uma dica rápida. Pois bem, apesar de existirem algumas ferramentas gráficas como o <em>Aqua Studio</em>, <em>DbVisualizer</em> e o próprio <em>pgAdminIII</em>, o meu fiel companheiro de todos os dias acaba sendo o bom e velho <em>psql</em>. Leve, simples e bastante completo ele me proporciona agilidade em muitas das minhas tarefas diárias.</p>
<p>Nessas últimas versões ele vem recebendo algumas características novas. Uma delas que podemos esperar para a versão 8.4, por exemplo, é uma melhoria do comando &#8220;\l+&#8221; que, nessa versão, mostra também os tamanhos que os bancos de dados ocupam:</p>
<pre>
analise=# \l+
                                                               List of databases
   Name    |   Owner   | Encoding |                    Access Privileges                     |  Size   | Tablespace |        Description
-----------+-----------+----------+----------------------------------------------------------+---------+------------+---------------------------
 analise    | postgres  | UTF8     | {sademo=CTc/postgres,postgres=CTc/postgres,=Tc/postgres} | 151 MB  | pg_default |
 bench     | postgres  | UTF8     |                                                          | 710 MB  | pg_default |
 postgres  | postgres  | UTF8     |                                                          | 4215 kB | pg_default |
 livraria   | sasebo    | UTF8     |                                                          | 4136 kB | pg_default |
 template0 | postgres  | UTF8     | {=c/postgres,postgres=CTc/postgres}                      | 4136 kB | pg_default |
 template1 | postgres  | UTF8     | {postgres=CTc/postgres,=c/postgres}                      | 4136 kB | pg_default | default template database
</pre>
<p>No entanto, para o comando &#8220;\d+&#8221;, não foi implementada a mesma idéia, ou seja, ele não lista o tamanho dos objetos (visões, tabelas, sequências, indices) e por isso eu acabei criando o <em>patch</em> abaixo que, uma vez aplicado na versão última versão do PostgreSQL no CVS, habilita essa característica no <em>psql</em>:</p>
<pre>
Index: describe.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/bin/psql/describe.c,v
retrieving revision 1.166
diff -c -r1.166 describe.c
*** describe.c	30 Mar 2008 18:10:20 -0000	1.166
--- describe.c	11 Apr 2008 04:59:56 -0000
***************
*** 1766,1775 ****
--- 1766,1781 ----
  						  gettext_noop("Table"));

  	if (verbose)
+ 	{
  		appendPQExpBuffer(&amp;buf,
  			  ",\n  pg_catalog.obj_description(c.oid, 'pg_class') as \"%s\"",
  						  gettext_noop("Description"));

+ 		appendPQExpBuffer(&amp;buf,
+ 			  ",\n  pg_catalog.pg_size_pretty(pg_catalog.pg_relation_size(c.oid)) as \"%s\"",
+ 					  	  gettext_noop("Size"));
+ 	}
+
  	appendPQExpBuffer(&amp;buf,
  					  "\nFROM pg_catalog.pg_class c"
  					"\n     JOIN pg_catalog.pg_roles r ON r.oid = c.relowner"
***************
*** 1809,1816 ****
  	processSQLNamePattern(pset.db, &amp;buf, pattern, true, false,
  						  "n.nspname", "c.relname", NULL,
  						  "pg_catalog.pg_table_is_visible(c.oid)");
!
! 	appendPQExpBuffer(&amp;buf, "ORDER BY 1,2;");

  	res = PSQLexec(buf.data, false);
  	termPQExpBuffer(&amp;buf);
--- 1815,1825 ----
  	processSQLNamePattern(pset.db, &amp;buf, pattern, true, false,
  						  "n.nspname", "c.relname", NULL,
  						  "pg_catalog.pg_table_is_visible(c.oid)");
!
! 	if (verbose)
! 		appendPQExpBuffer(&amp;buf, "ORDER BY 1, pg_catalog.pg_relation_size(c.oid) DESC, 2;");
! 	else
! 		appendPQExpBuffer(&amp;buf, "ORDER BY 1,2;");

  	res = PSQLexec(buf.data, false);
  	termPQExpBuffer(&amp;buf);
</pre>
<p>O que eu faço é mostrar uma coluna a mais (&#8221;Size&#8221;), e ordenar a saída por Esquema, Tamanho (decrescente) e Nome do objeto. A saída fica algo assim:</p>
<pre>
analise=# \d+
                                      List of relations
 Schema  |                Name                | Type  |   Owner    | Description |    Size
---------+------------------------------------+-------+------------+-------------+------------
 teste   | tb_cliente                         | table | sa_analiseq   | Cliente     | 8192 bytes
 teste   | tb_compra                          | table | sa_analise   | Compra      | 8192 bytes
 teste   | tb_item_compra                     | table | sa_analise   | ItemCompra  | 8192 bytes
 teste   | tb_produto                         | table | sa_analise   | Produto     | 8192 bytes
 financ | tb_caixa                           | table | sa_analise   | Caixa       | 517 MB
 financ | tb_banco                           | table | sa_analise   | Banco       | 80 MB
 generic | tb_cliente                         | table | sa_analise | Cliente     | 250 MB
 generic | tb_pessoa                          | table | sa_analise   | Pessoa      | 140 MB
</pre>
<p>Bom, é isso! &#8220;:D</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=45&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/04/11/tamanho-de-tabelas-no-postgresql/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/03/database.png" medium="image">
			<media:title type="html">Tamanho de tabelas no PostgreSQL</media:title>
		</media:content>
	</item>
		<item>
		<title>Exemplo de um script SQL interativo no PostgreSQL</title>
		<link>http://makeall.wordpress.com/2008/04/07/exemplo-de-um-script-sql-interativo-no-postgresql/</link>
		<comments>http://makeall.wordpress.com/2008/04/07/exemplo-de-um-script-sql-interativo-no-postgresql/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 03:17:28 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[intermediario]]></category>

		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=38</guid>
		<description><![CDATA[A semana foi corrida, e o final de semana foi totalmente utilizado para descanso e lazer. Mas a vontade de escrever é maior, e cá estou novamente pronto para mais um post. A idéia hoje era falar sobre scripts SQL, então imaginei algo diferente, e pensei em mostrar como fazer um script interativo no PostgreSQL [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="alignleft size-medium wp-image-5" style="border:0;float:left;margin:10px 5px;" src="http://makeall.files.wordpress.com/2008/03/database.png?w=42&#038;h=42" alt="Exemplo de um script SQL interativo no PostgreSQL" width="42" height="42" />A semana foi corrida, e o final de semana foi totalmente utilizado para descanso e lazer. Mas a vontade de escrever é maior, e cá estou novamente pronto para mais um <em>post</em>. A idéia hoje era falar sobre <em>scripts</em> SQL, então imaginei algo diferente, e pensei em mostrar como fazer um <em>script</em> interativo no PostgreSQL 8.3, associando o seu uso a um cenário hipotético. Vejamos&#8230;</p>
<p>Em um universo ideal, é muito comum existir um banco de dados de desenvolvimento, um de testes, um de homologação e um de produção. Neste cenário, imagine que seu Analista de Testes precise testar uma nova funcionalidade do sistema relacionada ao módulo de compras, e que para isso constantemente você tenha que aplicar a carga de testes desse módulo no banco de dados de teste, não é de se estranhar que você possua uma carga pronta (é o mínimo que você deveria ter).</p>
<p>Veja a seguir o <em>script</em> simplificado que representa esse cenário:</p>
<pre>CREATE TABLE tb_cliente (
     nr_documento numeric(14,0) NOT NULL,
     nm_cliente character varying(60)
);
ALTER TABLE blog.tb_cliente OWNER TO postgres;

CREATE TABLE tb_compra (
     nr_nota_fiscal numeric(15,0) NOT NULL,
     dt_compra date,
     nr_documento_cliente numeric(14,0)
);
ALTER TABLE blog.tb_compra OWNER TO postgres;

CREATE TABLE tb_item_compra (
     nr_nota_fiscal numeric(15,0) NOT NULL,
     nr_referencia integer NOT NULL,
     qt_item smallint DEFAULT 1
);
ALTER TABLE blog.tb_item_compra OWNER TO postgres;

CREATE TABLE tb_produto (
     nr_referencia integer NOT NULL,
     ds_produto character varying(60) NOT NULL,
     vl_venda numeric(15,2)
);
ALTER TABLE blog.tb_produto OWNER TO postgres;

CREATE SEQUENCE tb_produto_nr_referencia_seq
     INCREMENT BY 1
     NO MAXVALUE
     NO MINVALUE
     CACHE 1;
ALTER TABLE blog.tb_produto_nr_referencia_seq OWNER TO postgres;

ALTER SEQUENCE tb_produto_nr_referencia_seq OWNED BY tb_produto.nr_referencia
ALTER TABLE tb_produto ALTER COLUMN nr_referencia SET DEFAULT nextval('tb_produto_nr_referencia_seq'::regclass);

ALTER TABLE ONLY tb_compra
     ADD CONSTRAINT pk_compra PRIMARY KEY (nr_nota_fiscal);
ALTER TABLE ONLY tb_item_compra
     ADD CONSTRAINT pk_item_compra PRIMARY KEY (nr_nota_fiscal, nr_referencia);
ALTER TABLE ONLY tb_cliente
     ADD CONSTRAINT pk_pessoa PRIMARY KEY (nr_documento);
ALTER TABLE ONLY tb_produt
     ADD CONSTRAINT pk_produto PRIMARY KEY (nr_referencia);

ALTER TABLE ONLY tb_compra
     ADD CONSTRAINT fk_cliente_compra_01 FOREIGN KEY (nr_documento_cliente) REFERENCES tb_cliente(nr_documento);
ALTER TABLE ONLY tb_item_compra
     ADD CONSTRAINT fk_compra_item_compra_01 FOREIGN KEY (nr_nota_fiscal) REFERENCES tb_compra(nr_nota_fiscal);
ALTER TABLE ONLY tb_item_compr
     ADD CONSTRAINT fk_produto_item_compra_01 FOREIGN KEY (nr_referencia) REFERENCES tb_produto(nr_referencia);
</pre>
<p>Esse é o conteúdo simplificado da entidade cliente no banco de dados de teste:</p>
<pre> nr_documento |        nm_cliente
--------------+---------------------------
74727756632 | Marta Antonia
56548986527 | Antonia Josefina
47040567970 | Adamantina Pereira
24348435149 | Carlos Augusto
80987468692 | José Silveira
56096344407 | Maria Eleontina de Castro
79056669606 | José da Silva Sauro
31887461081 | Ribamar de Castr
45792555043 | Manoel Bandeira</pre>
<p>Esse é o conteudo simplificado da entidade produto no banco de dados de teste:</p>
<pre> nr_referencia |    ds_produto     | vl_venda
---------------+-------------------+----------
1 | Sapato Velho      |    15.00
2 | Sapato Novo       |    25.00
3 | Blusa Velha       |    35.00
4 | Blusa Nova        |    45.00
5 | Calça Jeans Velha |    29.50
6 | Calça Jeans Nova  |    49.50
7 | Peruca Masculina  |   439.9
8 | Camisola          |    19.50</pre>
<p>E este é o Script de Carga de Teste para as entidades tb_compra e tb_item_compra:</p>
<pre>postgres@banco $ cat ~/scripts/carga_compra_teste.sql
/***************************************************
*
* Script de geração de carga
* Modulo de Compras - Banco de dados de Teste
*
* (c) 2007 Dickson Guedes &lt;guediz at gmail dot com&gt;
*
****************************************************/

INSERT INTO tb_compra (nr_nota_fiscal, dt_compra, nr_documento_cliente
     VALUES (1234567890, now(), 56473847366);

INSERT INTO tb_item_compra (nr_nota_fiscal, nr_referencia, qt_item)
     VALUES (1234567890, 6,  2);
INSERT INTO tb_item_compra (nr_nota_fiscal, nr_referencia, qt_item)
     VALUES (1234567890, 4,  1);
INSERT INTO tb_item_compra (nr_nota_fiscal, nr_referencia, qt_item)
     VALUES (1234567890, 3, 15);
INSERT INTO tb_item_compra (nr_nota_fiscal, nr_referencia, qt_item
     VALUES (1234567890, 2,  2);

INSERT INTO tb_compra (nr_nota_fiscal, dt_compra, nr_documento_cliente
     VALUES (1122334455, now(), 56096344407);

INSERT INTO tb_item_compra (nr_nota_fiscal, nr_referencia, qt_item)
     VALUES (1122334455, 6,  2);
INSERT INTO tb_item_compra (nr_nota_fiscal, nr_referencia, qt_item)
     VALUES (1122334455, 4,  1);
INSERT INTO tb_item_compra (nr_nota_fiscal, nr_referencia, qt_item)
     VALUES (1122334455, 3, 15);
INSERT INTO tb_item_compra (nr_nota_fiscal, nr_referencia, qt_item
     VALUES (1122334455, 2,  2);
</pre>
<p>E para executá-lo e utilizo o utilitário <em>psql</em>:</p>
<pre>postgresql@banco $ psql bdtesteWelcome to psql 8.4devel, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
     \h for help with SQL commands
     \? for help with psql commands
     \g or terminate with semicolon to execute quer
     \q to quit

postgres=# \i ~/scripts/carga_compra_teste.sql</pre>
<p>E se eu quisesse tornar esse script interativo?</p>
<p>O utilitário <em>psql</em> além de aceitar instruções SQL, possui um conjunto de instrucoes proprias que nos permitem extenter suas funcionalidades. Utilizaremos duas delas: \echo, que permite enviar um texto para a console do psql e \prompt (a partir da versão 8.3 do PostgreSQL) que permite receber um dado da entrada e salvar um uma variável.</p>
<p>Nosso script acima poderia ficar assim:</p>
<pre>/***************************************************
*
* Script de geração de carga
* Modulo de Compras - Banco de dados de Teste
*
* (c) 2007 Dickson Guedes &lt;guediz at gmail dot com&gt;
*
****************************************************/

\echo """"""""""""""""""""""""""""""""""""""""""
\echo " Gerando carga para o ambiente: TESTE   "
\echo "                                        "
\echo " Cenário: Prestacoes de compra a prazo  "
\echo "                                        "
\echo """"""""""""""""""""""""""""""""""""""""""
\echo
\echo Continuar..: Enter
\echo Cancelar...: Ctrl+C

\prompt continua
\unset continuar

\echo
SELECT nr_documento || ' -&gt; ' || nm_cliente AS "Lista de Clientes" FROM tb_cliente;
\echo
\prompt 'Informe um dos números de CPFs acima.: ' v_nr_document
\prompt 'Informe o número da nota fiscal......: ' v_nr_nota_fiscal

\echo '* Inserindo compra para o cliente:' :v_nr_documento 'com número de nota fiscal:' :v_nr_nota_fiscal

INSERT INTO tb_compra (nr_nota_fiscal, dt_compra, nr_documento_cliente) VALUE
     (:v_nr_nota_fiscal, now(), :v_nr_documento);

INSERT INTO tb_item_compra (nr_nota_fiscal, nr_referencia, qt_item) VALUES
     (:v_nr_nota_fiscal, 2, ((RANDOM()*5)+1)::int2),
     (:v_nr_nota_fiscal, 4, ((RANDOM()*5)+1)::int2),
     (:v_nr_nota_fiscal, 7, ((RANDOM()*5)+1)::int2),
     (:v_nr_nota_fiscal, 5, ((RANDOM()*5)+1)::int2);

\echo "* Script finalizado!"
</pre>
<p>E para executá-lo e utilizo também o utilitário <em>psql</em>:</p>
<pre>postgresql@banco $ psql bdtesteWelcome to psql 8.4devel, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute quer
\q to quit

postgres=# \i ~/scripts/carga_compra_teste.sql</pre>
<p><strong><span style="color:#0000ff;">DICA 1</span></strong>: quando usar o \prompt você pode usar 2 (dois) argumentos: um texto explicativo seguido do nome da variável que você deseja armazenar o valor recebido.<br />
<strong><span style="color:#0000ff;"> DICA 2</span></strong>: os valores das variáveis são recuperados utilizando-se o dois pontos (&#8221;:&#8221;) precedendo o nome da variável que se deseja ler o valor, como por exemplo \echo &#8216;Valor da variavel é&#8217; :variavel_qualquer.</p>
<p><strong><span style="color:#ff6600;">DESAFIO 1</span></strong>: Tente alterar o script acima para que os produtos também sejam aleatórios, ou seja, cada vez que o script for executado ele gere uma carga diferente.</p>
<p><strong><span style="color:#ff6600;">DESAFIO 2</span></strong>: Como você trataria o problema de um erro de digitação ou problema de violação de chaves? Você poderia utilizar transações?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=38&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/04/07/exemplo-de-um-script-sql-interativo-no-postgresql/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/03/database.png" medium="image">
			<media:title type="html">Exemplo de um script SQL interativo no PostgreSQL</media:title>
		</media:content>
	</item>
		<item>
		<title>Monitorando o PostgreSQL com ptop</title>
		<link>http://makeall.wordpress.com/2008/04/02/monitorando-o-postgresql-com-ptop/</link>
		<comments>http://makeall.wordpress.com/2008/04/02/monitorando-o-postgresql-com-ptop/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 23:59:36 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[downloads]]></category>

		<category><![CDATA[ferramentas]]></category>

		<category><![CDATA[intermediario]]></category>

		<category><![CDATA[monitoramento]]></category>

		<category><![CDATA[ptop]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=30</guid>
		<description><![CDATA[Em um ambiente corporativo com aplicações de missão crítica, qualquer instante de instabilidade pode causar um grande prejuízo para seu cliente, e conseqüentemente para sua empresa. Neste universo, onde todas as camadas de infra-estrutura que dão suporte ao funcionamento de suas aplicações precisam estar altamente-disponíveis, faz-se necessário tomar medidas preventivas a fim de identificar, pro-ativamente, [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://makeall.files.wordpress.com/2008/03/database.png" title="database.png"><img src="http://makeall.files.wordpress.com/2008/03/database.thumbnail.png?w=42&#038;h=42" alt="Monitorando o PostgreSQL com ptop" align="left" border="0" height="42" hspace="5" vspace="10" width="42" /></a>Em um ambiente corporativo com aplicações de missão crítica, qualquer instante de instabilidade pode causar um grande prejuízo para seu cliente, e conseqüentemente para sua empresa. Neste universo, onde todas as camadas de infra-estrutura que dão suporte ao funcionamento de suas aplicações precisam estar altamente-disponíveis, faz-se necessário tomar medidas preventivas a fim de identificar, pro-ativamente, qualquer incidente que pode acarretar em um grande problema.</p>
<p>Neste cenário, o papel do DBA é muito importante, pois ele pode identificar, já na camada de Banco de Dados, possíveis candidatos a problemas futuros. No entanto, ele precisa de ferramentas de apoio para tal tarefa, a fim de tornar seu trabalho produtivo e pró-ativo e não reativo, como em muitas empresas.</p>
<p>Sendo assim, gostaria de falar hoje sobre o nosso amigo <a href="http://ptop.projects.postgresql.org/" target="_blank"><span style="font-style:italic;">ptop</span></a>, que é uma espécie de <span style="font-style:italic;">&#8216;top&#8217;</span> para o PostgreSQL. Inspirado no top dos sistemas  UNIX-like, ele permite:</p>
<ul>
<li>Visualizar a instrução SQL sendo executada por um processo;</li>
<li>Visualizar o plano de execução de um SELECT rodando no momento;</li>
<li>Visualizar os <span style="font-style:italic;">locks</span> de um determinado processo;</li>
<li>Visualizar as estatísticas das tabelas de usuário;</li>
<li>Visualizar as estatísticas dos índices de usuário;</li>
</ul>
<p><b>Obtendo e Instalando</b></p>
<p>A <a href="http://pgfoundry.org/frs/download.php/1667/ptop-3.6.1.tar.gz" target="_blank">última versão estável do <i>ptop</i> é a 3.6.1</a> mas já existem <a href="http://pgfoundry.org/frs/?group_id=1000300" target="_blank">versões beta disponíveis</a> que podem ser baixadas e testadas. No nosso caso utilizaremos a última versão estável, fazendo o download e salvando em um diretório temporário, como por exemplo: <b>/tmp.</b></p>
<p>Vamos supor que você deseja monitorar via <i>ptop</i> um ambiente de desenvolvimento com as seguintes características:</p>
<p>Nome do bando de dados: desenvolvimento<br />
Porta: 5432<br />
Usuário: monitor<br />
Senha: m0n1t0r</p>
<p>(<i>Para esse exemplo foi criado um usuário monitor no PostgreSQL, sem qualquer privilégio a mais, apenas de conexão ao banco</i>)</p>
<p>Salve o arquivo baixado no servidor que deseja monitorar e siga os passos:</p>
<pre>
# Descompacte o arquivo ...
<b>tar zxvf ptop-3.6.1.tar.gz</b>

# Acesse o diretorio criado
<b>cd ptop-3.6.1/</b>

# Leia os arquivos README e INSTALL
# (sim eles não têm esses nomes à toa... ":D )
<b>less README</b>
<b>less INSTALL</b>

# Configure e compile o codigo
<b>./configure &amp;&amp; make</b>

# Após compilar um arquivo executável sera criado
<b>ls -la ptop</b>
-rwxr-xr-x 1 guedes guedes 140282 2008-04-01 20:48 ptop

# Execute-o com a opção --help
<b>./ptop --help</b>
./ptop: invalid option -- -
Top version 3.6.1
Usage: ptop [-ISTWbcinqu] [-x x] [-s x] [-o field] [-z username]
              [-p PORT] [-U USER] [-d DBNAME] [-h HOSTNAME] [number]</pre>
<p><b>Visão geral do <i>ptop</i></b></p>
<p>Para executar o <i>ptop</i> use:</p>
<p><b>./ptop -U monitor -d desenvolvimento -h localhost -W</b></p>
<p>Será solicitada a senha do usuário &#8216;<i>monitor</i>&#8216;, informe-a corretamente. A tela que surge é semelhante a esta:</p>
<p><a href="http://makeall.files.wordpress.com/2008/04/ptop_visao_geral.png" title="ptop_visao_geral.png"><img src="http://makeall.files.wordpress.com/2008/04/ptop_visao_geral.thumbnail.png?w=294&#038;h=159" alt="Monitorando o PostgreSQL com ptop" border="0" height="159" width="294" /></a></p>
<p>Com o <i>ptop</i> sendo executado, é possível ver uma série de informações úteis sobre o servidor e os processos do PostgreSQL. A semelhança do mesmo com o utilitário <i>top</i> do UNIX é visível e não é mera coincidência&#8230;</p>
<p><b>Principais comandos do <i>ptop</i> e suas telas</b></p>
<p><i><b>Obtendo ajuda no ptop: </b></i>pressione &#8216;?&#8217; ou &#8216;h&#8217;</p>
<p><a href="http://makeall.files.wordpress.com/2008/04/ptop_comando_help.png" title="ptop_comando_help.png"><img src="http://makeall.files.wordpress.com/2008/04/ptop_comando_help.thumbnail.png?w=68&#038;h=60" alt="Monitorando o PostgreSQL com ptop" border="0" height="60" width="68" /></a></p>
<p><i><b>Obtendo o plano de execução de um processo: </b></i>pressione &#8216;E&#8217; (maiúsculo) e digite o número de um determinado processo (PID) para visualizar o plano de execução do mesmo.</p>
<p><a href="http://makeall.files.wordpress.com/2008/04/ptop_comando_explain.png" title="ptop_comando_explain.png"><img src="http://makeall.files.wordpress.com/2008/04/ptop_comando_explain.thumbnail.png" alt="Monitorando o PostgreSQL com ptop" border="0" /></a></p>
<p><i><b>Obtendo as estatísticas das tabelas em uso: </b></i>pressione &#8216;R&#8217; (maiúsculo)</p>
<p><a href="http://makeall.files.wordpress.com/2008/04/ptop_comando_tables_stats.png" title="ptop_comando_tables_stats.png"><img src="http://makeall.files.wordpress.com/2008/04/ptop_comando_tables_stats.thumbnail.png" alt="Monitorando o PostgreSQL com ptop" border="0" /></a></p>
<p><i><b>Obtendo as estatísticas dos índices em uso: </b></i>pressione &#8216;X&#8217; (maiúsculo)</p>
<p><a href="http://makeall.files.wordpress.com/2008/04/ptop_comando_index_stats.png" title="ptop_comando_index_stats.png"><img src="http://makeall.files.wordpress.com/2008/04/ptop_comando_index_stats.thumbnail.png" alt="Monitorando o PostgreSQL com ptop" border="0" /></a></p>
<p><i><b>Visualizando os locks de um determinado processo: </b></i>pressione &#8216;L&#8217; (maiúsculo) e digite o número do processo (PID) que deseja visualizar</p>
<p><a href="http://makeall.files.wordpress.com/2008/04/ptop_comando_locks.png" title="ptop_comando_locks.png"><img src="http://makeall.files.wordpress.com/2008/04/ptop_comando_locks.thumbnail.png" alt="Monitorando o PostgreSQL com ptop" border="0" height="62" width="93" /></a></p>
<p><b><font color="#ff6600">DESAFIO 1</font></b>: tente alterar a ordem de classificação dos processos (por cpu, tempo de execução ou utilização de recursos, por exemplo).<br />
<b><font color="#ff6600">DESAFIO 2</font></b>: tente alterar o número de processos a serem mostrados.</p>
<p>Bom, é isso! &#8220;:D</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=30&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/04/02/monitorando-o-postgresql-com-ptop/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/03/database.thumbnail.png" medium="image">
			<media:title type="html">Monitorando o PostgreSQL com ptop</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/ptop_visao_geral.thumbnail.png" medium="image">
			<media:title type="html">Monitorando o PostgreSQL com ptop</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/ptop_comando_help.thumbnail.png" medium="image">
			<media:title type="html">Monitorando o PostgreSQL com ptop</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/ptop_comando_explain.thumbnail.png" medium="image">
			<media:title type="html">Monitorando o PostgreSQL com ptop</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/ptop_comando_tables_stats.thumbnail.png" medium="image">
			<media:title type="html">Monitorando o PostgreSQL com ptop</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/ptop_comando_index_stats.thumbnail.png" medium="image">
			<media:title type="html">Monitorando o PostgreSQL com ptop</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/04/ptop_comando_locks.thumbnail.png" medium="image">
			<media:title type="html">Monitorando o PostgreSQL com ptop</media:title>
		</media:content>
	</item>
		<item>
		<title>Planeta PostgreSQL migrado para SQLite com sucesso.</title>
		<link>http://makeall.wordpress.com/2008/04/01/planeta-postgresql-migrado-para-sqlite-com-sucesso/</link>
		<comments>http://makeall.wordpress.com/2008/04/01/planeta-postgresql-migrado-para-sqlite-com-sucesso/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 19:42:51 +0000</pubDate>
		<dc:creator>Guedes</dc:creator>
		
		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[sloof-lirpa]]></category>

		<guid isPermaLink="false">http://makeall.wordpress.com/?p=29</guid>
		<description><![CDATA[Depois de muito trabalho, finalmente o Planeta PostgreSQL foi migrado para um novo banco. Os dados, que antes se encontravam em DB2, agora estão rodando perfeitamente em SQLite hospedado em servidores gentilmente cedidos a nós pela Sony, Tokyo, Japão.
Para que você saiba, passo a passo, como tudo foi feito, disponibilizamos o artigo neste link. Bem [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://makeall.files.wordpress.com/2008/03/database.png" title="database.png"><img src="http://makeall.files.wordpress.com/2008/03/database.thumbnail.png?w=42&#038;h=42" alt="Planeta PostgreSQL migrado para SQLite com sucesso." align="left" border="0" height="42" hspace="5" vspace="10" width="42" /></a>Depois de muito trabalho, finalmente o Planeta PostgreSQL foi migrado para um novo banco. Os dados, que antes se encontravam em DB2, agora estão rodando perfeitamente em SQLite hospedado em servidores gentilmente cedidos a nós pela Sony, Tokyo, Japão.</p>
<p>Para que você saiba, passo a passo, como tudo foi feito, disponibilizamos o artigo <a href="http://sonybank.net/pdf/press080401.pdf" title="artigo" target="_blank">neste link.</a> Bem como informações de infra-estrutura <a href="http://www.google.com.br/search?hl=pt-BR&amp;q=primeiro+de+abril&amp;btnG=Pesquisa+Google&amp;meta=" target="_blank">aqui neste outro</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/makeall.wordpress.com/29/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/makeall.wordpress.com/29/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeall.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeall.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeall.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeall.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeall.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeall.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeall.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeall.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeall.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeall.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeall.wordpress.com&blog=3277107&post=29&subd=makeall&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://makeall.wordpress.com/2008/04/01/planeta-postgresql-migrado-para-sqlite-com-sucesso/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/guediz-128.jpg" medium="image">
			<media:title type="html">Guedes</media:title>
		</media:content>

		<media:content url="http://makeall.files.wordpress.com/2008/03/database.thumbnail.png" medium="image">
			<media:title type="html">Planeta PostgreSQL migrado para SQLite com sucesso.</media:title>
		</media:content>
	</item>
	</channel>
</rss>