<?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/"
	>

<channel>
	<title>Portal Open SourceTutoriais</title>
	<atom:link href="http://www.portalopensource.com/category/tutoriais/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.portalopensource.com</link>
	<description>O seu Portal de notícias sobre tecnologia Open Source</description>
	<lastBuildDate>Tue, 01 Jun 2010 18:31:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Como Instalar um Theme no Ubuntu</title>
		<link>http://www.portalopensource.com/2010/06/01/como-instalar-um-theme-no-ubuntu/</link>
		<comments>http://www.portalopensource.com/2010/06/01/como-instalar-um-theme-no-ubuntu/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 18:31:37 +0000</pubDate>
		<dc:creator>Nuno Figueiredo</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[wallpapers]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=715</guid>
		<description><![CDATA[A Imagem que enviamos de seguida fala por si, basta clicar para ampliar a mesma e localizar a opção onde é possível adicionar temas no Ubuntu.

]]></description>
			<content:encoded><![CDATA[<p>A Imagem que enviamos de seguida fala por si, basta clicar para ampliar a mesma e localizar a opção onde é possível adicionar temas no Ubuntu.</p>
<p><a href="http://www.portalopensource.com/wp-content/uploads/2010/06/ubuntu_themes.jpg"><img class="alignnone size-medium wp-image-716" title="ubuntu_themes" src="http://www.portalopensource.com/wp-content/uploads/2010/06/ubuntu_themes-300x187.jpg" alt="" width="300" height="187" /></a></p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=715&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2010/06/01/como-instalar-um-theme-no-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como criar um Cluster Mysql para 2 Servidores (são necessários 3 na realidade)</title>
		<link>http://www.portalopensource.com/2010/02/26/como-criar-um-cluster-mysql-para-2-servidores-sao-necessarios-3-na-realidade/</link>
		<comments>http://www.portalopensource.com/2010/02/26/como-criar-um-cluster-mysql-para-2-servidores-sao-necessarios-3-na-realidade/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 19:21:09 +0000</pubDate>
		<dc:creator>Nuno Figueiredo</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=710</guid>
		<description><![CDATA[Este tutorial servirá para criar um cluster de forma a que seja possível fazer um balanço de carga dos dados servidos, será necessário um terceiro servidor que após a configuração pode ser desligado, não é recomendável fazer isso, não é possível apenas com os dois servidores ter uma verdadeira redundancia.
Para ser possível desligar um dos [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.portalopensource.com/wp-content/uploads/2009/01/mysql.gif"><img class="size-thumbnail wp-image-342 alignleft" title="mysql" src="http://www.portalopensource.com/wp-content/uploads/2009/01/mysql-150x150.gif" alt="" width="150" height="150" /></a>Este tutorial servirá para criar um cluster de forma a que seja possível fazer um balanço de carga dos dados servidos, será necessário um terceiro servidor que após a configuração pode ser desligado, não é recomendável fazer isso, não é possível apenas com os dois servidores ter uma verdadeira redundancia.</p>
<p>Para ser possível desligar um dos servidores do Cluster é necessário que o servidor de gestão esteja a correr.</p>
<p>Vamos então ver os 3 servidores:</p>
<p>mysql1.dominio.com     192.168.0.1</p>
<p>mysql2.dominio.com     192.168.0.2</p>
<p>mysql3.dominio.com     192.168.0.3</p>
<p>O servidor 1 e 2 serão os que acabarão a servir o cluster, enquanto que o terceiro irá fazer a gestão do nó, não requer a instalação do Mysql e apenas algumas pequenas alterações serão efectuadas (geralmente utiliza-se uma máquina que já se encontra em produção a fazer outras tarefas).</p>
<p><strong>Passo 1 &#8211; Instalar o Mysql em ambas as máquinas do cluster para isso serão necessários os seguintes comandos em ambas as máquinas do cluster.</strong></p>
<p>cd /usr/local/<br />
<a href="http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/">http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/</a><br />
 from/http://www.signal42.com/mirrors/mysql/<br />
groupadd mysql<br />
useradd -g mysql mysql<br />
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz<br />
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz<br />
ln -s mysql-max-4.1.9-pc-linux-gnu-i686 mysql<br />
cd mysql<br />
scripts/mysql_install_db &#8211;user=mysql<br />
chown -R root  .<br />
chown -R mysql data<br />
chgrp -R mysql .<br />
cp support-files/mysql.server /etc/rc.d/init.d/<br />
chmod +x /etc/rc.d/init.d/mysql.server<br />
chkconfig &#8211;add mysql.server~</p>
<p><strong>Não inicie o mysql.</strong></p>
<p><strong><strong>Passo 2 &#8211; Instalar e configurar a máquina de gestão do Cluster.</strong><br />
</strong><strong></strong></p>
<p>Para isso irá necessitar dos ficheiros que se encontram em /bin no directório do Mysql: <strong>ndb_mgm e ndb_mgmd </strong>poderá ir buscar estes ficheiros ao mysql-max basta descarregar o mesmo.</p>
<p>De seguida terá que executar os seguintes comandos:</p>
<p>mkdir /usr/src/mysql-mgm<br />
cd /usr/src/mysql-mgm<br />
<a href="http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/">http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/</a><br />
 from/http://www.signal42.com/mirrors/mysql/<br />
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz<br />
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz<br />
cd mysql-max-4.1.9-pc-linux-gnu-i686<br />
mv bin/ndb_mgm .<br />
mv bin/ndb_mgmd .<br />
chmod +x ndb_mg*<br />
mv ndb_mg* /usr/bin/<br />
cd<br />
rm -rf /usr/src/mysql-mgm</p>
<p>Terá que configurar o ficheiro de configuração para a gestão:</p>
<p>mkdir /var/lib/mysql-cluster<br />
cd /var/lib/mysql-cluster<br />
vi (ou qualquer outro editor) config.ini</p>
<p>Agora, altere o que é apresentado:</p>
<p>[NDBD DEFAULT]<br />
NoOfReplicas=2<br />
[MYSQLD DEFAULT]<br />
[NDB_MGMD DEFAULT]<br />
[TCP DEFAULT]<br />
# Managment Server<br />
[NDB_MGMD]<br />
HostName=192.168.0.3  # O IP do servidor actual de gestao<br />
# Storage Engines<br />
[NDBD]<br />
HostName=192.168.0.1  # O IP do primeiro servidor<br />
DataDir= /var/lib/mysql-cluster<br />
[NDBD]<br />
HostName=192.168.0.2  # O IP do segundo servidor<br />
DataDir=/var/lib/mysql-cluster<br />
# 2 Clientes MySQL<br />
[MYSQLD]<br />
[MYSQLD]</p>
<p>Agora inicie o servidor de gestão mysql:</p>
<p>ndb_mgmd</p>
<p>Este é o servidor de gestão e não a consola de gestão, logo de momento não espere nenhum tipo de output. (Já voltamos a isso)</p>
<p><strong><strong>Passo 3 &#8211; Configurar as directorias da informação e iniciar o mysql.</strong><br />
</strong><strong></strong></p>
<p>Em ambos os servidores do cluster terá que alterar o seguinte: (Alterando o que for necessário para se adaptar)</p>
<p>nano /etc/my.cnf</p>
<p>Insira as seguintes linhas em ambos os servidores alterando os endereços IP para o IP do servidor de gestão que configurou no passo 2.</p>
<p>[mysqld]<br />
ndbcluster<br />
ndb-connectstring=192.168.0.3 # O IP do servidor de gestão<br />
[mysql_cluster]<br />
ndb-connectstring=192.168.0.3 # O IP do servidor de gestão</p>
<p>Agora criamos a directoria da informação e iniciamos o motor de dados:</p>
<p>mkdir /var/lib/mysql-cluster<br />
cd /var/lib/mysql-cluster<br />
/usr/local/mysql/bin/ndbd &#8211;initial<br />
/etc/rc.d/init.d/mysql.server start</p>
<p>Repita exactamente o mesmo passo para o segundo servidor do cluster.</p>
<p>Nota: deverá usar &#8211;initial apenas se está a fazer este procedimento de raiz ou se ouve alguma alteração ao ficheiro config.ini no servidor de gestão.</p>
<p><strong><strong>Passo 4 &#8211; Verificar se tudo está a funcionar.</strong></strong></p>
<p>Agora poderá aceder ao servidor de gestão do cluster para ver o que está a acontecer.</p>
<p>/usr/local/mysql/bin/nbd_mgm</p>
<p>Insira o comando SHOW para perceber o que está a acontecer, deverá visualizar ambos os servidores com o respectivo id caso ele se tenha ligado é altura de aceder a um dos servidores e fazer:</p>
<p>mysql<br />
use test;<br />
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;<br />
INSERT INTO ctest () VALUES (1);<br />
SELECT * FROM ctest</p>
<p>O comportamento esperado é que a mesma informação seja visível no outro servidor, o derradeiro teste será desligar um dos servidor e verificar se a informação continua disponível.</p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=710&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2010/02/26/como-criar-um-cluster-mysql-para-2-servidores-sao-necessarios-3-na-realidade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virus em sistemas linux como resolver</title>
		<link>http://www.portalopensource.com/2009/12/15/virus-em-sistemas-linux-como-resolver/</link>
		<comments>http://www.portalopensource.com/2009/12/15/virus-em-sistemas-linux-como-resolver/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 05:21:46 +0000</pubDate>
		<dc:creator>Nuno Figueiredo</dc:creator>
				<category><![CDATA[Aplicações]]></category>
		<category><![CDATA[Sistema Operativo]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=702</guid>
		<description><![CDATA[No caso do windows é normal e não dá notícia, mas quando estamos a falar de sistemas operativos linux é raro associarmos a qualquer tipo de virus seja ele spyware ou malware. Infelizmente hoje temos um caso a reportar.
O dito Malware foi encontrado num protector de tela que corre nos ambientes gráficos gnome e que [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-thumbnail wp-image-703 alignleft" title="linux" src="http://www.portalopensource.com/wp-content/uploads/2009/12/linux-150x150.jpg" alt="linux" width="150" height="150" />No caso do windows é normal e não dá notícia, mas quando estamos a falar de sistemas operativos linux é raro associarmos a qualquer tipo de virus seja ele spyware ou malware. Infelizmente hoje temos um caso a reportar.</p>
<p>O dito Malware foi encontrado num protector de tela que corre nos ambientes gráficos gnome e que estava disponível para download num afamado site gráfico da gnome. (Gnome-Look.org)</p>
<p>O ficheiro .deb instala um script que com elevados privilégios no sistema faz ataques de DDoS e consegue manter-se actualizado por downloads constantes.</p>
<p>Apesar do incidente ter dado muito que falar de grave não teve nada e já foi devidamente controlado,  já não é possível instalar o dito screensaver.</p>
<p>Caso ache que foi infectado aceda a uma linha de comandos e corra o seguinte:  (Deve correr este comando caso recentemente tenha instalado screensavers da página <em>Gnome-Look.org)</em></p>
<p><em>sudo rm -f /usr/bin/Auto.bash /usr/bin/run.bash /etc/profile.d/gnome.sh index.php run.bash &amp;&amp; sudo dpkg -r app5552<br />
</em></p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=702&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2009/12/15/virus-em-sistemas-linux-como-resolver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell desenvolve Chrome OS personalizado</title>
		<link>http://www.portalopensource.com/2009/12/01/dell-desenvolve-chrome-os-personalizado/</link>
		<comments>http://www.portalopensource.com/2009/12/01/dell-desenvolve-chrome-os-personalizado/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 13:48:28 +0000</pubDate>
		<dc:creator>Nuno Figueiredo</dc:creator>
				<category><![CDATA[Aplicações]]></category>
		<category><![CDATA[Sistema Operativo]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=626</guid>
		<description><![CDATA[A dell disponibilizou uma versão personalizada do sistema operativo Google Chromium OS (a versão open source do Chrome OS) desenvolvida especialmente para os populares portáteis Mini 10V.
A Dell deu então o projecto ideal aos contemplados do Mini 10V para os próximos feriados e fins de semana. Tudo o que necessita é de uma drive USB com [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-627 alignleft" title="chrome_icon" src="http://www.portalopensource.com/wp-content/uploads/2009/12/chrome_icon.jpg" alt="chrome_icon" width="139" height="134" />A dell disponibilizou uma versão personalizada do sistema operativo Google Chromium OS (a versão open source do Chrome OS) desenvolvida especialmente para os populares portáteis Mini 10V.</p>
<p>A Dell deu então o projecto ideal aos contemplados do Mini 10V para os próximos feriados e fins de semana. Tudo o que necessita é de uma drive USB com 8gb livres. Basta copiar a imagem para a raiz do disco ligar o disco a uma porta USB fazer reboot e aproveitar.</p>
<p>É relevante salientar que é uma versão pre-beta e que poderá ser instável.</p>
<p><a href="http://linux.dell.com/files/cto" target="_blank">Clique aqui para o download.</a></p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=626&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2009/12/01/dell-desenvolve-chrome-os-personalizado/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como encontrar palavras em ficheiros com o Grep</title>
		<link>http://www.portalopensource.com/2009/09/11/como-encontrar-palavras-em-ficheiros-com-o-grep/</link>
		<comments>http://www.portalopensource.com/2009/09/11/como-encontrar-palavras-em-ficheiros-com-o-grep/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 14:35:56 +0000</pubDate>
		<dc:creator>Nuno Figueiredo</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=550</guid>
		<description><![CDATA[Constantemente damos por nós com a necessidade de encontrar um excerto de texto ou uma palavra num ficheiro de forma a resolver rapidamente um problema. A maneira mais fácil de resolver este problema na linha de comandos é utilizar o comando grep, comando esse que se encontra disponível em todas as distribuições linux como uma [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-thumbnail wp-image-551 alignleft" title="Search Magnifier" src="http://www.portalopensource.com/wp-content/uploads/2009/09/Search-Magnifier-150x150.png" alt="Search Magnifier" width="150" height="150" />Constantemente damos por nós com a necessidade de encontrar um excerto de texto ou uma palavra num ficheiro de forma a resolver rapidamente um problema. A maneira mais fácil de resolver este problema na linha de comandos é utilizar o comando grep, comando esse que se encontra disponível em todas as distribuições linux como uma ferramenta essencial.</p>
<p>Vamos então cobrir algumas funcionalidades deste comando.
</p>
<p><strong>grep -r &#8220;teste&#8221; .</strong>
</p>
<p>Desta forma é possível pesquisar pela palavra &#8220;teste&#8221; dentro da directoria em que se correu o comando e ao utilizar o &#8220;-r&#8221;  o grep irá pesquisar em todas as sub-directorias desta directoria<br />
Se o objectivo é apenas pesquisar nomes de ficheiros então basta substituir o &#8220;-r&#8221; por &#8220;-l&#8221; o comando ficarás como se segue</p>
<p><strong>grep -l &#8220;teste&#8221; .</strong></p>
<p>Caso exista a necessidade de encontrar várias palavras dentro de um ficheiro então basta correr
</p>
<p><strong>grep -r &#8220;palavra1\|palavra2\|palavra3&#8243; .</strong>
</p>
<p>Caso tenha uma necessidade de pesquisa que não se encontre aqui basta correr o comando <strong>man grep </strong>e pesquisar a sua necessidade de pesquisa na vasta variedade de outputs do grep.</p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=550&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2009/09/11/como-encontrar-palavras-em-ficheiros-com-o-grep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Isolar imagem do background com o Gimp</title>
		<link>http://www.portalopensource.com/2009/09/06/isolar-imagem-do-background-com-o-gimp/</link>
		<comments>http://www.portalopensource.com/2009/09/06/isolar-imagem-do-background-com-o-gimp/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 23:14:31 +0000</pubDate>
		<dc:creator>Bruno Carlos</dc:creator>
				<category><![CDATA[Aplicações]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Visual]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=494</guid>
		<description><![CDATA[Neste tutorial é apresentado um pequeno truque a nível de mascáras, de modo a colocarmos o background de uma imagem a preto e branco enquanto seleccionamos uma parte da mesma a permanecer com cor.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Neste tutorial é apresentado um pequeno truque a nível de mascáras, de modo a colocarmos o background de uma imagem a preto e branco enquanto seleccionamos uma parte da mesma a permanecer com cor.</p>
<p style="text-align: justify;">Para começar é necessário abrir a imagem que pretendemos utilizar com o <a title="gimp" href="http://www.gimp.org/">GIMP</a>, podem utilizar a imagem deste tutorial para testar.</p>
<div id="attachment_493" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-493" title="leon7" src="http://www.portalopensource.com/wp-content/uploads/2009/09/leon7-300x216.jpg" alt="Imagem Original" width="300" height="216" /><p class="wp-caption-text">Imagem Original</p></div>
<div id="attachment_495" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-495" title="leon7_after" src="http://www.portalopensource.com/wp-content/uploads/2009/09/leon7_after-300x216.jpg" alt="Imagem com o efeito pretendido" width="300" height="216" /><p class="wp-caption-text">Imagem com o efeito pretendido</p></div>
<p style="text-align: justify;">Depois de abrir a imagem com o <a title="gimp" href="http://www.gimp.org/">GIMP</a>, se a caixa de layer ainda não estiver visivel pressione as teclas <strong>Ctrl+L</strong>, ou através do menu <strong>Windows &gt; Dockable Dialogs &gt; Layers</strong>.</p>
<p style="text-align: justify;">Duplique o layer de background pressionando o botão direito do rato por cima do layer e seleccionando <strong>Duplicate Layer</strong>.</p>
<p style="text-align: justify;">Renomear o novo layer para Mask pressionando o botão direito do rato por cima do novo layer e seleccionando <strong>Edit Layer Attributes</strong>.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<div id="attachment_497" class="wp-caption aligncenter" style="width: 113px"><img class="size-medium wp-image-497" title="tut2" src="http://www.portalopensource.com/wp-content/uploads/2009/09/tut21-103x300.jpg" alt="tut2" width="103" height="300" /><p class="wp-caption-text">Opção Edit Layer Attributes</p></div>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">Agora que se criaram dois layers é possível retirar a cor do background, mas mantendo seleccionado o layer <strong>Mask</strong>. Em seguida navegar até <strong>Colour &gt; Desaturate</strong> e clicar ok. A imagem irá surgir a preto e branco.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<div id="attachment_498" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-498" title="tut3" src="http://www.portalopensource.com/wp-content/uploads/2009/09/tut3-300x229.jpg" alt="tut3" width="300" height="229" /><p class="wp-caption-text">Desaturate</p></div>
<p style="text-align: justify;">Em seguida, pressionar o botão direito do rato no layer Mask e seleccionar <strong>Add Layer Mask</strong>, no menu que surje em seguida seleccionar a opção <strong>White Mask (Full Opacity)</strong>.</p>
<p>É possível notar um quadrado branco junto do layer Mask, funcionará como um preview da máscara que for aplicada.<br />
Seleccione o pincel (<strong>brush</strong>) da toolbar e aumente o nível de <strong>zoom</strong>. Defina a cor principal para preto.</p>
<p>Agora aplique o <strong>brush</strong> apenas no objecto que se pretende colorir.</p>
<div id="attachment_499" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-499" title="tut5" src="http://www.portalopensource.com/wp-content/uploads/2009/09/tut5-300x171.jpg" alt="tut5" width="300" height="171" /><p class="wp-caption-text">isolar o seat leon vermelho do background</p></div>
<p style="text-align: justify;">Quando terminar de isolar o objecto (o automóvel seat leon neste caso) pressione o botão direito do rato no layer Mask e seleccionando a opção <strong>Apply Mask</strong>.<br />
Termina assim o tutorial atingindo um decente efeito utilizando máscaras no <a title="gimp" href="http://www.gimp.org/">GIMP</a>.</p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=494&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2009/09/06/isolar-imagem-do-background-com-o-gimp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como alterar a linguagem do OpenOffice.org automaticamente</title>
		<link>http://www.portalopensource.com/2009/09/05/como-alterar-a-linguagem-do-openoffice-org-automaticamente/</link>
		<comments>http://www.portalopensource.com/2009/09/05/como-alterar-a-linguagem-do-openoffice-org-automaticamente/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 14:17:54 +0000</pubDate>
		<dc:creator>Nuno Figueiredo</dc:creator>
				<category><![CDATA[Aplicações]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[mudar linguagem]]></category>
		<category><![CDATA[openoffice]]></category>
		<category><![CDATA[openoffice.org]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=475</guid>
		<description><![CDATA[Uma funcionalidade bastante interessante do OpenOffice é a facilidade de alterar a linguagem dos textos de forma automatica para que o corrector ortográfico se adapte.]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-438 alignleft" title="openofficelogo" src="http://www.portalopensource.com/wp-content/uploads/2009/09/openofficelogo.jpg" alt="openofficelogo" width="250" height="215" />Uma funcionalidade bastante interessante do OpenOffice é a facilidade de alterar a linguagem dos textos de forma automatica para que o corrector ortográfico se adapte para isso basta abrir o OpenOffice.org Writer e aceder aos seguintes menus:</p>
<p>Ferramentas -&gt; Opções -&gt; Definições de Idioma -&gt; Ajudas Linguísticas</p>
<p>No menu de Opções activar &#8220;Verificar todos os Idiomas&#8221;</p>
<p>E a partir daqui o OpenOffice irá automaticamente detectar a língua em que os textos se encontram.</p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=475&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2009/09/05/como-alterar-a-linguagem-do-openoffice-org-automaticamente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criar partilhas de ficheiros em Linux</title>
		<link>http://www.portalopensource.com/2009/09/05/criar-partilhas-de-ficheiros-em-linux/</link>
		<comments>http://www.portalopensource.com/2009/09/05/criar-partilhas-de-ficheiros-em-linux/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 12:43:46 +0000</pubDate>
		<dc:creator>Nuno Figueiredo</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[samba]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=469</guid>
		<description><![CDATA[Neste artigo iremos explicar a mais rápida e eficiente forma de criar partilhas de ficheiros num sistema linux. A partir daqui poderá aceder a partir de qualquer computador independentemente do sistema operativo a estas partilhas.]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-470 alignleft" title="logo-samba" src="http://www.portalopensource.com/wp-content/uploads/2009/09/logo-samba-300x168.jpg" alt="logo-samba" width="216" height="88" />Neste artigo iremos explicar a mais rápida e eficiente forma de criar partilhas de ficheiros num sistema linux. A partir daqui poderá aceder a partir de qualquer computador independentemente do sistema operativo a estas partilhas.</p>
<p> </p>
<p> </p>
<p>Na linha de comandos corra as seguintes operações</p>
<p><em>sudo apt-get install samba<br />
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_default<br />
sudo gedit /etc/samba/smb.conf</em></p>
<p>Após ter editado o ficheiro smb.conf insira a seguinte informação</p>
<p>Nas opções globais:</p>
<p><em>workgroup = NOMEDOWORKGROUP<br />
netbios name = NOMEDOSERVIDOR</em></p>
<p>Nas definições de partilha:</p>
<p><em># Nome da Partilha<br />
[Partilha]<br />
comment = Partilha<br />
path = /partilha<br />
read only = no<br />
guest ok = yes</em></p>
<p>Na autenticação:</p>
<p><em>#Apague # para retirar o comentario da linha se seguranca, e fazer esta alteracao:<br />
#security = share</em></p>
<p>De volta ao terminal:</p>
<p><em>sudo mkdir /partilha<br />
sudo chmod 0777 /partilha</em></p>
<p>Reiniciar o Samba:<br />
<em>sudo /etc/init.d/samba restart</em></p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=469&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2009/09/05/criar-partilhas-de-ficheiros-em-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identificar o fabricante e modelo do disco em Linux</title>
		<link>http://www.portalopensource.com/2009/08/25/identificar-o-fabricante-e-modelo-do-disco-em-linux/</link>
		<comments>http://www.portalopensource.com/2009/08/25/identificar-o-fabricante-e-modelo-do-disco-em-linux/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 15:51:27 +0000</pubDate>
		<dc:creator>Bruno Carlos</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[disco rígido]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=421</guid>
		<description><![CDATA[ 
Por vezes torna-se necessário identificar qual o fabricante e modelo dos discos rígidos que fazem parte do hardware presente na nossa máquina, e seria preferível fazer isto sem ter a necessidade de abrir a máquina.
Primeiro, é necessário obter os device names dos discos, para isso é possível utilizar o comando &#8220;df&#8221; ou &#8220;cat /proc/partitions&#8221;. Um [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>Por vezes torna-se necessário identificar qual o fabricante e modelo dos discos rígidos que fazem parte do hardware presente na nossa máquina, e seria preferível fazer isto sem ter a necessidade de abrir a máquina.<br />
Primeiro, é necessário obter os device names dos discos, para isso é possível utilizar o comando &#8220;df&#8221; ou &#8220;cat /proc/partitions&#8221;. Um exemplo destes nomes são /dev/hda ou /dev/sdb.</p>
<p><strong>Utilização do comando <em>lshw</em></strong><br />
$ lshw -class disk<br />
&#8230;<br />
-disk:0<br />
 product: ST3250310NS<br />
 vendor: Seagate<br />
 version: SN04<br />
        serial: 9SF0000TH<br />
 size: 232GiB (250GB)</p>
<p><strong>Utilização do comando <em>smartctl</em>:</strong><br />
$ smartctl -i /dev/sda<br />
&#8230;<br />
Device Model: ST3250310NS<br />
Serial Number: 9SF0000TH<br />
Firmware Version: SN04<br />
&#8230;<br />
<strong>Nota:</strong> Poderá ser necessário instalar o package &#8217;smartmontools&#8217;, o output varia dependendo da versão do smartctl e do fabricante/modelo do disco.</p>
<p><strong>Utilização do comando <em>hdparm</em>:</strong><br />
$ hdparm -i /dev/sda<br />
/dev/sda:<br />
Model=ST3250310NS, FwRev=SN04, SerialNo=9SF0000TH<br />
&#8230;</p>
<p><strong>Utilização do comando <em>hwinfo</em>:</strong><br />
$ hwinfo &#8211;disk<br />
&#8230;<br />
Model: &#8220;ST3250310NS&#8221;<br />
Device: &#8220;ST3250310NS&#8221;<br />
Revision: &#8220;SN04&#8243;<br />
Serial ID: &#8220;9SF0000TH&#8221;<br />
&#8230;<br />
<strong>Nota:</strong> Poderá ser necessário instalar o package &#8216;hwinfo&#8217;<br />
De notar ainda que é necessário ter permissões de root para obter o output integral destes comandos.</p>
<p>Um modo alternativo de determinar qual o fabricante e modelo do disco:<br />
$ ls /dev/disk/by-id<br />
ata-ST3250310NS_9SF0000TH<br />
ata-ST3250310NS_9SF0000TH-part1<br />
ata-ST3250310NS_9SF0000TH-part2<br />
ata-ST3250310NS_9SF0000TH-part3<br />
Ou seja, o modelo é ST3250310NS e o número de série 9SF0000TH</p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=421&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2009/08/25/identificar-o-fabricante-e-modelo-do-disco-em-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Dicas para escrever um Script Eficiente</title>
		<link>http://www.portalopensource.com/2009/02/03/10-dicas-para-escrever-um-script-eficiente/</link>
		<comments>http://www.portalopensource.com/2009/02/03/10-dicas-para-escrever-um-script-eficiente/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 04:24:48 +0000</pubDate>
		<dc:creator>Nuno Figueiredo</dc:creator>
				<category><![CDATA[Aplicações]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[linha de comando]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.portalopensource.com/?p=369</guid>
		<description><![CDATA[Bash é a linha de comando defeito de grande parte das distribuições linux e uma poderosa linguagem de scripting. Ficam aqui algumas sugestões para tornar os seus scripts mais eficientes.

Evite caminhos completos para comandos de sistema.

A bash já tem imensos comandos que podem ser utilizados sem a necessidade de utilizar comandos externos. Sempre que possivel [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://portalopensource.com/wp-content/uploads/2008/08/bashcommandprompt.gif"><img class="alignnone size-medium wp-image-135" title="bashcommandprompt" src="http://portalopensource.com/wp-content/uploads/2008/08/bashcommandprompt-300x163.gif" alt="" width="300" height="163" /></a>Bash é a linha de comando defeito de grande parte das distribuições linux e uma poderosa linguagem de scripting. Ficam aqui algumas sugestões para tornar os seus scripts mais eficientes.</p>
<ul>
<li>Evite caminhos completos para comandos de sistema.</li>
</ul>
<p>A bash já tem imensos comandos que podem ser utilizados sem a necessidade de utilizar comandos externos. Sempre que possivel utilize os mesmos de forma a não carregar o seu script.</p>
<p># Evite Isto<br />
/bin/echo &#8220;hello&#8221;</p>
<p>´# Utilize isto<br />
echo &#8220;hello&#8221;</p>
<ul>
<li>Evite comandos externos para o Integer Math</li>
</ul>
<p>A Bash tambem permite funções que podem ser utilizadas para o integer aritmético. Utilize apenas /usr/bin/bc se precisa de fazer um ponto fultuante aritmético. Os calculos básicos podem ser feitos com os seguintes builtins:</p>
<p>four=$(( 2 + 2 ))<br />
four=$[ 2 + 2 ]<br />
let four=&#8221;2 + 2&#8243;</p>
<ul>
<li>Evite utilizar o comando Cat</li>
</ul>
<p>Ferramentas como o Grep, Awk e o Sed aceitam ficheiros como argumentos. Isto raramente é necessário para utilizar /bin/cat. Sendo assim torna-se desnecessário:</p>
<p># Evite isto<br />
cat /etc/hosts | grep localhost</p>
<p>Uma maneira mais eficiente é utilizar a capacidade nativa do Grep  para ler ficheiros.</p>
<p><code>grep localhost /etc/hosts</code></p>
<ul>
<li>Evite fazer um pipe do Grep para o Awk</li>
</ul>
<p>Se está a utilizar o Awk poderá eliminar a necessidade de utilizar o Grep. Tente não fazer pipe do Grep para o Awk.</p>
<p># evite isto<br />
grep error /var/log/messages | awk &#8216;{ print $4 }&#8217;</p>
<p>Em vez disso utilize a capacidade nativa do Awk para fazer um parse ao texto e salve assim um comando.</p>
<p><code>awk '/error/ { print $4 }' /var/log/messages</code></p>
<ul>
<li>Evite Fazer um pipe do Sed para o Sed</li>
</ul>
<p>O Sed pode aceitar mais do que um comando em apenas uma execução. Evite então fazer pipes entre o sed.</p>
<p><code># Evite isto<br />
sed 's/hello/goodbye/g' filename | sed  's/monday/friday/g'</code></p>
<p>Em vez disso poderá utilizar o comando sed &#8211; e ou delimitar as expressões com uma semi-coluna (;)</p>
<p>sed -e &#8217;s/hello/goodbye/g&#8217; -e &#8217;s/monday/friday/g&#8217; filename<br />
sed -e  &#8217;s/hello/goodbye/g; s/monday/friday/g&#8217; filename</p>
<ul>
<li>Utilize Duplas chavetas para Compostos e Testes Regex</li>
</ul>
<p>O [ ou o teste de comandos integrados pode ser utilizado para testar expressões, mas o operador integrado [[ adiciona um match de expressões regulares e comandos.</p>
<ul>
<li>Utilize Funções para tarefas que se repetem</li>
</ul>
<p>Parta o seu script em partes e utilize funcões que repetem tarefas, as mesmas podem ser declaradas da seguinte forma:</p>
<p>function_name() {<br />
do_something<br />
return $?<br />
}</p>
<p>Faça com que as funções possam ser utilizadas em mais do que uma shell.</p>
<p>#!/bin/bash<br />
. /path/to/shared_functions</p>
<ul>
<li>Utilize arrays em vez de variáveis multiplas</li>
</ul>
<p>Os arrays são bastante poderosos, logo evite utilizar variáveis desnecessárias.</p>
<p># Evite isto<br />
color1='Blue'<br />
color2='Red'<br />
echo $color1<br />
echo $color2</p>
<p>Utilize um array para solucionar.</p>
<p>colors=('Blue' 'Red')<br />
echo ${colors[0]}<br />
echo ${colors[1]}</p>
<ul>
<li>Utilize o /bin/mktemp para criar ficheiros temporários</li>
</ul>
<p>Precisa de ficheiros temporários? Temos a solução</p>
<p>tempfile=$(/bin/mktemp)<br />
tempdir=$(/bin/mktemp -d)</p>
<ul>
<li>Utilize o /bin/egrep ou o /bin/sed para fazer uma comparação de  padrões</li>
</ul>
<p>Se acha que precisa de perl para fazer tudo verifique primeiro se o Sed ou o Egrep (grep -e) não lhe resolvem o problema.</p>
<p># grep for localhost or 127.0.0.1 in /etc/hosts<br />
egrep  &#8216;localhost|127\.0\.0\.1&#8242; /etc/hosts</p>
<p># print pattern localhost.* in  /etc/hosts<br />
sed -n &#8217;s/localhost.*/&amp;/p&#8217; /etc/hosts</p>
<img src="http://www.portalopensource.com/?ak_action=api_record_view&id=369&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.portalopensource.com/2009/02/03/10-dicas-para-escrever-um-script-eficiente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
