<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2638220080014255612</id><updated>2011-12-05T01:50:41.998-02:00</updated><category term='linux'/><category term='firefox'/><category term='Banco de Dados'/><category term='PostgreSQL'/><category term='multimidia'/><category term='rmvb'/><category term='red hat'/><category term='apt-get'/><category term='xine'/><category term='windows'/><category term='design'/><category term='gtk'/><category term='Ubuntu'/><category term='kaffeine'/><category term='real player'/><category term='Grub'/><category term='grsync'/><title type='text'>Intelecto Livre!</title><subtitle type='html'>A liberdade dominando a mente!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://intelectolivre.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://intelectolivre.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lindoélio Lázaro</name><uri>http://www.blogger.com/profile/11294815657589032836</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_m-XQUvPhe-E/ScpTIcRCXcI/AAAAAAAAAP0/BOgweGDUBGo/S220/bonitao.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2638220080014255612.post-3217531218952013875</id><published>2010-02-22T21:35:00.002-03:00</published><updated>2010-02-22T22:13:17.565-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Como Melhorar Nitidez do Firefox no Ubuntu</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_y37hlq_iJak/S4MrI4wiD5I/AAAAAAAAAAM/1ll15EZse3c/s1600-h/firefox.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 309px;" src="http://3.bp.blogspot.com/_y37hlq_iJak/S4MrI4wiD5I/AAAAAAAAAAM/1ll15EZse3c/s400/firefox.jpg" alt="" id="BLOGGER_PHOTO_ID_5441240206468583314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Por muito tempo desejei que numa atualiazação ou outra o Firefox ficasse tão nítido no Ubuntu como é no Windows. As fontes ficam embaçadas, cansativas para leitura. E assim que minha preguiça acabou (achei que fosse mais complicado fazer isso), resolvi pesquisar como melhorar a nitidez do firefox no Ubuntu. Agora compartilho como consegui o feito.&lt;br /&gt;&lt;br /&gt;Basta digitar no nosso fiel terminal (ou console, como queira) os seguintes comandos:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ cd /etc/fonts/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ sudo mv conf.d/10-hinting-slight.conf .&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;$ sudo ln -s conf.avail/10-hinting-slight.conf conf.d/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ sudo mv conf.d/10-hinting.conf .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ sudo ln -s conf.avail/10-hinting.conf conf.d/&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;$ sudo dpkg-reconfigure fontconfig&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esse "." (ponto) no final do segundo e do quarto comando é obrigatório mesmo, separado por espaço.&lt;br /&gt;&lt;br /&gt;Prontinho! Se digitou certinho ou usou CTRL+C/CTRL+V, tem que ter funcionado. Reinicie seu firefox e sinta o alívio!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;Lindoélio Lázaro&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2638220080014255612-3217531218952013875?l=intelectolivre.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelectolivre.blogspot.com/feeds/3217531218952013875/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2638220080014255612&amp;postID=3217531218952013875' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/3217531218952013875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/3217531218952013875'/><link rel='alternate' type='text/html' href='http://intelectolivre.blogspot.com/2010/02/como-melhorar-nitidez-do-firefox-no.html' title='Como Melhorar Nitidez do Firefox no Ubuntu'/><author><name>Lindoélio Lázaro</name><uri>http://www.blogger.com/profile/11294815657589032836</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_m-XQUvPhe-E/ScpTIcRCXcI/AAAAAAAAAP0/BOgweGDUBGo/S220/bonitao.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_y37hlq_iJak/S4MrI4wiD5I/AAAAAAAAAAM/1ll15EZse3c/s72-c/firefox.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2638220080014255612.post-8807013246204880519</id><published>2010-01-12T21:07:00.003-02:00</published><updated>2010-01-12T21:59:55.818-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Grub'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Recuperando GRUB 2 no Ubuntu 9.10</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_m-XQUvPhe-E/S00M6UlJa7I/AAAAAAAAATs/L54Yt94EBtk/s1600-h/grub2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 357px; height: 357px;" src="http://2.bp.blogspot.com/_m-XQUvPhe-E/S00M6UlJa7I/AAAAAAAAATs/L54Yt94EBtk/s400/grub2.png" alt="" id="BLOGGER_PHOTO_ID_5426007322147777458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Não consigo me convencer de que a nova versão do Grub, totalmente diferente da anterior, era mesmo necessária. Afinal, em time que está ganhando se mexe? E precisa mexer tanto assim? Bom, acho que o pessoal da Canonical não pensa como eu e adicionou o Grub 2 como padrão na instalação do Ubuntu 9.10.&lt;br /&gt;&lt;br /&gt;Dentre os vários problemas que poderia citar desse novo Grub em relação ao antigo (que nem era antigo), é que ao instalar uma distribuição que use o Grub 1, as entradas configuradas no Grub 2 não são reconhecidas, ou seja, lá vai o pobre "human beings" tentar recuperar o Grub 2 para não ter que reinstalar o seu multimídia Ubuntu 9.10. E o mesmo ocorre quando se instala o SO janelinha.&lt;br /&gt;&lt;br /&gt;Abaixo, descrevo a forma que encontrei de resolver esse probleminha que já deve ter feito muita gente reinstalar seu novo, nem tão novo assim, Ubuntu, afim de compartilhar com quem queira:&lt;br /&gt;&lt;br /&gt;Você só vai precisar de um LiveCD do Ubuntu 9.10 (Ainda tem ele, não tem? Se não tem, serve um LiveUSB) e uma xícara de café.&lt;br /&gt;&lt;br /&gt;Então, vamos lá...&lt;br /&gt;&lt;br /&gt;Encontre seu LiveCD ou LiveUSB do Ubuntu 9.10 e inicie o Sistema pelo LiveCD/LiveUSB normalmente...&lt;br /&gt;&lt;br /&gt;Abra o terminal de comandos, disponível em "Aplicativos &gt;&gt; Acessórios &gt;&gt; Terminal" e digite os seguintes comandos (só o que vem depois dos símbolos $ ou #, por favor):&lt;br /&gt;&lt;br /&gt;Para listar os HD's e suas respectivas partições...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ sudo fdisk -l&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Descubra em qual das partições listadas está instalado o seu Ubuntu 9.10 e monte-a na pasta /mnt, assim:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ sudo mount /dev/sdaX /mnt&lt;/span&gt;&lt;br /&gt;(troque esse sdaX pela identificação da sua partição)&lt;br /&gt;&lt;br /&gt;Caso você tenha o /boot em outra partição (e só nesse caso), monte-a também:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ sudo mount /dev/sda6 /mnt/boot&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Em seguida, execute:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ sudo mount --bind /dev /mnt/dev&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mude a raiz para o novo ponto de montagem, dessa forma:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ sudo chroot /mnt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora os comandos serão executados como root e não vai mais precisar que você digite o sudo.&lt;br /&gt;E então o comando "mágico" que lhe voltará ao Grub 2:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# grub-install /dev/sd&lt;/span&gt;a&lt;br /&gt;&lt;br /&gt;Pronto!&lt;br /&gt;Desmonte o que montou, pegue sua xícara de café, reinicie a máquina (tirando o LiveCD/LiveUSB) e corra para um lugar seguro pra ver se vai explodir! Mas não há motivo pra pânico, porque se você não digitou os símbolos $ ou # com os espaços depois deles, então vai dar tudo certo...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# exit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ umount /mnt/dev&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ umount /mnt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ sudo shutdown -r now&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se quiser se aprofundar sobre os detalhos desse novo Grub, acesse esse ótimo artigo: &lt;a href="http://gnulinuxbr.wordpress.com/2009/11/16/grub2/"&gt;http://gnulinuxbr.wordpress.com/2009/11/16/grub2/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;Lindoélio Lázaro&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2638220080014255612-8807013246204880519?l=intelectolivre.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelectolivre.blogspot.com/feeds/8807013246204880519/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2638220080014255612&amp;postID=8807013246204880519' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/8807013246204880519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/8807013246204880519'/><link rel='alternate' type='text/html' href='http://intelectolivre.blogspot.com/2010/01/recuperando-grub-2-no-ubuntu-910.html' title='Recuperando GRUB 2 no Ubuntu 9.10'/><author><name>Lindoélio Lázaro</name><uri>http://www.blogger.com/profile/11294815657589032836</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_m-XQUvPhe-E/ScpTIcRCXcI/AAAAAAAAAP0/BOgweGDUBGo/S220/bonitao.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_m-XQUvPhe-E/S00M6UlJa7I/AAAAAAAAATs/L54Yt94EBtk/s72-c/grub2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2638220080014255612.post-7284353886150124343</id><published>2008-08-15T10:26:00.010-03:00</published><updated>2008-08-15T11:57:36.121-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grsync'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='apt-get'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Sincronizando Arquivos no Ubuntu</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_m-XQUvPhe-E/SKWS0Elbm0I/AAAAAAAAACk/lkpDSeGYj3s/s1600-h/Captura_da_tela-Sobre+o+grsync.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_m-XQUvPhe-E/SKWS0Elbm0I/AAAAAAAAACk/lkpDSeGYj3s/s320/Captura_da_tela-Sobre+o+grsync.png" alt="" id="BLOGGER_PHOTO_ID_5234751565169662786" border="0" /&gt;&lt;/a&gt;Minha busca por um aplicativo que fizesse sincronia de arquivos bilateralmente entre dispositivos móveis de armazenamento (pendrive, cartões de memória, etc) e o computador, no Ubuntu, ou até mesmo entre dois desses dispositivos, ou ainda entre dois diretórios numa mesma máquina, ou mesmo em dois locais de rede, e por aí vai, rsrsrs, acabou quando encontrei o Grsync. Esse software é, na verdade, uma interface visual em GTK+2 para o utilitário Rsync (que opera por comandos, em modo texto), com capacidades avançadas de sincronia e backup.&lt;br /&gt;Para instalar o Grsync no Ubuntu, acesse no menu: "Aplicações &gt; Adicionar/Remover", pesquise por Grsync e marque para instalação imediata. Se preferir, entre no terminal e digite o comando # &lt;span style="font-weight: bold;"&gt;sudo &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;apt-get install grsync &lt;/span&gt;para instalá-lo. Lembrando que, para tal, você deverá estar logado na Internet.&lt;br /&gt;&lt;br /&gt;Após a instalação execute-o. No meu Ubuntu (Hardy Heron) o atalho para o programa foi parar no menu "Aplicações &gt; Internet". Pode ser que contigo seja assim também. Para executá-lo do terminal digite # &lt;span style="font-weight: bold;"&gt;grsync&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Com o Grsync aberto é só definir os diretórios ou dispositivos de armazenamento a serem sincronizados e estabelecer algumas regras marcando as opções disponíveis na inte&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_m-XQUvPhe-E/SKWUKGoyOZI/AAAAAAAAADM/IEfgeNuhDY4/s1600-h/Captura_da_tela-Grsync:+default+-1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_m-XQUvPhe-E/SKWUKGoyOZI/AAAAAAAAADM/IEfgeNuhDY4/s200/Captura_da_tela-Grsync:+default+-1.png" alt="" id="BLOGGER_PHOTO_ID_5234753043189348754" border="0" /&gt;&lt;/a&gt;rface. Se desejar algum recurso "extra", que não tenha sido implementado na interface, antes ou depois de executar a sincronia, você pode inserir isso em forma de comandos pela aba "Extra Options" nos campos respectivos.&lt;br /&gt;&lt;br /&gt;No primeiro botão &lt;span style="font-style: italic;"&gt;Browse&lt;/span&gt; (source), informe o diretório ou drive que será copiado para o destino que será definido no segundo botão &lt;span style="font-style: italic;"&gt;Browse&lt;/span&gt;, onde você informará o local onde a cópia será salva.&lt;br /&gt;Se você quiser sincronizar os dois locais, afim de que tenham o mesmo conteúdo, clique no botão &lt;span style="font-style: italic;"&gt;Switch&lt;/span&gt; logo após o os botões &lt;span style="font-style: italic;"&gt;Browse's&lt;/span&gt;; isso fará com que o destino passe a ser a fonte e a fonte passe a ser o destino.&lt;br /&gt;Relaciono as opções de sincronia mais úteis, a saber:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_m-XQUvPhe-E/SKWUJ8RS8cI/AAAAAAAAADE/IUZ9kk5NWaQ/s1600-h/Captura_da_tela-Grsync:+default+.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_m-XQUvPhe-E/SKWUJ8RS8cI/AAAAAAAAADE/IUZ9kk5NWaQ/s200/Captura_da_tela-Grsync:+default+.png" alt="" id="BLOGGER_PHOTO_ID_5234753040406475202" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Delete on destination&lt;/span&gt; - apaga todo o conteúdo no local de destino que não tiver cópia no local de origem, ou seja, garante que os dois locais terão, absolutamente, o mesmo conteúdo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Skip newer&lt;/span&gt; - faz com que os arquivos mais antigos contidos no local de origem não sobrescrevam os arquivos mais novos contidos no local de destino.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Windows compatibility&lt;/span&gt; - evita erros de escrita nos arquivos e pastas que serão copiados entre partição Linux para uma partição Windows (NTFS, Fat32, Fat16), aumentando assim, a compatibilidade entre os sistemas de arquivos. A maioria dos pendrives, por exemplo, utiliza Fat32 como sistema&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_m-XQUvPhe-E/SKWUKPX1lnI/AAAAAAAAADU/4Zb1ukss_7c/s1600-h/Captura_da_tela-Grsync:+default+-2.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_m-XQUvPhe-E/SKWUKPX1lnI/AAAAAAAAADU/4Zb1ukss_7c/s200/Captura_da_tela-Grsync:+default+-2.png" alt="" id="BLOGGER_PHOTO_ID_5234753045534185074" border="0" /&gt;&lt;/a&gt; de arquivos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Compress file data&lt;/span&gt; - comprime o conteúdo a ser copiado afim de compactá-lo. Mais útil quando a intenção é manter cópias de segurança, para evitar despêndios de espaço em disco.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Only update existing files&lt;/span&gt; - apenas atualiza os arquivos do local de destino com as versões mais novas dos mesmos arquivos no local de origem.&lt;br /&gt;Escolha as opções que lhe aprouver e clique em &lt;span style="font-style: italic;"&gt;Executar&lt;/span&gt; para realizar a sincronia ou backup.&lt;br /&gt;Caso queira definir mais de um esquema de sincronia você poderá criar novas "sessions", logo no topo da interface.&lt;br /&gt;&lt;br /&gt;Sincronize sua mente com o que há de melhor no mundo livre!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2638220080014255612-7284353886150124343?l=intelectolivre.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelectolivre.blogspot.com/feeds/7284353886150124343/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2638220080014255612&amp;postID=7284353886150124343' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/7284353886150124343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/7284353886150124343'/><link rel='alternate' type='text/html' href='http://intelectolivre.blogspot.com/2008/08/sincronizando-arquivos-no-ubuntu.html' title='Sincronizando Arquivos no Ubuntu'/><author><name>Lindoélio Lázaro</name><uri>http://www.blogger.com/profile/11294815657589032836</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_m-XQUvPhe-E/ScpTIcRCXcI/AAAAAAAAAP0/BOgweGDUBGo/S220/bonitao.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_m-XQUvPhe-E/SKWS0Elbm0I/AAAAAAAAACk/lkpDSeGYj3s/s72-c/Captura_da_tela-Sobre+o+grsync.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2638220080014255612.post-7103590846689090723</id><published>2008-08-05T10:16:00.006-03:00</published><updated>2008-08-06T22:15:12.428-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kaffeine'/><category scheme='http://www.blogger.com/atom/ns#' term='rmvb'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='multimidia'/><category scheme='http://www.blogger.com/atom/ns#' term='red hat'/><category scheme='http://www.blogger.com/atom/ns#' term='real player'/><category scheme='http://www.blogger.com/atom/ns#' term='xine'/><title type='text'>RMVB no Linux com Real Player 11 GOLD</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_m-XQUvPhe-E/SJhjp8O9-XI/AAAAAAAAACc/yTO611tKPrE/s1600-h/Captura_da_tela-RealPlayer.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_m-XQUvPhe-E/SJhjp8O9-XI/AAAAAAAAACc/yTO611tKPrE/s320/Captura_da_tela-RealPlayer.png" alt="" id="BLOGGER_PHOTO_ID_5231040539385526642" border="0" /&gt;&lt;/a&gt;Pois bem, para abrir aqueles vídeos todos de animes que você baixou ou outros alheios de conteúdo diverso, geralmente todos em RMVB, você precisará fazer algumas configurações e ajustes em qualquer Sistema Operacional para rodar satisfatoriamente. Apresento aqui a forma mais simples de se poder assistir seus RMVB's no seu Linux sem dor de cabeça.&lt;br /&gt;Muitos usam o Kaffeine ou Xine para abrir esse tipo de arquivo, mas para isso é preciso algumas configurações bem minuciosas e com algumas diferenças entre as distribuições, por isso eu gosto de usar mesmo é o Real Player 11, específico para tal. Dessa forma, é só instalar o Real Player e assistir seus vídeos, em qualquer distribuição Linux.&lt;br /&gt;Para baixar o Real Player (que está na versão 11), entre na página de download do site da &lt;a href="http://www.real.com/linux"&gt;Real&lt;/a&gt; para Linux e baixe o executável binário (.bin) clicando no botão de download ou o pacote RPM, se sua distribuição for extendida de Red Hat (aconselhável baixar sempre a versão binária, para poder instalar em qualquer distribuição Linux).&lt;br /&gt;Para o pacote RPM não tem segredos, é só clicar duas vezes sobre o executável e instalar normalmente, mas para o pacote binário (.bin) vamos discorrer sobre sua execução...&lt;br /&gt;Mova o binário que você baixou para a pasta principal do usuário que iniciou a sessão (exemplo, /home/lindoelio/  - isso, porque em algumas distros o binário não se executa estando dentro de um esquema de diretório mais longo). Abra o terminal de comandos (pressionando ALT+F2 e digitando XTerm, uma opção) e inicie sessão como superusuário digitando &lt;span style="font-weight: bold;"&gt;sudo su&lt;/span&gt; ou &lt;span style="font-weight: bold;"&gt;sudo -s&lt;/span&gt; e informando corretamente a senha. Estando agora como root, dentro do diretório para onde moveu o binário dê permissão de execução a ele, fazendo:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod +x RealPlayer11GOLD.bin&lt;/span&gt;&lt;br /&gt;E, então execute-o:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ./RealPlayer11GOLD.bin&lt;/span&gt;&lt;br /&gt;O processo vai correr e lhe será perguntado o diretório de instalação (eu prefiro sempre confirmar a instalação no diretório /opt que o instalador sugere), confirme com ENTER e depois com F e ENTER.&lt;br /&gt;Pronto! RealPlayer11 instaldo no seu Linux. Agora vá até o menu de aplicações e procure o atalho de menu para o RealPlayer, execute e prossiga o assistente de configuração avançando as telas até a conclusão (bem rápida, por sinal).&lt;br /&gt;&lt;br /&gt;Prestigie livremente seus vídeos preferidos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2638220080014255612-7103590846689090723?l=intelectolivre.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelectolivre.blogspot.com/feeds/7103590846689090723/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2638220080014255612&amp;postID=7103590846689090723' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/7103590846689090723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/7103590846689090723'/><link rel='alternate' type='text/html' href='http://intelectolivre.blogspot.com/2008/08/rmvb-no-linux-com-real-player-11-gold.html' title='RMVB no Linux com Real Player 11 GOLD'/><author><name>Lindoélio Lázaro</name><uri>http://www.blogger.com/profile/11294815657589032836</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_m-XQUvPhe-E/ScpTIcRCXcI/AAAAAAAAAP0/BOgweGDUBGo/S220/bonitao.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_m-XQUvPhe-E/SJhjp8O9-XI/AAAAAAAAACc/yTO611tKPrE/s72-c/Captura_da_tela-RealPlayer.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2638220080014255612.post-485789582955949237</id><published>2008-07-18T09:05:00.009-03:00</published><updated>2008-08-06T22:19:13.108-03:00</updated><title type='text'>Convertendo Vídeos para AMV (mp4) no Linux</title><content type='html'>&lt;div style="text-align: justify;"&gt;Comprei um aparelho mp4 pela Internet para me deliciar com músicas e vídeos num mesmo aparelho enquanto viajo para a faculdade todos os dias... Porém, na minha ignorância, tive um choque quando percebi que nenhum formato de vídeo (os mais famosos) rodavam no bichinho, apenas um tal de AMV, que eu nunca tinha escutado sobre ele... Então peguei o CD que o acampanhara, mas o software disponível (AMVConvert) só roda no Windows (como toda porcaria) e nem com o Wine não quis funcionar... Digitei algumas linhas de comando aqui e outras alí mas não obtive sucesso na conversão dos vídeos, até descobrir um modesto programinha open-source para Linux, em GTK+2, que usa o ffmpeg para converter diversos formatos, inclusive o FLV (para quem gosta de baixar vídeos do youtube e afins), coisa que o concorrente que só roda no Windows não faz (pelo menos na versão que veio junto ao aparelho), e se chama Bytessence...&lt;br /&gt;Atualmente, o projeto foi dividido e podemos encontrar o Bytessence AMV Converter e o Bytessence MPx Converter. Aliás, pelo o que a equipe desenvolvedora recomenda, a versão Bytessence AMV Converter foi descontinuada e portanto o Bytessence MPx Converter seria a melhor opção. Mas, particularmente não gostei do MPx porque não consegui grandes resultados, não entendi o porque, e ainda uso o Bytessence AMV Converter...&lt;br /&gt;Então a dica é: teste os dois!&lt;br /&gt;O primeiro passo é garantir de que você possui o ffmpeg instalado corretamente no seu sistema, pois ele é pre-requisito para que os conversores funcionem (uma vez que esses são apenas interfaces para o ffmpeg)...&lt;br /&gt;Para baixar gratuitamente o Bytessence AMV Converter e o Bytessence MPx Converter, acesse o site &lt;a href="http://www.bytessence.com/"&gt;http://www.bytessence.com&lt;/a&gt; ou clique nos links de download:&lt;br /&gt;- AMV: &lt;a href="http://www.blogger.com/-%20AMV:%20http://www.bytessence.com/download/bamvc/BAMVC_LIN_1.1.zip"&gt;http://www.bytessence.com/download&lt;/a&gt;&lt;a href="http://www.blogger.com/-%20AMV:%20http://www.bytessence.com/download/bamvc/BAMVC_LIN_1.1.zip"&gt;/bamvc/BAMVC_LIN_1.1.zip&lt;/a&gt;&lt;br /&gt;- MPx: &lt;a href="http://www.bytessence.com/download/bmpxconverter/MPxConverter_L.tar.gz"&gt;http://www.bytessence.com/download/bmpxconverter/MPxConverter_L.tar.gz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Com o download concluído, basta descompactar o pacote e acessar a pasta para executar o Bytessence; não é necessário instalar. Sendo assim, mova essa pasta para um lugar seguro (recomendo o diretório /opt) e então crie um link para acessar o executável. Lembrando que você deverá dar permissão de execução para esse como programa. No Ubuntu, basta clicar sobre o executável e na guia Permissões marcar a permissão de execução como programa. Se quiser fazer pelo terminal é só digitar&lt;span style="font-weight: bold;"&gt; # sudo chmod +x&lt;/span&gt; e o nome do arquivo, desde que se esteja dentro do diretório do mesmo e então, para executar, &lt;span style="font-weight: bold;"&gt;# ./amv_ou_mpx&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;No blog Virus_cg tem disponível um pacote .deb para instalação do Bytessence AMV Converter, porém, necessita-se criar também o link para acessar o programa instalado, mas aí está o link para download: &lt;a href="http://www.adrive.com/public/d6e553e343eff78b89bac14231fc80be3e2b355be023e81cc15a0fb263d5f1e3.html"&gt;http://www.adrive.com/public/d6e553e343eff78b89bac14231fc80be3e2b355be023e81cc15a0fb263d5f1e3.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Veja os screenshots...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Bytessence AMV Converter 1.1&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(51, 0, 153); font-weight: bold;"&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_m-XQUvPhe-E/SICdM6AJIfI/AAAAAAAAAB0/Vv3BdZxHEg4/s1600-h/Captura_da_tela-Bytessence+AMVConverter+1.1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_m-XQUvPhe-E/SICdM6AJIfI/AAAAAAAAAB0/Vv3BdZxHEg4/s320/Captura_da_tela-Bytessence+AMVConverter+1.1.png" alt="" id="BLOGGER_PHOTO_ID_5224348412803621362" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Bytessence MPx Converter 1.0&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_m-XQUvPhe-E/SICdwE41N9I/AAAAAAAAAB8/ms3DfB7xuVw/s1600-h/Captura_da_tela-Bytessence+MPxConverter+::+Press+F1+for+help.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_m-XQUvPhe-E/SICdwE41N9I/AAAAAAAAAB8/ms3DfB7xuVw/s320/Captura_da_tela-Bytessence+MPxConverter+::+Press+F1+for+help.png" alt="" id="BLOGGER_PHOTO_ID_5224349017021167570" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2638220080014255612-485789582955949237?l=intelectolivre.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelectolivre.blogspot.com/feeds/485789582955949237/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2638220080014255612&amp;postID=485789582955949237' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/485789582955949237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/485789582955949237'/><link rel='alternate' type='text/html' href='http://intelectolivre.blogspot.com/2008/07/convertendo-vdeos-para-amv-mp4-no-linux.html' title='Convertendo Vídeos para AMV (mp4) no Linux'/><author><name>Lindoélio Lázaro</name><uri>http://www.blogger.com/profile/11294815657589032836</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_m-XQUvPhe-E/ScpTIcRCXcI/AAAAAAAAAP0/BOgweGDUBGo/S220/bonitao.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_m-XQUvPhe-E/SICdM6AJIfI/AAAAAAAAAB0/Vv3BdZxHEg4/s72-c/Captura_da_tela-Bytessence+AMVConverter+1.1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2638220080014255612.post-3969477477393233421</id><published>2008-07-14T10:21:00.006-03:00</published><updated>2008-07-18T11:32:34.754-03:00</updated><title type='text'>Exibindo, Gravando e Recuperando Imagens em Banco de Dados com JAVA</title><content type='html'>Após quase três dias de tentativas consegui realizar o que o título deste post promete com total equilibrio... E só então, depois de pronto, percebi o quanto é facil fazer isso, rsrsrsrs (se tivesse descoberto antes, talves tivesse dado menos patadas nas pessoas e teria ajudado alguns idosos a atravessarem a rua ao invés de empurrá-los, rsrsrs, brincadeira)...&lt;br /&gt;Neste post, usando swing, para aplicações desktop, vamos aprender a selecionar um arquivo de imagem alocado numa pasta do sistema, com iteração do JFileChooser (responsável por obter o path do arquivo no filesystem), visualiza-lo num JPanel adicionado no formulário, trasformar essa imagem num array de bytes, jogar esse array de bytes num campo do banco de dados do tipo BLOB ou LONGBLOB (ou ByteA, caso esteja usando PostgreSQL) e então recuperar o array de bytes transformando-o em imagem novamente para a visualização quando requerida...&lt;br /&gt;Primeiro, criamos uma classe para subscrever o método paitComponet() do JPanel setando a imagem a ser pintada (essa classe foi contribuição do amigo ViniGodoy do fórum do GUJ. Apenas acrescentei duas funcionalidades, criando um cálculo para redimensionamento da imagem, respeitando o aspect ratio da mesma, comparado às dimensões do JPanel)...&lt;br /&gt;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;import java.awt.Graphics2D;&lt;br /&gt;import java.awt.Paint;&lt;br /&gt;import java.awt.TexturePaint;&lt;br /&gt;import java.awt.geom.Rectangle2D;&lt;br /&gt;import java.awt.image.BufferedImage;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import javax.imageio.ImageIO;&lt;br /&gt;import javax.swing.JOptionPane;&lt;br /&gt;import javax.swing.JPanel;&lt;br /&gt;&lt;br /&gt;public class ImagePanel extends JPanel {&lt;br /&gt;   private BufferedImage image = null;&lt;br /&gt;   // Abaixo você define como a imagem será pintada no JPanel...&lt;br /&gt;   // Nesse caso, o padrão é o redimensionamento da imagem calculando&lt;br /&gt;   // o ASPECT RATIO da mesma e centralizando-a no JPanel...&lt;br /&gt;   private FillType fillType = FillType.ASPECT_RATIO_CENTER;&lt;br /&gt;&lt;br /&gt;   public ImagePanel(BufferedImage img) {&lt;br /&gt;       setImage(img);&lt;br /&gt;       }&lt;br /&gt;   &lt;br /&gt;       public ImagePanel(File imgSrc) throws IOException {&lt;br /&gt;       this(ImageIO.read(imgSrc));&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public ImagePanel(String fileName) throws IOException {&lt;br /&gt;               this(new File(fileName));&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public final void setImage(BufferedImage img) {&lt;br /&gt;               if (img == null) JOptionPane.showMessageDialog(null,&lt;br /&gt;                                                                      "Sem imagem para processar!");&lt;br /&gt;               this.image = img;&lt;br /&gt;               invalidate();&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public void setImage(File img) throws IOException {&lt;br /&gt;               setImage(ImageIO.read(img));&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public void setImage(String fileName) throws IOException {&lt;br /&gt;               setImage(new File(fileName));&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public BufferedImage getImage() {&lt;br /&gt;               return image;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       protected void paintComponent(Graphics g) {&lt;br /&gt;               super.paintComponent(g);&lt;br /&gt;               Graphics2D g2d = (Graphics2D) g.create();&lt;br /&gt;               fillType.drawImage(this, g2d, image);       &lt;br /&gt;       g2d.dispose();&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public FillType getFillType() {&lt;br /&gt;       return fillType;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;   public void setFillType(FillType fillType) {&lt;br /&gt;               if (fillType == null) JOptionPane.showMessageDialog(null,"Saída inválida!");&lt;br /&gt;               this.fillType = fillType;&lt;br /&gt;               invalidate();&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public static enum FillType {&lt;br /&gt;               // redimensiona a imagem para a dimensão do JPanel...&lt;br /&gt;               RESIZE {&lt;br /&gt;                       public void drawImage(&lt;br /&gt;                               JPanel panel, Graphics2D g2d, BufferedImage image) {&lt;br /&gt;                               g2d.drawImage(image, 0, 0, panel.getWidth(), panel.getHeight(), null);&lt;br /&gt;                       }&lt;br /&gt;               },&lt;br /&gt;               // mantém o tamanho natural da imagem e a centraliza no JPanel...&lt;br /&gt;               CENTER {&lt;br /&gt;                       public void drawImage(&lt;br /&gt;                               JPanel panel, Graphics2D g2d, BufferedImage image) {&lt;br /&gt;                               int left = (panel.getHeight() - image.getHeight()) / 2;&lt;br /&gt;               int top = (panel.getWidth() - image.getWidth()) / 2;&lt;br /&gt;               g2d.drawImage(image, top, left, null);&lt;br /&gt;           }&lt;br /&gt;       },&lt;br /&gt;               // caso a imagem seja menor que o JPanel, a coloca lado a lado...&lt;br /&gt;               SIDE_BY_SIDE {&lt;br /&gt;                       public void drawImage(&lt;br /&gt;                               JPanel panel, Graphics2D g2d, BufferedImage image) {&lt;br /&gt;                               Paint p = new TexturePaint(&lt;br /&gt;               image, new Rectangle2D.Float(&lt;br /&gt;               0, 0, image.getWidth(), image.getHeight()));&lt;br /&gt;               g2d.setPaint(p);&lt;br /&gt;               g2d.fillRect(0, 0, panel.getWidth(), panel.getHeight());&lt;br /&gt;           }&lt;br /&gt;       },&lt;br /&gt;       // calcula o aspect ratio da imagem e a pinta no JPanel no eixo (0,0)...&lt;br /&gt;       ASPECT_RATIO {&lt;br /&gt;           public void drawImage(&lt;br /&gt;               JPanel panel, Graphics2D g2d, BufferedImage image) {&lt;br /&gt;               int larguraImg = image.getWidth();&lt;br /&gt;                               int alturaImg = image.getHeight();&lt;br /&gt;                               int largura = 0, altura = 0;&lt;br /&gt;               double aspectoImg =&lt;br /&gt;               (double) larguraImg / (double) alturaImg;&lt;br /&gt;               double aspectoPanel =&lt;br /&gt;               (double) panel.getWidth() / (double) panel.getHeight();&lt;br /&gt;               &lt;br /&gt;               if (larguraImg &gt; panel.getWidth() || alturaImg &gt; panel.getHeight()) {&lt;br /&gt;                   if (aspectoImg == aspectoPanel) {&lt;br /&gt;                       largura = panel.getWidth();&lt;br /&gt;                       altura = panel.getHeight();&lt;br /&gt;                   }&lt;br /&gt;                   if (aspectoImg &gt; aspectoPanel) {&lt;br /&gt;                       largura = panel.getWidth();&lt;br /&gt;                       altura = (largura * alturaImg) / larguraImg;&lt;br /&gt;                   }&lt;br /&gt;                   if (aspectoImg &lt;&gt; altura = panel.getHeight();&lt;br /&gt;                       largura = (altura * larguraImg) / alturaImg;&lt;br /&gt;                   }&lt;br /&gt;               }&lt;br /&gt;                               else {&lt;br /&gt;                   largura = image.getWidth();&lt;br /&gt;                                       altura = image.getHeight();&lt;br /&gt;                               }&lt;br /&gt;               g2d.drawImage(image, 0, 0, largura, altura, null);&lt;br /&gt;           }&lt;br /&gt;       },&lt;br /&gt;       // calcula o aspect ratio da imagem e a pinta no JPanel, centralizando-a...&lt;br /&gt;               ASPECT_RATIO_CENTER {&lt;br /&gt;           public void drawImage(&lt;br /&gt;               JPanel panel, Graphics2D g2d, BufferedImage image) {&lt;br /&gt;               int larguraImg = image.getWidth();&lt;br /&gt;               int alturaImg = image.getHeight();&lt;br /&gt;               int largura = 0, altura = 0;&lt;br /&gt;                               double aspectoImg =&lt;br /&gt;               (double) larguraImg / (double) alturaImg;&lt;br /&gt;               double aspectoPanel =&lt;br /&gt;               (double) panel.getWidth() / (double) panel.getHeight();&lt;br /&gt;               &lt;br /&gt;                               if (larguraImg &gt; panel.getWidth() || alturaImg &gt; panel.getHeight()) {&lt;br /&gt;                   if (aspectoImg == aspectoPanel) {&lt;br /&gt;                       largura = panel.getWidth();&lt;br /&gt;                       altura = panel.getHeight();&lt;br /&gt;                   }&lt;br /&gt;                   if (aspectoImg &gt; aspectoPanel) {&lt;br /&gt;                       largura = panel.getWidth();&lt;br /&gt;                       altura = (largura * alturaImg) / larguraImg;&lt;br /&gt;                   }&lt;br /&gt;                   if (aspectoImg &lt;&gt; altura = panel.getHeight();&lt;br /&gt;                       largura = (altura * larguraImg) / alturaImg;&lt;br /&gt;                   }&lt;br /&gt;               }&lt;br /&gt;               else {&lt;br /&gt;                   largura = image.getWidth();&lt;br /&gt;                   altura = image.getHeight();&lt;br /&gt;               }&lt;br /&gt;               int left = (panel.getHeight() - altura) / 2;&lt;br /&gt;               int top = (panel.getWidth() - largura) / 2;&lt;br /&gt;               &lt;br /&gt;                               g2d.drawImage(image, top, left, largura, altura, null);&lt;br /&gt;           }&lt;br /&gt;               };&lt;br /&gt;&lt;br /&gt;               public abstract void drawImage(&lt;br /&gt;               JPanel panel, Graphics2D g2d, BufferedImage image);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Agora vamos implementar o procura do arquivo de imagem no filesystem e a visualização no JPanel. Para isso, vamos usar o JFileChooser (com a dica de como eu adicionei um preview ao JFileChooser para pré-visualizar as imagens enquanto procura a desejada, facilitando a procura).&lt;br /&gt;Criaremos uma classe responsável por pré-visualizar os arquivos de imagem dentro do JFileChooser, a saber...&lt;br /&gt;&lt;br /&gt;import java.awt.Dimension;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;import java.awt.Image;&lt;br /&gt;import java.beans.PropertyChangeEvent;&lt;br /&gt;import java.beans.PropertyChangeListener;&lt;br /&gt;import java.io.File;&lt;br /&gt;import javax.swing.ImageIcon;&lt;br /&gt;import javax.swing.JComponent;&lt;br /&gt;import javax.swing.JFileChooser;&lt;br /&gt;&lt;br /&gt;public class ImageFileChooser extends JComponent implements&lt;br /&gt;       PropertyChangeListener {&lt;br /&gt;   ImageIcon painelImagem = null;&lt;br /&gt;   File arquivo = null;&lt;br /&gt; &lt;br /&gt;   public ImageFileChooser(JFileChooser fc) {&lt;br /&gt;       setPreferredSize(new Dimension(170,230));&lt;br /&gt;       fc.addPropertyChangeListener(this);&lt;br /&gt;   } &lt;br /&gt; &lt;br /&gt;   public void loadImage() { &lt;br /&gt;       if (arquivo == null) { &lt;br /&gt;           painelImagem = null; &lt;br /&gt;           return; &lt;br /&gt;       } &lt;br /&gt;       ImageIcon img = new ImageIcon(arquivo.getPath());&lt;br /&gt;       if (img != null) {&lt;br /&gt;           if (img.getIconWidth() &gt; 170) {&lt;br /&gt;               painelImagem = new ImageIcon(&lt;br /&gt;               img.getImage().getScaledInstance(170, -1, Image.SCALE_DEFAULT));&lt;br /&gt;           }&lt;br /&gt;           else painelImagem = img;&lt;br /&gt;       }&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;   public void propertyChange(PropertyChangeEvent e) {&lt;br /&gt;       boolean atualizar = false;&lt;br /&gt;       String propriedades = e.getPropertyName();&lt;br /&gt;               if (JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(propriedades)) {&lt;br /&gt;           arquivo = null;&lt;br /&gt;           atualizar = true;&lt;br /&gt;       }&lt;br /&gt;       else if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(propriedades)) {&lt;br /&gt;           arquiv0 = (File) e.getNewValue();&lt;br /&gt;                       atualizar = true;&lt;br /&gt;       }&lt;br /&gt;       if (atualizar) {&lt;br /&gt;           painelImagem = null;&lt;br /&gt;           if (isShowing()) {&lt;br /&gt;               loadImage();&lt;br /&gt;                               repaint();&lt;br /&gt;           }&lt;br /&gt;               }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   protected void paintComponent(Graphics g) {&lt;br /&gt;       if (painelImagem == null) loadImage();&lt;br /&gt;       else {&lt;br /&gt;           int x = getWidth()/2 - painelImagem.getIconWidth()/2;&lt;br /&gt;           int y = getHeight()/2 - painelImagem.getIconHeight()/2;&lt;br /&gt;           if (y &lt; y =" 0;                 }&lt;br /&gt;       }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;No evento ActionPerformed do botão de "procurar" a imgem, inicie o JFileChooser...&lt;br /&gt;&lt;br /&gt;// instancie os seguintes tipos depois de importar as bibliotecas...&lt;br /&gt;private ImageFileChooser imagePrev = null;&lt;br /&gt;private JFileChooser fc = new JFileChooser();&lt;br /&gt;private ImagePanel quadroImagem = null;&lt;br /&gt;private BufferedImage img;&lt;br /&gt;//(...)&lt;br /&gt;private void btnProcurarActionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;       if (imagePrev == null) imagePrev = new ImageFileChooser(fc);&lt;br /&gt;       // adiciona a nova funcionalidade de preview...&lt;br /&gt;       fc.setAccessory(imagePrev);&lt;br /&gt;       if (fc.showOpenDialog(this) == JFileChooser.CANCEL_OPTION) return;&lt;br /&gt;       try{&lt;br /&gt;       // cria um objeto do tipo BufferedImage do arquivo selecionado...&lt;br /&gt;       img = ImageIO.read(new File(fc.getSelectedFile().getAbsolutePath()));&lt;br /&gt;       // inicia o processo para reescrever o método paintComponent do JPanel...&lt;br /&gt;       if (quadroImagem == null) quadroImagem = new ImagePanel(img);&lt;br /&gt;       quadroImagem.setImage(img);&lt;br /&gt;       painelImagem.add(quadroImagem);&lt;br /&gt;       painelImagem.repaint();&lt;br /&gt;       painelImagem.validate();&lt;br /&gt;   }&lt;br /&gt;   catch (IOException e) {&lt;br /&gt;       JOptionPane.showMessageDialog(this, "Não foi possível ler a imagem!");&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Pronto! Imagem visualizada no JPanel com sucesso!&lt;br /&gt;E então vamos transformar essa imagem selecionada em um array de bytes (um monte de bytes que compõe o arquivo) e gravá-lo no banco de dados, implementando um método de persistência com PreparedStatement...&lt;br /&gt;&lt;br /&gt;private void incluirRegistro() {&lt;br /&gt;   try {&lt;br /&gt;       conexao.conectar();&lt;br /&gt;       PreparedSatement pstmt = conexao.con.prepareStatement(&lt;br /&gt;               "Insert into Imagens (Imagem_Img) Values (?)");&lt;br /&gt;       // já temos a imagem transformada numa BufferedImage, então é só convertê-la&lt;br /&gt;       // em array de bytes (tipo JPG)...&lt;br /&gt;       ByteArrayOutputStream bytesImg = new ByteArrayOutputStream();&lt;br /&gt;               ImageIO.write((BufferedImage)img, "jpg", bytesImg);&lt;br /&gt;       bytesImg.flush();&lt;br /&gt;       byte[] byteArray = bytesImg.toByteArray();&lt;br /&gt;       bytesImg.close();&lt;br /&gt;       // agora é só jogar no banco de dados...&lt;br /&gt;       pstmt.setBytes(1, byteArray);&lt;br /&gt;       pstmt.executeUpdate();&lt;br /&gt;       pstmt.close();&lt;br /&gt;   }&lt;br /&gt;   catch (IOException ex) {&lt;br /&gt;       Logger.getLogger(Logomarcas.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;       JOptionPane.showMessageDialog(this, "Não foi possível processar a imagem!");&lt;br /&gt;   }&lt;br /&gt;   catch (SQLException e) {&lt;br /&gt;       e.printStackTrace();&lt;br /&gt;       JOptionPane.showMessageDialog(this, "Falha na inclusão do registro!");&lt;br /&gt;   }&lt;br /&gt;   finally {&lt;br /&gt;       conexao.desconectar();&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Ótimo! Já que geramos uma BufferedImage para trabalharmos com a imagem selecionada do filesystem então vamos gerar outra para visualizarmos a imagem selecionada no banco de dados (gravada como array de bytes)...&lt;br /&gt;&lt;br /&gt;private void visualizarRegistroSelecionado() {&lt;br /&gt;   // você pode implementar qualquer forma para identificar o registro na tabela,&lt;br /&gt;   // porém vamos simplificar aqui fixando o ID 20, considerando ID como&lt;br /&gt;   // chave primária da tabela de imagens...&lt;br /&gt;   try {&lt;br /&gt;               conexao.conectar();&lt;br /&gt;       Statement stmt = conexao.con.createStatement();&lt;br /&gt;       ResultSet rs = stmt.executeQuery("Select * from Imagens where ID = 20");&lt;br /&gt;       if (rs.next()) {&lt;br /&gt;           // recuperamos o array de bytes convertendo-o numa BufferedImage (img)...&lt;br /&gt;           img = ImageIO.read(new ByteArrayInputStream(rs.getBytes("Imagem_Img")));&lt;br /&gt;           // e então adicionamos essa BufferedImage para ser pintada no JPanel de visualização...&lt;br /&gt;           if (quadroImagem == null) quadroImagem = new ImagePanel(img);&lt;br /&gt;           quadroImagem.setImage(img);&lt;br /&gt;           painelImagem.add(quadroImagem);&lt;br /&gt;           painelImagem.repaint();&lt;br /&gt;           painelImagem.validate();&lt;br /&gt;       }&lt;br /&gt;               rs.close();&lt;br /&gt;       stmt.close();&lt;br /&gt;   }&lt;br /&gt;   catch (IOException ex) {&lt;br /&gt;               Logger.getLogger(Logomarcas.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;       }       &lt;br /&gt;   catch (SQLException e){&lt;br /&gt;               e.printStackTrace();&lt;br /&gt;       }&lt;br /&gt;       finally {&lt;br /&gt;               conexao.desconectar();&lt;br /&gt;       }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2638220080014255612-3969477477393233421?l=intelectolivre.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelectolivre.blogspot.com/feeds/3969477477393233421/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2638220080014255612&amp;postID=3969477477393233421' title='41 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/3969477477393233421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/3969477477393233421'/><link rel='alternate' type='text/html' href='http://intelectolivre.blogspot.com/2008/07/exibindo-gravando-e-recuperando-imagens.html' title='Exibindo, Gravando e Recuperando Imagens em Banco de Dados com JAVA'/><author><name>Lindoélio Lázaro</name><uri>http://www.blogger.com/profile/11294815657589032836</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_m-XQUvPhe-E/ScpTIcRCXcI/AAAAAAAAAP0/BOgweGDUBGo/S220/bonitao.jpg'/></author><thr:total>41</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2638220080014255612.post-7413879799065475969</id><published>2008-07-11T09:04:00.005-03:00</published><updated>2008-07-11T09:54:56.955-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Abrindo arquivos .cdr (Corel Draw) no Inkscape</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_m-XQUvPhe-E/SHdW3uy8k8I/AAAAAAAAAA8/ER6ZheguAmE/s1600-h/Inkscape.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_m-XQUvPhe-E/SHdW3uy8k8I/AAAAAAAAAA8/ER6ZheguAmE/s320/Inkscape.png" alt="" id="BLOGGER_PHOTO_ID_5221737808413889474" border="0" /&gt;&lt;/a&gt;Preciso confessar um pecado...&lt;br /&gt;"Sempre praguejei o linux por não abrir arquivos .cdr, nativos do Corel Draw!"&lt;br /&gt;Foi aí, então, que resolvi fazer uma última tentativa de abrir um arquivo .cdr o qual precisava muito ao menos visualizar... Dei uma googlada, como costume de todos os internautas, e achei uma notícia maravilhosa! A nova versão do Inkscape (programa livre para desenhos vetoriais, no estilo Corel Draw) pode abrir arquivos .cdr e trabalhar com eles como formato nativo, ou seja, você não vai precisar importar nem exportar para que o Corel Draw volte a reconhecer o arquivo nativamente... Tudo isso graças a um novo utilitário chamado UniConvertor, capaz de integrar ao Inkscape as funcionalidades necessárias para editar diversos tipos de arquivos extendidos do Corel Draw desde a versão 7 até a recente X4, e ainda abrirá arquivos do Adobe Illustrator com base PostScript...&lt;br /&gt;Então vamos instalar!&lt;br /&gt;Primeiro certifique-se de que seu Inkscape esteja devidamente instalado... Caso não esteja, existem pacotes do Inkscape em praticamente todos os tipos de pacote linux, e você poderá ainda encontrá-lo facilmente nos repositórios das principais distros...&lt;br /&gt;E então baixe o UniConvertor do site do projeto clicando &lt;a href="http://www.sk1project.org/modules.php?name=Products&amp;amp;product=uniconvertor"&gt;aqui&lt;/a&gt;, com preferência para a última versão, e instale-o normalmente... Enquanto escrevo este post ele se encontra na versão 1.1.2, com pacotes de instalação em RPM e .EXE (para a versão do Inkscape for Windows)...&lt;br /&gt;Depois da instalação não notará qualquer mudança expressiva no sistema, porém agora seu Inkscape poderá abrir arquivos .cdr e outros proprietários nativamente! Sem maior segredo! Só iniciar o Inkscape e trabalhar com a nova gama de arquivos!&lt;br /&gt;Usem e abusem!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2638220080014255612-7413879799065475969?l=intelectolivre.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelectolivre.blogspot.com/feeds/7413879799065475969/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2638220080014255612&amp;postID=7413879799065475969' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/7413879799065475969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/7413879799065475969'/><link rel='alternate' type='text/html' href='http://intelectolivre.blogspot.com/2008/07/abrindo-arquivos-cdr-corel-draw-no.html' title='Abrindo arquivos .cdr (Corel Draw) no Inkscape'/><author><name>Lindoélio Lázaro</name><uri>http://www.blogger.com/profile/11294815657589032836</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_m-XQUvPhe-E/ScpTIcRCXcI/AAAAAAAAAP0/BOgweGDUBGo/S220/bonitao.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_m-XQUvPhe-E/SHdW3uy8k8I/AAAAAAAAAA8/ER6ZheguAmE/s72-c/Inkscape.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2638220080014255612.post-342331950622180052</id><published>2008-06-27T09:33:00.010-03:00</published><updated>2008-07-28T09:12:17.342-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Banco de Dados'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Instalando e configurando o PostgreSQL no Ubuntu</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_m-XQUvPhe-E/SGUGcaEIWTI/AAAAAAAAAAs/Ap-3og6JNZs/s1600-h/postgresql+e+ubuntu.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_m-XQUvPhe-E/SGUGcaEIWTI/AAAAAAAAAAs/Ap-3og6JNZs/s320/postgresql+e+ubuntu.jpg" alt="" id="BLOGGER_PHOTO_ID_5216582828481337650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Todos nós sabemos que o Ubuntu Linux é um Sistema Operacional perfeitamente adaptável além de uma das melhores opções para desenvolvedores de software de qualquer nível. E, novamente, todos nós sabemos que o PostgreSQL é um dos melhores SGBD's de código livre da atualidade, principalmente, na minha opinião, por se basear na plataforma Unix.&lt;br /&gt;Por muito apanhar até conseguir instalar e configurar corretamente o PostgreSQL no meu Ubuntu, disponho agora um breve guia de instalação e configuração para permissões de acesso em ferramentas de modelagem, bem como para acessos remotos em rede baseada no protocolo TCP/IP.&lt;br /&gt;Vamos considerar que o Ubuntu já esteja instalado e em sua versão 8.04 (deverá funcionar da mesma forma em versões anteriores)...&lt;br /&gt;O PostgreSQL já se encontra nos repositórios oficiais da distro nas versões 8.2 e 8.3, bem como num metapacote preparado pela equipe da Canonical.&lt;br /&gt;Não temos muitas ferramentas de administração totalmente voltadas para PostgreSQL, talvez devido à Orientação a Objetos na modelagem, porém, dentre as poucas, o PGAdminIII (ou PGAdmin3) se destaca com uma interface simples, customizável e competente ao que se destina. Sendo assim, a instalação e configuração da mesma entra no nosso guia.&lt;br /&gt;Mãos à obra!&lt;br /&gt;&lt;br /&gt;Desde já, abra um terminal de comandos e inicie sessão em modo superusuario (&lt;span style="font-weight: bold;"&gt;sudo su&lt;/span&gt;) ...&lt;br /&gt;Vamos instalar a última versão do PostgreSQL (8.3), que vem corrigida em muitos detalhes em relação à versão anterior (8.2)...&lt;br /&gt;Abra o Gerenciador de Pacotes Synaptic com o comando...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# synaptic&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Procure e marque para instalação os seguintes pacotes, aceitando as indicações de dependências...&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;pgadmin3&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;postgresql-8.3&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;postgresql-client-8.3&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;postgresql-client-common&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;postgresql-common&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;postgresql-contrib-8.3&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;Pronto! PostgreSQL instalado! Viva o apt-get!&lt;br /&gt;&lt;br /&gt;Agora vamos à etapa de configuração...&lt;br /&gt;Só a título de teste (se você quiser), abra o PGAdmin3 e tente adicionar uma instância de servidor com qualquer nome na máquina localhost... Paradoxalmente, se tudo ocorrer bem abrirá uma mensagem de erro como essa:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_m-XQUvPhe-E/SGTxmc5EYcI/AAAAAAAAAAU/R3r8Mlj3kQQ/s1600-h/Erro+pgAdmin+III.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_m-XQUvPhe-E/SGTxmc5EYcI/AAAAAAAAAAU/R3r8Mlj3kQQ/s320/Erro+pgAdmin+III.png" alt="" id="BLOGGER_PHOTO_ID_5216559911294755266" border="0" /&gt;&lt;/a&gt;Isso acontece porque ainda não permitimos ao usuário "postgres" se conectar no banco através da ferramenta de administração, sendo que o mesmo, por padrão, não possui senha...&lt;br /&gt;Então vamos alterar alguns arquivos de configuração do PostgreSQL, a saber: pg_hba.conf e postgresql.conf... No Ubuntu o sistema de diretório desses arquivos fica: /etc/postgresql/8.3/main/, então basta entrar na pasta "main" e acessar os arquivos para edição com os comandos...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# cd /etc/postgresql/8.3/main&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dentro da pasta "main" abra o arquivo "pg_hba.conf"...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# gedit pg_hba.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para permitir a administração por usuários além do padrão "postgres", bem como a autenticação para tal, procure as linhas:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# Database administrative login by UNIX sockets&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;local                 all                  postgres      ident sameuser&lt;/span&gt;&lt;br /&gt;... E substitua a linha não comentada (sem #) por:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;local                 all                   all                            trust&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para liberar a conexão para seus usuários, procure as linhas:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# "local" is for Unix domain socket connections only&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;local                 all                   all                            ident sameuser&lt;/span&gt;&lt;br /&gt;... E mude a autenticação, substituindo a linha não comentada (sem #) por:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;local                 all                   all                            trust&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para permitir conexões remotas por usuários numa rede com tunelagem IPv4, sem distinção de host's, procure as linhas:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# IPv4 local connections:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;host                all              all              127.0.0.1/32               md5&lt;/span&gt;&lt;br /&gt;... E libere todos os host's, atribuindo-lhes autenticação por senha, substituindo a linha não comentada (sem #) por:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;host                all                    all                0.0.0.0/0                         trust&lt;/span&gt;&lt;br /&gt;ou&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;host                all                    all                0.0.0.0  0.0.0.0                trust&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Salve o arquivo e feche o editor de texto...&lt;br /&gt;&lt;br /&gt;Agora, para liberar essas configurações vamos editar o arquivo "postgresql.conf", também na pasta "main"...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# gedit postgresql.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para liberar as conexões por IP na rede, procure a linha comentada:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# listen_addresses = 'localhost'&lt;/span&gt;&lt;br /&gt;... Retire o comentario e altere a autenticação para qualquer máquina, ficando assim:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listen_addresses = '*'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Procure também a linha &lt;span style="font-weight: bold;"&gt;ssl = true&lt;/span&gt; só para garantir que está ativado...&lt;br /&gt;&lt;br /&gt;Salve o arquivo e feche o editor de textos.&lt;br /&gt;&lt;br /&gt;Precisamos, então, reiniciar o servidor do postgresql para que as alterações tenham efeito:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# /etc/init.d/postgresql-8.3 restart&lt;br /&gt;&lt;/span&gt;... Aguarde o status de [OK] e então pode fechar o terminal.&lt;br /&gt;&lt;br /&gt;Pronto! PostgreSQL configurado! Viva os neurônios torrados pra editar arquivos de texto!!!&lt;br /&gt;&lt;br /&gt;Agora abra novamente o PGAdmin3 e adicione um servidor, preenchendo da seguinte forma os campos:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_m-XQUvPhe-E/SGT8XMK5tWI/AAAAAAAAAAc/rHZxLt_FpAk/s1600-h/Novo+Registro+de+Servidor.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_m-XQUvPhe-E/SGT8XMK5tWI/AAAAAAAAAAc/rHZxLt_FpAk/s320/Novo+Registro+de+Servidor.png" alt="" id="BLOGGER_PHOTO_ID_5216571743736018274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ao clicar em OK, se você seguiu corretamente os passos, o PGAdmin3 criará uma nova instância do servidor conectado ao banco de dados padrão "postgres" pelo usuário padrão "postgres"...&lt;br /&gt;Assim, você pode criar novas roles (usuários), dar permissões, fazer backup's, criar novos bancos, etc...&lt;br /&gt;Lembrando que você pode alterar antes a senha do usuário "postgres" pelo terminal de comandos, se quiser. Para isso, inicie sessão no terminal com o usuário "postgres" e abra o psql (ferramenta de administração do PostgreSQL por comandos)...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# sudo su postgres -c psql postgres&lt;/span&gt;&lt;br /&gt;Com o psql preparado digite o comando:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ALTER USER postgres WITH PASSWORD 'novasenha';&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;Se você tem um rede configurada pode testar a conexão através do IP de um servidor, ou ainda, pode limitar, lá no arquivo pg_hba.conf, quais IP's ou máscaras poderão se autenticar, etc...&lt;br /&gt;&lt;br /&gt;Chegamos ao fim... Divirta-se!&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2638220080014255612-342331950622180052?l=intelectolivre.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://intelectolivre.blogspot.com/feeds/342331950622180052/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2638220080014255612&amp;postID=342331950622180052' title='20 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/342331950622180052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2638220080014255612/posts/default/342331950622180052'/><link rel='alternate' type='text/html' href='http://intelectolivre.blogspot.com/2008/06/instalando-e-configurando-o-postgresql.html' title='Instalando e configurando o PostgreSQL no Ubuntu'/><author><name>Lindoélio Lázaro</name><uri>http://www.blogger.com/profile/11294815657589032836</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_m-XQUvPhe-E/ScpTIcRCXcI/AAAAAAAAAP0/BOgweGDUBGo/S220/bonitao.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_m-XQUvPhe-E/SGUGcaEIWTI/AAAAAAAAAAs/Ap-3og6JNZs/s72-c/postgresql+e+ubuntu.jpg' height='72' width='72'/><thr:total>20</thr:total></entry></feed>
