<?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:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>PostgreSQL, o SGBD</title>
	<atom:link href="http://ribafs.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ribafs.wordpress.com</link>
	<description>Um webblog sobre o SGBD PostgreSQL e assuntos correlatos</description>
	<lastBuildDate>Fri, 18 Nov 2011 23:21:26 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ribafs.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>PostgreSQL, o SGBD</title>
		<link>http://ribafs.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ribafs.wordpress.com/osd.xml" title="PostgreSQL, o SGBD" />
	<atom:link rel='hub' href='http://ribafs.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Modelagem de Bancos de Dados</title>
		<link>http://ribafs.wordpress.com/2008/07/10/modelagem-de-bancos-de-dados/</link>
		<comments>http://ribafs.wordpress.com/2008/07/10/modelagem-de-bancos-de-dados/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 14:55:09 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/?p=22</guid>
		<description><![CDATA[Estou iniciando uma coleção de modelos free, que oferecem os diagramas e também os scripts de alguns bancos de dados comuns. Pois ao efetuar uma boa busca na Internet não consegui encontrar algo parecido. Encontrei um ótimo site, com bons diagramas (http://www.databaseanswers.org/data_models/index.htm) e agora estou com a intenção de gerar os scripts para alguns diagramas [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=22&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estou iniciando uma coleção de modelos free, que oferecem os diagramas e também os scripts de alguns bancos de dados comuns. Pois ao efetuar uma boa busca na Internet não consegui encontrar algo parecido. Encontrei um ótimo site, com bons diagramas (http://www.databaseanswers.org/data_models/index.htm)<br />
e agora estou com a intenção de gerar os scripts para alguns diagramas e em especial com foco em detalhes da nossa realidade brasileira.</p>
<p>Já elaborei modelos de dois bancos:<br />
controle de estoque e vídeo locadora,<br />
com os diagramas e respectivos scripts. Os scripts foram testados no PostgreSQL mas devem rodar em qualquer SGBD, já que usam apenas SQL padrão.</p>
<p>Na lista de PostgreSQL (pgbr-geral) estamos discutindo sobre os mesmos no intuito de melhorá-los. Traga sua sugestão e outros modelos que queira compartilhar. Deixe comentários na seção projetos do site:</p>
<p>http://pg.ribafs.net/content/view/15/34/</p>
<p>Torne-se um colaborador enviando artigos para o site: http://pg.ribafs.net (basta entrar em contato).</p>
<p>Participe da lista de discussão do PostgreSQL:</p>
<p>https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral</p>
<p>Elaborar um projeto, por pequeno que seja, mesmo riscando algo no papel antes de começar de fato é algo que ajuda muito quando se cria um aplicativo, quando se cria um banco de dados e mesmo em muitas outras áreas.</p>
<p>A modelagem de bancos de dados é uma etapa que evita retrabalho na criação de bancos de dados e juntamente com outros conhecimentos da teoria dos bancos de dados, normalização, integridade referencial e outros ajuda a criar bancos robustos.</p>
<p>Controle de Estoque:</p>
<p>http://pg.ribafs.net/down/projeto//modelos_free/controle_estoque.jpg</p>
<p>http://pg.ribafs.net/down/projeto//modelos_free/controle_estoque.sql</p>
<p>Vídeo Locadora:</p>
<p>http://pg.ribafs.net/down/projeto//modelos_free/video_locadora.jpg</p>
<p>http://pg.ribafs.net/down/projeto//modelos_free/video_locadora.sql</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=22&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2008/07/10/modelagem-de-bancos-de-dados/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>
	</item>
		<item>
		<title>Gerando gráficos(relatórios) diretamente do PostgreSQL</title>
		<link>http://ribafs.wordpress.com/2008/07/08/gerando-graficosrelatorios-diretamente-do-postgresql/</link>
		<comments>http://ribafs.wordpress.com/2008/07/08/gerando-graficosrelatorios-diretamente-do-postgresql/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 14:40:27 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/?p=20</guid>
		<description><![CDATA[O objetivo principal deste tutorial é mostrar como se cria gráficos (relatórios) bonitos diretamente de bancos do PostgreSQL ou de qualquer outro SGBD que gere arquivos de saída de suas consultas, como faz o psql. Apenas precisamos do SGBD e do software open-source GNUPlot. O GNUPLOT é um aplicativo open source, destinado à construção de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=20&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;">O objetivo principal deste tutorial é mostrar como se cria gráficos (relatórios) bonitos diretamente de bancos do PostgreSQL ou de qualquer outro SGBD que gere arquivos de saída de suas consultas, como faz o psql. Apenas precisamos do SGBD e do software open-source GNUPlot.</p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">O GNUPLOT é um aplicativo open source, destinado à construção de gráficos e superfícies. É uma poderosa ferramenta, usada por uma série de organizações por todo o mundo, como pode-se ver a partir dos links disponíveis na página oficial.</p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">Veja o tutorial aqui:</p>
<p style="margin-bottom:0;"><a title="gráfico" href="http://pg.ribafs.net/down/docs/Tutoriais/Graficos/gnuplot_tutorial.pdf" target="_blank">http://pg.ribafs.net/down/docs/Tutoriais/Graficos/gnuplot_tutorial.pdf</a></p>
<p style="margin-bottom:0;">
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=20&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2008/07/08/gerando-graficosrelatorios-diretamente-do-postgresql/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>
	</item>
		<item>
		<title>Ajude a sustentar a Wikipedia sem colocar a mão no bolso</title>
		<link>http://ribafs.wordpress.com/2008/06/26/ajude-a-sustentar-a-wikipedia-sem-colocar-a-mao-no-bolso/</link>
		<comments>http://ribafs.wordpress.com/2008/06/26/ajude-a-sustentar-a-wikipedia-sem-colocar-a-mao-no-bolso/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 23:37:41 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[Dicas Extras]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/?p=19</guid>
		<description><![CDATA[Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC! …e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=19&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!</strong><br />
…e também a pen drives, card drives, camisetas geeks, livros e mais! O <a href="http://br-linux.org/">BR-Linux</a> e o <a href="http://efetividade.net/">Efetividade</a> lançaram uma <a href="http://br-linux.org/2008/campanha-wikipedia/">campanha</a> para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e <a href="http://br-linux.org/2008/campanha-wikipedia/">participe</a> &#8211; quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!</p>
<p>Em minhas aulas de PostgreSQL estarei dando o exemplo aos alunos, colaborando com os assuntos relacionados ao PostgreSQL e diretamente.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=19&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2008/06/26/ajude-a-sustentar-a-wikipedia-sem-colocar-a-mao-no-bolso/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>
	</item>
		<item>
		<title>PostgreSQL &#8211; Curso Online</title>
		<link>http://ribafs.wordpress.com/2008/06/15/postgresql-curso-online/</link>
		<comments>http://ribafs.wordpress.com/2008/06/15/postgresql-curso-online/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 21:56:16 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/?p=17</guid>
		<description><![CDATA[Nasce mais um site sobre PostgreSQL. Este site nasceu na necessidade de reunir material para um curso sobre PostgreSQL, portanto esse nome. Conta com módulos sobre programação no cliente e no servidor, administração e projeto de bancos de dados. Reuni o material e gerei PDFs de cada aula e também de cada módulo. Os três [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=17&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nasce mais um site sobre PostgreSQL.</p>
<p>Este site nasceu na necessidade de reunir material para um curso sobre PostgreSQL, portanto esse nome.</p>
<p>Conta com módulos sobre programação no cliente e no servidor, administração e projeto de bancos de dados.</p>
<p>Reuni o material e gerei PDFs de cada aula e também de cada módulo. Os três módulos juntos resultam em mais de 700 páginas.</p>
<p>Além do material para o curso que compartilho, também conta com uma grande quantidade de tutoriais de diversos assuntos, dicas, diagramas de modelos, exercícios e muita informação sobre o SGBD PostgreSQL.</p>
<p>Aqui &#8211; <a title="PostgreSQL - Curso Online" href="http://pg.ribafs.net" target="_blank">http://pg.ribafs.net</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=17&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2008/06/15/postgresql-curso-online/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>
	</item>
		<item>
		<title>Replicação com Slony no Windows e no Linux</title>
		<link>http://ribafs.wordpress.com/2008/04/23/replicacao-com-slony-no-windows-e-no-linux/</link>
		<comments>http://ribafs.wordpress.com/2008/04/23/replicacao-com-slony-no-windows-e-no-linux/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 22:57:32 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/?p=16</guid>
		<description><![CDATA[Replicação com Slony no Windows e no Linux Depois de muito pesquisar e testar algumas soluções finalmente consegui ver funcionando replicação no PostgreSQL. Aqui mostrarei a solução que fiz funcionar, que usa o Slony-I e o pgAdmin, com PostgreSQL-8.2, tanto no Windows quanto no Linux (Ubuntu 7.10). De início tive como base este tutorial: http://people.planetpostgresql.org/dpage/index.php?/archives/51-Setting-up-Slony-I-with-pgAdmin.html [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=16&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="tabs-wrapper" class="clear-block">
<h2 class="with-tabs">Replicação com Slony no Windows e no Linux</h2>
</div>
<p>Depois de muito pesquisar e testar algumas soluções finalmente consegui ver funcionando replicação no PostgreSQL.</p>
<p>Aqui mostrarei a solução que fiz funcionar, que usa o Slony-I e o pgAdmin, com PostgreSQL-8.2, tanto no Windows quanto no Linux (Ubuntu 7.10).</p>
<p>De início tive como base este tutorial:<br />
<a title="http://people.planetpostgresql.org/dpage/index.php?/archives/51-" href="http://people.planetpostgresql.org/dpage/index.php?/archives/51-">http://people.planetpostgresql.org/dpage/index.php?/archives/51-</a><a href="http://people.planetpostgresql.org/dpage/index.php?/archives/51-Setting-up-Slony-I-with-pgAdmin.html" target="_blank">Setting-up-Slony-I-with-pgAdmin.html</a></p>
<p>também divulgado na lista internacional do PostgreSQL.</p>
<p>Esse tutorial destina-se ao WindowsXP. Testei e funcionou direitinho no Windows.</p>
<p>Acontece que ele se refere de vez em quando ao Linux o que me motivou a tentar a mesma solução no Linux (Ubuntu 7.10).</p>
<p>Pesquisei outros tutoriais e um bom livro. Acabei por conseguir ver a replicação também no Linux.</p>
<p>Veja um PDF com os passos aqui:</p>
<p><a title="Slony" href="http://ribafs.org/sites/pg/ReplicacaoPostgreSQLSlony1.pdf">http://ribafs.org/sites/pg/ReplicacaoPostgreSQLSlony1.pdf</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=16&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2008/04/23/replicacao-com-slony-no-windows-e-no-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>
	</item>
		<item>
		<title>Mini Tutorial sobre a Ferramenta &#8220;PostgreSQL Autodoc&#8221;</title>
		<link>http://ribafs.wordpress.com/2008/04/02/mini-tutorial-sobre-a-ferramenta-postgresql-autodoc/</link>
		<comments>http://ribafs.wordpress.com/2008/04/02/mini-tutorial-sobre-a-ferramenta-postgresql-autodoc/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 18:59:38 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/?p=11</guid>
		<description><![CDATA[Mini Tutorial sobre a Ferramenta PostgreSQL Autodoc &#160; O autodoc é um utilitário que roda para tabelas do PostgreSQL e retorna documentos HTML, Dot, Dia e DocBook XML com a descrição e diagramas das tabelas. Existe integração com o DIA (http://www.gnome.org/projects/dia/) e com o GraphViz (http://www.research.att.com/sw/tools/graphviz/). &#160; Autodoc site oficial &#8211; http://www.rbt.ca/autodoc/ &#160; Instalar Para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=11&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><title></title> 	 	 	 	<!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 	--></p>
<p class="western" style="margin-bottom:0;" align="center"><b>Mini Tutorial sobre a Ferramenta PostgreSQL Autodoc</b></p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;">O autodoc é um utilitário que roda para tabelas do PostgreSQL e retorna documentos <a href="http://www.rbt.ca/autodoc/output-html.html">HTML</a>, <a href="http://www.rbt.ca/autodoc/output-graphviz.html">Dot</a>, <a href="http://www.rbt.ca/autodoc/output-dia.html">Dia</a> e <a href="http://www.rbt.ca/autodoc/output-docbook.html">DocBook XML</a> com a descrição e diagramas das tabelas. Existe integração com o DIA (<a href="http://www.gnome.org/projects/dia/">http://www.gnome.org/projects/dia/</a>) e com o GraphViz (<a href="http://www.research.att.com/sw/tools/graphviz/">http://www.research.att.com/sw/tools/graphviz/</a>).</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;">Autodoc site oficial &#8211; <a href="http://www.rbt.ca/autodoc/">http://www.rbt.ca/autodoc/</a></p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;"><b>Instalar</b></p>
<p class="western" style="margin-bottom:0;">Para quem tem Linux Ubuntu basta atualizar seus repositórios e no terminal executar:</p>
<p class="western" style="margin-bottom:0;">sudo apt-get install postgresql-autodoc</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;">Aproveitar e instalar também o DIA para visualizar os diagramas:</p>
<p class="western" style="margin-bottom:0;">sudo apt-get install dia</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;">Instalar também o GraphViz:</p>
<p class="western" style="margin-bottom:0;"> sudo apt-get install graphviz</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;"><b>Para Executar</b></p>
<p class="western" style="margin-bottom:0;">Acesse um terminal e faça login como usuário do PostgreSQL</p>
<p class="western" style="margin-bottom:0;">su &#8211; postgres</p>
<p class="western" style="margin-bottom:0;">postgres@cmiin07 postgresql_autodoc &#8211;help</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;"><b>Exemplo:</b></p>
<p class="western" style="margin-bottom:0;">Com este exemplo estou gerando diagramas e DDLs de um esquema (comercial) do banco dba_projeto2.</p>
<p class="western" style="margin-bottom:0;">postgres@cmiin07 postgresql_autodoc -u postgres -d dba_projeto2 -s comercial -p 5433 –password=postgres</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;">Ele gerará um arquivo em HTML contendo a estrutura dos objetos do esquema, gerará um arquivo do diagrama para o DIA, um XML e vários outros.</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;">Agora um exemplo abrangento todo o banco, que contém dois esquemas:</p>
<p class="western" style="margin-bottom:0;">postgres@cmiin07 postgresql_autodoc -u postgres -d dba_projeto2 -p 5433 –password=postgres</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;"><b>Agora transformando o .dot em png:</b></p>
<p class="western" style="margin-bottom:0;">postgres@cmiin07  dot -Tpng -o dba_projeto2.png dba_projeto2.dot</p>
<p class="western" style="margin-bottom:0;">Com este comando gerará uma imagem oriunda do .dot.</p>
<p class="western" style="margin-bottom:0;">Veja o arquivo anexo contendo uma amostra do exemplo citado.</p>
<p class="western" style="margin-bottom:0;"><a href="http://ribafs.files.wordpress.com/2008/04/autodoc1.png" title="Diagrama"><img src="http://ribafs.files.wordpress.com/2008/04/autodoc1.thumbnail.png?w=510" alt="Diagrama" /></a></p>
<p class="western" style="margin-bottom:0;">Pelo visto existem muito mais recursos nesta ferramenta. O form para comentários pode enriquecer as informações aqui contidas.</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<p class="western" style="margin-bottom:0;">&nbsp;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=11&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2008/04/02/mini-tutorial-sobre-a-ferramenta-postgresql-autodoc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>

		<media:content url="http://ribafs.files.wordpress.com/2008/04/autodoc1.thumbnail.png" medium="image">
			<media:title type="html">Diagrama</media:title>
		</media:content>
	</item>
		<item>
		<title>Criando Clusters no PostgreSQL 8.3 (Windows e Linux)</title>
		<link>http://ribafs.wordpress.com/2008/04/01/criando-clusters-no-postgresql-83-windows-e-linux/</link>
		<comments>http://ribafs.wordpress.com/2008/04/01/criando-clusters-no-postgresql-83-windows-e-linux/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 16:43:34 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/?p=9</guid>
		<description><![CDATA[Criando Novos Clusters no PostgreSQL para Windows Para criar um novo cluster: Crie um diretório para abrigar o novo cluster (lembre que o usuário postgres deve ter permissão de escrita nele). - Ex.: data2 no diretório bin. Criar o novo cluster (acesse o terminal no diretório C:\Program Files\PostgreSQL\8.3\bin) e execute: - C:\Program Files\PostgreSQL\8.3\bin&#62;initdb -U postgres [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=9&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Criando Novos Clusters no PostgreSQL para Windows</strong></p>
<p>Para criar um novo cluster:<br />
Crie um diretório para abrigar o novo cluster (lembre que o usuário postgres deve ter  permissão de escrita nele).<br />
- Ex.: data2 no diretório bin.</p>
<p>Criar o novo cluster (acesse o terminal no diretório C:\Program Files\PostgreSQL\8.3\bin) e execute:<br />
- C:\Program Files\PostgreSQL\8.3\bin&gt;initdb -U postgres -D data2</p>
<p>Editar o data2\postgresql.conf e alterar a porta para 5444</p>
<p>Iniciar o servidor do novo cluster<br />
- pg_ctl -D data2 start</p>
<p>Acessar a console (psql) do novo cluster<br />
- psql -p 5444 -U postgres</p>
<p>Listar os bancos<br />
- \l    &#8212; Observe que somente existem os bancos de templates. Temos um novo cluster.</p>
<p>Obs.: No Windows não consegui dar suporte a latin1 em novos clustes nem o original suporta.<br />
Isso só foi conseguido em novos clusters no Linux.</p>
<p>Tecle Ctrl+Alt+Del no Windows ou &#8216;ps ax|grep post&#8217; no Linux e veja que agora temos dois pg_ctl na memória.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<strong>Criação de Novos Clusters no PostgreSQL 8.3 for Linux (Ubuntu 7.10):</strong><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Criando os clusters</p>
<p>cluster em latin1</p>
<p>Criação do diretório para o cluster, data_latin1, tornando o usuário postgres seu dono:<br />
mkdir /home/ribafs/data_latin1<br />
su &#8211; postgres<br />
export LANG=pt_BR.ISO-8859-1</p>
<p>/usr/lib/postgresql/8.3/bin/initdb &#8211;encoding latin1 -D /home/ribafs/data_latin1/<br />
Editar o script data_latin1/postgresql.conf e alterar a porta para 5433</p>
<p>Conectando no cluster em latin1</p>
<p>bin/pg_ctl -D data_latin1 start<br />
bin/psql -U postgres postgres -p 5433<br />
\l    &#8212; Veja que a codificação de todos os bancos é a latin1.</p>
<p>create database  testeutf8 with encoding  &#8216;utf8&#8242;;</p>
<p>Obs.: Cluster em latin1 com suporte a UTF-8.</p>
<p>cluster em utf-8</p>
<p>su &#8211; postgres<br />
bin/initdb -D data_utf8</p>
<p>Como utf8 o default no Ubuntu, não preciso passar parãmetro.<br />
Editar o script data_utf8/postgresql.conf e alterar a porta para 5434</p>
<p>Conectando no cluster utf-8</p>
<p>bin/pg_ctl -D data_utf8 start<br />
bin/psql -U postgres postgres -p 5434</p>
<p>Bem, a saída para quem quer usar o 8.3.x e precisa de latin, no Linux, é esta (dica que recebi na lista de PostgreSQL pgbr-geral, do Euler).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=9&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2008/04/01/criando-clusters-no-postgresql-83-windows-e-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>
	</item>
		<item>
		<title>Gerando uma Imagem do Linux Ubuntu 7.10</title>
		<link>http://ribafs.wordpress.com/2008/04/01/gerando-uma-imagem-do-linux-ubuntu-710/</link>
		<comments>http://ribafs.wordpress.com/2008/04/01/gerando-uma-imagem-do-linux-ubuntu-710/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 12:55:17 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[Dicas Extras]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/?p=8</guid>
		<description><![CDATA[&#160; Gerando uma Imagem do Linux Ubuntu 7.10 O objetivo desta imagem é para uma eventualidade de precisar formatar a partição raiz, poder reinstalar e, na instalação ter tudo do jeitinho que estava antes (ao criar a imagem): teclas de atalho, softwares instalados, papel de parede e até o histórico do browser. O Remastersys é [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=8&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;" class="western" align="center">&nbsp;</p>
<p style="margin-bottom:0;" class="western" align="center"><b>Gerando uma Imagem do Linux Ubuntu 7.10 </b></p>
<p style="margin-bottom:0;" class="western">O objetivo desta imagem é para uma eventualidade de precisar formatar a partição raiz, poder reinstalar e, na instalação ter tudo do jeitinho que estava antes (ao criar a imagem): teclas de atalho, softwares instalados, papel de parede e até o histórico do browser.</p>
<p style="margin-bottom:0;" class="western">O Remastersys é o software que faz a mágica.</p>
<p style="margin-bottom:0;" class="western">Remastersys é um remasterizador que pode ser usado para duas finalidades, com uma instalação de existente Klikit ou Ubuntu ou derivado:</p>
<p style="margin-bottom:0;" class="western"> 1. Ele pode realizar ummbackup completo, incluindo dados pessoais para um live CD ou DVD que você pode usar em qualquer computador e instalar (remastersys backup).</p>
<p style="margin-bottom:0;" class="western"> 2. Ele pode gerar uma cópia para distribuição onde podemos instalar em diversos micros ou para amigos. Assim não levará nenhum dos seus dados pessoais com ele (remastersys dist).</p>
<p style="margin-bottom:0;" class="western">Site oficial &#8211; <a href="http://www.remastersys.klikit.org/" target="_blank">http://www.remastersys.klikit.org/ </a></p>
<p style="margin-bottom:0;" class="western">Ele pega meu sistema do jeitinho que eu deixo e gera uma imagem juntamente com o instalador do Ubuntu 7.10 (minha versão atual).</p>
<p style="margin-bottom:0;" class="western">Ele exigiu o CD de instalação do tipo Desktop (Live CD) quando quiz fazer magem tipo &#8220;dist&#8221;.</p>
<p style="margin-bottom:0;" class="western">Bem, antes de gerar a imagem eu vou personalizar o sistema do jeito  que quero que ele apareça</p>
<p style="margin-bottom:0;" class="western">quando a imagem for restaurada. Seguem algumas das minhas personalizações a título de exemplo. Faça as devidas adaptações:</p>
<p style="margin-bottom:0;" class="western">0 – Configurar todos os repositórios no Synaptic</p>
<p style="margin-bottom:0;" class="western">Sistema – Administração – Gerenciador de Pacotes Synaptic</p>
<p style="margin-bottom:0;" class="western">Configurações – Repositórios (desmarcar o CD em Instalável a partir de CD-ROM/DVD e marcar os demais)</p>
<p style="margin-bottom:0;" class="western">1 &#8211; Configurar o Firefox</p>
<p style="margin-bottom:0;" class="western">Abrir página em branco</p>
<p style="margin-bottom:0;" class="western">Sempre perguntar onde salvar Download</p>
<p style="margin-bottom:0;" class="western">2 &#8211; Instalar uma extensão no Firefox (foxmarks):</p>
<p style="margin-bottom:0;" class="western">Abrir o firefox</p>
<p style="margin-bottom:0;" class="western">Ferramentas &#8211; Complementos &#8211; Mais Extensões</p>
<p style="margin-bottom:0;" class="western">Digitar na caixa de busca: Foxmarks e teclar Enter</p>
<p style="margin-bottom:0;" class="western">3 &#8211; Configurar o Google para abrir 100 links por página e abrir as páginas numa outra janela</p>
<p style="margin-bottom:0;" class="western">4 &#8211; Configurar CODECs abrindo música MP3 e MP4</p>
<p style="margin-bottom:0;" class="western">5 &#8211; Configurar Firefox para executar Flash, abrindo o site do DNOCS</p>
<p style="margin-bottom:0;" class="western">6 &#8211; Configurar Firefox para executar Java, abrindo site do Banco do Brasil</p>
<p style="margin-bottom:0;" class="western">7 &#8211; Configurar Rede<br />
Sistema &#8211; Administração &#8211; Rede</p>
<p style="margin-bottom:0;" class="western">8 &#8211; Instalar e Configurar impressora</p>
<p style="margin-bottom:0;" class="western">Econômica e compatível com o IRPF (Opções de Trabalho &#8211; Orientação &#8211; Retrato Invertido)</p>
<p style="margin-bottom:0;" class="western">9 &#8211; Instalar pacotes:</p>
<p style="margin-bottom:0;" class="western">sudo apt-get install postgresql-8.3 postgresql-8.2 wine konqueror krusader k3b mc kolourpaint build-essential libreadline5-dev zlib1g-dev gettext gparted virtualbox msttcorefonts postgresql-autodoc kchmviewer</p>
<p style="margin-bottom:0;" class="western">Instalar o Adobe Reader:<br />
<a href="http://www.adobe.com/products/acrobat/readstep2_allversions.html" target="_blank">http://www.adobe.com/products/acrobat/readstep2_allversions.html </a></p>
<p style="margin-bottom:0;" class="western">10 &#8211; Arrastar barra de tarefas para baixo</p>
<p style="margin-bottom:0;" class="western">11 &#8211; Trocas papel de parede</p>
<p style="margin-bottom:0;" class="western">12 &#8211; Criar teclas de atalho:</p>
<p style="margin-bottom:0;" class="western">- Criar atalho para o gconf-editor na barra de tarefas<br />
- Executar o atalho e expandir apps e expandir metacity<br />
- Clicar em global_keybinds e selecionar run_command_1 e em Valor  digitar &#8220;&lt;Control&gt;&lt;Alt&gt;f&#8221;<br />
e em keybinding_commands selecione command_1 e digite firefox para ter um atalho para o Firefox. Agora ao teclar Ctrl+Alt+F o firefox será aberto. Assim para os demais softwares que use com frequência.<br />
Eu crio para o terminal (gnome-terminal), para o gedit, para o  OpenOffice Texto (ooffice -writer).<br />
Existem mais dois atalhos que utilizo: em global_keybindings seleciono &#8220;show_desktop&#8221; e altero o atalho para: &lt;Mod4&gt;m. Também crio um atalho para &lt;Mod4&gt;e e<br />
&#8220;nautilus &#8211;browser /home/ribafs/enviar&#8221;.<br />
Então sempre que teclar na bandeira do windows e m minimizará tudo e  ao teclar na bandeira e &#8216;e&#8217;<br />
o nautilus será aberto.</p>
<p style="margin-bottom:0;" class="western"> 13 &#8211; Criar atalhos na barra de tarefas<br />
Terminal, PGAdmin, K3B, XKill e PG_Teste</p>
<p style="margin-bottom:0;" class="western">14 &#8211; Criar máquina virtual com outro SO</p>
<p style="margin-bottom:0;" class="western">15 &#8211; Criar a imagem com o remastersys</p>
<p style="margin-bottom:0;" class="western">- Ter em mãos um Live CD do Ubuntu 7.10<br />
Executar num terminal:</p>
<p style="margin-bottom:0;" class="western">sudo su</p>
<p style="margin-bottom:0;" class="western">echo &#8220;deb http://www.remastersys.klikit-linux.com/repository remastersys/&#8221; &gt;&gt;/etc/apt/sources.list</p>
<p style="margin-bottom:0;" class="western">apt-get update</p>
<p style="margin-bottom:0;" class="western">apt-get install remastersys</p>
<p style="margin-bottom:0;" class="western">remastersys clean</p>
<p style="margin-bottom:0;" class="western">remastersys backup</p>
<p style="margin-bottom:0;" class="western">Com isso ele demora alguns minutos e ao final criará uma imagem ISO em /home/remastersys<br />
Há tempos que procurava uma solução como esta. Testei e funciona muito bem.</p>
<p style="margin-bottom:0;" class="western">Esta dica foi inspirada numa do André Lourenço Pedroso na dicas-lem:<br />
<a href="http://www.dicas-l.com.br/dicas-l/20080314.php" target="_blank">http://www.dicas-l.com.br/dicas-l/20080314.php</a></p>
<p style="margin-bottom:0;" class="western">Valeu André.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=8&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2008/04/01/gerando-uma-imagem-do-linux-ubuntu-710/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>
	</item>
		<item>
		<title>Agendando Tarefas no Windows com o SchTasks</title>
		<link>http://ribafs.wordpress.com/2008/03/29/agendando-tarefas-no-windows-com-o-schtasks/</link>
		<comments>http://ribafs.wordpress.com/2008/03/29/agendando-tarefas-no-windows-com-o-schtasks/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 20:52:24 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/?p=7</guid>
		<description><![CDATA[SchTasks Agendando Tarefas no Windows XP com Flexibilidade na linha de comando: Arquivo para ser executado no prompt. Exemplos: 1) Executando Tarefa em Máquina Remota: rem schtasks /create /sc minute /mo 5 /tn &#8220;Backup do Banco Clientes&#8221; /tr \\central\data\scripts\backup.bat 2) Executando tarefa local a cada 5 minutos sempre: Criar o script que contém as tarefas [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=7&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><b>SchTasks</b></p>
<p>Agendando Tarefas no Windows XP com Flexibilidade na linha de comando:</p>
<p>Arquivo para ser executado no prompt.</p>
<p>Exemplos:</p>
<p><b>1) Executando Tarefa em Máquina Remota:</b></p>
<p>rem schtasks /create /sc minute /mo 5 /tn &#8220;Backup do Banco Clientes&#8221; /tr \\central\data\scripts\backup.bat</p>
<p><b>2) Executando tarefa local a cada 5 minutos sempre:</b></p>
<p>Criar o script que contém as tarefas ou apontar o arquivo executável, como abaixo:</p>
<p>schtasks /create /sc minuto /mo 5 /p senha /tn &#8220;Backup&#8221; /tr c:\pgsql\backup.bat</p>
<p><b>Remover uma tarefa agendada:</b></p>
<p>schtasks /delete /tn &#8220;NomedaTarefa&#8221;</p>
<p><b>Opções de Agendamento</b></p>
<p>/sc schedule : Specifies the schedule type. Valid values are MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE.</p>
<p><b>Syntax Geral</b></p>
<p>schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo modifier] [/d day] [/m month[,month...] [/i IdleTime] [/st StartTime] [/sd StartDate] [/ed EndDate] [/s computer [/u [domain\]user /p password]] [/ru {[Domain\]User | &#8220;System&#8221;} [/rp Password]] /?</p>
<p><b>Links sobre o SchTasks:</b></p>
<p>- <a href="http://www.microsoft.com/technet/prodtechnol/windowsserver2003/pt-br/library/ServerHelp/1d284efa-9d11-46c2-a8ef-87b297c68d17.mspx?mfr=true" title="http://www.microsoft.com/technet/prodtechnol/windowsserver2003/pt-br/library/ServerHelp/1d284efa-9d11-46c2-a8ef-87b297c68d17.mspx?mfr=true">http://www.microsoft.com/technet/prodtechnol/windowsserver2003/pt-br/lib&#8230;</a></p>
<p>- <a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/at.mspx?mfr=true" title="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/at.mspx?mfr=true">http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs&#8230;</a></p>
<p><b>Ajuda. Executar:</b></p>
<p>schtasks /?</p>
<p>Retornará:</p>
<p>SCHTASKS /parâmetro [argumentos]</p>
<p>Descrição:</p>
<p>Permite que um utilizador crie, elimine, consulte, altere, execute e</p>
<p>termine as tarefas agendadas num sistema local ou remoto. Substitui o AT.exe.</p>
<p><b>Lista de parâmetros:</b></p>
<p>/Create         Cria uma nova tarefa agendada.</p>
<p>/Delete         Elimina a(s) tarefa(s) agendadas.</p>
<p>/Query          Apresenta todas as tarefas agendadas.</p>
<p>/Change         Altera as propriedades da tarefa agendada.</p>
<p>/Run            Executa a tarefa agendada imediatamente.</p>
<p>/End            P ra a tarefa agendada que est  a ser executada actualmente.</p>
<p>/?              Apresenta a ajuda/utilização.</p>
<p><b>Exemplos:</b></p>
<p>SCHTASKS</p>
<p>SCHTASKS /?</p>
<p>SCHTASKS /Run /?</p>
<p>SCHTASKS /End /?</p>
<p>SCHTASKS /Create /?</p>
<p>SCHTASKS /Delete /?</p>
<p>SCHTASKS /Query  /?</p>
<p>SCHTASKS /Change /?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=7&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2008/03/29/agendando-tarefas-no-windows-com-o-schtasks/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>
	</item>
		<item>
		<title>Dicas e Truques do SQL no PostgreSQL</title>
		<link>http://ribafs.wordpress.com/2006/12/22/podutividade-no-desenvolvimento-web/</link>
		<comments>http://ribafs.wordpress.com/2006/12/22/podutividade-no-desenvolvimento-web/#comments</comments>
		<pubDate>Fri, 22 Dec 2006 13:39:09 +0000</pubDate>
		<dc:creator>ribafs</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://ribafs.wordpress.com/2006/12/22/podutividade-no-desenvolvimento-web/</guid>
		<description><![CDATA[Trabalhando com SQL Quase todas estas dicas abaixo recebi na lista de PostgreSQL do http://postgresql.org.br. Sempre que lembrei concedi os devidos créditos. 1) Criar Tabela tendo outra outra como base e já importando todos os registros dessa outra: CREATE TABLE tabelanova AS SELECT * FROM tabealexistente; 2) Inserindo com SELECT Inserir todos os registros de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=4&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Trabalhando com SQL</h2>
<p>Quase todas estas dicas abaixo recebi na lista de PostgreSQL do http://postgresql.org.br. Sempre que lembrei concedi os devidos créditos.<br />
<strong>1) Criar Tabela tendo outra outra como base e já importando todos os registros dessa outra:</strong><br />
CREATE TABLE tabelanova AS SELECT * FROM tabealexistente;<br />
<strong>2) Inserindo com SELECT</strong><br />
Inserir todos os registros de uma tabela em outra:<br />
INSERT INTO tabelaqueimporta SELECT * from tabelaqueexporta;</p>
<p>insert into engenharia.insumos (grupo,insumo,descricao,unidade) select grupo,insumo,descricao, CAST(unidade AS int2) AS &#8220;unidade&#8221; from engenharia.apagar</p>
<p>insert into engenharia.insumos (grupo,insumo,descricao,unidade) select grupo,insumo,descricao, cast(unidade AS INT2) AS unidade from engenharia.apagar</p>
<p>$conn = pg_connect(&#8220;host=10.40.100.186 dbname=apoena user=_postgresql&#8221;);<br />
for($x=10;$x&lt;=87;$x++){<br />
$sql=&#8221;update engenharia.precos set custo_produtivo = (select custo_produtivo from engenharia.apagar where insumo=&#8217;$x&#8217;) where insumo=&#8217;00&#8242; || &#8216;$x&#8217;&#8221;;<br />
$ret=pg_query($conn,$sql);<br />
}</p>
<p><strong><br />
3) Atualizar um campo em todos os registros de uma tabela recebendo de outra tabela:</strong></p>
<p>UPDATE servicos s SET custo = total FROM composicoes c<br />
WHERE s.tabela = c.tabela AND s.servico = c.servico</p>
<p>Uso do Like e de Expressões Regulares</p>
<p>Registros:<br />
Ribamar Ferreira de Sousa<br />
João Pereira Brito</p>
<p>Usando LIKE e ILIKE</p>
<p>SELECT * FROM clientes WHERE nome LIKE &#8216;Riba%&#8217;; // Retorna Ribamar Ferreira de Sousa<br />
SELECT * FROM clientes WHERE nome LIKE &#8216;riba%&#8217;; // Nada retorna<br />
SELECT * FROM clientes WHERE nome ILIKE &#8216;riba%&#8217;; // Retorna Ribamar Ferreira de Sousa<br />
SELECT * FROM clientes WHERE nome NOT LIKE &#8216;pedro&#8217;; // Retorna ambos os registros</p>
<p>Usando Expressões Regulares</p>
<p>SELECT * FROM clientes WHERE nome ~~ &#8216;Riba%&#8217;; // Retorna Ribamar Ferreira de Sousa<br />
SELECT * FROM clientes WHERE nome ~~ &#8216;riba%&#8217;; // Nada retorna<br />
SELECT * FROM clientes WHERE nome ~~* &#8216;riba%&#8217;; // Retorna Ribamar Ferreira de Sousa<br />
SELECT * FROM clientes WHERE nome !~~ &#8216;pedro&#8217;; // Retorna ambos os registros<br />
SELECT nome FROM clientes WHERE nome ~ &#8216;Ribamar Ferreira de Sousa&#8217;; // Retorna Ribamar Ferreira de Sousa<br />
SELECT * FROM clientes WHERE nome !~ &#8216;jorge&#8217;; // Retorna ambos</p>
<p><strong>4) Buscar nas tabelas de sistema do postgresql, todos as tabelas de um determinado schema, os campos que sejam do tipo boolean.. </strong></p>
<p>SELECT n.nspname AS Schema, c.relname AS Tabela, t.typname AS Tipo<br />
FROM pg_class c<br />
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace<br />
LEFT JOIN pg_type t ON t.oid = c.reltype<br />
WHERE c.relkind = &#8216;r&#8217;::&#8221;char&#8221;<br />
AND t.typname = &#8216;boolean&#8217;;</p>
<p><strong><br />
5) Exemplos de Joins</strong></p>
<p>Join com 4 tabelas</p>
<p>$w_sql = &#8221; TRUE &#8220;;</p>
<p>if ( $p_tabela != &#8220;&#8221;) { $w_sql = $w_sql . &#8221; AND tabela ~~*&#8217;&#8221; . $p_tabela . &#8220;&#8216;&#8221;; }<br />
if ( $p_insumo_grupo != &#8220;&#8221;) { $w_sql = $w_sql . &#8221; AND insumo_grupo ~~*&#8217;&#8221; .$p_insumo_grupo.&#8221;&#8216;&#8221;; }<br />
if ( $p_insumo != &#8220;&#8221;) { $w_sql = $w_sql . &#8221; AND insumo ~~*&#8217;&#8221; . $p_insumo . &#8220;&#8216;&#8221;; }<br />
if ( $p_fornecedor != &#8220;&#8221;) { $w_sql = $w_sql . &#8221; AND fornecedor ~~*&#8217;&#8221; .$p_fornecedor.&#8221;&#8216;&#8221;; }</p>
<p>$w_sql=&#8221;SELECT distinct on (p.tabela, p.insumo_grupo, p.insumo, p.fornecedor) p.custo_produtivo, p.data_inclusao,<br />
t.tabela, t.descricao as tabelad,<br />
ig.grupo, ig.descricao as insumogd,<br />
i.grupo, i.insumo, i.descricao as insumod,<br />
f.codigo_fornecedor, f.razao_social as fornecedord<br />
FROM $m_table as p, $m_table_tab as t, $m_table_ing as ig, $m_table_ins as i, $m_table_for as f<br />
WHERE p.tabela=t.tabela AND p.insumo_grupo=ig.grupo AND p.insumo=i.insumo AND p.fornecedor=f.codigo_fornecedor<br />
AND p.insumo_grupo = i.grupo ORDER BY p.tabela DESC, p.insumo_grupo;&#8221;;</p>
<p>/*<br />
p &#8211; $m_table (engenharia.precos)<br />
i &#8211; $m_table_ins (engenharia.insumos)<br />
ig &#8211; $m_table_ing (engenharia.insumos_grupos)<br />
t &#8211; $m_table_tab (engenharia.tabela)<br />
*/</p>
<p><strong><br />
6) Mudar Tipo de Dados de Campo &#8211; CAST (Só &gt;=8.0):</strong></p>
<p>ALTER TABLE tabela ALTER COLUMN campo TYPE tipo;<br />
ALTER TABLE produtos ALTER COLUMN preco TYPE numeric(10,2);<br />
ALTER TABLE produtos ALTER COLUMN data TYPE DATE USING CAST (data AS DATE);</p>
<p><strong><br />
7) Renomear Tabela</strong><br />
ALTER TABLE tabela RENAME TO nomenovo;<br />
ALTER TABLE produtos RENAME TO equipamentos;</p>
<p><strong><br />
 <img src='http://s0.wp.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> Tamanho de Tabela, Banco ou Todos os Bancos do SGBD:</strong></p>
<p>Tamanho de Banco de Dados (postgresql 8.1 ou superior):<br />
select pg_database_size(&#8216;nomebanco&#8217;);</p>
<p>Tamanho de Tabela<br />
select pg_tablespace_size(&#8216;nometabela&#8217;);</p>
<p>Tamanho de todos os bancos de dados do SGBD:<br />
select (sum(relpages) * <img src='http://s0.wp.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> / 1024 || &#8216; MB&#8217; as tamanho from pg_class where relowner &gt; 1;</p>
<p>Ou</p>
<p>select (sum(relpages) / 2^7) :: int || &#8216; MB&#8217; as tamanho from pg_class where relowner &gt; 1;</p>
<p><strong><br />
9) Validação de e-mails</strong></p>
<p>1 &#8211; select distinct(campo_email),campo_nome, campos_n from tabela where campo_email like &#8216;%@%.%&#8217;<br />
2 &#8211; SELECT POSITION(&#8216;@&#8217;, &#8216;ribafs@gmail.com&#8217;) &gt; 0<br />
3 &#8211; select &#8216;coutinho.php@gmail.com&#8217; ~ &#8216;@&#8217;<br />
4 &#8211; select &#8216;coutinho.php@gmail.com&#8217; like &#8216;%@%&#8217;<br />
5 &#8211; select if (&#8216;campo_email&#8217; like &#8220;%@%.%&#8221;,&#8221;TRUE&#8221;,&#8221;FALSE&#8221;) as flag, campo_adcional from tabela<br />
6 &#8211; select &#8216;coutinho@gmail.com&#8217; similar to &#8216;%@%.%&#8217;;</p>
<p><strong><br />
10) Temos um campo (insumo) com valores = 1, 2, 3, &#8230; 87</strong><br />
Queremos atualizar para 0001, 0002, 0003, &#8230; 0087</p>
<p>UPDATE equipamentos SET insumo = &#8217;000&#8242; || insumo WHERE LENGTH(insumo) = 1;<br />
UPDATE equipamentos SET insumo = &#8217;00&#8242; || insumo WHERE LENGTH(insumo) = 2;</p>
<p>Outra saída mais elegante ainda:</p>
<p>UPDATE equipamentos SET insumo = REPEAT(&#8217;0&#8242;, 4-LENGTH(insumo)) || insumo;</p>
<p><strong><br />
11) Retornar o número de usuários conectados</strong><br />
select count(*) from pg_stat_activity</p>
<p>pg_stat_database que apresenta para cada banco de dados o número de conexões.<br />
Eu particularmente acho que fica mais fácil de visualizar do que o pg_stat_activity quando se tem muitas conexões.</p>
<p>Mostrar uso dos índices dos bancos de dados:<br />
select * from pg_statio_user_indexes;</p>
<p>select * from pg_stat_user_indexes;</p>
<p>Mostra estatística de uso das tabelas e manutenção:<br />
select * from pg_stat_all_tables;</p>
<p>Mostra todas as tabelas do atual esquema do atual banco:<br />
select * from pg_stat_user_tables;</p>
<p>pg_stat_get_tuples_returned(oid) bigint Number of rows read by sequential scans when argument is a table, or number of index entries returned when argument is an index<br />
pg_stat_get_tuples_fetched(oid) bigint Number of table rows fetched by bitmap scans when argument is a table, or table rows fetched by simple index scans using the index when argument is an index<br />
pg_stat_get_tuples_inserted(oid) bigint Number of rows inserted into table<br />
pg_stat_get_tuples_updated(oid) bigint Number of rows updated in table<br />
pg_stat_get_tuples_deleted(oid) bigint Number of rows deleted from table<br />
pg_stat_get_blocks_fetched(oid) bigint Number of disk block fetch requests for table or index<br />
pg_stat_get_blocks_hit(oid) bigint Number of disk block requests found in cache for table or index<br />
pg_stat_get_last_vacuum_time(oid) timestamptz Time of the last vacuum initiated by the user on this table<br />
pg_stat_get_last_autovacuum_time(oid) timestamptz Time of the last vacuum initiated by the autovacuum daemon on this table<br />
pg_stat_get_last_analyze_time(oid) timestamptz Time of the last analyze initiated by the user on this table<br />
pg_stat_get_last_autoanalyze_time(oid) timestamptz Time of the last analyze initiated by the autovacuum daemon on this table</p>
<p>This is controlled by configuration parameters that are normally set in postgresql.conf</p>
<p>The function pg_stat_get_backend_idset provides a convenient way to generate one row for each active server process. For example, to show the PIDs and current queries of all server processes:</p>
<p>SELECT pg_stat_get_backend_pid(s.backendid) AS procpid,<br />
pg_stat_get_backend_activity(s.backendid) AS current_query<br />
FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s;</p>
<p>Visualizar os processos do portgresql num UNIX:</p>
<p>ps auxww | grep ^postgres</p>
<p>Formato de retorno:<br />
postgres: user database host activity</p>
<p><strong>12) Corrigindo Estouro do Máximo de transações (2 bilhões)</strong><br />
Constatando:</p>
<p>SELECT datname, age(datfrozenxid) FROM pg_database;</p>
<p>age acusa mais de 2 bilhões</p>
<p>Tarcizio Meurer</p>
<p>- Execute um dumpall na base<br />
- drop a base e o agrupamento de dados<br />
- recrie o agrupamento<br />
- recrie a base<br />
- carrege os dados novemente.<br />
<strong>13) Total de Registros de Todos os Bancos do SGBD (PHP):</strong></p>
<p>&lt;?php</p>
<p>$conexao=pg_connect(&#8220;host=127.0.0.1 user=postgres password=postabir&#8221;);</p>
<p>$sql=&#8221;SELECT datname AS banco FROM pg_database ORDER BY datname&#8221;;<br />
$consulta=pg_query($conexao,$sql);</p>
<p>$banco = array();<br />
$c=0;<br />
while ($data = @pg_fetch_object($consulta,$c)) {<br />
$cons=$data-&gt;banco;</p>
<p>$banco[] .= $cons;<br />
$c++;<br />
}</p>
<p>$sql2=&#8221;SELECT n.nspname as esquema,c.relname as tabela FROM pg_namespace n, pg_class c<br />
WHERE n.oid = c.relnamespace<br />
and c.relkind = &#8216;r&#8217; &#8212; no indices<br />
and n.nspname not like &#8216;pg\\_%&#8217; &#8212; no catalogs<br />
and n.nspname != &#8216;information_schema&#8217; &#8212; no information_schema<br />
ORDER BY nspname, relname&#8221;;</p>
<p>for ($x=0; $x &lt; count($banco);$x++){<br />
if ($banco[$x] !=&#8221;template0&#8243; &amp;&amp; $banco[$x] != &#8220;template1&#8243; &amp;&amp; $banco[$x] !=&#8221;postgres&#8221;){<br />
$conexao2=pg_connect(&#8220;host=127.0.0.1 dbname=$banco[$x] user=postgres password=postabir&#8221;);<br />
$consulta2=pg_query( $conexao2, $sql2 );</p>
<p>while ($data = pg_fetch_object($consulta2)) {<br />
$esquematab=$data-&gt;esquema.&#8217;.&#8217;.$data-&gt;tabela;<br />
$sql3=&#8221;SELECT count(*) FROM $esquematab&#8221;;<br />
$consulta3=pg_query($conexao2,$sql3);<br />
$res=@pg_fetch_array($consulta3);</p>
<p>print &#8216;Banco.Esquema.Tabela -&gt; &#8216;.$banco[$x].&#8217;.&#8217;.$data-&gt;esquema.&#8217;.&#8217;.$data-&gt;tabela.&#8217; &#8211; Registro(s) &#8211; &#8216;.$res[0].&#8221;;<br />
$total += $res[0];<br />
}</p>
<p>}<br />
}<br />
print &#8220;Total de Registro de todas as tabelas de todos os bancos &#8220;. $total;</p>
<p>?&gt;<br />
<strong>14) Uso da Constraint check</strong></p>
<p>CREATE TABLE testes(<br />
codigo serial primary key,<br />
idade integer,<br />
check (idade &gt; 18 AND idade &lt; 70)<br />
)</p>
<p>Alternativas:</p>
<p>check (preco &gt; desconto)</p>
<p>check (desconto &gt; 0 AND preco &gt; desconto)</p>
<p>&#8212;&#8212;&#8212;&#8212;-<br />
Somente aceitar c ou e (simulando campo tipo enum do MySQL):<br />
tipo char(1) check (tipo =&#8217;c&#8217; OR tipo=&#8217;e')</p>
<p>Para este cria-se uma combo com values &#8216;c&#8217; e &#8216;e&#8217;.<br />
<strong>15) Manutenção do PostgreSQL:</strong><br />
No CRON:</p>
<p>/home/pgsql/bin/psql -c &#8220;vacuum full analyse&#8221; -d dadosadv -U postgres</p>
<p>Consultas no Pronpt do SO:<br />
psql -U postgres -d banco -c &#8220;SELECT * FROM clientes&#8221;</p>
<p>Manutenção em Tabela<br />
vacuum analize tabela;</p>
<p>Reindexar Banco, tabela ou índice<br />
reindex database banco;</p>
<p>Exibir plano de consulta<br />
explain select * from tabela;</p>
<p>Exibir todos os parâmetros de runtime<br />
show all;<br />
<strong>16) Consulta com Dias Úteis</strong></p>
<p>Só para constar aqui vai uma expressão SQL que fornece os<br />
dias úteis de um período. Considerei que existe uma tabela<br />
com o registro dos feriados e outros dias que não devem ser<br />
considerados (emendas, pontos facultativos, etc):</p>
<p>SELECT dia FROM<br />
(SELECT (&#8217;2007-10-01&#8242;::date+s.a*&#8217;1 day&#8217;::interval) AS dia<br />
FROM generate_series(0, &#8217;2007-10-31&#8242;::date -<br />
&#8217;2007-10-01&#8242;::date, 1) AS s(a)) foo<br />
WHERE EXTRACT(DOW FROM dia) BETWEEN 1 AND 5<br />
EXCEPT<br />
SELECT dia FROM tab_feriado;</p>
<p>Osvaldo (na lista postgresql-br)<br />
<strong>17) Update em uma chave primária sem causar duplicação de chave</strong></p>
<p>UPDATE teste SET coluna1 = t_aux.coluna1+1<br />
FROM (<br />
SELECT coluna1<br />
FROM teste<br />
ORDER BY coluna1 DESC<br />
) t_aux<br />
WHERE teste.coluna1 = t_aux.coluna1;</p>
<p>Osvaldo (na lista postgresql-br)<br />
<strong>18) Como saber se existe uma transação ativa</strong></p>
<p>select pg_stat_activity;</p>
<p>Dica do João Paulo.<br />
<strong>19)Inserir data como valor default:</strong></p>
<p>Pode usar também o current_date ou o localtimestamp.</p>
<p>insert into tabela(data) values ((select current_date));</p>
<p>ou</p>
<p>insert into tabela(data) values ((select localtimestampo));<br />
<strong>20) Ler último saldo de tabela</strong></p>
<p>Tenho o seguinte conteudo numa tabela de contas:</p>
<p>Lancto&#8211;CCorrente&#8211;Banco&#8211;OP&#8211;DataLan&#8212;&#8212;-Valor&#8212;&#8212;&#8212;Saldo&#8211;<br />
1 12345-6 002 C 19/11/2007 1000.00 1000.00<br />
2 12345-6 002 C 19/11/2007 2000.00 3000.00<br />
3 12345-6 002 D 19/11/2007 100.00 2900.00<br />
4 23450-6 001 C 19/11/2007 2000.00 3000.00<br />
5 23450-6 001 D 19/11/2007 100.00 2900.00</p>
<p>Preciso retornar sempre o último SALDO registrado.<br />
Como nunca vou saber a data exata da periodo de consulta.</p>
<p>Estou executando:</p>
<p>SELECT saldoatual FROM lanban WHERE contacorrente = &#8217;12345-6&#8242; and datalan &lt;= &#8217;2007/12/01&#8242; ORDER BY datalan DESC LIMIT 1</p>
<p>Retona o Saldo: 1000.00, preciso pegar o ultimo saldo da conta 12345-6: que é 2900.00.</p>
<p>Isso porque tabelas são conjuntos de dados. O padrão SQL *não* garante a<br />
ordem dos dados. Mesmo se ele garantisse, um simples UPDATE podia mudar<br />
o ordem dos dados e o seu SELECT não retornaria o valor desejado.</p>
<p>&gt; Alguem tem alguma dica?<br />
&gt;<br />
O campo &#8216;Lancto&#8217; é do tipo serial? Se for poderias utilizar:<br />
SELECT saldoatual FROM lanban WHERE contacorrente = &#8217;12345-6&#8242; ORDER BY<br />
&#8220;Lancto&#8221; DESC LIMIT 1.</p>
<p>Dica do Euler Taveira de Oliveira<br />
<strong>21) Formato de moeda</strong></p>
<p>O correto seria:<br />
to_char(1030.52,&#8217;9G999D99&#8242;)<br />
mas o resultado é: 1,030,52<br />
como você pode observar existe um problema no<br />
separador de milhar (indicado pelo G) que é<br />
considerado como , e não como . que seria o esperado.</p>
<p>Uma maneira de contornar (não muito elegante) é:<br />
to_char(1030.52,&#8217;9&#8243;.&#8221;999D99&#8242;)</p>
<p>Corrigido na versão 8.3<br />
<strong>22) Saber o Tamanho de Tabela e de Índices</strong></p>
<p>pg_relation_size()<br />
pg_total_relation_size()</p>
<p>-Leo<br />
&#8211;<br />
Leonardo Cezar<br />
<strong>23) Último Saldo</strong><br />
Fernando Brombatti</p>
<p>A situação é a seguinte. Não se sabe se o serial citado (por N razões) vai ser o último valor existente. Nada me garante que estes dados não sofreram algum UPDATE. Sendo assim, recomendo:<br />
1) alterar o campo DATE para TIMESTAMP<br />
2) alterar o query:<br />
SELECT lan.saldoatual<br />
FROM lanban lan<br />
WHERE lan.contacorrente = &#8217;12345-6&#8242; AND lan.datalan = (SELECT MAX(maxlan.datalan)<br />
FROM lanban maxlan<br />
WHERE maxlan.contacorrente = lan.contacorrente)<br />
Isso faz com que no primeiro SQL eu traga os lancamentos da conta e no segundo eu trago a máxima data de lançamento para a mesma conta. Como as contas são iguais, trago a máxima data da conta atual, logo tenho o saldo atual.<br />
É confuso, mas é o mais seguro (podem haver UPDATES neste caso também, mas aí não se depende de um serial).<br />
Para este query funcionar bem necessita mais um índice em datalan ao menos.<br />
Nos nossos sistemas da prefeitura nunca usamos saldos desta forma, pois aí se é removido algum registro a informação não fica correta.</p>
<p>Espero não ter confundido tanto.<br />
<strong>24) Encontrando tanela de sistema</strong></p>
<p>Para localizar informações desse tipo existe o information_schema<br />
(conforme citado pelo Leandro). Utilizando o catalogo poupa voce de<br />
futuras dores de cabeça quando por exemplo houver alguma alteração<br />
estrutural em tabelas do sistema em versõs futuras. As views do<br />
catalogo deverão permanecer com o máximo de compatibilidade entre<br />
versões (segundo padrão SQL).</p>
<p>Além de ser mais simples:</p>
<p>SELECT *<br />
FROM information_schema.tables<br />
WHERE table_name = &#8216;foobar&#8217;;</p>
<p>Infelizmente não possuimos referencias a outros banco de dados<br />
(banco.schema.tabela), portanto o comando deverá ser executado em<br />
todos seus bancos para localizar a tabela ou um programeta bash<br />
parecido com isso:</p>
<p>$ ARG=$1 || &#8220;foo&#8221; &amp;&amp; for DATABASE in `psql -U postgres -c &#8220;\l&#8221; \<br />
| cut -d&#8221;|&#8221; -f1 | egrep &#8216;^(\ [a-z])&#8217;`<br />
do<br />
psql -U postgres -d $DATABASE -Atc \<br />
&#8220;SELECT &#8216;O banco de dados $DATABASE possui a tabela: $RG&#8217;<br />
FROM information_schema.tables<br />
WHERE table_name = &#8216;$ARG&#8217;&#8221;;<br />
done;</p>
<p>Abraço!</p>
<p>-Leo<br />
<strong>25) Como Localizar e Deletar registros duplicados </strong></p>
<p>1.Select para localizar duplicados<br />
select campo,campo1,count(*)<br />
from tabela group by campo,campo1 having count(*) &gt; 1</p>
<p>2.Deletar duplicados:<br />
delete from tab p1<br />
where rowid &lt; (select max(rowid)<br />
from tab1 p2<br />
where p1.primary_key = p2.primary_key);<br />
<strong>26) Inserir registros em uma específica posição</strong><br />
&gt; Hi, how are you? maybe you know how SQL insert data<br />
&gt; bellow or above in database tabe? example insert<br />
&gt; data from position table 5 thanks<br />
&gt;</p>
<p>No, I don&#8217;t known.<br />
But if you make a copy from table,<br />
create a new table with same structure,<br />
insert a new register,<br />
import register from old table, then first register<br />
are this last register inserted.<br />
<strong>27) Timezones do PostgreSQL (lista pgbr-geral)</strong></p>
<p>No POSTGRESQL.CONF tem o timezone onde você pode colocar algo do tipo:</p>
<p>TIMEZONE=BRAZIL/EAST esta é minha configuração, ou seja, de minha região.</p>
<p>Analise.<br />
Wandrey</p>
<p>Outra &#8212;&#8212;&#8212;&#8211;<br />
Na maioria dos casos é criado um link do diretório de timezones do<br />
S.O. (/usr/share/zoneinfo//usr/share/zoneinfo/) para o diretório de<br />
Timezones do Postgres ($PGDIR/share/timezone )Que possui seu próprio<br />
sistema de controle de timezone, se não me engano a partir d versão <img src='http://s0.wp.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </p>
<p>&#8211;<br />
Att:<br />
Thiago Risso<br />
<strong>28) Inserir Número Aleatório em Tabela</strong></p>
<p>CREATE TABLE page (<br />
id SERIAL PRIMARY KEY,<br />
about TEXT NULL,<br />
);</p>
<p>ALTER TABLE page ADD myrand NUMERIC NOT NULL DEFAULT RANDOM();</p>
<p>UPDATE page SET myrand = DEFAULT;</p>
<p>SELECT id FROM page WHERE myrand &gt;= RANDOM() ORDER BY myrand LIMIT 1;</p>
<p>This approach has some problems:</p>
<p>* If the number you pick is greater than the largest number in the myrand column, you will not find any matching rows.<br />
* The gaps between the random values in the myrand column are not uniform, and thus the rows selected are not random. Imagine a table with two rows and myrand values of 0.8 and 0.9. If the random number compared to myrand is .8 or less, the first row is chosen. But the second row is only chosen if the value picked is between .8 and .9<br />
* If more than one row has the exact same number, it is likely that one of them will never get picked.</p>
<p>Mais detalhes em: <a href="http://people.planetpostgresql.org/greg/index.php?/archives/118-guid.html">http://people.planetpostgresql.org/greg/index.php?/archives/118-guid.htm&#8230;</a><br />
<strong>29) Desabilitar Triggers</strong><br />
Vinicius Santos &#8211; MSI escreveu:<br />
Thiago Boufleuhr escreveu:</p>
<p>Como faço para desabilitar as triggers em uma sessão no PLSQL ?</p>
<p>Thiago Boufleuhr</p>
<p>ALTER TABLE [NOME DA TABELA]<br />
DISABLE TRIGGER [NOME DA TRIGGER]<br />
Ou<br />
ALTER TABLE [NOME DA TABELA]<br />
DISABLE TRIGGER ALL</p>
<p>ALERTA:<br />
William Leite Araújo: MUITO CUIDADO AO USAR &#8220;DISABLE TRIGGER ALL&#8221;</p>
<p>As constraints de chave estrangeira são controladas via TRIGGER. Caso desabilite todos os gatilhos, a checagem da integridade referencial (chaves estrangeiras) serão desabilitadas!<br />
<strong>30) Codificação de Caracteres</strong><br />
Euler Taveira de Oliveira<br />
&gt;Evandro Ricardo Silvestre wrote: Codificação de caracteres do cliente e<br />
do servidor podem ser diferentes. Se a codificação do cliente é diferente da codificação do servidor, o servidor PostgreSQL tenta fazer uma conversão antes de armazenar/retornar os dados. Um problema que existia é que a aplicação cliente (no caso abaixo o psql) não avisava se a codificação informada ao servidor (client_encoding) era a mesma do ambiente (terminal).<br />
Bem vindo ao psql 8.3.0, o terminal iterativo do PostgreSQL.<br />
Digite: \copyright para mostrar termos de distribuição<br />
\h para ajuda com comandos SQL<br />
\? para ajuda com comandos do psql<br />
\g ou terminar com ponto-e-vírgula para executar a consulta<br />
\q para sair<br />
template1=# show client_encoding;<br />
client_encoding<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
LATIN1<br />
(1 registro)<br />
template1=# show server_encoding;<br />
server_encoding<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
LATIN1<br />
(1 registro)<br />
template1=# select upper(&#8216;áéíóú&#8217;);<br />
upper<br />
&#8212;&#8212;-<br />
ÁÉÍÓÚ<br />
(1 registro)<br />
template1=# set client_encoding to &#8216;utf-8&#8242;;<br />
SET</p>
<p>template1=# show client_encoding;<br />
client_encoding<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
utf-8<br />
(1 registro)<br />
template1=# select upper(&#8216;áéíóú&#8217;);<br />
ERRO: sequência de bytes é inválida para codificação &#8220;UTF8&#8243;: 0xe1e9ed<br />
DICA: Este erro pode acontecer também se a sequência de bytes nãocorresponde a codificação esperado pelo servidor, que é controlada por &#8220;client_encoding&#8221;.<br />
ERRO: sequÃªncia de bytes Ã© invÃ¡lida para codificaÃ§Ã£o &#8220;UTF8&#8243;: 0xe1e9ed<br />
DICA: Este erro pode acontecer tambÃ©m se a sequÃªncia de bytes nÃ£o corresponde a codificaÃ§Ã£o esperado pelo servidor, que Ã© controlada por &#8220;client_encoding&#8221;.<br />
[trocando a codificação de caracteres do terminal e digitando novamente]<br />
template1=# select upper(&#8216;áéí&#8217;);<br />
upper<br />
&#8212;&#8212;-<br />
ÁÉÍ<br />
(1 registro)<br />
<strong>31) Como visualizar as consultas correntes no Postgres</strong></p>
<p>Colaboração: Frederico Palma</p>
<p>Data de Publicação: 16 de fevereiro de 2008</p>
<p>É necessário habilitar o stats_command_string no postgresql.conf:</p>
<p>stats_command_string = true</p>
<p>Essa configuração pode ser alterada em um banco que está ativo sem a necessidade de reiniciá-lo e sem afetar as conexões abertas para recarregar as configurações. Envie um SIGHUP ou use o comando:</p>
<p>pg_ctl reload</p>
<p>Quando stats_command_string está ativo a tabela pg_stat_activity armazena todas consultas correntes.</p>
<p>Realizando a consulta:</p>
<p>SELECT datname,procpid,current_query FROM pg_stat_activity</p>
<p>Teremos a lista dos bancos de dados utilizados com seus respectivos processos (PID) referente às consultas.</p>
<p>SELECT datname,procpid,current_query FROM pg_stat_activity ORDER BY procpid;</p>
<p>datname | procpid | current_query<br />
&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
mydatabase1 | 2587 | &lt; IDLE&gt;<br />
mydatabase2 | 15726 | SELECT * FROM users WHERE id=123 ;<br />
mydatabase3 | 15851 | &lt; IDLE&gt;</p>
<p>Publicado originalmente na Dicas-L &#8211; <a href="http://www.dicas-l.com.br/dicas-l/20080216.php">http://www.dicas-l.com.br/dicas-l/20080216.php</a></p>
<p>32)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ribafs.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ribafs.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ribafs.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ribafs.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ribafs.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ribafs.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ribafs.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ribafs.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ribafs.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ribafs.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ribafs.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ribafs.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ribafs.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ribafs.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ribafs.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ribafs.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ribafs.wordpress.com&amp;blog=630184&amp;post=4&amp;subd=ribafs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ribafs.wordpress.com/2006/12/22/podutividade-no-desenvolvimento-web/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846f718fa1354a6341fdd20f4aee9a93?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ribafs</media:title>
		</media:content>
	</item>
	</channel>
</rss>
