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

<channel>
	<title>WEBCENTRO &#124; Soluções para web</title>
	<atom:link href="http://webcentro.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://webcentro.wordpress.com</link>
	<description>Notas de um tecnólogo</description>
	<lastBuildDate>Tue, 17 Jan 2012 19:14:57 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='webcentro.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>WEBCENTRO &#124; Soluções para web</title>
		<link>http://webcentro.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://webcentro.wordpress.com/osd.xml" title="WEBCENTRO &#124; Soluções para web" />
	<atom:link rel='hub' href='http://webcentro.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Migrando projetos de SVN para outro SVN</title>
		<link>http://webcentro.wordpress.com/2010/07/06/migrando-projetos-de-svn-para-outro-svn/</link>
		<comments>http://webcentro.wordpress.com/2010/07/06/migrando-projetos-de-svn-para-outro-svn/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 20:56:02 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://webcentro.wordpress.com/?p=315</guid>
		<description><![CDATA[Este pequeno artigo tem o objetivo de auxiliar no processo de migração de projetos de um servidor SVN para outro também SVN. Não levo em conta a migração de histórico de versão e outras funcionalidades, o objetivo é auxiliar iniciantes no processo de migração de servidor Subversion. Possivelmente existem soluções mais completas e eficazes. Como <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=315&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://webcentro.files.wordpress.com/2010/07/captura_de_tela-12.png"><img class="alignnone size-full wp-image-318" title="Captura_de_tela-12" src="http://webcentro.files.wordpress.com/2010/07/captura_de_tela-12.png?w=510" alt=""   /></a></p>
<p>Este pequeno artigo tem o objetivo de auxiliar no processo de migração de projetos de um servidor SVN para outro também SVN.</p>
<p>Não levo em conta a migração de histórico de versão e outras funcionalidades, o objetivo é auxiliar iniciantes no processo de migração de servidor Subversion.</p>
<p>Possivelmente existem soluções mais completas e eficazes.</p>
<h2><strong>Como funciona o SVN</strong></h2>
<p>Um projeto é identificado como versionado por SVN quando possui uma para em cada diretório deste chamada &#8220;.svn&#8221;. Ali se encontram arquivos que informam a localização do serviço assim como outras configurações pertinentes.</p>
<p>Todos subdiretórios de um projeto SVN possuem sua própria pasta .svn com seu conjunto de configurações (muitas vezes essa pasta se encontra oculta pelo sistema operacional).</p>
<h2>Migrando Projeto</h2>
<p>Basicamente temos que efetuar o check-out de ambos os projetos, o antigo e o novo (que se encontra vazio).</p>
<p>Em seguida teremos que copiar o conteúdo de um repositório para outro e efetuar commit, <strong>porém o processo não é tão simples assim</strong>, primeiramente teremos que efetuar alguns procedimentos para evitar conflitos.</p>
<h2>Removendo Conflitos</h2>
<p>Como o serviço svn, assim como o cvs, se baseia em pastas ocultas, no caso chamadas  &#8220;.svn&#8221;, para registrar as informações de versionamento. antes de enviar para um novo servidor é necessário remover tais diretórios. O processo manual seria bastante cansativo, pois o projeto pode conter inúmeras subpastas dessa forma podemos utilizar as soluções a seguir:</p>
<p>* Certifique-se de ter realizado o commit todas as alterações no projeto antigo, pois a partir do momento que você remover os .svn você não mais conseguirá o fazer.</p>
<h2>Removendo diretórios .svn no console do Linux</h2>
<p>O comando a seguir irá remover todos os diretórios .svn do projeto localizado em &#8220;/home/alandaniel/workspace/projeto&#8221;:</p>
<p>$ find /home/alandaniel/workspace/projeto -iname .svn -exec rm -rf {} \;</p>
<h2>Remover diretórios .svn utilizando o Eclipse</h2>
<p>Para remover os diretórios no eclipse existem duas formas,  uma é pelo menu próprio para isso:</p>
<ul>
<li> Botão direito no projeto: Team &gt; Disconect &gt; Marque &#8220;Also delete the svn meta&#8230;&#8221;</li>
</ul>
<p>Outra solução, e mais recomendada, é exportar o projeto, assim você irá gerar uma cópia deste:</p>
<ul>
<li> Botão direito no projeto: Export &gt; Selecione File System &gt; next  &gt; Selecione o lugar a exportar &gt; Next &#8230;</li>
</ul>
<h2>Passos Finais</h2>
<p>Copie o novo conteúdo para o novo projeto e efetue o commit.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/315/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=315&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/07/06/migrando-projetos-de-svn-para-outro-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>

		<media:content url="http://webcentro.files.wordpress.com/2010/07/captura_de_tela-12.png" medium="image">
			<media:title type="html">Captura_de_tela-12</media:title>
		</media:content>
	</item>
		<item>
		<title>Habilitando servidor webdav usando Apache no Ubuntu Linux</title>
		<link>http://webcentro.wordpress.com/2010/05/19/habilitando-servidor-webdav-usando-apache-no-ubuntu-linux/</link>
		<comments>http://webcentro.wordpress.com/2010/05/19/habilitando-servidor-webdav-usando-apache-no-ubuntu-linux/#comments</comments>
		<pubDate>Wed, 19 May 2010 17:57:30 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
		
		<guid isPermaLink="false">http://webcentro.wordpress.com/?p=307</guid>
		<description><![CDATA[Ferramentas: Ubuntu 9.04, apache2, ldap WebDav é um tipo se serviço que permite a download e upload de arquivos de um servidor de uma forma bastante transparente. É um padrão aberto e multiplataforma especificado na RFC 4510. Permite o mapeamento de uma URL como se fosse um diretório local. Esse artigo irá explicar como criar <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=307&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Ferramentas: </strong>Ubuntu 9.04, apache2, ldap</p>
<p>WebDav é um tipo se serviço que permite a download e upload de arquivos de um servidor<br />
de uma forma bastante transparente. É um padrão aberto e multiplataforma especificado na RFC 4510.<br />
Permite o mapeamento de uma URL como se fosse um diretório local.</p>
<p>Esse artigo irá explicar como criar um servidor WebDav usando o servidor Web Apache 2 na distribuição Ubuntu Linux.<br />
Esse artigo presume que você tenha conhecimento da instalar e configuração de servidor apache, no caso via pacotes debian,<br />
porém se você souber extrair as informações aqui contidas poderá instalá-lo das outras diversas formas possíveis,<br />
os locais de diretórios aqui abordados são do padrão debian-ubuntu.</p>
<h3>1. PRIMEIRAS CONFIGURAÇÕES</h3>
<p>Instale o apache e suas dependencias.</p>
<p>Iremos adicionar um novo host virtual, na porta 8080 para efetuar nossos testes, assegure-se que outra aplicação não está utilizando essa porta, senão escolha outra. Para criar um novo VirtualHost basta adicionar no arquivo &#8220;/etc/apache2/ports.conf&#8221; as seguintes linhas:</p>
<p><pre class="brush: plain;">
NameVirtualHost *:8080
Listen 8080
</pre></p>
<h3>2. CONFIGURANDO O WEBDAV</h3>
<p>Os diretórios a seguir são somente para organizar melhor a aplicação, você pode cria-los como desejar.<br />
Crie a pasta /var/webdav/ e crie dentro as seguintes pastas:<br />
*htdocs/ : será o local onde os arquivos serão inseridos, será o dav público;<br />
*htdocs/basic/ : para exemplificar a autenticação basic;<br />
*htdocs/digest/ : para exemplificar a autenticação digest;<br />
*htdocs/ldap/ : para exemplificar a autenticação ldap;<br />
*htdocs/ldap_grupo/ : para exemplificar o uso de ldap e grupos;<br />
*config/ : pasta criada para conter o arquivo de senhas caso seja o caso, será visto depois.<br />
altere o dono da pasta htdocs para www-data<br />
sudo chown www-data /var/webdav/htdocs/</p>
<p>Agora é necessario adicionar o módulo de webdav, execute o comando a seguir (Apache2 deverá estar instalado):</p>
<p><pre class="brush: bash;">
# a2enmod dav
# a2enmod dav_fs
</pre></p>
<p>Esse comando simplesmente criará um link dos módulos desejados de /etc/apache/mod-avaliable/&#8230; para /etc/apache/mod-enable/&#8230;</p>
<p>Agora criaremos o seguinte arquivo &#8220;/etc/apache/site-enabled/webdav&#8221; com o conteúdo a seguir:</p>
<p><pre class="brush: bash;">
&lt;VirtualHost *:8080&gt;
	DocumentRoot /var/webdav/htdocs/
        &lt;Directory /var/webdav/htdocs/&gt;
		DAV On
	&lt;/Directory&gt;
&lt;/VirtualHost&gt;
</pre></p>
<p>Agora reinicie o servidor e teste o endereço http://localhost:8080</p>
<p><pre class="brush: bash;">
# /etc/init.d/apache2 restart
</pre></p>
<h3>3. ACESSANDO WEBDAV NO UBUNTU USANDO NAUTILUS</h3>
<p>Para utilizar uma url webdav no linux você pode utilizar o Nautilus, para isso faça os seguintes passos:<br />
*Abri um navegador de arquivos (nautilus)<br />
*Clique em arquivo &gt; conectar ao servidor&#8230;<br />
*Selecione Webdav, e informe as configurações do nosso servidor (localhost|8080)</p>
<h3>4. AUTENTICAÇÃO POR ARQUIVO: BASIC</h3>
<p>Uma das formas de restringir o acesso ao nosso servidor webdav é criar um arquivo de senhas.</p>
<p>Adicione os módulos necessários executando o comando:</p>
<p><pre class="brush: plain;">
# a2enmod auth_basic
# a2enmod auth_file
</pre></p>
<p>Agora iremos criar um arquivo de usuários e senhas.<br />
Execute o comando a seguir, onde teste é o nome do usuário que você deseja criar:</p>
<p><pre class="brush: plain;">
# htpasswd -c /var/webdav/config/passwd_basic.dav teste
</pre></p>
<p>O parametro &#8220;-c&#8221; significa create, caso o arquivo já exista irá ser substituido.</p>
<p>Agora modificaremos novamente o arquivo &#8220;/etc/apache/site-enabled/webdav&#8221; e adicionaremos dentro de &lt;VirtualHost&#8230;&gt;:</p>
<p><pre class="brush: plain;">
 	Alias /basic /var/webdav/htdocs/basic
	&lt;Location /basic&gt;
		AuthType Basic
		AuthName webdav
		AuthBasicProvider file
		AuthUserFile /var/webdav/config/passwd_basic.dav
		Require valid-user
	&lt;/Location&gt;
</pre></p>
<p>Reinicie o servidor e teste.</p>
<h3>5. AUTENTICAÇÂO POR ARQUIVO: DIGEST</h3>
<p>A autenticação Digest é bastante similar à Basic, a diferença está somente na forma com que o password é enviado ao servidor,<br />
no formato MD5 que o torna mais seguro para transmissão via internet e também que esse obedece o realm especificado em AuthName.</p>
<p>Adicione os módulos necessários executando o comando:</p>
<p><pre class="brush: plain;">
# a2enmod auth_digest
</pre></p>
<p>Execute o comando a seguir, onde webdav é o nome do realm e teste o nome do usuário que você deseja criar:</p>
<p><pre class="brush: plain;">
# sudo htdigest -c /var/webdav/config/passwd_digest.dav webdav teste
</pre></p>
<p>Vamos ao  &#8220;/etc/apache/site-enabled/webdav&#8221; e adicionamos dentro de &lt;VirtualHost&#8230;&gt;:</p>
<p><pre class="brush: plain;">
	Alias /digest /var/webdav/htdocs/digest
	&lt;Location /digest&gt;
		AuthType Digest
		AuthName webdav
		AuthUserFile /var/webdav/config/passwd_digest.dav
		Require valid-user
	&lt;/Location&gt;
</pre></p>
<h3>6. AUTENTICACAO EM SERVICO LDAP</h3>
<p>Adicione os módulos necessários executando o comando:</p>
<p><pre class="brush: plain;">
# a2enmod ldap
# a2enmod authnz_ldap
</pre></p>
<p>Adicionaremos em &#8220;/etc/apache/site-enabled/webdav&#8221; dentro de &lt;VirtualHost&#8230;&gt;:</p>
<p><pre class="brush: plain;">
	Alias /ldap /var/webdav/htdocs/ldap
	&lt;Location /ldap&gt;
		AuthType Basic
		AuthBasicProvider ldap
		AuthName webdav
		AuthLDAPURL &quot;ldaps://ldap.servidor.com:636/ou=EMPRESA,dc=pr,dc=gov,dc=br&quot;
	&lt;/Location&gt;
</pre></p>
<h3>7. AUTENTICACAO EM SERVICO LDAP</h3>
<p>Adicionaremos em &#8220;/etc/apache/site-enabled/webdav&#8221; dentro de &lt;VirtualHost&#8230;&gt;:</p>
<p><pre class="brush: plain;">
	Alias /ldap_grupo /var/webdav/htdocs/ldap_grupo
	&lt;Location /ldap_grupo&gt;
		Order deny,allow
  		Deny from All
		AuthType Basic
		AuthBasicProvider ldap
		AuthName webdav
		AuthzLDAPAuthoritative on
		AuthLDAPURL ldaps://ldap.servidor:636/ou=EMPRESA,dc=pr,dc=gov,dc=br?uid?sub
		Require valid-user
		AuthLDAPGroupAttribute memberUid
		AuthLDAPGroupAttributeIsDN off
		Require ldap-group cn=nome-do-grupo,ou=EMPRESA,dc=pr,dc=gov,dc=br
		satisfy any
	&lt;/Location&gt;
</pre></p>
<h3>8. WARNINGS</h3>
<p>O warning &#8220;client used wrong authentication scheme: /basic&#8221;, parece ser normal quando temos multiplas validações em um mesmo domínio, acredito ser um bug do navegador ou uma associação ao realm.</p>
<h3>9. CONCLUSÃO</h3>
<p>Configurar um webdav no apache é bastante simples e pode ser bastante útil.</p>
<p>O resultado final do arquivo &#8220;/etc/apache/site-enabled/webdav&#8221; é:</p>
<p><pre class="brush: plain;">
#Para ignorar certificados SSL inválidos
LDAPVerifyServerCert off

&lt;VirtualHost *:8080&gt;
        ServerAdmin medianeira@gmail.com

        DocumentRoot /var/webdav/htdocs/
        &lt;Directory /var/webdav/htdocs/&gt;
		DAV On
	&lt;/Directory&gt;
	
	Alias /basic /var/webdav/htdocs/basic
	&lt;Location /basic&gt;
		AuthType Basic
		AuthName webdav
		AuthBasicProvider file
		AuthUserFile /var/webdav/config/passwd_basic.dav
		Require valid-user
	&lt;/Location&gt;

	Alias /digest /var/webdav/htdocs/digest
	&lt;Location /digest&gt;
		AuthType Digest
		AuthName webdav
		AuthUserFile /var/webdav/config/passwd_digest.dav
		Require valid-user
	&lt;/Location&gt;
	
	Alias /ldap /var/webdav/htdocs/ldap
	&lt;Location /ldap&gt;
		AuthType Basic
		AuthBasicProvider ldap
		AuthName webdav
		AuthLDAPURL &quot;ldaps://ldap.servidor.com:636/ou=EMPRESA,dc=pr,dc=gov,dc=br&quot;
	&lt;/Location&gt;
	
	Alias /ldap_grupo /var/webdav/htdocs/ldap_grupo
	&lt;Location /ldap_grupo&gt;
		Order deny,allow
  		Deny from All
		AuthType Basic
		AuthBasicProvider ldap
		AuthName webdav
		AuthzLDAPAuthoritative on
		AuthLDAPURL ldaps://ldap.servidor.com:636/ou=EMPRESA,dc=pr,dc=gov,dc=br?uid?sub
		Require valid-user
		AuthLDAPGroupAttribute memberUid
		AuthLDAPGroupAttributeIsDN off
		Require ldap-group cn=nome-do-grupo,ou=EMPRESA,dc=pr,dc=gov,dc=br
		satisfy any
	&lt;/Location&gt;
&lt;/VirtualHost&gt;
</pre></p>
<p>Referências:</p>
<p>http://httpd.apache.org/docs/2.2/howto/auth.html</p>
<p>http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/307/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=307&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/05/19/habilitando-servidor-webdav-usando-apache-no-ubuntu-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>
	</item>
		<item>
		<title>Criando pacotes Debian (.deb)</title>
		<link>http://webcentro.wordpress.com/2010/04/23/criando-pacotes-debian-deb/</link>
		<comments>http://webcentro.wordpress.com/2010/04/23/criando-pacotes-debian-deb/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 17:18:13 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://webcentro.wordpress.com/?p=300</guid>
		<description><![CDATA[S.O: Ubuntu Linux Karmic Esse pequeno artigo tem o intuito de ensinar a criar um pacote debian, não entro em detalhes complexos do formato. O que é um arquivo .deb? Um pacote debian é um arquivo compactado em um formato específico (ar http://en.wikipedia.org/wiki/Ar_%28Unix%29), bastante similar a um tar.gz ou um .zip, resumindo podemos facilmente descompactá-lo. <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=300&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>S.O: <strong>Ubuntu Linux Karmic</strong></p>
<p>Esse pequeno artigo tem o intuito de ensinar a criar um pacote debian,<br />
não entro em detalhes complexos do formato.</p>
<h2>O que é um arquivo .deb?</h2>
<p>Um pacote debian é um arquivo compactado em um formato específico (ar http://en.wikipedia.org/wiki/Ar_%28Unix%29), bastante similar a um tar.gz ou um .zip, resumindo podemos facilmente descompactá-lo.<br />
dentro desse arquivo você encontra outros 3 arquivos, 2 deles compactados:<br />
* debian-binary: um arquivo gerado automaticamente com o formato do deb.<br />
* control.tar.gz: informações do pacote, como dependência, e scripts pré e pós instalação.<br />
* data.tar ou data.tar.gz ou data.tar.bz2 ou data.tar.lzma: os arquivos da aplicação disponibilizados em endereço absoluto, exemplo: /etc/programa/arquivos/&#8230;</p>
<h2>Exemplo prático:</h2>
<p>Iremos criar um pacote .deb que instala um aplicação que simplesmente irá escrever &#8220;Hello World!&#8221; no nosso console ao digitarmos o comando exemplo.sh no console.<br />
Para nosso exemplo criaremos a seguinte estrutura de pastas:<br />
<strong>/ </strong>: pode ser criado em qualquer lugar do seu disco, não precisa ser na raiz do sistema de arquivos.<br />
<strong>/source/<br />
/source/usr/<br />
/source/usr/bin/</strong><br />
<strong>/source/usr/bin/</strong><em>exemplo.sh</em> : arquivo contendo o código da aplicação, não esqueça de dar direitos de execução nesse arquivo (chmod +x exemplo.sh)<br />
<strong>/source/DEBIAN/</strong><br />
<strong>/source/DEBIAN/</strong><em>control</em> : arquivo que conterá informações (metadados) sobre o nosso pacote Debian, dependências, etc.</p>
<p>Conteúdo de exemplo.sh:</p>
<p><pre class="brush: bash;">
#!/bin/sh
echo &quot;Hello World!&quot;;
</pre></p>
<p>Conteúdo de control:</p>
<p><pre class="brush: plain;">
Package: exemplo
Priority: optional
Version: 0.1
Architecture: i386
Maintainer: Alan Daniel Weiss (webcentro)
Depends: dash
Description: Exemplo de criação de um pacote debian que irá instalar o aplicativo /usr/bin/exemplo.sh que escreve &quot;Hello World!&quot; no terminal.
</pre></p>
<p>O conteúdo do arquivo control é auto explicativo,<br />
nele estão as informações necessárias para efetuar a instalação do seu pacote,<br />
observe que o campo Depends irá informar as dependências desse pacote, caso possua várias dependecias essas deverão ser separadas com virgula (,).</p>
<h3>Criar o pacote</h3>
<p>Agora que temos a estrutura do nosso pacote completa devemos executar o comando que irá empacotar tudo isso em um archive .deb,<br />
vá nas raiz do projeto (pasta que contém o diretório source) e digite o seguinte comando:</p>
<p><pre class="brush: bash;">
$ dpkg-deb -b ./source/ .
</pre></p>
<p>será criado um arquivo com o nome exemplo_0.1_i386.deb, se quiser você pode abrir esse arquivo com o Gerenciador de Pacotes (compactados) e verificar a estrutura que foi criada.</p>
<h2>Instalando, Usando e Removendo a Aplicação</h2>
<p>Para instalar seu pacote você pode usar a aplicação gráfica GDEB, ou então executar o comando a seguir:</p>
<p><pre class="brush: bash;">
$ sudo dpkg -i exemplo_0.1_i386.deb
</pre></p>
<p>Agora teste a aplicação executando o comando no console em qualquer diretório do seu sistema de arquivos o comando a seguir:</p>
<p><pre class="brush: bash;">
$ exemplo.sh
</pre></p>
<p>Para remover use o apt:</p>
<p><pre class="brush: bash;">
$ sudo apt-get remove exemplo
</pre></p>
<h2>Conclusão:</h2>
<p>Criar pacotes debian é muito simples e versátil,<br />
Empacotar um programa torna muito fácil para o usuário final instalá-lo.</p>
<p>Existem outras funcionalidades, como por exemplo scripts de pré instalação e pós, que ficam para um post futuro.</p>
<p>Caso tenha dúvidas fique a vontade em postar comentários, tentarei disponibilizar o código do exemplo caso o wordpress permitir.</p>
<p>ps: Aviso que somente tenho conhecimento do funcionamento de tudo que explico aqui na distribuição Ubuntu, desconheço as características das demais.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/300/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=300&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/04/23/criando-pacotes-debian-deb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>
	</item>
		<item>
		<title>No space left bug?</title>
		<link>http://webcentro.wordpress.com/2010/04/13/no-space-left-bug/</link>
		<comments>http://webcentro.wordpress.com/2010/04/13/no-space-left-bug/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 18:02:42 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
				<category><![CDATA[798387]]></category>

		<guid isPermaLink="false">http://webcentro.wordpress.com/2010/04/13/no-space-left-bug/</guid>
		<description><![CDATA[Hoje me deparei com um problema nada agradavel. Meu sistema acusa que eu não tenho mais espaço livre na partição / porém rodando um df mostra que ainda sobram 25%. Estou rodando a distro Ubuntu Karmic e minha partição raiz está em ext4. resultado de df: o engraçado é que criei um arquivo de 10GB <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=292&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hoje me deparei com um problema nada agradavel. Meu sistema acusa que eu não tenho mais espaço livre na partição /<br />
porém rodando um df mostra que ainda sobram 25%.</p>
<p>Estou rodando a distro Ubuntu Karmic e minha partição raiz está em ext4.</p>
<p>resultado de df:<br />
<pre class="brush: bash;">
alandaniel@sefa56866:~$ df
Sist. Arq.           1K-blocos      Usad Dispon.   Uso% Montado em
/dev/sda5             48062440  34035024  11585940  75% /
</pre></p>
<p>o engraçado é que criei um arquivo de 10GB usando o comando:<br />
<pre class="brush: bash;">
dd if=/dev/zero of=file_to-create bs=1k count=10000000
</pre><br />
e esse foi criado perfeitamente, ocupou o restante do espaço sem problemas.</p>
<p>Li o seguinte post http://bbs.archlinux.org/viewtopic.php?id=62958 , e parece que o EXT4 ainda não está 100% estável.</p>
<p>A causa pode ser uma queda na luz que ocorreu ontem 12/04/2010, irei executar o comando:<br />
<pre class="brush: bash;">
fsck.ext4 -f /dev/sda5
</pre><br />
porém esse diz que podem ocorrer problemas caso executado em uma partição montada,<br />
conforme os resultados irei reportar aqui.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/292/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=292&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/04/13/no-space-left-bug/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>
	</item>
		<item>
		<title>GTD: Automatizando sua Agenda diária usando Google Calendar e Gnome</title>
		<link>http://webcentro.wordpress.com/2010/03/22/gtd-automatizando-sua-agenda-diaria-usando-google-calendar-e-gnome/</link>
		<comments>http://webcentro.wordpress.com/2010/03/22/gtd-automatizando-sua-agenda-diaria-usando-google-calendar-e-gnome/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 12:50:18 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
				<category><![CDATA[798387]]></category>
		<category><![CDATA[Gnome Clock]]></category>
		<category><![CDATA[Gnome Evolution]]></category>
		<category><![CDATA[Google Calendar]]></category>
		<category><![CDATA[iCalendar]]></category>
		<category><![CDATA[Mozilla Sunbird]]></category>

		<guid isPermaLink="false">http://webcentro.wordpress.com/?p=283</guid>
		<description><![CDATA[S.O: Ubuntu 9.10 Ferramentas abordadas: Mozilla Sunbird, Gnome Evolution, Google Calendar, iCalendar, Gnome Clock Esse post foi feito especialmente para aqueles que adoram utilizar o gnome como shell gráfica e que adoram concentrar sua agenda em um ponto específico, no caso o google calendar. Já vou começar avisando que o motivo de toda essa parafernalha, <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=283&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://webcentro.files.wordpress.com/2010/03/gnome_icon.jpg"><img class="alignnone size-full wp-image-287" title="gnome_icon" src="http://webcentro.files.wordpress.com/2010/03/gnome_icon.jpg?w=510" alt=""   /></a><a href="http://webcentro.files.wordpress.com/2010/03/default256.png"><img class="alignnone size-full wp-image-288" title="default256" src="http://webcentro.files.wordpress.com/2010/03/default256.png?w=510" alt=""   /></a><br />
S.O:<strong> Ubuntu 9.10<br />
</strong>Ferramentas abordadas:<strong> Mozilla Sunbird, Gnome Evolution, Google Calendar, iCalendar, Gnome Clock</strong></p>
<p>Esse post foi feito especialmente para aqueles que adoram utilizar o gnome como shell gráfica e que adoram concentrar sua agenda em um ponto específico, no caso o google calendar.</p>
<p>Já vou começar avisando que o motivo de toda essa parafernalha, é que o plugin do Gnome Evolution para conectar com os serviços da google não funciona 100% então tive que adotar esse workaround.</p>
<p>O <strong>google calendar</strong> já é um velho conhecido, nele podemos manter em um só local nossos apontamentos e compromissos.</p>
<p>O <strong>gnome evolution</strong> é a ferramenta default de PIM (Gerenciamento de Informações Pessoais) adotada como padrão no Ubuntu. Agora, por que eu acho legal usar o evolution?</p>
<ul>
<li>O Gnome Evolution possui integração com o Gnome Clock, assim no calendário padrão é possível visualizar seus compromissos, também  quando clicando duas vezes em uma data será aberto automaticamente a agenda em tal dia.<br />
<a href="http://webcentro.files.wordpress.com/2010/03/clock.png"><img class="alignnone size-full wp-image-285" title="clock" src="http://webcentro.files.wordpress.com/2010/03/clock.png?w=510" alt=""   /></a></li>
<li>Também o alarme integrado é legal:<br />
<a href="http://webcentro.files.wordpress.com/2010/03/alarme.png"><img class="alignnone size-full wp-image-286" title="alarme" src="http://webcentro.files.wordpress.com/2010/03/alarme.png?w=510" alt=""   /></a></li>
</ul>
<p><strong>Porém o mais legal seria o Gnome Evolution fazer Read/Write no Google Calendar</strong>. Atualmente existe um plugin no repositório que promete fazer isso, porém eu não tive boas experiências com este e não consegui fazê-lo funcionar. Fui obrigado a tomar a seguinte alternativa:</p>
<ul>
<li>Instale o <strong>Sunbird</strong> (ferramenta de calendário da mozilla)</li>
<li>Configure sua conta google, caso tenha dúvidas: http://www.google.com/support/calendar/bin/answer.py?hl=en&amp;answer=99358#sunbird</li>
<li>Faça o download e instale o plugin do sunbird: <strong>Automatic Exporter</strong> (https://addons.mozilla.org/pt-BR/sunbird/addon/3740)</li>
<li>Configure o plugin para exportar o google calendar para um arquivos <strong>iCal</strong> clicando em <strong>Ferramentas &gt; Complementos &gt; Automatic Exporter &gt; Preferencias.</strong>
<ul>
<li>Marque a opção exportar ao fechar;</li>
<li>Selecione o local em que deseja que seu arquivo <strong>.ics</strong> seja salvo;</li>
<li>Selecione o formato iCalendar;</li>
<li>Marque a opção Ativo na área Iniciar uma aplicação depois de exportar, e preencha os campos da seguinte forma:
<ul>
<li>Caminho da aplicação:<strong> evolution</strong></li>
<li>Parametros da aplicação <strong>&#8211;force-shutdown</strong></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>Agora abra o <strong>Evolution</strong></li>
<li><strong>Agendas &gt; Clique direito na listagem das agendas &gt; Nova Agenda </strong>
<ul>
<li>Tipo: Neste Computador</li>
<li>Marque: Personalizar Opções</li>
<li>Selecione o arquivo *.ics gerado pelo sunbird (assegure-se de fechá-lo antes para que o export ocorra)</li>
<li>Marque a opção Atualizar Periodicamente</li>
</ul>
</li>
</ul>
<p>Agora vou explicar o motivo disso tudo: O arquivo .ics será nossa ponte entre o Google Calendar -&gt; Sunbird -&gt; Gnome Evolution, o comando &#8220;evolution &#8211;force-shutdown&#8221; irá forçar o evolution a atualizar o calendário do gnome e fechar automaticamente.</p>
<p>Único empecilho é que você deverá utilizar sempre o Sunbird para controlar sua agenda.</p>
<p>Assim termina o nosso workaround, caso tenham alguma duvida sintam-se a vontade de questionarem.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/283/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=283&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/03/22/gtd-automatizando-sua-agenda-diaria-usando-google-calendar-e-gnome/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>

		<media:content url="http://webcentro.files.wordpress.com/2010/03/gnome_icon.jpg" medium="image">
			<media:title type="html">gnome_icon</media:title>
		</media:content>

		<media:content url="http://webcentro.files.wordpress.com/2010/03/default256.png" medium="image">
			<media:title type="html">default256</media:title>
		</media:content>

		<media:content url="http://webcentro.files.wordpress.com/2010/03/clock.png" medium="image">
			<media:title type="html">clock</media:title>
		</media:content>

		<media:content url="http://webcentro.files.wordpress.com/2010/03/alarme.png" medium="image">
			<media:title type="html">alarme</media:title>
		</media:content>
	</item>
		<item>
		<title>Sql para selecionar nomes de tabelas e colunas no postgres</title>
		<link>http://webcentro.wordpress.com/2010/03/15/sql-para-selecionar-nomes-de-tabelas-e-colunas-no-postgres/</link>
		<comments>http://webcentro.wordpress.com/2010/03/15/sql-para-selecionar-nomes-de-tabelas-e-colunas-no-postgres/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 18:31:11 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
				<category><![CDATA[798387]]></category>

		<guid isPermaLink="false">http://webcentro.wordpress.com/2010/03/15/sql-para-selecionar-nomes-de-tabelas-e-colunas-no-postgres/</guid>
		<description><![CDATA[Um simples sql para quem quer buscar colunas e tabelas no Postgres<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=282&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Um simples sql para quem quer buscar colunas e tabelas no Postgres<br />
<pre class="brush: sql;">
select 
c.relname,
a.attname as &quot;Column&quot;,
pg_catalog.format_type(a.atttypid, a.atttypmod) as &quot;Datatype&quot;
 
from pg_catalog.pg_attribute a 
inner join pg_stat_user_tables c on a.attrelid = c.relid
WHERE
a.attnum &gt; 0 AND
NOT a.attisdropped
order by c.relname, a.attname
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/282/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=282&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/03/15/sql-para-selecionar-nomes-de-tabelas-e-colunas-no-postgres/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>
	</item>
		<item>
		<title>Linux: Comando for no console &#8211; Exibir encoding de multiplos arquivos</title>
		<link>http://webcentro.wordpress.com/2010/03/10/linux-comando-for-no-console-exibir-encoding-de-multiplos-arquivos/</link>
		<comments>http://webcentro.wordpress.com/2010/03/10/linux-comando-for-no-console-exibir-encoding-de-multiplos-arquivos/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 20:40:17 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://webcentro.wordpress.com/?p=276</guid>
		<description><![CDATA[O código a seguir é um exemplo de como usar loop no console do linux (bash), funciona como um foreach em uma lista (the following code shows how to use loop/foreach/for on linux console) O resultado será uma listagem com o encoding de todos arquivos a partir do diretório atual· exemplo de resultado: webroot/js/jquery.meio.mask.min.js: utf-8 <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=276&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>O código a seguir é um exemplo de como usar loop no console do linux (bash), funciona como um foreach em uma lista<br />
(the following code shows how to use loop/foreach/for on linux console)</p>
<p><pre class="brush: bash;">
$ for i in `find *`; do file &quot;$i&quot; --mime-encoding ; done
</pre></p>
<p>O resultado será uma listagem com o encoding de todos arquivos a partir do diretório atual·</p>
<p>exemplo de resultado: webroot/js/jquery.meio.mask.min.js: utf-8</p>
<p>outro exemplo usando if aninhado</p>
<p><pre class="brush: bash;">
for i in `find *`; do if ! echo $i|grep svn --quiet; then file &quot;$i&quot; --mime-encoding; fi; done
</pre></p>
<p>p.s: uma forma mais simples de executar o comando acima seria usar o comando &#8220;grep svn &#8211;revert-match&#8221; ou então negar svn no grep, porém não tive sucesso em alguns testes, exemplo:</p>
<p><pre class="brush: bash;">
$ for i in `find *|grep svn --invert-match`; do file &quot;$i&quot; --mime-encoding ; done
</pre></p>
<p>Referência:</p>
<p>http://www.vias.org/linux-knowhow/bbg_sect_09_01.html</p>
<p>http://www.vias.org/linux-knowhow/bbg_sect_07_02.html</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/276/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=276&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/03/10/linux-comando-for-no-console-exibir-encoding-de-multiplos-arquivos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>
	</item>
		<item>
		<title>Comandos essenciais do Eclipse para Java</title>
		<link>http://webcentro.wordpress.com/2010/02/04/comandos-essenciais-do-eclipse-para-java/</link>
		<comments>http://webcentro.wordpress.com/2010/02/04/comandos-essenciais-do-eclipse-para-java/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 13:13:03 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
				<category><![CDATA[798387]]></category>

		<guid isPermaLink="false">http://webcentro.wordpress.com/?p=272</guid>
		<description><![CDATA[Tentarei listar nesse post os comandos mais básicos da ferramenta eclipse, os que eu julgo essenciais. Sintam-se a vontade para postar outros que você também julgue necessários. [Ctrl][Shift]+R Usado para buscar um arquivo (você pode usar wildcards ? qualquer caracter, qualquer string) [Ctrl][Shift]+T Buscar um tipo/classe (também possibilita usar wildcards) [Ctrl]+[Espaço] Autocompleta um texto (metodo, <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=272&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Tentarei listar nesse post os comandos mais básicos da ferramenta eclipse,<br />
os que eu julgo essenciais.</p>
<p>Sintam-se a vontade para postar outros que você também julgue necessários.</p>
<p><strong>[Ctrl][Shift]+R</strong><br />
Usado para buscar um arquivo (você pode usar wildcards ? qualquer caracter, qualquer string)</p>
<p><strong>[Ctrl][Shift]+T</strong><br />
Buscar um tipo/classe (também possibilita usar wildcards)</p>
<p><strong>[Ctrl]+[Espaço]</strong><br />
Autocompleta um texto (metodo, classe, snippet, anottation, etc).<br />
Existem diversos snippets (blocos de código prontos) que pode ser acessados dessa forma,<br />
um exemplo é digitar &#8220;Syso&#8221; e pressionar [Ctrl]+[Espaco] assim ele escreverá automaticamente &#8220;System.out.println();&#8221;</p>
<p><strong>[Ctrl]+A</strong><br />
Selecionar todo o conteúdo do arquivo em questão.</p>
<p><strong>[Ctrl]+I</strong><br />
Identa o código selecionado.</p>
<p><strong>[Shift]+[Tab]</strong><br />
Retrocede identação do bloco selecionado</p>
<p><strong>[Tab]</strong><br />
Caso haja um bloco selecionado irá avança-lo.</p>
<p><strong>[Ctrl][Shift]+O</strong><br />
(letra O)<br />
Irá automaticamente organizar os imports da sua classe Java, removendo os não utilizados.</p>
<p><strong>[Ctrl]+Z [Ctrl]+Y</strong><br />
O bom e velho [Ctrl]+Z que desfaz as ultimas alterações e o [Ctrl]+Y que refaz.</p>
<p><strong>[Ctrl]+Q</strong><br />
Retorna ao ponto da sua ultima alteração (caso você tenha fechado o arquivo ele o abrirá novamente)</p>
<p><strong>[Ctrl]+Click ou F3</strong><br />
Vai até o local onde o elemento clicado, ou com o cursos sobre tiver sido declarado</p>
<p><strong>F2</strong><br />
Exibe as informações do elemento na qual o cursor estiver posicionado</p>
<p><strong>F4</strong><br />
Exibe a Hierarquia da classe em questão, conforme o local onde o cursos estiver posicionado</p>
<p>Por hora são somente estes, sei que muitos devem pensar: &#8220;todo mundo sabe disso!&#8221;. Criei esse post com o intuito de que fosse utilizado por pessoas em treinamento inicial/estágiarios, muitos materiais relativos e de melhor qualidade podem ser encontrados na internet.<br />
Saber desses comandos pode facilitar e muito o trabalho, aumentar a produtividade além de ajudar a padronização (como exemplo do CTRL+I que onde eu trabalho é pouco usado).</p>
<p><strong> </strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/272/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=272&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/02/04/comandos-essenciais-do-eclipse-para-java/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>
	</item>
		<item>
		<title>Code: /dev/null &#8216;s like implementation for java</title>
		<link>http://webcentro.wordpress.com/2010/01/29/code-devnull-s-like-implementation-for-java/</link>
		<comments>http://webcentro.wordpress.com/2010/01/29/code-devnull-s-like-implementation-for-java/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 17:12:06 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://webcentro.wordpress.com/?p=269</guid>
		<description><![CDATA[(This title is weird) Just to remember, a implementation that send to garbage all the System.out.println messages: Source: http://coding.derkeiler.com/Archive/Java/comp.lang.java.programmer/2006-11/msg03469.html<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=269&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#888888;">(This title is weird)</span></p>
<p>Just to remember, a implementation that send to garbage all the System.out.println messages:</p>
<p><pre class="brush: java;">
//Java implementation for /dev/null
System.setOut(new java.io.PrintStream(new java.io.OutputStream() {public void write(int b) {}}));
System.out.println(&quot;This goes to the void&quot;);
</pre></p>
<p>Source: http://coding.derkeiler.com/Archive/Java/comp.lang.java.programmer/2006-11/msg03469.html</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/269/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=269&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/01/29/code-devnull-s-like-implementation-for-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>
	</item>
		<item>
		<title>ArrayStringBuilder makes StringBuilder acts as an array</title>
		<link>http://webcentro.wordpress.com/2010/01/26/arraystringbuilder-makes-stringbuilder-acts-as-an-array/</link>
		<comments>http://webcentro.wordpress.com/2010/01/26/arraystringbuilder-makes-stringbuilder-acts-as-an-array/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 13:02:54 +0000</pubDate>
		<dc:creator>webcentro</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://webcentro.wordpress.com/?p=260</guid>
		<description><![CDATA[String concat is something that we need to do a lot when creating SQLs but there is a problem by using string-plus-string concatenation (&#8220;string&#8221;+&#8221;"string&#8221;): Every couple of quotations java will create and alocate one String class, this can be a trigger for memory problems. The orientation (at Celepar) is to use StringBuffer that is faster <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=260&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>String concat is something that we need to do a lot when creating SQLs but there is a problem by using string-plus-string concatenation (&#8220;string&#8221;+&#8221;"string&#8221;): Every couple of quotations java will create and alocate one String class, this can be a trigger for memory problems.</p>
<p>The orientation (at Celepar) is to use StringBuffer that is faster than simple concat. Searching the web i found that String<strong>Builder</strong> is a bit faster than StringBuffer.</p>
<p>Now let me go to the point,<strong> i needed to make an join and use a separator at a group of strings</strong>, but memory was something i was worried, then i tried to simulate an array over StringBuilder,  the result was the following class.</p>
<p>p.s: I really doen&#8217;t feel that there aren&#8217;t a better and faster way to do this, but i didn&#8217;t found anything at this time;</p>
<p><pre class="brush: java;">
package com.br.webcentro.utils;

import java.util.Arrays;

/**
 * This class works using the java.lang.StringBuilder,
 * but this simulates an array to implement a joinable splitable string
 *
 * may be better extend the class AbstractStringBuilder but for now it will only work using it;
 *
 * feel free to post implementations
 *
 * If you have some advice please contact me at webcentro(at)gmail.com
 * @author alandanielweiss
 * @since 2010-01-22
 */

public class ArrayStringBuilder implements java.io.Serializable{

	private StringBuilder builder;

	private boolean isMultiEnabled = false;
	private boolean isEmptyAllowed = true;

	private int start[];
	private int len[];
	private int counter=0;
	private int totalLen=0;

	private static final long serialVersionUID = -2443226579329551214L;

	/**
     * Constructs a string builder with no characters in it and an
     * initial capacity of 16 characters.
     */

	public ArrayStringBuilder() {
		this.builder = new StringBuilder();
		this.start   = new int[16];
		this.len     = new int[16];
    }

	/**
	 * Sets the initial StringBuilder capacity
	 * @param capacity
	 */
	public ArrayStringBuilder(int capacity) {
		this.builder = new StringBuilder(capacity);
		this.start   = new int[capacity];
		this.len     = new int[capacity];
    }

	/**
	 * Create class and append string
	 * @param string
	 */
    public ArrayStringBuilder(String string) {
    	this();
    	this.add(string);
    }

	/**
	 * Create class and the the StringBuilder
	 * @param string
	 */
    public ArrayStringBuilder(StringBuilder builder) {
		this.start   = new int[16];
		this.len     = new int[16];

		this.counter = 1;
    	this.start[0] = 0;
    	this.len[0] = builder.toString().length();
    	this.totalLen = this.len[0];

    	this.builder = builder;
    }

    /**
     * Append a string
     * @param str
     * @return
     */
	public ArrayStringBuilder add(String str){
		if (str == null)
			str = &quot;null&quot;;
	    int len = str.length();
		if (len == 0 &amp;&amp; !isEmptyAllowed)
			return this;

		//multi-line don't increment counter
		if(!this.isMultiEnabled)
			this.counter ++;

		if (this.counter &gt; start.length)
		    expandCapacity(this.counter);

		if(!this.isMultiEnabled)
			this.start[this.counter-1] = this.totalLen;

		if(this.isMultiEnabled)
			len +=this.len[this.counter-1];

		this.len[this.counter-1]   = len;

		this.totalLen += str.length();
		this.builder.append(str);
		return this;
	}

	/**
	 * start multiline array
	 * when done use the method end()
	 * @return
	 */
	public ArrayStringBuilder start(String str){
		this.isMultiEnabled = false;
		this.add(str);
		this.isMultiEnabled = true;
		return this;
	}

	/**
	 * finish multiline array
	 * @return
	 */
	public ArrayStringBuilder finish(String str){
		this.add(str);
		this.isMultiEnabled = false;
		return this;
	}

	void expandCapacity(int minimumCapacity) {
		int newCapacity = (start.length + 1) * 2;
        if (newCapacity &lt; 0) {
        	newCapacity = Integer.MAX_VALUE;
        } else if (minimumCapacity &gt; newCapacity) {
        	newCapacity = minimumCapacity;
		}
        this.start = Arrays.copyOf(this.start, newCapacity);
        this.len = Arrays.copyOf(this.len, newCapacity);
    }

	/**
	 * Joins the StringBuilder using the passed separator
	 * @param separator
	 * @return
	 */
	public String join(String separator){
		StringBuilder str = new StringBuilder();
		for (int idx=0; idx&lt;this.counter;idx++){
			str.append(this.builder.substring(this.start[idx], this.start[idx]+this.len[idx]));
			if(idx+1&lt;this.counter)
				str.append(separator);
	    }
		return str.toString();
	}

	public String[] toArray(){
		String[] str = new String[this.counter];
		for (int idx=0; idx&lt;this.counter;idx++){
			str[idx] = this.builder.substring(this.start[idx], this.start[idx]+this.len[idx]);
	    }
		return str;
	}

	/**
	 * To string...
	 * @return String
	 */
    public String toString() {
    	return this.builder.toString();
    }

    /**
     * Creates a StringBuilder with the actual object values
     * @return builder:StringBuilder
     */
    public StringBuilder getStringBuilder(){
    	return this.builder;
    }

    /**
     * when true every time you use add/start/finish with an empty string it will add a new array
     * if false the command add/start/finish empty has no effect
     */
    public void setEmptyAllowed(boolean isMultiEnabled){
    	this.isMultiEnabled = isMultiEnabled;
    }

    public static void main(String[] args) {
		//Sample 1
    	StringBuilder strb = new StringBuilder();
    	strb.append(&quot;to be&quot;);
    	ArrayStringBuilder arrb = new ArrayStringBuilder(strb);
    	arrb.start(&quot; or &quot;);
    	arrb.add(&quot;not &quot;);
    	arrb.add(&quot;to &quot;);
    	arrb.finish(&quot;be&quot;);
		ArrayStringBuilder arrb2 = new ArrayStringBuilder(arrb.join(&quot;,&quot;));
		System.out.println(arrb2.add(&quot;: that's&quot;).add(&quot;the&quot;).add(&quot;question&quot;).join(&quot; &quot;));

		//Sample 2
		ArrayStringBuilder fields = new ArrayStringBuilder();
		fields.add(&quot;id&quot;);
		if(1==1)
			fields.add(&quot;name&quot;);
		if(1==2)
			fields.add(&quot;profession&quot;);
		StringBuilder sql = new StringBuilder();
		sql.append(&quot;select &quot;).append(fields.join(&quot; , &quot;)).append(&quot; from table &quot;);
		System.out.println(sql.toString());
	}
}
</pre></p>
<p>A good comparision between StringBuilder and StringBuffer can be found at: <a title="StringBuilder vs StringBuffer vs String.concat - done right" href="http://kaioa.com/node/59" target="_blank">StringBuilder vs StringBuffer vs String.concat &#8211; done right</a></p>
<p>Please feel free to send comments, to improve this class.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/webcentro.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/webcentro.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/webcentro.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/webcentro.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/webcentro.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/webcentro.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/webcentro.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/webcentro.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/webcentro.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/webcentro.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/webcentro.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/webcentro.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/webcentro.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/webcentro.wordpress.com/260/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=webcentro.wordpress.com&amp;blog=544404&amp;post=260&amp;subd=webcentro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://webcentro.wordpress.com/2010/01/26/arraystringbuilder-makes-stringbuilder-acts-as-an-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9cfa1811aee04fe452bcef4c6ad0e3de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">webcentro</media:title>
		</media:content>
	</item>
	</channel>
</rss>
