<?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-868707312759914756</id><updated>2011-11-27T15:37:12.703-08:00</updated><title type='text'>Repositório Aberto</title><subtitle type='html'>"one day, the sources will be open"</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-4317123259273992605</id><published>2010-08-10T19:15:00.000-07:00</published><updated>2010-08-10T19:21:18.936-07:00</updated><title type='text'>À caminho da certificação Zend Community Enginner</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.neerajagarwal.net/wp-content/uploads/2010/07/zend-certified-engineer.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="309" src="http://www.neerajagarwal.net/wp-content/uploads/2010/07/zend-certified-engineer.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Gostaria de comunicar que junto com uma galera do meu trabalho aqui em SP, formamos um grupo de estudos para tirar uma certificação da Zend, a ZCE ( para programadores PHP5 ).&amp;nbsp;O objetivo do grupo é estarmos com a certificação no máximo até dezembro desse ano,e assim consequentemente dando aquele "up" nos nossos Currículos e claro, também no "knowledge" &amp;nbsp;=) .&lt;br /&gt;&lt;br /&gt;Estarei sempre postando o que tivermos estudado, e sempre que as aulas forem de minha autoria, estou traduzindo os capítulos do "Zend PHP 5 Certification Study Guide". Então fiquem atentos as novidades!&lt;br /&gt;&lt;br /&gt;=D&lt;br /&gt;&lt;br /&gt;Abraços&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-4317123259273992605?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/4317123259273992605/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=4317123259273992605' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/4317123259273992605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/4317123259273992605'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2010/08/caminho-da-certificacao-zend-community.html' title='À caminho da certificação Zend Community Enginner'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-3307145956885500662</id><published>2010-08-03T06:09:00.000-07:00</published><updated>2010-08-03T06:09:20.871-07:00</updated><title type='text'>Dica de otimização de desempenho em PHP</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://driblog.blogs.dri.pt/files/2010/05/php1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://driblog.blogs.dri.pt/files/2010/05/php1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Muitos talvez ja conheçam esse "macete", porém eu confesso que só conheci essa forma de utilizar o echo a pouco tempo. Essa forma de usar o echo pode deixar seu script php até 5x mais rápido, de acordo com testes realizados. Entäo ao invés de usar o modo :&lt;br /&gt;&lt;br /&gt;&lt;!--?php&lt;/p--&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "conteudo 1";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "conteudo 2";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "conteudo 3"; &lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Se pode utiliza-lo assim:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "conteudo 1",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "conteudo 2",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "conteudo 3"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Isso me lembra o &lt;a href="http://ifranca.com.br/blog/?p=57"&gt;chainning&lt;/a&gt; , talvez até tenha sido implementado assim mesmo...&lt;br /&gt;Então fica aí a dica...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-3307145956885500662?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/3307145956885500662/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=3307145956885500662' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/3307145956885500662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/3307145956885500662'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2010/08/dica-de-otimizacao-de-desempenho-em-php.html' title='Dica de otimização de desempenho em PHP'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-1390935223459508863</id><published>2010-06-30T19:06:00.000-07:00</published><updated>2010-06-30T19:06:37.850-07:00</updated><title type='text'>Instalando o AMSN no Debian</title><content type='html'>&lt;a href="http://fherx.files.wordpress.com/2008/08/amsn9.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://fherx.files.wordpress.com/2008/08/amsn9.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;Abra o terminal e faça login como root:&lt;br /&gt;&lt;br /&gt;su &lt;senha do="" root=""&gt;&lt;/senha&gt;&lt;br /&gt;&lt;br /&gt;Em seguida altere o arquivo com os repositórios:&lt;br /&gt;&lt;br /&gt;gedit /etc/apt/souces.list&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Acrescente ao final do arquivo esse repositório&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;deb&amp;nbsp;&lt;a href="http://repositorio-livre.wiki.br/n6" style="color: #333333; text-decoration: none;" target="_blank"&gt;http://repositorio-livre.wiki.br/n6&lt;/a&gt;&amp;nbsp;main contrib&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;Salve o arquivo e feche.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;No terminal digite apt-get update, para o gerenciador de pacotes poder encontrar seu novo repositório.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;Em seguida, instale o amsn com o comando apt-get install amsn&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;Se tudo correu bem, após a finalização do último comando o amsn ja estará disponível em applicativos/internet/amsn&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;Fica a dica!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small; line-height: 16px;"&gt;Abraços&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif; font-size: small; line-height: 16px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif; font-size: small; line-height: 16px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-1390935223459508863?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/1390935223459508863/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=1390935223459508863' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/1390935223459508863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/1390935223459508863'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2010/06/instalando-o-amsn-no-debian.html' title='Instalando o AMSN no Debian'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-2693687373684504202</id><published>2010-06-23T13:00:00.001-07:00</published><updated>2010-06-28T08:17:05.269-07:00</updated><title type='text'>Sorteio de notebooks e hospedagens</title><content type='html'>É com muito prazer que venho divulgar uma promoção bacana do blog &lt;a href="http://criarsites.com/"&gt;Criar sites&lt;/a&gt; ( http://criarsites.com/ )  e pela &lt;a href="http://www.zooming.com.br/"&gt;Zooming&lt;/a&gt; ( http://www.zooming.com.br/ ).&lt;br /&gt;O primeiro colocado levará um notebook ( podendo optar dentre 6 modelos ) e os 4 colocados seguintes ganharão 1 ano de hospedagem free!&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Corre lá e veja as regras para participar dessa promoçao!&lt;br /&gt;&lt;br /&gt;http://www.criarsites.com/concorra-a-1-netbook-5-hospedagens-5-dominios-no-valor-de-r1700/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-2693687373684504202?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/2693687373684504202/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=2693687373684504202' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/2693687373684504202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/2693687373684504202'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2010/06/sorteio-de-notebooks-e-hospedagens.html' title='Sorteio de notebooks e hospedagens'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-4025659594651740744</id><published>2009-10-30T05:50:00.001-07:00</published><updated>2010-06-30T19:10:35.369-07:00</updated><title type='text'>Install Amarok 1.4 on Ubuntu 9.04</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.jaksonwilian.objectis.net/news/amarok-nao-toca-musica/image" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.jaksonwilian.objectis.net/news/amarok-nao-toca-musica/image" /&gt;&lt;/a&gt;&lt;/div&gt;Been using Jaunty since it came out. Loving the speed, simplicity and estatics!!&lt;br /&gt;&lt;br /&gt;Everything works well except for Amarok 2 which ships default with Jaunty. I’ve been an Amarok 1.4 user for a long time now, moving to Amarok 2 is not something I fancy doing right now. Fortunately getting Amarok 1.4 onto Ubuntu is easy. Here’s how;&lt;br /&gt;&lt;br /&gt;Create a new source file in “/etc/apt/sources.list.d/” and call it “amarok14.list”.&lt;br /&gt;&lt;br /&gt;root@jackal:/# touch /etc/apt/sources.list.d/amarok14.list&lt;br /&gt;&lt;br /&gt;Add these 2 lines to the source file. You can either copy &amp;amp; paste or run the echo command seen below.&lt;br /&gt;&lt;br /&gt;deb http://ppa.launchpad.net/bogdanb/ppa/ubuntu jaunty main&lt;br /&gt;deb-src http://ppa.launchpad.net/bogdanb/ppa/ubuntu jaunty main&lt;br /&gt;&lt;br /&gt;root@jackal:/# echo "deb http://ppa.launchpad.net/bogdanb/ppa/ubuntu jaunty main" &amp;gt;&amp;gt; /etc/apt/sources.list.d/amarok14.list&lt;br /&gt;root@jackal:/# echo "deb-src http://ppa.launchpad.net/bogdanb/ppa/ubuntu jaunty main" &amp;gt;&amp;gt; /etc/apt/sources.list.d/amarok14.list&lt;br /&gt;&lt;br /&gt;Make sure to register the PPA GPG key.&lt;br /&gt;&lt;br /&gt;root@jackal:/# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0x1d7e9dd033e89ba781e32a24b9f1c432ae74ae63&lt;br /&gt;&lt;br /&gt;Update your sources.&lt;br /&gt;&lt;br /&gt;root@jackal:/# apt-get update&lt;br /&gt;&lt;br /&gt;Remove any old instance of Amarok&lt;br /&gt;&lt;br /&gt;root@jackal:/# apt-get remove amarok&lt;br /&gt;&lt;br /&gt;Install Amarok 1.4&lt;br /&gt;&lt;br /&gt;root@jackal:/# apt-get install amarok14&lt;br /&gt;&lt;br /&gt;That’s it. Buzz me if it doesn’t work.&lt;br /&gt;&lt;br /&gt;Referência : http://thedaneshproject.com/posts/install-amarok-14-on-ubuntu-904/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-4025659594651740744?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/4025659594651740744/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=4025659594651740744' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/4025659594651740744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/4025659594651740744'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2009/10/install-amarok-14-on-ubuntu-904.html' title='Install Amarok 1.4 on Ubuntu 9.04'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-6857047440653272280</id><published>2009-09-24T09:33:00.000-07:00</published><updated>2009-09-24T09:55:19.879-07:00</updated><title type='text'>Instalando o Symfony de forma diferente do modo convencional (do site do symfony)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://youknowriad.nomade-dz.com/wp-content/uploads/symfony.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 448px; height: 122px;" src="http://youknowriad.nomade-dz.com/wp-content/uploads/symfony.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bem, hoje eu me deparei com o seguinte problema : Tinha que instalar o symfony no meu fedora core 11, só que meu terminal ta zuado, não ta acessando a internet, meu yum ta bugado (ta tudo uma merda aqui no meu pc do trabalho! rs...). então a solução era instalar manualmente e colocar nas variáveis de ambiente, então como fazer? Simples assim:&lt;br /&gt;&lt;br /&gt;Primeiro baixe o Symfony : http://www.symfony-project.org/installation/1_2&lt;br /&gt;Descompate o arquivo : tar zxpf symfony-1.2-latest.tgz&lt;br /&gt;Renomeie a pasta : mv symfony-1.2.0 symfony&lt;br /&gt;Agora mova a pasta do symfony para o diretório que vc preferir (no meu caso para /usr/lib64/) :&lt;br /&gt;mv symfony /usr/lib64&lt;br /&gt;Agora que vem a malandragem, setar o caminho de execução nas variáveis de ambiente. Edite o arquivo /etc/bashrc (no ubuntu fica em /etc/bash.bashrc) : gedit /etc/bashrc&lt;br /&gt;&lt;br /&gt;E acrescente essas linhas ao fim do arquivo &lt;br /&gt;&lt;br /&gt;symfony="/usr/lib64/symfony/"&lt;br /&gt;CLASSPATH="$symfony:$symfony/data/bin/symfony:$."&lt;br /&gt;PATH="$symfony/data/bin/:$PATH"&lt;br /&gt;export symfony CLASSPATH PATH&lt;br /&gt;&lt;br /&gt;Feche e abra novamente o terminal, e para testar digite symfony -V &lt;br /&gt;Se tudo correr bem, ele deve exibir algo como symfony version 1.2.8 (/usr/lib64/symfony/lib), se não der certo &lt;strike&gt;ferrou&lt;/strike&gt; tente ver se seguiu os passos corretamente..&lt;br /&gt;Qualquer dúvida mande 1 comment!&lt;br /&gt;Abraço&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-6857047440653272280?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/6857047440653272280/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=6857047440653272280' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6857047440653272280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6857047440653272280'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2009/09/instalando-o-symfony-de-forma-diferente.html' title='Instalando o Symfony de forma diferente do modo convencional (do site do symfony)'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-4687521260560156296</id><published>2009-09-20T12:53:00.000-07:00</published><updated>2009-09-20T12:54:11.472-07:00</updated><title type='text'>Habilitar mod_rewrite no ubuntu 9.04</title><content type='html'>Esta é uma lição de Gilberto Albino, originalmente posta em seu blog http://www.gilbertoalbino.com/linux-habilitar-mod_rewrite-no-ubuntu/&lt;br /&gt;&lt;br /&gt;Após ter instalado o Apache, não só no Linux como também em outros sistemas operacionais, para quem utiliza o recurso de redirecionamento de URL’s,&lt;br /&gt;&lt;br /&gt;é preciso habilitar o módulo rewrite, conhecido por mod_rewrite.&lt;br /&gt;&lt;br /&gt;No Ubuntu há um procedimento bem fácil, porém, meio que engana bobo. A saber, você ativa um módulo usando uma lógica de comando apache:&lt;br /&gt;&lt;br /&gt;a2enmod&lt;br /&gt;&lt;br /&gt;Que é um codinome para: Apache 2 enable module.&lt;br /&gt;&lt;br /&gt;Então, para ativar o módulo de redirecionamento de URL’s, rewrite, o código ficaria assim:&lt;br /&gt;&lt;br /&gt;sudo a2enmod rewrite&lt;br /&gt;&lt;br /&gt;Feito isto bastaria reiniciar o servidor apache:&lt;br /&gt;&lt;br /&gt;sudo /etc/init.d/apache2 restart&lt;br /&gt;&lt;br /&gt;Por mais óbvio que pareça, o módulo rewrite foi ativado, mas o apache não configurou nada além da linha que ativa o módulo no arquivo de configuração do módulo, deixando assim por conta de você editar manualmente as linhas que possuem:&lt;br /&gt;&lt;br /&gt;AllowOverride None para&lt;br /&gt;&lt;br /&gt;AllowOverride All&lt;br /&gt;&lt;br /&gt;No arquivo /etc/apache2/sites-available/default.&lt;br /&gt;&lt;br /&gt;Então, abra o editor de texto:&lt;br /&gt;&lt;br /&gt;sudo gedit /etc/apache2/sites-available/default&lt;br /&gt;&lt;br /&gt;e procure pelas linhas com AllowOverride None e troque por AllowOverride All. ]&lt;br /&gt;&lt;br /&gt;Salve e feche o editor de textos e reinicie o apache :&lt;br /&gt;&lt;br /&gt;sudo /etc/init.d/apache2 restart&lt;br /&gt;&lt;br /&gt;É isto ai, agora está tudo funcionando!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-4687521260560156296?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/4687521260560156296/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=4687521260560156296' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/4687521260560156296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/4687521260560156296'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2009/09/habilitar-modrewrite-no-ubuntu-904.html' title='Habilitar mod_rewrite no ubuntu 9.04'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-659413296137296370</id><published>2009-08-19T10:37:00.000-07:00</published><updated>2009-08-19T10:38:41.324-07:00</updated><title type='text'>Instalando, configurando e administrando o Postgres</title><content type='html'>O PostgreSQL é um poderoso SGDB muito difundido no mundo livre e usando em aplicações que precisam de um bom desempenho.&lt;br /&gt;&lt;br /&gt;O PostgreSQL possui pacote *.tgz para o Slackware que facilita sua instalação. Você pode baixar o pacote de instalação no site www.linuxpackages.net, que só tem pacotes para Slackware.&lt;br /&gt;&lt;br /&gt;Feito isso, vamos aos passos para sua instalação, configuração e administração.&lt;br /&gt;&lt;br /&gt;Passo 1: Instalação do pacote.&lt;br /&gt;&lt;br /&gt;# installpkg postgres*.tgz&lt;br /&gt;&lt;br /&gt;Passo 2: Criar um grupo no sistema.&lt;br /&gt;&lt;br /&gt;# groupadd postgres&lt;br /&gt;&lt;br /&gt;Passo 3: Criar um usuário no sistema.&lt;br /&gt;&lt;br /&gt;# useradd -g postgres -s /bin/bash -d /var/lib/pgsql postgres&lt;br /&gt;&lt;br /&gt;Passo 4: Criar o local onde reside a estrutura do banco.&lt;br /&gt;&lt;br /&gt;# mkdir -p /var/lib/pgsql/data&lt;br /&gt;&lt;br /&gt;Passo 5: Mudar a permissão&lt;br /&gt;&lt;br /&gt;# chown -R postgres:postgres /var/lib/pgsql&lt;br /&gt;&lt;br /&gt;Passo 6: Logar como superusuário.&lt;br /&gt;&lt;br /&gt;# su postgres&lt;br /&gt;&lt;br /&gt;Passo 7: Iniciando a base de dados.&lt;br /&gt;&lt;br /&gt;$ initdb -D /var/lib/pgsql/data&lt;br /&gt;&lt;br /&gt;Passo 8: Iniciar o servidor.&lt;br /&gt;&lt;br /&gt;$ postmaster -i -D /var/lib/pgsql/data &gt; logfile 2&gt;&amp;1 &amp;&lt;br /&gt;&lt;br /&gt;ou&lt;br /&gt;&lt;br /&gt;# /etc/rc.d/rc.postgres start&lt;br /&gt;&lt;br /&gt;Passo 9: Criando um base de dados (Data Bases)&lt;br /&gt;&lt;br /&gt;$ createdb postgres&lt;br /&gt;&lt;br /&gt;Passo 10: Acessando a base de dados.&lt;br /&gt;&lt;br /&gt;$ psql postgres&lt;br /&gt;&lt;br /&gt;Pronto... Agora para criar as tabelas e inserir dados nelas é só usar os comandos SQL.&lt;br /&gt;&lt;br /&gt;OBS: Para ter acesso você deve logar como superusuário para o usuário postgres.&lt;br /&gt;&lt;br /&gt;O Postgres por padrão acessa as bases de dados sem senha, para fazer acesso com senha e melhorar a segurança do dados entre no arquivo pg_hba.conf.&lt;br /&gt;&lt;br /&gt;$ psql postgres&lt;br /&gt;postgres=# alter user postgres with encrypted password 'sua-senha';&lt;br /&gt;ALTER USER -&gt; RESPOSTA.&lt;br /&gt;&lt;br /&gt;$ vim /var/lib/pgsql/data/pg_hda.conf&lt;br /&gt;&lt;br /&gt;Localize mas ultimas linhas a palavra TRUST e mude para md5.&lt;br /&gt;&lt;br /&gt;Agora pare o servidor:&lt;br /&gt;&lt;br /&gt;$ pg_ctl stop -D /var/lib/pgsql/data/ -s -m fast&lt;br /&gt;&lt;br /&gt;ou&lt;br /&gt;&lt;br /&gt;# /etc/rc.d/rc.postgres stop&lt;br /&gt;&lt;br /&gt;Agora inicie o servidor:&lt;br /&gt;&lt;br /&gt;$ postmaster -i -D /var/lib/pgsql/data &gt; logfile 2&gt;&amp;1 &amp;&lt;br /&gt;&lt;br /&gt;ou&lt;br /&gt;&lt;br /&gt;# /etc/rc.d/rc.postgres start&lt;br /&gt;&lt;br /&gt;Pronto, agora só com senha o usuário consegue acessar a base de dados.&lt;br /&gt;&lt;br /&gt;Acesso remoto&lt;br /&gt;A porta para acesso remoto do Postgres é a: 5432&lt;br /&gt;&lt;br /&gt;Para configurar o acesso remoto entre no arquivo: postgresql.conf&lt;br /&gt;&lt;br /&gt;$ vim /var/lib/pgsql/data/postgresql.conf&lt;br /&gt;&lt;br /&gt;Localize a linha:&lt;br /&gt;&lt;br /&gt;#listen_addresses = '*' -&gt; para aceitar qualquer IP ou HOST do seu servidor&lt;br /&gt;&lt;br /&gt;#port = 5432 -&gt; desmarque&lt;br /&gt;&lt;br /&gt;Depois entre no arquivo: pg_hda.conf&lt;br /&gt;&lt;br /&gt;Este arquivo controla quais host tem permissão de conexão, como os clientes se autenticam, quais usuários do PostgreSQL tem acesso e que banco de dados eles podem acessar.&lt;br /&gt;&lt;br /&gt;local DATABASE USER METHOD [OPTION]&lt;br /&gt;host DATABASE USER CIDR-ADDRESS METHOD [OPTION]&lt;br /&gt;hostss1 DATABASE USER CIDR-ADDRESS METHOD [OPTION]&lt;br /&gt;hostnoss1 DATABASE USER CIDR-ADDRESS METHOD [OPTION]&lt;br /&gt;&lt;br /&gt;Sendo:&lt;br /&gt;&lt;br /&gt;    * tipo de conexão (local ou host)&lt;br /&gt;    * banco de dados (all=todos)&lt;br /&gt;    * usuários (all=todos)&lt;br /&gt;    * IP e mascara (padrão CIDR)&lt;br /&gt;    * método (reject,trust,password,md5,ident same user) &lt;br /&gt;&lt;br /&gt;Exemplo 01: Acessa a base de dados sem senha:&lt;br /&gt;&lt;br /&gt;host base_de_dados all 192.168.1.1/32 TRUST&lt;br /&gt;&lt;br /&gt;Exemplo 02: Acessa a base de dados com senha:&lt;br /&gt;&lt;br /&gt;host base_de_dados all 192.168.1.1/32 md5&lt;br /&gt;host all all IP_do_Client/32 md5&lt;br /&gt;&lt;br /&gt;Exemplo 03: Restringe acesso externo para o usuário postgres:&lt;br /&gt;&lt;br /&gt;local all postgres ident sameuser&lt;br /&gt;&lt;br /&gt;Para fazer conexão:&lt;br /&gt;&lt;br /&gt;# psql -h 192.168.1.1 database usuário &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vivaolinux.com.br/dica/Instalando-configurando-e-administrando-o-Postgres"&gt;Fonte&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-659413296137296370?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/659413296137296370/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=659413296137296370' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/659413296137296370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/659413296137296370'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2009/08/instalando-configurando-e-administrando.html' title='Instalando, configurando e administrando o Postgres'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-6503685910831491</id><published>2009-07-22T11:37:00.000-07:00</published><updated>2009-07-22T11:39:14.094-07:00</updated><title type='text'>15 dicas para deixar seu site PHP mais seguro</title><content type='html'>1. Evite colocar seu arquivo de conexão com banco de dados no mesmo diretório das suas páginas ou no diretório usado para includes. O melhor a fazer é colocá-lo em algum diretório fora da raiz do site.&lt;br /&gt;&lt;br /&gt;2. Desligue no servidor web a configuração que permite a listagem dos arquivos presentes nos diretórios que não tem um index.php.&lt;br /&gt;&lt;br /&gt;3. Evite usar o nome includes para o diretório onde você colocará esse tipo de arquivo.&lt;br /&gt;&lt;br /&gt;4. No diretório que você usar para colocar seus arquivos de include, sempre coloque um arquivo index.htm e um index.php em branco. Isso evitará que o servidor liste o conteúdo desse diretório caso esteja com a configuração para listagens habilitada.&lt;br /&gt;&lt;br /&gt;5. Jamais use a extensão .inc para seus arquivos de include. Isso pode fazer com que o servidor web mostre dados importantes contidos nesses arquivos. Use sempre a extensão .php. Dessa forma o arquivo sempre será processado antes de ser entregue para os usuários.&lt;br /&gt;&lt;br /&gt;6. Desligue o error_reporting no servidor de produção. Erros em scripts PHP normalmente exibem a localização física dos arquivos no servidor ou mostram as consultas inteiras que estão sendo usadas para acessar o banco de dados, por exemplo. Com o error_reporting desligado, essas informações não serão mostradas.&lt;br /&gt;&lt;br /&gt;7. Ao criar uma área de administração do site, evite usar nomes óbvios como admin.&lt;br /&gt;&lt;br /&gt;8. Ainda na mesma área administrativa, faça configurações que obriguem os usuários a mudar de senha freqüentemente e que não aceite senhas muito simples. Evite também a criação de usuários padrão como: admin, administrador, admintrator, root.&lt;br /&gt;&lt;br /&gt;9. Em formulários que enviam dados diretamente para o banco, tomar cuidado com SQL Injection. Para resolver isso, capture esses dados e trate-os com addslashes.&lt;br /&gt;&lt;br /&gt;10. Em sistemas dinâmicos, evitar fazer scripts que apagam dados do banco. Costume usar status para os registros e depois construa um script coletor que irá tratar esses dados que deveriam ser apagados.&lt;br /&gt;&lt;br /&gt;11. Não esqueça que é possível configurar o nível de permissão do usuário que será usado para acessar o banco de dados. Se seu site apenas faz consultas. Coloque no seu arquivo de conexão um usuário que só possa fazer SELECT no banco.&lt;br /&gt;&lt;br /&gt;12. No php.ini, que é o arquivo de configuração do PHP, use o parâmetro disable_functions para desabilitar funções que podem ser perigosas como: exec(), eval(), readfile(), shell_exec(), system(), file(), fopen(), popen() entre outras.&lt;br /&gt;&lt;br /&gt;13. Ainda no php.ini, habilite o safe_mode.&lt;br /&gt;&lt;br /&gt;14. Sempre desabilitar o usuário root padrão do MySQL, que tem senha em branco.&lt;br /&gt;&lt;br /&gt;15. Se for usar algum aplicativo para blog, chat, wiki, etc. Não esqueça de remover o arquivo de instalação do diretório do aplicativo.&lt;br /&gt;&lt;br /&gt;Contribua com mais dicas!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://idgnow.uol.com.br/internet/deep_in_tech/archive/2007/03/20/15-dicas-para-deixar-seu-site-php-mais-seguro/"&gt;Fonte&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-6503685910831491?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/6503685910831491/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=6503685910831491' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6503685910831491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6503685910831491'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2009/07/15-dicas-para-deixar-seu-site-php-mais.html' title='15 dicas para deixar seu site PHP mais seguro'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-710929439861916709</id><published>2009-06-15T06:51:00.000-07:00</published><updated>2009-06-15T06:57:09.873-07:00</updated><title type='text'>Mudanças no Zend_Loader</title><content type='html'>Com o advento da versão 1.8.0 do Zend Framework algumas mudanças no Zend_Loader serão necessárias quando for utilizado o autoload.&lt;br /&gt;&lt;br /&gt;Até então  nós habilitávamos o Zend_Loader no bootstrapper para usar o autoload da seguinte forma:&lt;br /&gt;&lt;br /&gt;   Zend_Loader::registerAutoload();  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Com o código acima, todas as classes incluindo as que utilizassem a estrutura de namespaces do ZF seriam inclusas no pelo autoload no ato da criação de sua instância desde que estivessem no include_path, porém, esta maneira está deprecated e com isso algumas mudanças são necessárias para que seu código continue funcionando em versões futuras e não receba um notice nas versões atuais.&lt;br /&gt;&lt;br /&gt;O que mudou ?&lt;br /&gt;&lt;br /&gt;Foi criada uma nova classe chamada Zend_Loader_Autoloader que implementa algumas novas funcionalidades e facilita a inclusão de bibliotecas externas à nossa aplicação. Para utilizarmos, basta criarmos uma instância dela no bootstrapper conforme o exemplo abaixo e pronto.&lt;br /&gt;&lt;br /&gt;Como assim?&lt;br /&gt;&lt;br /&gt;Antes de mostrar o código vamos entender como a coisa funciona:&lt;br /&gt;&lt;br /&gt;Ao criar uma instância da classe Zend_Loader_Autoloader no bootstrapper o ZF registra a regra de autoloading com spl_autoload e assim o processo é automatizado.&lt;br /&gt;&lt;br /&gt;Quando a instância é criada, o ZF já busca pelas classes dos namespaces Zend_ e ZendX_ automaticamente,  porém qualquer classe adicional não será encontrada.&lt;br /&gt;&lt;br /&gt;Mas antes de resolver isso segue o código que deve ser escrito para habilitar o autload para Zend_ e ZendX_:&lt;br /&gt;&lt;br /&gt;  // Inicializa o autoloader padrão para Zend_ e ZendX_ &lt;br /&gt;  $autoloader = Zend_Loader_Autoloader::getInstance();  &lt;br /&gt;&lt;br /&gt;  // Inicializa o autoloader padrão para Zend_ e ZendX_&lt;br /&gt;  $autoloader = Zend_Loader_Autoloader::getInstance();&lt;br /&gt;&lt;br /&gt;Beleza.  Agora vamos configurar para que outras classes sem namespace sejam incluídas pelo autoload (lembrando que elas devem estar no include_path).&lt;br /&gt;&lt;br /&gt;     // Inicializa o autoloader padrão para Zend_ e ZendX_ &lt;br /&gt;     $autoloader-&gt;setFallbackAutoloader(true);  &lt;br /&gt;&lt;br /&gt;Fácil demais não é?&lt;br /&gt;&lt;br /&gt;Agora supondo que você crie o seu próprio namespace e por exemplo crie suas próprias classes usando herança e extendendo classes do próprio ZF.&lt;br /&gt;&lt;br /&gt;Quando eu faço isso eu normalmente uso o prefixo Base_ para o meu namespace, então, para colocar este namespace no autoload eu faço assim:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    // Registra o namespace Base_ no autoloader&lt;br /&gt;    $autoloader-&gt;registerNamespace('Base_');&lt;br /&gt;&lt;br /&gt;Tranquilo, certo?&lt;br /&gt;&lt;br /&gt;Bem, lembra de um post que coloquei aqui a algum tempo atrás que mostrava como integrar outras libs com o autoload do ZF? Naquele caso foi integrando o ezComponentes com o ZF.&lt;br /&gt;&lt;br /&gt;Bem, esquece tudo aquilo porque aquilo já não nos pertence mais. Agora nós devemos fazer assim:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    $autoloader-&gt;pushAutoloader(array('ezcBase', 'autoload'), 'ezc');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Concluindo&lt;br /&gt;&lt;br /&gt;Apesar de ter havido uma quebra de compatibilidade com versões anteriores estas modificações foram bem legais porque facilitam no nosso dia-a-dia e com isso nossa produtividade aumenta.&lt;br /&gt;&lt;br /&gt;Ainda existem outros aspectos que poderiam ser abordados mas que não julguei importantes para o post, como retornar todos os namespaces registrados, excluir um determinado namespace do autoloader e etc.&lt;br /&gt;&lt;br /&gt;Outro ponto que achei bacana nesse novo objeto é que nós podemos modificar as configurações de autoloading em outros locais diferentes do bootstrapper como por exemplo num controller.&lt;br /&gt;&lt;br /&gt;Espero que gostem da dica.&lt;br /&gt;&lt;br /&gt;Abraços.&lt;br /&gt;&lt;br /&gt;Artigo retirado do &lt;a href="http://adlermedrado.com.br/blog/2009/05/28/mudancas-no-zend_loader/"&gt;blog do Adler Medrado&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-710929439861916709?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/710929439861916709/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=710929439861916709' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/710929439861916709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/710929439861916709'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2009/06/mudancas-no-zendloader-com-o-advento-da.html' title='Mudanças no Zend_Loader'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-7881591872302808052</id><published>2009-04-15T19:25:00.000-07:00</published><updated>2009-04-15T15:29:28.892-07:00</updated><title type='text'>Script de confirmação de data</title><content type='html'>Bem , ja fazia algum tempo que eu estava pensando em estudar ajax (já que é uma tendência para web) , e como todos que conhecem ajax sabem , javascript é imprescindível , pois ajax não é nada mais do que uma metodologia baseada em javascript , daí tive que começar do basicão do javascript (ja que as únicas coisas de javascript que eu sabia eram simples alerts) , e no meio dos meus estudos entrei em um apêndice de tratamento de datas em javascript ,e após a construção do meu primeiro scrip q confirmação de data resolvi postá-lo aqui , pois eu mesmo no trabalho ja precisei desse tipo de script e tive que recorrer a sites de terceiros em busca do mesmo. Só lembrando que para acessar a função basta criar uma página html com 1 link "[a]" e chamar a função usando algum evento, Ex: [a onclick="mostraData();"]Clique aqui para mostrar a data[/a].&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Lembre-se de alterar os colchetes "[]" por tags "&lt;&gt;" , pois o sistema do blog reconhece como html e não mostra o código fonte corretamente se eu deixar como tags.&lt;/span&gt;&lt;br /&gt;Segue o código :&lt;br /&gt;data.js&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; *&lt;br /&gt; * Criado por Ciro Rodrigues Galvão Junior&lt;br /&gt; * em 15/04/2009&lt;br /&gt; *&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;function mostraData(){&lt;br /&gt;&lt;br /&gt; // instanciando o objeto date , para podermos manipular os métodos de data.&lt;br /&gt; var data = new Date();&lt;br /&gt; // Obtendo o dia , mês e ano.&lt;br /&gt; var dia = data.getDay();&lt;br /&gt; var mes = data.getMonth();&lt;br /&gt; var ano = data.getFullYear();&lt;br /&gt;&lt;br /&gt; //Criando array com os nomes dos dias da semana.&lt;br /&gt;    var diasDaSemana = new Array(&lt;br /&gt;           'Domingo' , 'Segunda-feira' , 'Terça-feira' , 'Quarta-feira' , 'Quinta-feira',&lt;br /&gt;           'Sexta-feira' , 'Sábado');&lt;br /&gt;    //Criando array com os nomes dos meses do ano.&lt;br /&gt;    var mesesDoAno = new Array(&lt;br /&gt;           'Janeiro' , 'Fevereiro' , 'Março' , 'Abril' , 'Maio' , 'Junho' , 'Julho' ,&lt;br /&gt;           'Agosto' , 'Setembro' , 'Outubro' , 'Novembro' , 'Dezembro'&lt;br /&gt;            );&lt;br /&gt; //chamando o alert para exibir os dado coletados.&lt;br /&gt;    alert("Brasília - " + diasDaSemana[dia] + ", " + data.getDate() + " de " +&lt;br /&gt;       mesesDoAno[mes] + " de " + ano);&lt;br /&gt;&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/868707312759914756-7881591872302808052?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/7881591872302808052/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=7881591872302808052' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/7881591872302808052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/7881591872302808052'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2009/04/script-de-confirmacao-de-data.html' title='Script de confirmação de data'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-6460051601890288565</id><published>2009-04-07T15:13:00.000-07:00</published><updated>2009-04-07T15:16:11.820-07:00</updated><title type='text'>Trabalho Freelance: Quanto cobrar?</title><content type='html'>Estava meio em dúvida sobre como cobrar pelos meus serviços freelancers , e resolvi dar uma olhada na net pra ver como o pessoal fazia pra colocar preço nas suas aplicações, quando achei esse post que achei interessante e ja estou usando nos meus serviços. &lt;br /&gt;&lt;br /&gt;Cobre muito caro e perca a oportunidade. Cobre muito pouco e você pode acabar se arrependendo e isso pode culminar em um resultado inferior. Então qual a melhor maneira de tarifar um projeto freelance, ganhar o trabalho e deixar você e seus clientes felizes?&lt;br /&gt;&lt;br /&gt;Seu preço-base&lt;br /&gt;Pra começar, você precisa acertar sua base de ganhos por hora. Qual o mínimo de dinheiro que você precisa pra cobrar pra cobrir suas despesas sem fazer lucro em cima? Isso, amigo freelancer, é seu preço-base. Assim que você estabelecer uma base e começar a entender quer receber um centavo a menos seria ruim (um projeto de prejuízo) vai ficar mais fácil de determinar quanto de lucro você quer fazer. Logo, isso vai fornecer um seguro viável para seus projetos e pode ajudar a colocar um preço no seu trabalho no mercado competitivo atual.&lt;br /&gt;Acima de tudo, definir um preço-base é sobre ser honesto consigo mesmo. Se você não for razoável quanto ao valor que quer cobrar de um cliente, você apenas estará enganando a si mesmo e no final das contas pode acabar se queimando.&lt;br /&gt;Chegando a esse preço-base requer um pouco de cálculo e um pouco de adivinhação. Quantas horas por semana você crê que vai trabalhar em um projeto? Pegue o mínimo em dinheiro que você precisa pra sobreviver e divida por esse número de horas. Por exemplo, se você precisa de R$ 500,00 ao mês pra pagar o aluguel e pode trabalhar apenas 6 horas por dia, 5 dias por semana durante quatro semanas (um mês), isso seria igual a R$ 500/120h = R$ 4,16 por hora para sobreviver.&lt;br /&gt;&lt;br /&gt;Lucrando&lt;br /&gt;Quanto cobrar?Lucrar não é cobrar um preço absurdo do cliente. Lucrar é um prêmio pelo seu trabalho que contribuiu com o crescimento do negócio ou empresa do seu cliente. Adicionalmente, considere que seu trabalho é diferente dos outros. Ou seja, seu atendimento ao cliente é melhor, você é mais rápido que os outros freelancers ou talvez a qualidade do seu produto final é maior que os de outros competidores.&lt;br /&gt;Lucro é simplesmente uma porcentagem adicional ao seu preço por hora. Essa porcentagem pode ser qualquer uma, mas você precisa se justificar para que seja realista. Claro, você poderia tentar ganhar 100% acima do seu preço, mas o freelancer que decide ir por essa rota está em sério perigo de diminuir seu lucro a longo prazo.&lt;br /&gt;Sempre conte como você é único ou seus serviços como freelancer são top de linha. Você não precisa estar entre os top 3% do seu campo para ser único - um dos pontos positivos pode ser seu atendimento ao consumidor ou que você termina seus projetos antes de qualquer um. Por serviços especiais assim, você pode aumentar seu lucro um pouco mais já que está oferecendo algo que nenhum outro pode oferecer.&lt;br /&gt;&lt;br /&gt;Quanto tempo pode demorar esse projeto?&lt;br /&gt;O ingrediente final que precisamos adicionar á fórmula é um cálculo preciso do número de horas necessárias para completar o projeto. A chave para descobrir quanto tempo você vai demorar é fazer um briefing com seu cliente.&lt;br /&gt;Um briefing serve não só para definir o que o seu cliente quer feito, mas também para ficar de olho no que pode ser feito, como pode ser feito e como estabelecer regras para que seu cliente não decida mudar tudo na última hora. Um briefing deve estabelecer claramente o que o cliente quer. Assim, você pode definir quanto vai cobrar pelo que está escrito no documento. Se o cliente decidir mudar algo ou pede por algo extra que não está incluso no documento, então o freelancer têm todo o direito de cobrar a mais pelo trabalho extra.&lt;br /&gt;Tendo um briefing em mãos, você já vai poder calcular o tanto de horas que vai demorar pra ser finalizado (assumindo que você saiba como fazer tudo que foi pedido). Conhecer todo o escopo do projeto vai resultar em uma forma mais precisa de cálculo de tempo.&lt;br /&gt;Agora temos seu valor-base, sua porcentagem de lucro e o número de horas que vai demorar para finalizar um projeto. Está na hora da…&lt;br /&gt;&lt;br /&gt;Fórmula mágica&lt;br /&gt;Preço-base + Lucro + Tempo de duração = Preço ideal&lt;br /&gt;&lt;br /&gt;Vamos usar como exemplo os dados anteriores. Você vai trabalhar por R$ 4,16 a hora e vai lucrar 10% (+ R$ 0,41/h). Ou seja, estará ganhando R$ 4,57/hora. Supondo que o projeto vai demorar dois meses para completar. Seis horas ao dia, durante dois meses (tirando os finais de semana e supondo que não haja feriado durante esses dois meses), serão um total de 240 horas. Logo, R$ 4,57/h x 240h = R$ 1096,80. Pra não ficar valores quebrados assim, vamos arrendondar para R$ 1100,00.&lt;br /&gt;Mas, peraí. Isso é óbvio, não é? Não. Muitos freelancers lá fora, quer sejam escritores, designers, programadores ou músicos continuamente falham em criar regras de trabalho quando o assunto é cobrar o projeto adequadamente.&lt;br /&gt;Freqüentemente (e isso é verdade para novos freelancers) existe uma tendência de cobrar um preço abaixo do mercado; talvez pelo fato de que não têm idéia de quanto devem cobrar, talvez porque eles estão tão preocupados com adversários em potencial e acham que quanto menor o preço, melhor o preço, mas muito mais freqüentemente é porque eles não acertaram seu preço base, o lucro que querem ganhar em cima e o número de horas que vai demorar para completar um projeto.Crie seu próprio preço-base e lucro e nunca ofereça um preço para um trabalho que seja menos do que você precisa pra sair sem prejuízo. Faça essas coisas básicas e seu preço sempre estará certo!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://digitalpaperweb.com.br/ezine/1/trabalho-freelance-quanto-cobrar"&gt;Fonte&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-6460051601890288565?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/6460051601890288565/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=6460051601890288565' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6460051601890288565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6460051601890288565'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2009/04/trabalho-freelance-quanto-cobrar.html' title='Trabalho Freelance: Quanto cobrar?'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-40986670361010672</id><published>2009-03-30T21:22:00.000-07:00</published><updated>2009-03-30T21:23:34.067-07:00</updated><title type='text'>Vinte e cinco dicas de performance para PHP </title><content type='html'>Esta é uma compilação de material traduzido de algumas pesquisas feitas no google.&lt;div class="snap_preview"&gt; &lt;ol&gt;&lt;li&gt;se um método pode ser static, declare-o como static. Isso irá aumentar a performance umas 4 vezes.&lt;/li&gt;&lt;li&gt;echo é mais rápido do que print&lt;/li&gt;&lt;li&gt;utilize o unset nas suas variáveis para liberar memória (bons tempos em que todo mundo sabia programar em C &lt;img src="http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif" alt=":P" class="wp-smiley" /&gt; .. “free your mallocs”)&lt;/li&gt;&lt;li&gt;não use require_once()&lt;/li&gt;&lt;li&gt;utilize o caminho absoluto na hora de dar os includes, assim o PHP não perde tempo tentando resolver o caminho.&lt;/li&gt;&lt;li&gt;str_replace é mais rápido do que preg_replace porém strtr é umas 4 vezes mais rápido do que str_replace&lt;/li&gt;&lt;li&gt;utilizar @ para suprimir os erros é muito lento.&lt;/li&gt;&lt;li&gt;habilite o mod_deflate no apache&lt;/li&gt;&lt;li&gt;feche a sua conexão com o banco se você não irá mais utilizá-la (mas não fique abrindo e fechando toda hora!)&lt;/li&gt;&lt;li&gt;$row['abc']  é 7 vezes mais rápido do que $row[abc]&lt;/li&gt;&lt;li&gt;não use funções dentro de um laço, como por exemplo, &lt;em&gt;for ($x=0; $x &lt;&gt;  porque count() vai ser executada em todo ciclo do laço. Utilize:&lt;em&gt; for ($x=0, $c=count($array); $x &lt; $c; $x++)&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;Incrementar uma variável global é duas vezes mais lento do que incrementar uma variável local&lt;/li&gt;&lt;li&gt;acessar um atributo de um objeto ($obj-&gt;atributo++, por exemplo) é 3 vezes mais lento do que acessar uma variável local&lt;/li&gt;&lt;li&gt;incrementar uma variável local não inicializada é 9-10 vezes mais lento do que se ela tivesse sido inicializada.&lt;/li&gt;&lt;li&gt;aspas simples são mais rápidas que aspas duplas&lt;/li&gt;&lt;li&gt;uma aplicação que faça cache dos scripts php vai aumentar a performance entre 25 e 100%.&lt;/li&gt;&lt;li&gt;utilize cache sempre que possível. SEMPRE! (claro que isso tem um onus, mas estamos falando apenas em performance aqui)&lt;/li&gt;&lt;li&gt;Se quiser testar o tamanho de uma string, utilize isset ao invés de strlen. Por exemplo: &lt;em&gt;if (!isset($foo{5})) echo “foo eh mto pequeno!”;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;nem tudo precisa ser OO. Métodos e objetos tendem a consumir muito mais memória.&lt;/li&gt;&lt;li&gt;não converta toda estrutura de dados em classes. Utilizar arrays é muito mais rápido.&lt;/li&gt;&lt;li&gt;se você possui funções que demandam muito tempo de execução cogite transforma-las em uma extensão em C.&lt;/li&gt;&lt;li&gt;habilitar o mod_gzip pode economizar em até 80% o tráfego de dados. Sua largura de banda agradece.&lt;/li&gt;&lt;li&gt;evite usar SELECT *. Isso dificulta a manutenção e gasta tempo desnecessário de processamento para descobrir os campos e obter os valores do banco&lt;/li&gt;&lt;li&gt;use switch ao invés de um monte de ifs&lt;/li&gt;&lt;li&gt;json é mais rápido do que xml.&lt;/li&gt;&lt;/ol&gt;fonte : http://webpub.wordpress.com/2007/11/13/vinte-e-cinco-dicas-de-performance-para-php/&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/868707312759914756-40986670361010672?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/40986670361010672/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=40986670361010672' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/40986670361010672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/40986670361010672'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2009/03/vinte-e-cinco-dicas-de-performance-para.html' title='Vinte e cinco dicas de performance para PHP '/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-1690840210256970434</id><published>2008-11-10T19:06:00.001-08:00</published><updated>2008-11-10T19:06:32.107-08:00</updated><title type='text'>Novo fedora core 10</title><content type='html'>&lt;script id="fedora-banner" type="text/javascript" src="http://fedoraproject.org/static/js/release-counter-ext.js?lang=pt_BR"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-1690840210256970434?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/1690840210256970434/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=1690840210256970434' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/1690840210256970434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/1690840210256970434'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/11/novo-fedora-core-10.html' title='Novo fedora core 10'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-3511423279015515171</id><published>2008-10-02T06:14:00.000-07:00</published><updated>2008-10-02T06:20:22.580-07:00</updated><title type='text'>Aprenda a programar em Java de graça pela web e com material da sun.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xBSlzELA8b4/SOTKjVw_gVI/AAAAAAAAAC0/HW4OQYshWkU/s1600-h/jedi.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_xBSlzELA8b4/SOTKjVw_gVI/AAAAAAAAAC0/HW4OQYshWkU/s200/jedi.png" alt="" id="BLOGGER_PHOTO_ID_5252545773907706194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:85%;"&gt;JEDI  (Java Education and Development Initiative) é uma iniciativa para desenvolvimento e educação JAVA a distância. Onde o aluno terá ao seu dispor manuais, slides de                        apresentação das aulas, provas, exercícios e material de referência e                        vídeo-aulas. Contando ainda com os softwares, o treinamento de instrutores, o                        acesso a suporte e a lista de discussão da comunidade&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Acesse http://www.dfjug.org/DFJUG/jedi/index.jsp e bons estudos!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-3511423279015515171?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/3511423279015515171/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=3511423279015515171' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/3511423279015515171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/3511423279015515171'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/10/aprenda-programar-em-java-de-graa-pela.html' title='Aprenda a programar em Java de graça pela web e com material da sun.'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xBSlzELA8b4/SOTKjVw_gVI/AAAAAAAAAC0/HW4OQYshWkU/s72-c/jedi.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-8801325041009922723</id><published>2008-10-01T08:02:00.000-07:00</published><updated>2008-10-01T08:31:35.816-07:00</updated><title type='text'>Configurar o Java no Firefox (LINUX)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xBSlzELA8b4/SOOV2WUpaeI/AAAAAAAAACs/usqT8qRAGrk/s1600-h/duke+e+Firefox.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_xBSlzELA8b4/SOOV2WUpaeI/AAAAAAAAACs/usqT8qRAGrk/s200/duke+e+Firefox.jpg" alt="" id="BLOGGER_PHOTO_ID_5252206351381785058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;É muito simples fazer essa junção, porém pra quem está começando agora, eu sei que complica bastante (pois eu mesmo ja sofri pra fazer isso! :p).&lt;br /&gt;&lt;br /&gt;Basta criar-mos um link simbólico da lib libjavaplugin_oji.so que se encontra na pasta de plugins do java, para a pasta de plugins do firefox, da seguinte maneira:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ln -s /opt/jdk1.6.0_10/jre/plugin/i386/ns7/libjavaplugin_oji.so /opt/firefox/plugins/libjavaplugin_oji.so&lt;br /&gt;&lt;br /&gt;Após feito esse processo é só reiniciar o firefox e voilá!&lt;br /&gt;Seu java estará configurado pra rodar no firefox.&lt;br /&gt;&lt;br /&gt;Ressaltando que /opt/jdk1.6.0_10 é o diretório onde o meu java se encontra instalado, vc deverá mudar esse diretório de acordo com a instalação do java na sua máquina, e o mesmo vale para /opt/firefox , que é onde o firefox está instalado na minha máquina.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-8801325041009922723?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/8801325041009922723/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=8801325041009922723' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/8801325041009922723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/8801325041009922723'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/10/configurar-o-java-no-firefox-linux.html' title='Configurar o Java no Firefox (LINUX)'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xBSlzELA8b4/SOOV2WUpaeI/AAAAAAAAACs/usqT8qRAGrk/s72-c/duke+e+Firefox.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-2105252587702215029</id><published>2008-09-30T19:37:00.000-07:00</published><updated>2008-10-01T05:41:49.343-07:00</updated><title type='text'>Chuchu vs. iPhone? Quem será melhor?</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xBSlzELA8b4/SOLrGTaCAVI/AAAAAAAAACc/2VSq9aH5JMU/s1600-h/iphonevschuchu.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_xBSlzELA8b4/SOLrGTaCAVI/AAAAAAAAACc/2VSq9aH5JMU/s200/iphonevschuchu.jpg" alt="" id="BLOGGER_PHOTO_ID_5252018608988619090" border="0" /&gt;&lt;/a&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(Clique na imagem para ampliar)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Infelizmente é triste morar num país com tantos impostos...É sempre assim, sempre que sai alguma inovação, legal lá fora se paga 1 preço decente dentro dos padrões porém quando chega ao Brasil.... Vem com esse preço exorbitante, um assalto (quase um estupro).&lt;br /&gt;  Realmente, o iPhone é fóda , é touchscreen , tem 8 GB (ou +) + peraí... 2300 mangos? Acho q prefiro o chuchu!(O custo Benefício ta melhor! , sem contar que falta muita coisa essencial ao iPhone, como os citados na imagem acima). Enquanto nos EUA, ele é vendido a US$ 200 (versão 8GB) , e na holanda sendo encontrado até por 1 Euro (é.. isso mesmo... 1 Euro), aqui no Brasil está esse roubo...&lt;br /&gt;  Bem, meus sinceros votos é que ninguém compre o iPhone (pelo menos por enquanto até os preços darem uma abaixada drástica... O que não deixa de ser uma pena, pq sempre ter q esperar a "novidade" ficar "antiga" pra comprar é meio chato...), apesar de ser 1 baita telefone, por esse preço eu ainda prefiro o chuchu!(E olha que eu me amarro em celulares legais! =D)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fonte: &lt;strong&gt;&lt;a href="http://www.manualdocafajeste.com/" target="_blank"&gt;Manual do Cafajeste&lt;/a&gt;&lt;/strong&gt; (Via &lt;strong&gt;&lt;a href="http://googlediscovery.com/2008/09/29/chuchu-vs-iphone-humor/" target="_blank"&gt;Google Discovery&lt;/a&gt;&lt;/strong&gt;)&lt;br /&gt;&lt;/div&gt;Ps: eu vi no &lt;a href="http://www.nerdssomosnozes.com/2008/09/iphone-3g-vs-chuchu-quem-ganha.html"&gt;Nerds Somos nozes &lt;/a&gt; + coloquei a fonte que ele pegou.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-2105252587702215029?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/2105252587702215029/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=2105252587702215029' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/2105252587702215029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/2105252587702215029'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/chuchu-vs-iphone-quem-ser-melhor.html' title='Chuchu vs. iPhone? Quem será melhor?'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xBSlzELA8b4/SOLrGTaCAVI/AAAAAAAAACc/2VSq9aH5JMU/s72-c/iphonevschuchu.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-6880340541053194346</id><published>2008-09-25T06:33:00.000-07:00</published><updated>2008-09-30T20:26:57.617-07:00</updated><title type='text'>Projeto Fedora completa seus primeiros 5 anos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xBSlzELA8b4/SOLt7m6Sc4I/AAAAAAAAACk/dALi4RykQTM/s1600-h/5years-banner-large.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 314px; height: 103px;" src="http://1.bp.blogspot.com/_xBSlzELA8b4/SOLt7m6Sc4I/AAAAAAAAACk/dALi4RykQTM/s200/5years-banner-large.png" alt="" id="BLOGGER_PHOTO_ID_5252021723780510594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Quarta-feira, o projeto Fedora (Minha Distro do coração =D) completou seus primeiros 5 anos de existência. O BR-Linux anunciou o surgimento do Fedora em 22 de setembro de 2003, e os comentários dos leitores na época mostram o tom com que a notícia foi recebida.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Que venham mais muitos anos - Feliz aniversário, Fedora!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://br-linux.org/2008/projeto-fedora-completa-seus-primeiros-5-anos/"&gt;Fonte&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-6880340541053194346?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/6880340541053194346/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=6880340541053194346' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6880340541053194346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6880340541053194346'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/projeto-fedora-completa-seus-primeiros.html' title='Projeto Fedora completa seus primeiros 5 anos'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xBSlzELA8b4/SOLt7m6Sc4I/AAAAAAAAACk/dALi4RykQTM/s72-c/5years-banner-large.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-1602917720060378013</id><published>2008-09-16T23:44:00.000-07:00</published><updated>2008-10-17T06:17:40.533-07:00</updated><title type='text'>Configurando o PATH do java no Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xBSlzELA8b4/SNBsK8kf3yI/AAAAAAAAABk/3EugcTcKmGs/s1600-h/TomcatLinux1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_xBSlzELA8b4/SNBsK8kf3yI/AAAAAAAAABk/3EugcTcKmGs/s200/TomcatLinux1.JPG" alt="" id="BLOGGER_PHOTO_ID_5246812501200330530" border="0" /&gt;&lt;/a&gt;&lt;!-- Quando iniciei no mundo do linux, um dos grandes problemas que eu tive foi pra saber como setar o Java no Path do linux, e depois de muito tempo rodando achei na net esse artigo que estou postando. &lt;span style="font-weight: bold;"&gt; para entender o que vem a ser o path dê uma olhadinha nesse artigo:&lt;/span&gt; &lt;a href="http://www.vivaolinux.com.br/artigo/O-que-e-PATH-como-funciona-e-como-trabalhar-com-ele/"&gt;Entendendo o que é o PATH&lt;/a&gt; . --&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Após a instalação do J2SE e sua documentação é necessário configurar as variáveis de ambiente para que o SO saiba onde encontrar os binários, as bibliotecas e os manuais. Faço isso editando o arquivo &lt;em&gt;bash.bashrc&lt;/em&gt;, localizado no diretório &lt;em&gt;/etc&lt;/em&gt;, com o comando&lt;div class="post-body entry-content"&gt; &lt;blockquote class="western"&gt;sudo gedit /etc/bash.bashrc&lt;br /&gt;(Em algumas distros como o Fedora core 9 o arquivo fica em /etc/bashrc)&lt;br /&gt;&lt;/blockquote&gt; &lt;p class="western"&gt;e nele incluindo as linhas…&lt;/p&gt; &lt;blockquote class="western"&gt;JAVA_HOME="/opt/java"&lt;br /&gt;CLASSPATH="$JAVA_HOME:$JAVA_HOME/lib:$."&lt;br /&gt;MANPATH="$MANPATH:$JAVA_HOME/man"&lt;br /&gt;JAVA_DOC="$JAVA_HOME/docs"&lt;br /&gt;PATH="$JAVA_HOME/bin:$PATH" &lt;/blockquote&gt; &lt;blockquote class="western"&gt;export JAVA_HOME CLASSPATH MANPATH JAVA_DOC PATH&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-1602917720060378013?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/1602917720060378013/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=1602917720060378013' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/1602917720060378013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/1602917720060378013'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/configurando-o-path-do-no-linux.html' title='Configurando o PATH do java no Linux'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xBSlzELA8b4/SNBsK8kf3yI/AAAAAAAAABk/3EugcTcKmGs/s72-c/TomcatLinux1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-1513919642558302188</id><published>2008-09-15T20:11:00.000-07:00</published><updated>2008-09-15T20:22:10.241-07:00</updated><title type='text'>Configurando o Grub Após ter formatado o winxp em dual boot</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xBSlzELA8b4/SM8lqksE9BI/AAAAAAAAABc/qtNSc9q6Rjc/s1600-h/Windows+vs+Linux.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 143px; height: 156px;" src="http://4.bp.blogspot.com/_xBSlzELA8b4/SM8lqksE9BI/AAAAAAAAABc/qtNSc9q6Rjc/s200/Windows+vs+Linux.jpg" alt="" id="BLOGGER_PHOTO_ID_5246453504243201042" border="0" /&gt;&lt;/a&gt;veja a documentação wiki&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;" class="para"&gt; &lt;a href="http://wiki.ubuntu-br.org/Grub#head-117191c30d51c3a40a2313b943f1aa0d619cf431" target="_blank"&gt;http://wiki.ubuntu-br.org/Grub#head-117&lt;wbr&gt;191c30d51c3a40a2313b943f1aa0d619cf431&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Restaurar o menu depois de instalar o Windows&lt;br /&gt;Método I&lt;br /&gt;&lt;br /&gt;Inicialize algum LiveCD do Ubuntu.&lt;br /&gt;&lt;br /&gt;Para listar todas as partições do disco rígido, digite o seguinte comando no terminal:&lt;br /&gt;&lt;br /&gt;sudo fdisk -l&lt;br /&gt;&lt;br /&gt;Localize a partição onde o Ubuntu está instalado, e digite o comando:&lt;br /&gt;&lt;br /&gt;sudo mount /dev/hdY /mnt&lt;br /&gt;&lt;br /&gt;Onde /dev/hdY é a partição onde o Ubuntu está instalado.&lt;br /&gt;&lt;br /&gt;Com a partição já montada, recupere o GRUB com o seguinte comando:&lt;br /&gt;&lt;br /&gt;sudo grub-install --root-directory=/mnt /dev/hdY&lt;br /&gt;&lt;br /&gt;Novamente substituindo o /dev/hdY pela sua partição raiz.&lt;br /&gt;&lt;br /&gt;Reinicie o seu computador.&lt;br /&gt;Método II&lt;br /&gt;&lt;br /&gt;Caso ocorra algum problema com o método acima, você pode tentar recuperar o GRUB utilizando o chroot. Para isso, monte a partição do Linux digitando no terminal:&lt;br /&gt;&lt;br /&gt;sudo chroot /mnt&lt;br /&gt;&lt;br /&gt;Finalize então, instalando o GRUB:&lt;br /&gt;&lt;br /&gt;grub-install /dev/hdY&lt;br /&gt;&lt;br /&gt;*&lt;br /&gt;&lt;br /&gt;Substituindo o Y pela letra do seu disco rígido.&lt;br /&gt;&lt;br /&gt;Este é particularmente útil quando se está rodando um Live CD de alguma distribuição que não possua o GRUB instalado, ou está usando o modo de recuperação do Alternate Install CD do Ubuntu.&lt;br /&gt;&lt;br /&gt;Reinicie o seu computador.&lt;br /&gt;Método III&lt;br /&gt;&lt;br /&gt;&lt;h4 style="color: red;"&gt;Recomendado! (O próximo foi o que funcionou melhor comigo!)&lt;br /&gt;&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;Caso as tentativas anteriores falhem podemos seguir as recomendações abaixo inicializando por um Live CD do Ubuntu e executando os comandos abaixo em um terminal.&lt;br /&gt;&lt;br /&gt;sudo grub&lt;br /&gt;&lt;br /&gt;Será aberto então o console de comandos do Grub exibindo o prompt grub&gt;. Prossiga executando um-a-um os demais comandos abaixo no mesmo.&lt;br /&gt;&lt;br /&gt;find /boot/grub/stage1&lt;br /&gt;&lt;br /&gt;root (hdX,Y)&lt;br /&gt;&lt;br /&gt;Onde (hdX,Y) deve ser substituído pelo que aparece na saída do comando anteriormente executado, como (hd0,1) por exemplo:&lt;br /&gt;&lt;br /&gt;setup (hd0)&lt;br /&gt;&lt;br /&gt;quit&lt;br /&gt;&lt;br /&gt;Reinicie o seu computador. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-1513919642558302188?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/1513919642558302188/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=1513919642558302188' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/1513919642558302188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/1513919642558302188'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/configurando-o-grub-aps-ter-formatado-o.html' title='Configurando o Grub Após ter formatado o winxp em dual boot'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xBSlzELA8b4/SM8lqksE9BI/AAAAAAAAABc/qtNSc9q6Rjc/s72-c/Windows+vs+Linux.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-7760239741417603494</id><published>2008-09-13T10:25:00.000-07:00</published><updated>2008-09-13T10:30:20.456-07:00</updated><title type='text'>Instalando o repositório Livna no fedora core 9</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xBSlzELA8b4/SMv4ToqhkOI/AAAAAAAAABU/UUl13ne-C0o/s1600-h/fedora-logo.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_xBSlzELA8b4/SMv4ToqhkOI/AAAAAAAAABU/UUl13ne-C0o/s200/fedora-logo.png" alt="" id="BLOGGER_PHOTO_ID_5245559207220056290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span&gt;O Livna é um importante repositório, onde se encontram diversos pacotes , principalmente quanto a drivers de placas de vídeo Nvidia. &lt;/span&gt;&lt;/span&gt;   &lt;p&gt;Para instalar, visite a página e baixe o rpm (&lt;a href="http://rpm.livna.org/" title="http://rpm.livna.org"&gt;http://rpm.livna.org&lt;/a&gt;) ou, se preferir, abra um terminal e digite:&lt;/p&gt; &lt;p&gt;&lt;code&gt;$ su -c 'rpm -ivh http://rpm.livna.org/livna-release-9.rpm'&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Usar o repositório Livna permite ao Fedora 9 tocar todos os tipos de vídeo, som e DVD, além de possuir drivers para as placas de vídeo mais conhecidas (nvidia e ati), mas &lt;strong&gt;atenção&lt;/strong&gt;:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Os drivers para as placas de vídeo da AMD e Nvidia ainda não estão disponíveis,&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Para instalar, visite a página e baixe o rpm (&lt;a href="http://rpm.livna.org/" title="http://rpm.livna.org"&gt;http://rpm.livna.org&lt;/a&gt;) ou, se preferir, abra um terminal e digite:&lt;/p&gt; &lt;p&gt;&lt;code&gt;$ su -c 'rpm -ivh http://rpm.livna.org/livna-release-9.rpm'&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Usar o repositório Livna permite ao Fedora 9 tocar todos os tipos de vídeo, som e DVD, além de possuir drivers para as placas de vídeo mais conhecidas (nvidia e ati), mas &lt;strong&gt;atenção&lt;/strong&gt;:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Os drivers para as placas de vídeo da AMD e Nvidia ainda não estão disponíveis, pois eles não funcionam com o servidor X 1.4.99, que está presente no Fedora 9. Eles estão disponíveis apenas no repositório de testes do Livna, cujo uso é indicado apenas para usuários experientes que sabem o que estão fazendo. Se o driver da placa de vídeo é essencial para você, fique por enquanto com o Fedora 8 até que as referidas companhias ajustem os drivers para o novo servidor X. Os drivers serão colocados à disposição no repositório Livna padrão assim que forem ajustados para o servidor X. NÃO TENTE instalar os drivers enquanto não houver esse ajuste, pois você pode ficar sem entrar na interface gráfica do Fedora.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Sobre isso, veja a informação do funcionário da nvidia: &lt;a href="http://www.nvnews.net/vbulletin/showthread.php?t=107725" title="http://www.nvnews.net/vbulletin/showthread.php?t=107725"&gt;http://www.nvnews.net/vbulletin/showthread.php?t=107725&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt; pois eles não funcionam com o servidor X 1.4.99, que está presente no Fedora 9. Eles estão disponíveis apenas no repositório de testes do Livna, cujo uso é indicado apenas para usuários experientes que sabem o que estão fazendo. Se o driver da placa de vídeo é essencial para você, fique por enquanto com o Fedora 8 até que as referidas companhias ajustem os drivers para o novo servidor X. Os drivers serão colocados à disposição no repositório Livna padrão assim que forem ajustados para o servidor X. NÃO TENTE instalar os drivers enquanto não houver esse ajuste, pois você pode ficar sem entrar na interface gráfica do Fedora.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Sobre isso, veja a informação do funcionário da nvidia: &lt;a href="http://www.nvnews.net/vbulletin/showthread.php?t=107725" title="http://www.nvnews.net/vbulletin/showthread.php?t=107725"&gt;http://www.nvnews.net/vbulletin/showthread.php?t=107725&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-7760239741417603494?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/7760239741417603494/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=7760239741417603494' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/7760239741417603494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/7760239741417603494'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/instalando-o-repositrio-livna-no-fedora.html' title='Instalando o repositório Livna no fedora core 9'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xBSlzELA8b4/SMv4ToqhkOI/AAAAAAAAABU/UUl13ne-C0o/s72-c/fedora-logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-4882346818360469303</id><published>2008-09-12T05:34:00.000-07:00</published><updated>2008-09-12T05:37:33.736-07:00</updated><title type='text'>Recuperando partições e corrigindo sistemas de arquivos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xBSlzELA8b4/SMpiG8VFNyI/AAAAAAAAABM/PolDI6yCu-Q/s1600-h/6683E.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_xBSlzELA8b4/SMpiG8VFNyI/AAAAAAAAABM/PolDI6yCu-Q/s200/6683E.jpg" alt="" id="BLOGGER_PHOTO_ID_5245112587439650594" border="0" /&gt;&lt;/a&gt;&lt;span class="warndesc"&gt;Quem nunca perdeu dados importantes por problemas ou descuidos relacionados ao particionamento do HD, nunca reinstalou o sistema por que um vírus apagou a tabela de partições do HD, ou por que o fsck não encontrava o superbloco da partição, que atire a primeira pedra :). Este tutorial ensina a recuperar partições deletadas e recuperar sistemas de arquivos corrompidos, usando as ferramentas disponíveis no Linux. Todo o processo pode ser feito a partir de um live-CD, como o Kurumin.&lt;/span&gt;&lt;span class="author"&gt;Carlos E. Morimoto&lt;br /&gt;02/02/2006&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 align="justify"&gt;Fazendo backup e recuperando a MBR e tabela de partições &lt;/h3&gt;&lt;p align="justify"&gt;Ao comprar um novo HD, você precisa primeiro formatá-lo antes de poder instalar qualquer sistema operacional. Existem vários programas de particionamento, como o &lt;strong&gt;QTParted&lt;/strong&gt;, &lt;strong&gt;GParted&lt;/strong&gt;, &lt;strong&gt;CFDisk&lt;/strong&gt; e outros. &lt;/p&gt;&lt;p align="justify"&gt;Os programas de particionamento salvam o particionamento na tabela de partição, gravada no início do HD. Esta tabela contém informações sobre o início e final de cada partição. Depois do particionamento, vem a formatação de cada partição, onde você pode escolher o sistema de arquivos que será usado em cada uma (ReiserFS, EXT3, FAT, etc.). &lt;/p&gt;&lt;p align="justify"&gt;Ao instalar o sistema operacional, é gravado mais um componente: o gerenciador de boot, responsável por carregar o sistema durante o boot. &lt;/p&gt;&lt;p align="justify"&gt;Tanto o gerenciador de boot quanto a tabela de particionamento do HD são salvos no primeiro setor do HD, a famosa trilha MBR, que contém apenas 512 bytes. Destes, 446 bytes são reservados para o setor de boot, enquanto os outros 66 bytes guardam a tabela de partição. &lt;/p&gt;&lt;p align="justify"&gt;Ao trocar de sistema operacional, você geralmente subscreve a MBR com um novo gerenciador de boot, mas a tabela de particionamento só é modificada ao criar ou deletar partições. Caso por qualquer motivo, os 66 bytes da tabela de particionamento sejam subscritos ou danificados, você perde acesso a todas as partições do HD. O HD fica parecendo vazio, como se tivesse sido completamente apagado. &lt;/p&gt;&lt;p align="justify"&gt;Para evitar isso, você pode fazer um backup da trilha MBR do HD. Assim, você pode recuperar tudo caso ocorra qualquer eventualidade. Para fazer o backup, use o comando:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# dd if=/dev/hda of=backup.mbr bs=512 count=1&lt;/p&gt;&lt;p align="justify"&gt;O comando vai fazer uma cópia dos primeiros 512 bytes do "/dev/hda" no arquivo "&lt;strong&gt;backup.mbr&lt;/strong&gt;". Se o seu HD estivesse instalado na IDE secundária (como master), ele seria visto pelo sistema como "/dev/hdc". Basta indicar a localização correta no comando.&lt;/p&gt;&lt;p align="justify"&gt;Você pode salvar o arquivo num disquete ou pendrive, mandar para a sua conta do GMail, etc. Caso no futuro, depois da enésima reinstalação do Windows XP, vírus, falha de hardware ou de um comando errado a tabela de particionamento for pro espaço, você pode dar boot com o CD do Kurumin e regravar o backup com o comando:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# dd if=backup.mbr of=/dev/hda&lt;/p&gt;&lt;p align="justify"&gt;Lembre-se de que o backup vai armazenar a tabela de particionamento atual. Sempre que você reparticionar o HD, não se esqueça de atualizar o backup.&lt;/p&gt;&lt;h3 align="justify"&gt;Usando o Gpart&lt;/h3&gt;&lt;p align="justify"&gt;Caso o pior aconteça, a tabela de particionamento seja perdida e você não tenha backup, ainda existe uma esperança. O &lt;strong&gt;Gpart&lt;/strong&gt; é capaz de recuperar a tabela de partição e salvá-la de volta no HD na maioria dos casos. Você pode executá-lo dando boot pelo CD do Kurumin, ou baixá-lo no: &lt;a target="_blank" href="http://www.stud.uni-hannover.de/user/76201/gpart/#download"&gt;http://www.stud.uni-hannover.de/user/76201/gpart/#download&lt;/a&gt;.&lt;/p&gt;&lt;p align="justify"&gt;Baixe o "&lt;strong&gt;gpart.linux&lt;/strong&gt;" que é o programa já compilado. Basta marcar a permissão de execução para ele:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# chmod +x gpart.linux&lt;/p&gt;&lt;p align="justify"&gt;Nas distribuições derivadas do Debian, você pode instalá-lo pelo apt-get: &lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# apt-get install gpart&lt;/p&gt;&lt;p align="justify"&gt;Execute o programa indicando o HD que deve ser analisado:&lt;/p&gt;&lt;span class="command_margin"&gt;# ./gpart.linux /dev/hda&lt;/span&gt;&lt;p align="justify"&gt;&lt;br /&gt;(ou simplesmente "&lt;span class="command"&gt;gpart /dev/hda&lt;/span&gt;" se você tiver instalado pelo apt-get) &lt;/p&gt;&lt;p align="justify"&gt;O teste demora um pouco, pois ele precisará ler o HD inteiro para determinar onde começa e termina cada partição. No final, ele exibe um relatório com o que encontrou:&lt;/p&gt;&lt;p class="rawoutput" align="justify"&gt;Primary partition(1)&lt;br /&gt;type: 007(0x07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX)&lt;br /&gt;size: 3145mb #s(6442000) s(63-6442062)&lt;br /&gt;chs: (0/1/1)-(1023/15/63)d (0/1/1)-(6390/14/61)r&lt;/p&gt;&lt;p class="rawoutput" align="justify"&gt;Primary partition(2)&lt;br /&gt;type: 131(0x83)(Linux ext2 filesystem)&lt;br /&gt;size: 478mb #s(979964) s(16739730-17719693)&lt;br /&gt;chs: (1023/15/63)-(1023/15/63)d (16606/14/1)-(17579/0/62)r&lt;/p&gt;&lt;p class="rawoutput" align="justify"&gt;Primary partition(3)&lt;br /&gt;type: 130(0x82)(Linux swap or Solaris/x86)&lt;br /&gt;size: 478mb #s(979896) s(17719758-18699653)&lt;br /&gt;chs: (1023/15/63)-(1023/15/63)d (17579/2/1)-(18551/3/57)r&lt;/p&gt;&lt;p align="justify"&gt;Se as informações estiverem corretas você pode salvar a tabela no HD usando o parâmetro "-W":&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# gpart -W /dev/hda /dev/hda &lt;/p&gt;&lt;p align="justify"&gt;Veja que é preciso indicar o HD duas vezes. Na primeira você indica o HD que será vasculhado e em seguida em qual HD o resultado será salvo. Em caso especiais, onde você tenha dois HDs iguais, por exemplo, você pode gravar num segundo HD, com em: "&lt;span class="command"&gt;gpart -W /dev/hda /dev/hdc&lt;/span&gt;"&lt;/p&gt;&lt;p align="justify"&gt;O gpart não é muito eficiente em localizar partições extendidas (hda5, hda6, etc.). Em boa parte dos casos ele só vai conseguir identificar as partições primárias (hda1, hda2, hda3 e hda4). Nestes casos, você pode usar o cfdisk ou outro programa de particionamento para criar manualmente as demais partições (apenas crie as partições e salve, não formate!). Se você souber indicar os tamanhos aproximados, principalmente onde cada uma começa, você conseguirá acessar os dados depois. &lt;/p&gt;&lt;h3 align="justify"&gt;Usando o Testdisk&lt;/h3&gt;&lt;p align="justify"&gt;Outra ferramenta "sem preço" para recuperação de partições é o &lt;strong&gt;Testdisk&lt;/strong&gt;. Embora a função seja a mesma, ele utiliza um algoritmo bastante diferente para detectar partições, o que faz com que ele funcione em algumas situações em que o Gpart não detecta as partições corretamente e vice-versa. Por isso vale a pena ter ambos na caixa de ferramentas. &lt;/p&gt;&lt;p align="justify"&gt;Lembre-se que ambos são capazes de recuperar partições apenas enquanto as informações não são subscritas. Se você acabou de apagar a sua partição de trabalho, é bem provável que consiga recuperá-la, mas se o HD já tiver sido reparticionado e formatado depois do acidente, as coisas ficam muito mais complicadas. Sempre que um acidente acontecer, pare tudo e volte a usar o HD só depois de recuperar os dados. &lt;/p&gt;&lt;p align="justify"&gt;O Testdisk permite recuperar desde partições isoladas (incluindo as extendidas), até toda a tabela de partição, caso o HD tenha sido zerado. Ele suporta todos os principais sistemas de arquivos, incluindo FAT16, FAT32, NTFS, EXT2, EXT3, ReiserFS, XFS, LVM e Linux Raid.&lt;/p&gt;&lt;p align="justify"&gt;A página oficial é a &lt;a target="_blank" href="http://www.cgsecurity.org/testdisk.html"&gt;http://www.cgsecurity.org/testdisk.html&lt;/a&gt; onde, além da versão Linux, você encontra versões para Windows, DOS e até para o Solaris. &lt;/p&gt;&lt;p align="justify"&gt;Embora não seja exatamente um utilitário famoso, o Testdisk é incluído em muitas distribuições. Nos derivados do Debian, você pode instalá-lo via apt-get:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# apt-get install testdisk &lt;/p&gt;&lt;p align="justify"&gt;Para instalar a versão em código fonte, além dos compiladores básicos (veja mais detalhes no capítulo 3), é necessário ter instalado o pacote "&lt;u&gt;ncurses-dev&lt;/u&gt;" ou "&lt;u&gt;libncurses-dev&lt;/u&gt;". A instalação propriamente dita é feita usando a receita tradicional: descompactar o arquivo, acessar a pasta criada e rodar os comandos "&lt;span class="command"&gt;./configure&lt;/span&gt;", "&lt;span class="command"&gt;make&lt;/span&gt;" e "&lt;span class="command"&gt;make install&lt;/span&gt;".&lt;/p&gt;&lt;p align="justify"&gt;Vamos a um exemplo prático de como recuperar duas partições deletadas "acidentalmente". Onde o cfdisk está mostrando "&lt;u&gt;Free Space&lt;/u&gt;" existem na verdade as partições "/dev/hda2" e "/dev/hda3", que removi previamente:&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://images.guiadohardware.net/imagens/img-97c69ccb.png" alt="index.inc_html_5b51d64e" height="331" width="604" /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Comece chamando o Testdisk como root:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# testdisk&lt;/p&gt;&lt;p align="justify"&gt;Na tele inicial, selecione o HD que será analisado, acesse a opção "&lt;u&gt;Analyse&lt;/u&gt;" e em seguida "&lt;u&gt;Proceed&lt;/u&gt;", para iniciar a varredura do disco.&lt;/p&gt;&lt;p align="justify"&gt;O Testdisk verifica a tabela de partições atual e em seguida pesquisa em todos os setores onde podem existir informações sobre outras partições que não constem na tabela principal. &lt;/p&gt;&lt;p align="justify"&gt;Veja que, apenas com o teste rápido, ele já conseguiu localizar as duas partições que haviam sido deletadas:&lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://images.guiadohardware.net/imagens/img-5c87794e.png" alt="index.inc_html_m17028385" height="357" width="604" /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Pressionando a tecla "&lt;strong&gt;P&lt;/strong&gt;" você pode ver os dados dentro da partição, para ter certeza que os arquivos estão lá (a versão disponível no apt-get não consegue mostrar arquivos dentro de partições ReiserFS, mas a recuperação funciona normalmente). &lt;/p&gt;&lt;p align="justify"&gt;Nos raros casos onde ele localize a partição, mas identifique incorretamente o sistema de arquivos, use a opção "&lt;strong&gt;T&lt;/strong&gt;" para indicar o correto. &lt;/p&gt;&lt;p align="justify"&gt;Depois de checar se o particionamento detectado está correto, pressione "Enter" mais uma vez e você chega à tela final, onde você pode salvar as alterações, usando a opção "&lt;u&gt;Write&lt;/u&gt;". Reinicie o micro e monte a partição para checar os dados. &lt;/p&gt;&lt;p align="justify"&gt;Caso a lista não exiba a partição que você está procurando, use a opção "&lt;u&gt;Search&lt;/u&gt;" no lugar do Write. Isto ativa o teste mais longo, onde ele vasculha todos os setores do HD em busca de partições deletadas. Este segundo teste demora alguns minutos e, num HD com bastante uso, pode retornar uma longa lista de partições que foram criadas e deletadas durante a vida útil do HD. Neste caso, preste atenção para recuperar a partição correta. &lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://images.guiadohardware.net/imagens/img-e28f74d2.png" alt="index.inc_html_m2bbaa36c" height="357" width="604" /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Todas as partições listadas aqui parecem com o atributo "&lt;strong&gt;D&lt;/strong&gt;", que significa que a partição foi deletada. Para recuperar uma partição, selecione-a usando as setas para cima/baixo e use a seta para a direita para mudar o atributo para "&lt;strong&gt;*&lt;/strong&gt;" (se ele for uma partição primária e bootável, como o drive C: no Windows), "&lt;strong&gt;P&lt;/strong&gt;" se ela for uma partição primária ou "&lt;strong&gt;L&lt;/strong&gt;" se ela for uma partição lógica. Lembre-se de que. no Linux, as partições de 1 a 4 são primárias e de 5 em diante são extendidas.&lt;/p&gt;&lt;p align="justify"&gt;É possível também adicionar uma partição manualmente, caso você saiba os setores de início e final, mas isso raramente é necessário. &lt;/p&gt;&lt;p align="justify"&gt;&lt;img src="http://images.guiadohardware.net/imagens/img-690c48a6.png" alt="index.inc_html_453accd1" height="357" width="604" /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Pressione "Enter" mais uma vez e ele mostra uma tela de confirmação, com a tabela de particionamento alterada que será salva no disco. Use o "&lt;u&gt;Write&lt;/u&gt;" para salvar ou volte à tela inicial para começar novamente em caso de erros.&lt;/p&gt;&lt;p align="justify"&gt;Tenha em mente que o tamanha da partição é reportado de acordo com o número de setores de 512 bytes. Uma partição de 5 GB tem pouco mais de 10 milhões de setores.&lt;/p&gt;&lt;p align="justify"&gt;O ideal é que você faça todo o processo usando um live-CD. O Kurumin vem com o Testdisk pré-instalado a partir da versão 6.0 e ele pode ser encontrado também nas versões recentes do Knoppix, PLD e Ultimate Boot CD.&lt;/p&gt;&lt;p align="justify"&gt;Depois de recuperar qualquer partição, é importante checá-la usando o utilitário apropriado, para que qualquer problema dentro da estrutura do sistema de arquivos seja corrigido. &lt;/p&gt;&lt;h3 align="justify"&gt;Recuperando partições danificadas&lt;/h3&gt;&lt;p align="justify"&gt;Assim como no Windows, você nunca deve desligar o micro no botão ao rodar qualquer distribuição Linux. &lt;/p&gt;&lt;p align="justify"&gt;Mas, acidentes acontecem. A energia elétrica acaba de vez em quando, alguns dos drivers de softmodems podem fazer o micro travar (estes drivers são proprietários, por isso não é possível corrigir bugs, como em outras partes do sistema; você depende unicamente da boa vontade do fabricante) e assim por diante.&lt;/p&gt;&lt;p align="justify"&gt;Durante o boot, o sistema verifica as partições em busca de problemas, tentando resolver qualquer inconsistência no sistema de arquivos causado por um desligamento incorreto. Você pode perder alguns arquivos que ainda não tivessem sido salvos no HD, mas a idéia é que a verificação coloque todo o resto em ordem.&lt;/p&gt;&lt;p align="justify"&gt;Para partições em ReiserFS é usado o &lt;strong&gt;reiserfsck&lt;/strong&gt;, para partições em EXT2 ou EXT3 é usado (respectivamente) o &lt;strong&gt;fsck.ext2&lt;/strong&gt; ou o &lt;strong&gt;fsck.ext3&lt;/strong&gt; e para partições em XFS é usado o &lt;strong&gt;xfs_repair&lt;/strong&gt;. &lt;/p&gt;&lt;p align="justify"&gt;Mas, em alguns casos, o dano pode ser grande o suficiente para que não seja possível repará-lo automaticamente, fazendo com que o sistema simplesmente deixe de dar boot. &lt;/p&gt;&lt;p align="justify"&gt;Não há motivo para pânico. Você pode dar boot pelo CD do Kurumin e usá-lo para reparar as partições danificadas.&lt;/p&gt;&lt;p align="justify"&gt;Abra um terminal e vire root (&lt;span class="command"&gt;su&lt;/span&gt;), lembre-se de que, ao rodar o Kurumin pelo CD, você pode definir a senha de root usando o comando "sudo &lt;span class="command"&gt;passwd&lt;/span&gt;". A partição a ser reparada precisa estar desmontada. Vou usar como exemplo a partição /dev/hda1. &lt;/p&gt;&lt;p align="justify"&gt;Se for uma partição &lt;strong&gt;EXT3&lt;/strong&gt;, use o comando:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# fsck.ext3 /dev/hda1 &lt;/p&gt;&lt;p align="justify"&gt;Ele vai começar a apontar os erros e perguntar se cada um deve ser corrigido. Normalmente você pode ir apenas respondendo "&lt;strong&gt;y&lt;/strong&gt;" para tudo, mas caso existam dados realmente importantes na partição é melhor prestar mais atenção. Arquivos danificados ou fragmentos de arquivos que puderam ser recuperados vão para a pasta "&lt;strong&gt;lost+found&lt;/strong&gt;" no diretório raiz da partição. &lt;/p&gt;&lt;p align="justify"&gt;Você pode também adicionar o parâmetro "&lt;strong&gt;-f&lt;/strong&gt;", que força a verificação da partição, mesmo que o sistema de arquivos pareça não ter problemas:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# fsck.ext3 -f /dev/hda1&lt;/p&gt;&lt;p align="justify"&gt;O fsck não é capaz de recuperar o sistema de arquivos em casos de problemas com o superbloco, o setor que contém informações essenciais, como o tipo, tamanho, status e informações sobre a estrutura do sistema de arquivos. Quando não encontra o superbloco, o fsck simplesmente falha miseravelmente, exibindo um "&lt;em&gt;fatal error&lt;/em&gt;", sem maiores explicações. &lt;/p&gt;&lt;p align="justify"&gt;É difícil estimar quantas reinstalações já foram feitas, e qual foi o efeito negativo sobre a reputação do sistema durante sua história por causa deste simples problema, que é felizmente fácil de resolver.&lt;/p&gt;&lt;p align="justify"&gt;Sempre que a partição é criada, são criados vários superblocos alternativos, que servem justamente de backups para casos de problemas com o primeiro. Você pode ver a lista de endereços usando o comando "&lt;strong&gt;mkfs.ext3 -n partição&lt;/strong&gt;", como em:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# mkfs.ext3 -n /dev/hda1&lt;/p&gt;&lt;p align="justify"&gt;Ao usar o comando, nunca esqueça de incluir o "&lt;strong&gt;-n&lt;/strong&gt;", caso contrário ao invés de mostrar as informações, ele vai formatar a partição. No final do relatório você encontra:&lt;/p&gt;&lt;p class="rawoutput" align="justify"&gt;Superblock backups stored on blocks:&lt;br /&gt;32768, 98304, 163840, 229376, 294912, 819200, 884736&lt;/p&gt;&lt;p align="justify"&gt;Alternativamente, você pode usar também o comando "&lt;span class="command"&gt;dumpe2fs /dev/hda1 | grep -i superblock&lt;/span&gt;". O Testdisk (que vimos a pouco) também oferece uma opção para listar superblocos alternativos em partições EXT, que você acessa em "&lt;u&gt;Advanced &gt; Superblock&lt;/u&gt;".&lt;/p&gt;&lt;p align="justify"&gt;Chame novamente o comando "&lt;strong&gt;fsck.ext3&lt;/strong&gt;", adicionando a opção "&lt;strong&gt;-b&lt;/strong&gt;", seguida do endereço do superbloco que será usado. Caso eventualmente o primeiro resulte em erro, experimente o segundo, e assim por diante:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# fsck.ext3 -f -b 32768 /dev/hda2 &lt;/p&gt;&lt;p align="justify"&gt;Para partições EXT2, use o comando "&lt;strong&gt;fsck.ext2&lt;/strong&gt;", que suporta os mesmos parâmetros. &lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;Numa partição ReiserFS, comece com o comando:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# reiserfsck --check /dev/hda1&lt;/p&gt;&lt;p align="justify"&gt;Ele exibe um aviso: &lt;/p&gt;&lt;p class="rawoutput" align="justify"&gt;Do you want to run this program?[N/Yes] (note need to type Yes if you do): &lt;/p&gt;&lt;p align="justify"&gt;Ou seja, você precisa digitar "&lt;strong&gt;Yes&lt;/strong&gt;" para continuar, caso apenas dê Enter ele aborta a operação. &lt;/p&gt;&lt;p align="justify"&gt;Ele vai verificar toda a estrutura do sistema de arquivos e indicar os erros encontrados. O próximo passo é usar a opção "&lt;strong&gt;--fix-fixable&lt;/strong&gt;": &lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# reiserfsck --fix-fixable /dev/hda1 &lt;/p&gt;&lt;p align="justify"&gt;Este segundo comando efetivamente corrige todos os erros simples, que possam ser corrigidos sem colocar em risco as demais estruturas do sistema de arquivos. Em 90% dos casos isto é suficiente. &lt;/p&gt;&lt;p align="justify"&gt;Caso seja encontrado algum erro grave, ele vai abortar a operação. Estes erros mais graves podem ser corrigidos com o comando:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# reiserfsck --rebuild-tree /dev/hda1 &lt;/p&gt;&lt;p align="justify"&gt;Este comando vai reconstruir do zero todas as estruturas do sistema de arquivos, vasculhando todos os arquivos armazenados. Esta operação pode demorar bastante, de acordo com o tamanho e quantidade de arquivos na partição. Nunca interrompa a reconstrução, caso contrário você não vai conseguir acessar nada dentro da partição até que recomece e realmente termine a operação.&lt;/p&gt;&lt;p align="justify"&gt;O "&lt;strong&gt;--rebuild-tree&lt;/strong&gt;" vai realmente corrigir qualquer tipo de erro no sistema de arquivos. Ele só não vai resolver o problema caso realmente existe algum problema físico, como, por exemplo, um grande número de setores defeituosos no HD.&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;Finalmente, caso você esteja usando uma partição formatada em XFS, comece com o:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# xfs_check /dev/hda1&lt;/p&gt;&lt;p align="justify"&gt;Ele vai indicar os problemas encontrados. Para realmente corrigi-los, rode o:&lt;/p&gt;&lt;p class="command_margin" align="justify"&gt;# xfs_repair /dev/hda1&lt;/p&gt;&lt;p align="justify"&gt;Assim como no caso do reiserfsck, todo o processo é automático. Ao contrário do EXT2, tanto o ReiserFS quanto o XFS são sistemas de arquivos muito complexos, por isso qualquer intervenção manual só aumentaria a possibilidade de destruir tudo. &lt;/p&gt;&lt;p align="justify"&gt;Mas, ambos incluem algumas opções avançadas, que podem ser especificadas no comando. Você pode dar uma olhada dentro dos manuais: "&lt;span class="command"&gt;man reiserfsck&lt;/span&gt;" ou "&lt;span class="command"&gt;man xfs_repair&lt;/span&gt;".&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://www.guiadohardware.net/tutoriais/"&gt;Fonte&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-4882346818360469303?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/4882346818360469303/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=4882346818360469303' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/4882346818360469303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/4882346818360469303'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/recuperando-parties-e-corrigindo.html' title='Recuperando partições e corrigindo sistemas de arquivos'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xBSlzELA8b4/SMpiG8VFNyI/AAAAAAAAABM/PolDI6yCu-Q/s72-c/6683E.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-2363506549238989549</id><published>2008-09-10T12:01:00.000-07:00</published><updated>2008-09-10T12:16:07.030-07:00</updated><title type='text'>Renomeando cartões de memória ou pendrives</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xBSlzELA8b4/SMgc7g2yMwI/AAAAAAAAABE/RDDLXx2VPGU/s1600-h/USB-Pen-Drive-Linux--0.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_xBSlzELA8b4/SMgc7g2yMwI/AAAAAAAAABE/RDDLXx2VPGU/s200/USB-Pen-Drive-Linux--0.png" alt="" id="BLOGGER_PHOTO_ID_5244473574830519042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Baixe o pacote &lt;strong&gt;mtools&lt;/strong&gt;, que contém o &lt;strong&gt;mlabel&lt;/strong&gt;, que será utilizado para renomear o cartão: &lt;p&gt;&lt;code&gt;sudo apt-get mtools&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Com o comando mount, vemos os dispositivos montados no momento:&lt;/p&gt; &lt;p&gt;&lt;code&gt;mount&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Com o &lt;strong&gt;mount&lt;/strong&gt; descubro que o meu cartão é o dispositivo &lt;em&gt;/dev/sdb1&lt;/em&gt; e, com o comando abaixo, vejo qual é o seu label (rótulo) atual:&lt;/p&gt; &lt;p&gt;&lt;code&gt;sudo mlabel -i /dev/sdb1 -s ::&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Já que ele não tem rótulo nenhum, vamos criar um com o comando abaixo:&lt;/p&gt; &lt;p&gt;&lt;code&gt;sudo mlabel -i /dev/sdb1 ::SDHC4&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Onde &lt;em&gt;SDHC4&lt;/em&gt; é o nome do rótulo que escolhi e pode ser usado outro qualquer. Depois de feito, verificamos a alteração:&lt;/p&gt; &lt;p&gt;&lt;code&gt;sudo mlabel -i /dev/sdb1 -s ::&lt;/code&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-2363506549238989549?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/2363506549238989549/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=2363506549238989549' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/2363506549238989549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/2363506549238989549'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/renomeando-cartes-de-memria-ou.html' title='Renomeando cartões de memória ou pendrives'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xBSlzELA8b4/SMgc7g2yMwI/AAAAAAAAABE/RDDLXx2VPGU/s72-c/USB-Pen-Drive-Linux--0.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-2186293690474799012</id><published>2008-09-08T13:27:00.001-07:00</published><updated>2008-09-10T11:59:40.202-07:00</updated><title type='text'>Resumão das funções relacionadas a String no PHP</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xBSlzELA8b4/SMgYb2XSopI/AAAAAAAAAA0/BnjQIWlu1mo/s1600-h/logo_php_big.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_xBSlzELA8b4/SMgYb2XSopI/AAAAAAAAAA0/BnjQIWlu1mo/s200/logo_php_big.jpg" alt="" id="BLOGGER_PHOTO_ID_5244468632801682066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;   &lt;table style="width: 758px; height: 5848px;" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style=";font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;"  &gt;&lt;b&gt;&lt;span style="color: rgb(255, 123, 1);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Mais fácil olhar no "resumão" que sair procurando tudo no php.net...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Funções                                      relacionadas a HTML&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                                                  &lt;tr&gt;                                    &lt;td class="texto"&gt;                                      &lt;p&gt;&lt;b&gt;htmlspecialchars&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string htmlspecialchars(string                                        str); &lt;/p&gt;                                     &lt;p&gt;Devolve a string fornecida, substituindo                                        os seguintes caracteres:&lt;/p&gt;                                     &lt;blockquote&gt;                                        &lt;p&gt;&amp;amp; para '&amp;amp;'&lt;br /&gt;                             " para '"'&lt;br /&gt;                             &lt;&gt; para '&gt;'&lt;/p&gt;                                     &lt;/blockquote&gt;                                     &lt;p&gt;&lt;b&gt;htmlentities&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string htmlentities(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Funciona de maneira semelhante ao comando anterior, mas de maneira mais completa, pois converte todos os caracteres da string que possuem uma representação especial em html, como por exemplo:&lt;/p&gt;                                     &lt;blockquote&gt;                                        &lt;p&gt;º para 'º'&lt;br /&gt;                             ª para 'ª'&lt;br /&gt;                             á para 'á'&lt;br /&gt;                             ç para 'ç'&lt;/p&gt;                                     &lt;/blockquote&gt;                                     &lt;p&gt;&lt;b&gt;nl2br&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string nl2br(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Devolve a string fornecida substituindo todas as quebras de linha ("\n") por quebras de linhas em html ("&lt;br /&gt;").&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;echo nl2br("Mauricio\nVivas\n");&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;Imprime:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;Maurício&lt;br /&gt;Vivas&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;get_meta_tags&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;array get_meta_tags(string                                        ficheiro);&lt;/p&gt;                                     &lt;p&gt;Abre um ficheiro html e percorre o cabeçalho em busca de "meta" tags, Devolvendo num array todos os valores encontrados.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           No ficheiro teste.html temos:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;...&lt;br /&gt;                 &lt;br /&gt;                           ...&lt;br /&gt;                           &lt;!-- busca encerra aqui                                        --&gt;&lt;br /&gt;                           ...&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;a execução da função:&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;get_meta_tags("teste.html");&lt;/p&gt;                                     &lt;p&gt;Devolve o array:&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;array("author"=&gt;"jose","tags"=&gt;"php3                                        documentation");&lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;strip_tags&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string strip_tags(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Devolve a string fornecida, retirando todas                                        as tags html e/ou PHP encontradas.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;strip_tags('&lt;a href="http://meublogsopramim.blogspot.com/teste1.php3"&gt;testando&lt;/a&gt;&lt;br /&gt;');&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;Devolve a string "testando"&lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;urlencode&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string urlencode(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Devolve a string fornecida, convertida para o formato urlencode. Esta função é útil para passar variáveis para uma próxima página. &lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;urldecode&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string urldecode(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Funciona de maneira inversa a urlencode, desta vez decodificando a string fornecida do formato urlencode para texto normal.&lt;/p&gt;                                   &lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td height="30"&gt;&lt;br /&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-family:Verdana,Arial,Helvetica,sans-serif;"&gt;                                      &lt;a name="arrays"&gt;&lt;/a&gt;&lt;span style="color: rgb(255, 123, 1);"&gt;Funções                                      relacionadas a arrays&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td height="30"&gt;                                      &lt;p&gt; &lt;/p&gt;                        &lt;br /&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td class="texto"&gt;                                      &lt;p&gt;&lt;b&gt;Implode e join&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string implode(string                                        separador, array partes);&lt;br /&gt;                           string join(string separador, array partes);&lt;/p&gt;                                     &lt;p&gt;As duas funções são idênticas. Devolvem uma string contendo todos os elementos do array fornecido separados pela string também fornecida.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;$partes = array("a",                                        "casa número", 13, "é                                        azul");&lt;br /&gt;                           $inteiro = join(" ",$partes);&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;$inteiro passa a conter a string:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;"a casa                                        número 13 é azul"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;split&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;array split(string                                        padrao, string str, int [limite]);&lt;/p&gt;                                     &lt;p&gt;Devolve um array contendo partes da string fornecida separadas pelo padrão fornecido, podendo limitar o número de elementos do array.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;$data = "11/14/1975";&lt;br /&gt;                           $data_array = split("/",$data);&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;O código acima faz com que a variável                                        $data_array receba o valor:&lt;br /&gt;                           array(11,14,1975);&lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;explode&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;array explode(string                                        padrao, string str);&lt;/p&gt;                                     &lt;p&gt;Funciona de maneira bastante semelhante à função split, com a diferença que não é possível estabelecer um limite para o número de elementos do array.&lt;/p&gt;                                   &lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td height="30"&gt;&lt;br /&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-family:Verdana,Arial,Helvetica,sans-serif;"&gt;&lt;a name="strings1"&gt;&lt;/a&gt;&lt;span style="color: rgb(255, 123, 1);"&gt;Comparações                                      entre strings&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td height="30"&gt;&lt;br /&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td class="texto"&gt;                                      &lt;p&gt;&lt;b&gt;similar_text&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;int similar_text(string str1, string str2, double [porcentagem]); &lt;/p&gt;                                     &lt;p&gt;Compara as duas strings fornecidas e devolve o número de caracteres coincidentes. Opcionalmente pode ser fornecida uma variável, passada por referência (ver tópico sobre funções), que receberá o valor percentual de igualdade entre as strings. Esta função é case sensitive, ou seja, maiúsculas e minúsculas são tratadas como diferentes.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;$num = similar_text("teste",                                        "testando",&amp;amp;$porc);&lt;/p&gt;                                     &lt;p&gt;As variáveis passam a ter os seguintes                                        valores:&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;$num == 4; $porc ==                                        61.538461538462&lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;strcasecmp&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;int strcasecmp(string                                        str1, string str2);&lt;/p&gt;                                     &lt;p&gt;Compara as duas strings e Devolve 0 (zero) se forem iguais, um valor maior que zero se str1 &gt; str2, e um valor menor que zero se str1 &lt;&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;strcmp&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;int strcasecmp(string                                        str1, string str2);&lt;/p&gt;                                     &lt;p&gt;Funciona de maneira semelhante à função strcasecmp, com a diferença que esta é case sensitive, ou seja, maiúsculas e minúsculas são tratadas como diferentes.&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;strstr&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string strstr(string                                        str1, string str2);&lt;br /&gt;                           string strchr(string str1, string str2);&lt;/p&gt;                                     &lt;p&gt;As duas funções são idênticas. Procura a primeira ocorrência de str2 em str1. Se não encontrar, Devolve uma string vazia, e se encontrar Devolve todos os caracteres de str1 a partir desse ponto.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;strstr("Mauricio Vivas", "Viv"); // Devolve "Vivas"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;stristr&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string strstr(string                                        str1, string str2);&lt;/p&gt;                                     &lt;p&gt;Funciona de maneira semelhante à função strstr, com a diferença que esta é case insensitive, ou seja, maiúsculas e minúsculas são tratadas como iguais.&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;strpos&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;int strpos(string                                        str1, string str2, int [offset] );&lt;/p&gt;                                     &lt;p&gt;Devolve a posição da primeira ocorrência de str2 em str1, ou zero se não houver. O parâmetro opcional offset determina a partir de qual caracter de str1 será efetuada a busca. Mesmo utilizando o offset, o valor de retorno é referente ao início de str1.&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;strrpos&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;int strrpos(string                                        haystack, char needle);&lt;/p&gt;                                     &lt;p&gt;Devolve a posição da última ocorrência de str2 em str1, ou zero se não houver. &lt;/p&gt;                                   &lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td height="30"&gt;&lt;br /&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td&gt;&lt;span style=";font-family:Verdana,Arial,Helvetica,sans-serif;font-size:85%;"  &gt;&lt;b&gt;&lt;a name="strings2"&gt;&lt;/a&gt;&lt;span style="color: rgb(255, 123, 1);"&gt;Funções                                      para edição de strings&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td height="30"&gt;&lt;br /&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td class="texto"&gt;                                      &lt;p&gt;&lt;b&gt;chop&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string chop(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Retira espaços e linhas em branco                                        do final da string fornecida.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;chop(" Teste                                        \n \n "); // Devolve " Teste"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;ltrim&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string ltrim(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Retira espaços e linhas em branco                                        do final da string fornecida.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;ltrim("                                        Teste \n \n "); // Devolve "Teste                                        \n \n"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;trim&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string trim(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Retira espaços e linhas em branco                                        do início e do final da string fornecida.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;trim(" Teste                                        \n \n "); // Devolve "Teste"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;strrev&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string strrev(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Devolve a string fornecida invertida.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;trrev("Teste");                                        // Devolve "etseT"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;&lt;br /&gt;                           strtolower&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string strtolower(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Devolve a string fornecida com todas as                                        letras minúsculas.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt; strtolower("Teste");                                        // Devolve "teste"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;strtoupper&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string strtoupper(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Devolve a string fornecida com todas as                                        letras maiúsculas.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt; strtolower("Teste");                                        // Devolve "TESTE"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;ucfirst&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string ucfirst(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Devolve a string fornecida com o primeiro                                        caracter convertido para letra maiúscula.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;ucfirst("teste de funcao"); // Devolve "Teste de funcao"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;ucwords&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string ucwords(string                                        str);&lt;/p&gt;                                     &lt;p&gt;Devolve a string fornecida com todas as                                        palavras iniciadas por letras maiúsculas.&lt;/p&gt;                                     &lt;p&gt;Exemplo:&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;ucwords("teste de funcao"); // Devolve "Teste De Funcao"&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;str_replace&lt;/b&gt;&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;string str_replace(string                                        str1, string str2, string str3);&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;Altera todas as ocorrências de str1                                        em str3 pela string str2.&lt;/p&gt;                                   &lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td height="30"&gt;&lt;br /&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-family:Verdana,Arial,Helvetica,sans-serif;"&gt;&lt;a name="diversas"&gt;&lt;/a&gt;&lt;span style="color: rgb(255, 123, 1);"&gt;Funções                                      diversas&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td height="30"&gt;&lt;br /&gt;&lt;/td&gt;                                 &lt;/tr&gt;                                 &lt;tr&gt;                                    &lt;td class="texto"&gt;                                      &lt;p&gt;&lt;b&gt;chr&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;string chr(int ascii);&lt;/p&gt;                                     &lt;p&gt;Devolve o caracter correspondente ao código                                        ASCII fornecido.&lt;/p&gt;                                                                          &lt;p&gt;&lt;b&gt;ord&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;int ord(string string);&lt;/p&gt;                                     &lt;p&gt;Devolve o código ASCII correspontente                                        ao caracter fornecido.&lt;/p&gt;                                     &lt;p&gt;&lt;br /&gt;                           &lt;b&gt;echo&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;echo(string arg1,                                        string [argn]... );&lt;/p&gt;                                     &lt;p&gt;Imprime os argumentos fornecidos.&lt;br /&gt;                         &lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;print&lt;/b&gt;&lt;/p&gt;                                     &lt;p class="codigo_flash"&gt;print(string arg);&lt;/p&gt;                                     &lt;p&gt;Imprime o argumento fornecido.&lt;/p&gt;                                     &lt;p&gt;&lt;b&gt;strlen &lt;/b&gt;&lt;br /&gt;                           &lt;span class="codigo_flash"&gt;int strlen(string                                        str);&lt;/span&gt;&lt;/p&gt;                                     &lt;p&gt;Devolve o tamanho da string fornecida.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-2186293690474799012?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/2186293690474799012/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=2186293690474799012' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/2186293690474799012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/2186293690474799012'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/resumo-das-funes-relacionadas-string-no.html' title='Resumão das funções relacionadas a String no PHP'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xBSlzELA8b4/SMgYb2XSopI/AAAAAAAAAA0/BnjQIWlu1mo/s72-c/logo_php_big.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-6500420017913837277</id><published>2008-09-05T05:53:00.001-07:00</published><updated>2008-09-05T06:23:52.140-07:00</updated><title type='text'>Trabalhando com arquivos compactados no Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xBSlzELA8b4/SMEy23tSefI/AAAAAAAAAAU/98qi9MYxvLY/s1600-h/Captura_da_tela-1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_xBSlzELA8b4/SMEy23tSefI/AAAAAAAAAAU/98qi9MYxvLY/s200/Captura_da_tela-1.png" alt="" id="BLOGGER_PHOTO_ID_5242527359484197362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compactadores: rar, zip, bzip, etc &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No Linux, cada formato trabalha de maneira independente, ou seja, cada fomato de arquivo compactado tem um executável próprio para ser extraido. Estes programas podem ser usados no terminal (linha de comando) ou através de &lt;span style="font-style: italic;"&gt;frontends&lt;/span&gt; (interfaces gráficas que se utilizam desses executaveis).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TAR&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O tar é um dos formatos mais comuns no Linux, tem a extensão ".tar", e geralmente os arquivos tar já vem compactados em Gzip, com a extenção ".tar.gz". Para extrair um arquivo ".tar" use o seguinte comando:&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;tar -xvf &lt;nome&gt;&lt;/nome&gt;&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Em que "" seria substituido pelo nome do arquivo ".tar" que você gostaria de extrair. Este comando irá extrair o conteudo do arquivo no diretório atual. Para extrair em outro caminho, usa a opção -C:&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;tar -xvf &lt;nome&gt; -C &lt;lugar&gt;&lt;/lugar&gt;&lt;/nome&gt;&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Obviamente, substituindo "" pelo caminho da pasta. Veja um exemplo:&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;tar -xvf pumpitup.tar -C /home/CidoLoco/Programas/Pump\ It\ Up&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Simples assim. &lt;img src="http://www.slackbr.org/forum/images/smilies/icon_biggrin.gif" alt=":D" title="Very Happy" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GZIP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;De longe o mais utilizado no Linux, geralmente vem compactando um arquivo ".tar". Tem uma compressão boa (apenas boa &lt;img src="http://www.slackbr.org/forum/images/smilies/icon_razz.gif" alt=":P" title="Razz" /&gt;) e tem a extensão ".tar.gz" ou apenas ".gz". Há duas maneiras de extrair um arquivo ".tar.gz", e apenas uma para extrair um arquivo ".gz":&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;gunzip -d &lt;nome&gt;&lt;/nome&gt;&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Use o comando acima para extrair arquivos ".gz". Caso faça isso em um arquivo ".tar.gz", será criado um arquivo ".tar" que deverá ser extraido novamente usando o comando tar. Portanto, é mais simples estrair ".tar.gz" logo dessa maneira:&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;tar -xvf &lt;nome&gt;&lt;/nome&gt;&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Extamente, é igual a extrair um arquivo ".tar" comum. Decore este comando, pois vai ser bastante usado. &lt;img src="http://www.slackbr.org/forum/images/smilies/icon_biggrin.gif" alt=":D" title="Very Happy" /&gt; Você também pode usar o parametro "-C" para arquivos ".tar.gz" utilizando o comando "tar".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BZIP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bzip é um dos formatos que melhor compacta os arquivos, porém também demora um pouco mais para descompactar os arquivos. A extenção é ".tar.bz2" ou apenas ".bz2". É quase a mesma coisa do Gzip, para extrair um arquivo ".bz2" use o seguinte comando:&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;bunzip2 -d &lt;nome&gt;&lt;/nome&gt;&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Só muda o nome do comando mesmo, porque as opções são as mesmas. E para extrair um arquivo ".tar.bz2" é ainda mais simples:&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;tar -xvf &lt;nome&gt;&lt;/nome&gt;&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Mais uma vez a mesma coisa. &lt;img src="http://www.slackbr.org/forum/images/smilies/icon_razz.gif" alt=":P" title="Razz" /&gt; Este comando também extrai arquivos ".tar.bz2", sendo assim, também aceita a opção "-C".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RAR&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este formato é um dos mais usados no Windows. Ainda há alguns softwares para Linux que também usam Rar para comprimir seus arquivos, mesmo que o Bzip2 comprima melhor. Bom, cada um gosta do que gosta. &lt;img src="http://www.slackbr.org/forum/images/smilies/icon_razz.gif" alt=":P" title="Razz" /&gt; Para extrair arquivos ".rar", você deve ter o programa de linha de comando "unrar". Existe ainda o "rar", mas geralmente o "unrar" já vem na maioria das distribuições. Caso não tenha ele no seu slackware, baixe &lt;a href="http://www.linuxpackages.net/search_view.php?by=name&amp;amp;name=unrar&amp;amp;ver=" class="postlink"&gt;aqui&lt;/a&gt;.&lt;br /&gt;Para extrair um arquivo ".rar" é simples:&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;unrar e &lt;nome&gt;&lt;/nome&gt;&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Isso irá extrair o arquivo rar no caminho atual.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ZIP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Com certeza o formato mais usado, usa a extenção ".zip". Para extrair um arquivo ".zip" é simples:&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;unzip &lt;nome&gt;&lt;/nome&gt;&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Isto irá extair o arquivo no diretório atual. O executavel "unzip" já vem no Slackware.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7ZIP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7zip é um formato aberto, relativamente novo. Está se tornando cada vez mais famoso pela sua capacidade de compressão muito alta. Geralmente não está presente por padrão no sistema, e o recomendado é baixá-lo. Você pode fazer isso &lt;a href="http://www.linuxpackages.net/search_view.php?by=name&amp;amp;name=7zip&amp;amp;ver=" class="postlink"&gt;aqui&lt;/a&gt;. Sua extenção é ".7z", e para extraí-lo no diretório atual usamos o seguinte comando:&lt;br /&gt;&lt;br /&gt;&lt;dl class="codebox"&gt;&lt;dt&gt;Código: &lt;a href="http://www.slackbr.org/forum/viewtopic.php?p=70975#" onclick="selectCode(this); return false;"&gt;Selecionar tudo&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;code&gt;7za e &lt;nome&gt;&lt;/nome&gt;&lt;/code&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Existem outros tipos de arquivos (bem) menos comuns de serem encontrados na internet para download. São eles: .lhz, .lha, .gda, .cab, .arj, .pea, .ace e outros. Lhz e Lha são mais usados no Japão. Gda é um formato japonês, e mesmo assim pouco utilizado por lá. Cab são os arquivos "cabinet" do Windows. Arj já foi mais usado. &lt;img src="http://www.slackbr.org/forum/images/smilies/icon_razz.gif" alt=":P" title="Razz" /&gt; Pea é um formato relativamente novo, criado pelo desenvolvedor do PeaZip. Ace também já foi mais usado antigamente. &lt;img src="http://www.slackbr.org/forum/images/smilies/icon_smile.gif" alt=":)" title="Smile" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Frontends:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Frontends nada mais são do que interfaces gráficas para executaveis de linha de comando. No caso dos compactadores, os frontends se utilizam destes programas vistos anteriormente e apenas facilitam a tarefa para o usuário. Sendo asssim, maioria deles verifica na inicialização quais formatos você pode extrair, e automaticamente passam a dar suporte aos formatos que encontrarem no seu computador. Isto que dizer que, se você quiser extrair um arquivo ".7z", basta você instalar o "p7zip" no seu computador a automaticamente a maioria dos frontends irão passar a dar suporte ao formato. &lt;img src="http://www.slackbr.org/forum/images/smilies/icon_smile.gif" alt=":)" title="Smile" /&gt;&lt;br /&gt;&lt;br /&gt;Frontends mais conhecidos:&lt;br /&gt;&lt;br /&gt;Ark (KDE)&lt;br /&gt;File Roller (Gnome)&lt;br /&gt;LxArchiver (GTK)&lt;br /&gt;PeaZip (GTK e QT)&lt;br /&gt;&lt;br /&gt;Sites dos formatos:&lt;br /&gt;&lt;br /&gt;TAR - &lt;!-- m --&gt;&lt;a class="postlink" href="http://www.gnu.org/software/tar/"&gt;http://www.gnu.org/software/tar/&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;GZIP - &lt;!-- m --&gt;&lt;a class="postlink" href="http://www.gzip.org/"&gt;http://www.gzip.org/&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;BZIP2 - &lt;!-- m --&gt;&lt;a class="postlink" href="http://www.bzip.org/"&gt;http://www.bzip.org/&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;RAR - &lt;!-- m --&gt;&lt;a class="postlink" href="http://www.rarlab.com/"&gt;http://www.rarlab.com/&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;ZIP - &lt;!-- m --&gt;&lt;a class="postlink" href="http://www.winzip.com/"&gt;http://www.winzip.com/&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;7ZIP - &lt;!-- m --&gt;&lt;a class="postlink" href="http://www.7zip.org/"&gt;http://www.7zip.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-6500420017913837277?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/6500420017913837277/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=6500420017913837277' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6500420017913837277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6500420017913837277'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/trabalhando-com-arquivos-compactados.html' title='Trabalhando com arquivos compactados no Linux'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xBSlzELA8b4/SMEy23tSefI/AAAAAAAAAAU/98qi9MYxvLY/s72-c/Captura_da_tela-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-6331058669843796372</id><published>2008-09-05T05:46:00.000-07:00</published><updated>2008-09-05T06:01:40.227-07:00</updated><title type='text'>Configurando o PATH do Java no Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xBSlzELA8b4/SMEtoippTgI/AAAAAAAAAAM/DFoz9_3mIoA/s1600-h/java-logo.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 108px; height: 106px;" src="http://3.bp.blogspot.com/_xBSlzELA8b4/SMEtoippTgI/AAAAAAAAAAM/DFoz9_3mIoA/s200/java-logo.png" alt="" id="BLOGGER_PHOTO_ID_5242521615755464194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Muita gente tem dificuldade em mecher no path do linux (apesar de não ser nenhum bicho de sete cabeças) , porém esse artigo vai facilitar a vida de muita gente, assim como facilitou a minha.&lt;img src="file:///media/CIRO/Imagens/java-logo.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Segue o artigo:&lt;br /&gt;&lt;br /&gt;Após a instalação do J2SE e sua documentação é necessário configurar as variáveis de ambiente para que o SO saiba onde encontrar os binários, as bibliotecas e os manuais. Faço isso editando o arquivo &lt;em&gt;bash.bashrc&lt;/em&gt;, localizado no diretório &lt;em&gt;/etc&lt;/em&gt;, com o comando&lt;div class="post-body entry-content"&gt; &lt;blockquote class="western"&gt;sudo gedit /etc/bash.bashrc (algumas distros como o fedora core 9 fica em /etc/bashrc)&lt;br /&gt;&lt;/blockquote&gt; &lt;p class="western"&gt;e nele incluindo as linhas…&lt;/p&gt; &lt;blockquote class="western"&gt;JAVA_HOME="/opt/java"&lt;br /&gt;CLASSPATH="$JAVA_HOME:$JAVA_HOME/lib:$."&lt;br /&gt;MANPATH="$MANPATH:$JAVA_HOME/man"&lt;br /&gt;JAVA_DOC="$JAVA_HOME/docs"&lt;br /&gt;PATH="$JAVA_HOME/bin:$PATH" &lt;/blockquote&gt; &lt;blockquote class="western"&gt;export JAVA_HOME CLASSPATH MANPATH JAVA_DOC PATH&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-6331058669843796372?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/6331058669843796372/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=6331058669843796372' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6331058669843796372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6331058669843796372'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/configurando-o-path-do-java-no-linux.html' title='Configurando o PATH do Java no Linux'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xBSlzELA8b4/SMEtoippTgI/AAAAAAAAAAM/DFoz9_3mIoA/s72-c/java-logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-465145746745345423</id><published>2008-09-04T12:31:00.000-07:00</published><updated>2008-09-05T06:04:35.772-07:00</updated><title type='text'>Software livre para rastrear laptop roubado</title><content type='html'>&lt;p style="text-align: justify;"&gt;&lt;a style="font-weight: bold;" href="http://adeona.cs.washington.edu/"&gt;&lt;img style="width: 210px; height: 91px;" class="aligncenter" title="Adeona" src="http://adeona.cs.washington.edu/adeonaimages/adeonalogo.jpg" alt="" /&gt;&lt;/a&gt;Estudantes da Universidade de Washington desenvolvem o primeiro software livre com a função de rastrear laptops roubados ou perdidos. O Adeona, nome inspirado na mitologia romana, é instalado na máquina e continuamente monitora sua localização.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;O monitoramento ocorre com o envio dos números IPs que o laptop vai adquirindo, juntamente com demais informações da rede que está acessando. O mecanismo então encripta estes dados, que ficam à disposição do proprietário do laptop, que deve manter uma chave de acesso adquirida com o software em um pen drive, por exemplo, para que possa rastrear a máquina quando for preciso.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Um recurso adicional muito interessante é que se o laptop for um Mac, é possível capturar fotos com a webcam integrada em intervalos de 30 segundos.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Caso queira mais informações sobre este projeto, acesse:&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;a href="http://adeona.cs.washington.edu/"&gt;http://adeona.cs.washington.edu/&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;a href="http://www.tecnosapiens.com.br/2008/09/software-livre-para-rastrear-laptops/"&gt;Fonte&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-465145746745345423?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/465145746745345423/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=465145746745345423' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/465145746745345423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/465145746745345423'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/software-livre-para-rastrear-laptop.html' title='Software livre para rastrear laptop roubado'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868707312759914756.post-6756232051566742908</id><published>2008-09-04T08:03:00.000-07:00</published><updated>2008-09-05T10:23:39.103-07:00</updated><title type='text'>Usando o DBDesigner no Fedora</title><content type='html'>&lt;p&gt;Instalar e configurar essa ferramenta extremamente poderosa para o ambiente LAMP inicialmente me pareceu uma tarefa difícil, mas depois desse tutorial! Pronto! Muito Simples!&lt;/p&gt; &lt;p&gt;&lt;a href="http://techfree.files.wordpress.com/2008/05/dbdesigner.jpg"&gt;&lt;img style="width: 157px; height: 104px;" class="alignnone size-medium wp-image-193" src="http://techfree.files.wordpress.com/2008/05/dbdesigner.jpg?w=300&amp;amp;h=267" alt="Usando o DBDesigner no Fedora" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Baixar o pacote :&lt;/p&gt; &lt;p&gt;http://downloads.mysql.com/DBDesigner4/DBDesigner4.0.5.4.tar.gz&lt;/p&gt; &lt;p&gt;Depois baixar a biblioteca :&lt;/p&gt; &lt;p&gt;# wget http://ufpr.dl.sourceforge.net/sourceforge/kylixlibs/kylixlibs3-borqt-3.0-2.tar.gz&lt;/p&gt; &lt;p&gt;Então descompactar&lt;/p&gt; &lt;p&gt;# tar zxvf kylixlibs3-borqt-3.0-2.tar.gz&lt;/p&gt; &lt;p&gt;Copie a biblioteca para o local correto :&lt;/p&gt; &lt;p&gt;cp kylixlibs3-borqt/libborqt-6.9.0-qt2.3.so /usr/lib&lt;/p&gt; &lt;p&gt;Crie o link simbolico para o arquivo que o DBDesigner solicita :&lt;/p&gt; &lt;p&gt;ln -sf /usr/lib/libborqt-6.9.0-qt2.3.so /usr/lib/libborqt-6.9-qt2.3.so&lt;/p&gt; &lt;p&gt;Enfim coloque o seguinte comando para ativa a nova biblioteca&lt;/p&gt; &lt;p&gt;# ldconfig&lt;/p&gt; &lt;p&gt;Inicie a configuração do DBDesigner. Coloque o seguinte comando :&lt;/p&gt; &lt;p&gt;&lt;pasta&gt;/startdbd&lt;/pasta&gt;&lt;/p&gt; &lt;p&gt;Crie um atalho no menu do Gnome :&lt;/p&gt; &lt;p&gt;copie o arquivo startdbd.desktop para /usr/share/applications/&lt;/p&gt; &lt;p&gt;Depois edite o arquivo copiado para o seguinte conteúdo:&lt;/p&gt; &lt;p&gt;[Desktop Entry]&lt;br /&gt;Comment=fabFORCE DBDesigner 4&lt;br /&gt;Exec=/opt/DBDesigner4/DBDesigner4&lt;br /&gt;Icon=/opt/DBDesigner4/Gfx/Icon48.xpm&lt;br /&gt;Name=DBDesigner4&lt;br /&gt;Type=Application&lt;br /&gt;Categories=Qt;KDE;Development;WebDevelopment;&lt;/p&gt; &lt;p&gt;Pronto!&lt;/p&gt; &lt;p&gt;Agora vá em Aplicações &gt; Programação e verá o icone do DBDesigner.&lt;/p&gt; &lt;p&gt;Problemas em conectar no banco?&lt;/p&gt; &lt;p&gt;Baixe o driver DbExpress do Mysql&lt;/p&gt; &lt;p&gt;# wget http://crlab.com/dbx/dbxmda.tar.gz&lt;/p&gt; &lt;p&gt;Depois copie a biblioteca&lt;/p&gt; &lt;p&gt;# cp DbxMda/libsqlmda.so.4.20 /usr/lib&lt;br /&gt;# ldconfig&lt;/p&gt; &lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;Agora no ato da conexão será necessário mudar alguns parâmetros na aba Advanced&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="text-decoration: line-through;"&gt;# GetDriverFunc para getSQLDriverMySQL (isso mesmo com y minúsculo)&lt;br /&gt;# LibraryName para libsqlmda.so.4.20&lt;br /&gt;# VendorLib para libmysqlclient.so.15&lt;/span&gt;&lt;/p&gt; &lt;p&gt;Baixe o &lt;a title="DBDesigner Patch" href="http://www.4shared.com/file/49214208/b2bd8aec/DBDesigner.html" target="_blank"&gt;patch&lt;/a&gt; e então dê os seguinte comandos:&lt;/p&gt; &lt;p&gt;# cd /opt/DBDesigner4&lt;/p&gt; &lt;p&gt;# patch -p1 -i DBDesigner4.diff&lt;/p&gt; &lt;p&gt;Obs : Se você já executou o DBDesigner, antes de efetuar esses dois passos acima, remova os arquivos da pasta home do usuário, pois quando o programa foi iniciado, esses arquivos serão recriados.&lt;/p&gt; &lt;p&gt;# rm -fr /home/&lt;seu&gt;/.DBDesigner4&lt;/seu&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;PS: Ainda vou criar um script para fazer isso tudo acima somente com um comando. Vou achar um tempo para fazer isso!&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Pronto!&lt;/p&gt; &lt;p&gt;Achou o DBDesigner um pouco feio?&lt;/p&gt; &lt;p&gt;No DBDesigner4 vá no Menu Options -&gt; DBDesigner Options. Na aba Visual Options troque a fonte, conforme você troca já muda na tela para você ver. O meu ficou muito bom com Helvetica, 8.&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jragomes.com/content/view/21/"&gt;Fonte&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Agora consertando os bugs&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; Ao tentar conectar na base acontecia o erro &lt;strong&gt;“Unable to load libsqlmy.so”&lt;/strong&gt;. Para corrigir isso,  baixei o &lt;a href="http://crlab.com/dbx/download.html" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/crlab.com');"&gt;DBExpress para MySQL&lt;/a&gt;, descompactei o arquivo &lt;strong&gt;libsqlmda.so.4.20&lt;/strong&gt; no diretório &lt;strong&gt;/usr/lib/DBDesigner/Linuxlib/&lt;/strong&gt; e, no DBDesigner, fui em Database &gt; Connect to database, cliquei em “New Connection” e, na aba “Advanced”, defini os seguintes valores:&lt;/p&gt; &lt;ul&gt;&lt;li&gt; GetDriverFunc: getSQLDriverMySQL&lt;/li&gt;&lt;li&gt; LibraryName: /usr/lib/DBDesigner/Linuxlib/libsqlmda.so.4.20&lt;/li&gt;&lt;li&gt; VendorLib: /usr/lib/DBDesigner/Linuxlib/libmysqlclient.so.10.0.0&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;IMPORTANTE:&lt;/strong&gt; Note que o valor padrão de GetDriverFunc é &lt;span style="text-decoration: line-through;"&gt;getSQLDriverMYSQL&lt;/span&gt;, com Y maiúsculo e o valor que deve ser colocado é com y minúsculo.&lt;/p&gt; &lt;p&gt;Com isso eu consegui conectar no banco e fazer a engenharia reversa. Essa solução, encontrei no &lt;a href="http://wiki.splitbrain.org/dbdesigner#problems_with_libsqlmy.so" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiki.splitbrain.org');"&gt;artigo DBDesigner do DokuWiki&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; Depois de já ter conseguido conectar no banco de dados, passou a acontecer o erro &lt;strong&gt;“Error while executing Query:…… ERROR Message: libmidas.so.1:cannot open shared object file”&lt;/strong&gt; ao tentar executar uma query.&lt;strong&gt; &lt;/strong&gt;Para corrigir isso, criei um link para biblioteca &lt;strong&gt;libmidas.so.1.0&lt;/strong&gt; no diretório &lt;strong&gt;/usr/lib/&lt;/strong&gt;, executando o seguinte comando no terminal:&lt;/p&gt; &lt;p&gt;sudo ln -sf /usr/local/DBDesigner4/Linuxlib/libmidas.so.1.0 /usr/lib/libmidas.so.1&lt;/p&gt; &lt;p&gt;Depois, bastou reiniciar o DBDesigner para tudo funcionar normalmente. Essa solução eu achei &lt;a href="http://ubuntuforums.org/showthread.php?t=298768" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/ubuntuforums.org');"&gt;num post do ubuntuforums.org&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.diogosantos.com/category/ubuntu/"&gt;Fonte&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/868707312759914756-6756232051566742908?l=repositorioaberto.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://repositorioaberto.blogspot.com/feeds/6756232051566742908/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=868707312759914756&amp;postID=6756232051566742908' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6756232051566742908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868707312759914756/posts/default/6756232051566742908'/><link rel='alternate' type='text/html' href='http://repositorioaberto.blogspot.com/2008/09/usando-o-dbdesigner-no-fedora.html' title='Usando o DBDesigner no Fedora'/><author><name>Ciro Junior.</name><uri>http://www.blogger.com/profile/15682352434448900889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_xBSlzELA8b4/TChPiVX1deI/AAAAAAAAAIY/UuX57ej43w8/S220/P120909_21+(c%C3%B3pia).25.jpg'/></author><thr:total>0</thr:total></entry></feed>
