<?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>Matheus Bratfisch</title>
	<atom:link href="http://www.matbra.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matbra.com</link>
	<description>&#34;Cogito ergo sum&#34;</description>
	<lastBuildDate>Fri, 03 Sep 2010 14:17:12 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Java RMI &#8211; Introdução e Exemplo</title>
		<link>http://www.matbra.com/2010/09/02/java-rmi-introducao-e-exemplo/</link>
		<comments>http://www.matbra.com/2010/09/02/java-rmi-introducao-e-exemplo/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 23:49:33 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=854</guid>
		<description><![CDATA[Boa noite, Java RMI (Remote Method Invocation), é um mecanismo que permite ao usuário, criar aplicações distribuídas utilizando Java. Sem ter muitas preocupações com Protocolo, sockets entre outros. Mas como ele funciona? Bom toda a mágica é feita pelo próprio RMI. O mesmo possui um servidor chamado RMIREGISTRY, onde o seu Servidor se conecta e [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite,</p>
<p>Java RMI (Remote Method Invocation), é um mecanismo que permite ao usuário, criar aplicações distribuídas utilizando Java. Sem ter muitas preocupações com Protocolo, sockets entre outros. Mas como ele funciona? Bom toda a mágica é feita pelo próprio RMI. O mesmo possui um servidor chamado RMIREGISTRY, onde o seu Servidor se conecta e diz que está ali. A partir desse momento os Clientes conseguem invocar o servidor. </p>
<p>Um exemplo de um Servidor de Veiculo onde os Clientes podem pesquisar e adicionar novos Veículos. </p>
<p><span id="more-854"></span></p>
<p>Interface Servidor: </p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;"><span class="kw1">import</span> <span class="co2">java.rmi.Remote</span><span class="sy0">;</span><br />
<span class="kw1">import</span> <span class="co2">java.rmi.RemoteException</span><span class="sy0">;</span><br />
<span class="kw1">import</span> <span class="co2">java.util.List</span><span class="sy0">;</span></p>
<p><span class="kw1">public</span> <span class="kw1">interface</span> MethosInterfaces <span class="kw1">extends</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aremote+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Remote</span></a> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp;<span class="kw1">public</span> List<span class="sy0">&lt;</span>Vehicle<span class="sy0">&gt;</span> search<span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> field, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> value<span class="br0">&#41;</span> <span class="kw1">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aremoteexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">RemoteException</span></a><span class="sy0">;</span><br />
&nbsp; &nbsp;<span class="kw1">public</span> <span class="kw4">void</span> add<span class="br0">&#40;</span>Vehicle v<span class="br0">&#41;</span> <span class="kw1">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aremoteexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">RemoteException</span></a><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Os métodos nessa interface serão implementados por nosso servidor, essa interface extend Remote que é uma Classe necessária para fazer o RMI funcionar. Se sua interface não extende-la não irá funcionar. Todos os métodos devem possuir o tratamento de exceção, para garantir o que vai acontecer caso o servidor não seja encontrado. </p>
<p>Servidor: </p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;"><span class="kw1">public</span> <span class="kw1">class</span> ServerAn <span class="kw1">implements</span> MethosInterfaces <span class="br0">&#123;</span></div>
</div>
<p>Classe extende nossa interface e implementa os métodos (não irei mostra-los aqui). </p>
<p>Para criar o servidor utilizei o seguinte:</p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;"><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ServerAn server <span class="sy0">=</span> <span class="kw1">new</span> ServerAn<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MethosInterfaces stub <span class="sy0">=</span> <span class="br0">&#40;</span>MethosInterfaces<span class="br0">&#41;</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aunicastremoteobject+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">UnicastRemoteObject</span></a>.<span class="me1">exportObject</span><span class="br0">&#40;</span>server, 0<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aregistry+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Registry</span></a> registry <span class="sy0">=</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Alocateregistry+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">LocateRegistry</span></a>.<span class="me1">getRegistry</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; registry.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">&quot;Server&quot;</span>, stub<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Servider running&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">catch</span> <span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> ex<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ex.<span class="me1">printStackTrace</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</div>
<p>Bom no main criamos um novo ServerAn(), exportamos o nosso Servidor, registramos com o bind o nosso Servidor.</p>
<p>Cliente Enviador:</p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;"><span class="kw1">public</span> <span class="kw1">class</span> ClientSender <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aregistry+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Registry</span></a> registry <span class="sy0">=</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Alocateregistry+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">LocateRegistry</span></a>.<span class="me1">getRegistry</span><span class="br0">&#40;</span><span class="st0">&quot;localhost&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MethosInterfaces stub <span class="sy0">=</span> <span class="br0">&#40;</span>MethosInterfaces<span class="br0">&#41;</span> registry.<span class="me1">lookup</span><span class="br0">&#40;</span><span class="st0">&quot;Server&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Sending new Vehicle to server&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stub.<span class="me1">add</span><span class="br0">&#40;</span><span class="kw1">new</span> Vehicle<span class="br0">&#40;</span><span class="st0">&quot;Matheus2&quot;</span>, <span class="nu0">5000</span>, <span class="st0">&quot;Caminhão&quot;</span>, <span class="st0">&quot;&quot;</span>, 2008<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">catch</span> <span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> ex<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ex.<span class="me1">printStackTrace</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Basicamente, procuramos o RMIREGISTRY em &#8220;localhost&#8221; e procuramos pelo nosso servidor nomeado &#8220;Server&#8221;, com referencia para o mesmo adicionamos um novo Veículo. Para procurar é a mesma coisa porém receberemos uma Lista de veículos ao invés de não receber nada. </p>
<p>Para o objeto poder ser transmitido ele deve ser &#8220;serializable&#8221;. </p>
<p><a href='http://www.matbra.com/wp-content/uploads/JavaRMI-Example.tar.gz'>Java RMI &#8211; Anúncios de Carros (Exemplo)</a></p>
<p>Lembrando que, o rmiregistry procura no seu Java PATH e no diretório que o mesmo foi executado pelas interfaces. Então neste exemplo, para simplicidade, acesse o diretório com os códigos fontes, compile-os execute o RMIREGISTRY no mesmo. E em seguida o Servidor, após isso em outro prompt execute o(s) Clientes. O nome do programa é RMIREGISTRY, execute-o com seu nome. </p>
<p>Espero que seja util,<br />
Matheus</p>
<p>PS: Java ME não vem com o RMI</p>
<p>Referencias:<br />
<a href="http://infolab.stanford.edu/CHAIMS/Doc/Details/Protocols/rmi/rmi_description.html" target="_blank">http://infolab.stanford.edu/CHAIMS/Doc/Details/Protocols/rmi/rmi_description.html</a><br />
<a href="http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html" target="_blank">http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/09/02/java-rmi-introducao-e-exemplo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MD5 Decrypter &#8211; Versão 0.5</title>
		<link>http://www.matbra.com/2010/09/02/md5-decrypter-versao-0-5/</link>
		<comments>http://www.matbra.com/2010/09/02/md5-decrypter-versao-0-5/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 03:43:34 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=850</guid>
		<description><![CDATA[Olá, Alguns dias atrás lancei a nova versão do MD5 Decrypter. O que é este programa? A idéia começou com um projeto de programação paralela, onde poderia se desenvolver praticamente qualquer coisa que utilizasse paralelismo. Sempre tive interessa por segurança, brute force, etc. Então decidi desenvolver o mesmo, após algum tempo resolvi aperfeiçoar o mesmo [...]]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Alguns dias atrás lancei a nova versão do MD5 Decrypter. O que é este programa? A idéia começou com um projeto de programação paralela, onde poderia se desenvolver praticamente qualquer coisa que utilizasse paralelismo. Sempre tive interessa por segurança, brute force, etc. Então decidi desenvolver o mesmo, após algum tempo resolvi aperfeiçoar o mesmo para programação distribuída também e publica-lo para os interessados. (quem sabe não sai algo util?). </p>
<p>Bom, o que mudou nesta versão?<br />
- Foram feitas muitas mudanças, praticamente feito novamente.<br />
- Os sockets agora utilizam XML, permitindo assim que o Master se comunique com Slaves rodando em outras plataformas (como python)<br />
- Slaves ainda enviam mensagens para o console<br />
- Master e Slave não precisam mais de interface gráfica<br />
- Slaves possuem uma Thread somente para ouvir, assim quando a String é encontrada é possível interrompe-lo.<br />
- Existe sistema para verificar se o Slave ainda esta conectado.<br />
—- Quando o mesmo nãp responde, o mesmo é desconectado e as strings que estavam sendo analisadas por ele voltam a ser enviadas.</p>
<p><a href="http://www.matbra.com/code/md5-decrypter/">Mais detalhes sobre o MD5 Decrypter</a></p>
<p>Espero que o mesmo seja util para você,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/09/02/md5-decrypter-versao-0-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adicionando método ao servidor VFS no Minix</title>
		<link>http://www.matbra.com/2010/08/11/adicionando-metodo-ao-servidor-vfs-no-minix/</link>
		<comments>http://www.matbra.com/2010/08/11/adicionando-metodo-ao-servidor-vfs-no-minix/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 04:28:27 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[minix]]></category>
		<category><![CDATA[syscall]]></category>
		<category><![CDATA[vfs]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=810</guid>
		<description><![CDATA[Boa Noite, Primeiramente, o que é VFS? VFS é Virtual File System. É uma camada que existe em muitos sistemas operacionais e também no Minix, que cuida da parte comunicação com o File System. O mesmo foi desenvolvido pelo Balázs Gerófi como tese de Mestrado na universidade de Amsterdam com nome de &#8220;Design and implementation [...]]]></description>
			<content:encoded><![CDATA[<p>Boa Noite,</p>
<p>Primeiramente, o que é VFS? VFS é Virtual File System. É uma camada que existe em muitos sistemas operacionais e também no Minix, que cuida da parte comunicação com o File System. O mesmo foi desenvolvido pelo Balázs Gerófi como tese de Mestrado na universidade de Amsterdam com nome de &#8220;<a href="http://www.minix3.org/doc/gerofi_thesis.pdf" target="_blank">Design and implementation of the MINIX Virtual File system</a>&#8220;. </p>
<p><span id="more-810"></span></p>
<p>Mas por que se comunicar com o servidor VFS? Por que adicionar algo nele? Bom, se você está trabalhando em baixo nível e quer por exemplo acessar diretamente os INODES por algum motivo, você deve inicialmente se comunicar com o servidor VFS. Para realizar a comunicação é simples, mas vamos supor que você queira um método especifico que o mesmo não possue, então você deve cria-lo.</p>
<p>Como fazer isso? </p>
<p>Inicialmente você deve editar o &#8220;/usr/src/include/minix/callnr.h&#8221;. Adicione logo abaixo a linha &#8220;#define GETPGRP		  63&#8243; o seguinte: </p>
<div class="codesnip-container" >
<div class="c codesnip" style="font-family:monospace;"><span class="co2">#define TESTCALL&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 64</span></div>
</div>
<p>Em seguida você deve modificar o servidor VFS e adicionar o que você quer que faça quando a mesma for chamada. Edite inicialmente o &#8220;/usr/src/servers/vfs/table.c&#8221;. Você deve pegar a linha que possui no_sys,	/* 64 = unused	*/<br />
E alterar para: </p>
<div class="codesnip-container" >
<div class="c codesnip" style="font-family:monospace;">do_TESTCALL<span class="sy0">,</span>&nbsp; &nbsp; <span class="coMULTI">/* 64 = unused&nbsp; */</span></div>
</div>
<p>Este será o método chamado quando a syscall de número 64 for executada. </p>
<p>Após isso você deve alterar o &#8220;/usr/src/servers/vfs/proto.h&#8221; que é onde estão definidos os métodos. Adicione o seguinte:</p>
<div class="codesnip-container" >
<div class="c codesnip" style="font-family:monospace;"><span class="coMULTI">/* do_TESTCALL EXAMPLE &nbsp;*/</span><br />
_PROTOTYPE<span class="br0">&#40;</span> <span class="kw4">int</span> do_TESTCALL<span class="sy0">,</span> <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>Então você deve criar o método propriamente dito dentro do &#8220;/usr/src/servers/vfs/read.c&#8221; (ao menos eu fiz nesse arquivo). Adicione o seguinte código:</p>
<div class="codesnip-container" >
<div class="c codesnip" style="font-family:monospace;"><span class="coMULTI">/*===========================================================================*<br />
&nbsp;*Trabalho: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; do_ver_contig &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*<br />
&nbsp;*===========================================================================*/</span><br />
PUBLIC <span class="kw4">int</span> do_TESTCALL<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; message m<span class="sy0">;</span>&nbsp; &nbsp; <br />
&nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;Número recebido %d&quot;</span><span class="sy0">,</span> m_in.<span class="me1">fd</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Mas como executar? E ver isso tudo funcionando? Como compilar?<br />
Inicialmente acesse &#8220;/usr/src/tools/&#8221; e execute: </p>
<blockquote><p>
$ make libraries
</p></blockquote>
<p>(Este pode ser um processo demorado) </p>
<p>Continue em &#8220;/usr/src/tools&#8221; e execute:</p>
<blockquote><p>
$ make hdboot
</p></blockquote>
<p>Reinicie. </p>
<p>Como testar e ver se está funcionando? Crie um arquivo no seu &#8220;/root&#8221; com o seguinte conteúdo:</p>
<div class="codesnip-container" >
<div class="c codesnip" style="font-family:monospace;"><span class="co2">#include &lt;stdio.h&gt;</span><br />
<span class="co2">#include &lt;unistd.h&gt;</span><br />
<span class="co2">#include &lt;lib.h&gt;</span><br />
<span class="co2">#include &lt;fcntl.h&gt;</span></p>
<p><span class="kw4">int</span> main<span class="br0">&#40;</span><span class="kw4">int</span> argc<span class="sy0">,</span> <span class="kw4">char</span> <span class="sy0">*</span>argv<span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="kw4">int</span> fd <span class="sy0">=</span> <span class="nu0">2</span><span class="sy0">;</span><br />
&nbsp; message m<span class="sy0">;</span> <br />
&nbsp; m.<span class="me1">m1_i1</span> <span class="sy0">=</span> fd<span class="sy0">;</span><br />
&nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;Number: %d&quot;</span><span class="sy0">,</span> fd<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; _syscall<span class="br0">&#40;</span>FS<span class="sy0">,</span> 64<span class="sy0">,</span> <span class="sy0">&amp;</span>m<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; <br />
<span class="br0">&#125;</span></div>
</div>
<p>O que isso é pra fazer? Fazer uma syscall no método 64, passar por mensagem o número 2, então o do_TESTCALL recebe o parametro e imprime o mesmo. Bem inutil, mas isto é pra demonstrar como criar métodos dentro do servidor VFS. </p>
<p><a href='http://www.matbra.com/wp-content/uploads/vfs-call.tar.gz'>Exemplo dos códigos adicionados no servidor VFS</a></p>
<p><a href="http://www.matbra.com/2010/07/26/criando-uma-biblioteca-do-sistema-no-minix/">Criando uma biblioteca do sistema no Minix.</a></p>
<p>Atenciosamente,<br />
Matheus</p>
<p>PS: É um exemplo bobo, mas é para demonstrar como adicionar métodos ao servidor VFS. Provavelmente nos próximos dias publicarei um exemplo, mais real.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/08/11/adicionando-metodo-ao-servidor-vfs-no-minix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cliente torrent em Servidor linux com acesso via WEB</title>
		<link>http://www.matbra.com/2010/08/04/cliente-torrent-em-servidor-linux-com-acesso-via-web/</link>
		<comments>http://www.matbra.com/2010/08/04/cliente-torrent-em-servidor-linux-com-acesso-via-web/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 21:34:09 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[cliente]]></category>
		<category><![CDATA[torrent]]></category>
		<category><![CDATA[web acess]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=807</guid>
		<description><![CDATA[Olá, Por que criar um servidor com um cliente torrent com acess web? Como eu moro com outras pessoas, que também utilizam torrent e tinha um computador rodando direto com outros serviços, decidi adicionar um cliente torrent (transmission) com acesso via web, assim não precisando deixar os computadores ligados baixando. Cada um possui acesso e [...]]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Por que criar um servidor com um cliente torrent com acess web? Como eu moro com outras pessoas, que também utilizam torrent e tinha um computador rodando direto com outros serviços, decidi adicionar um cliente torrent (transmission) com acesso via web, assim não precisando deixar os computadores ligados baixando. Cada um possui acesso e pode deixar o seu. </p>
<p>Mas qual cliente utilizar? Verifiquei a existência desse tipo de clientes e verifiquei que existem dois bastante famosos, o <a href="http://w3btorrent.sourceforge.net/" target="_blank">w3btorrent</a> e o <a href="http://www.torrentflux.com/" target="_blank">torrentflux</a>, li que ambos exercem muito bem sua função, porém o que eu não gostei é que eles precisam de servidor WEB como o Apache, o segundo se não estou enganado também precisa de PHP e por ai vai. Mas, será que não tem um que não precise disso? Claro que existe o próprio <a href="http://www.transmissionbt.com/" target="_blank">transmission</a>, cliente nativo do Ubuntu.</p>
<p>Bom, chega de dar outras opções pra você e vamos a instalação do Transmission. Inicialmente acesse seu servidor via ssh e instale o transmission-daemon com o seguinte comando: </p>
<blockquote><p>
$ sudo apt-get install transmission-daemon
</p></blockquote>
<p>Agora você deve configurar o mesmo, para configurar o mesmo, acessei /home/usuario/.config/transmission-daemon/settings.json </p>
<p>O arquivo é extenso e possui diversas configurações mas todas praticamente intuitivas.</p>
<p><span id="more-807"></span></p>
<p>&#8220;download-dir&#8221;: &#8211; É o diretório onde os downloads terminados irão ficar<br />
&#8220;incomplete-dir&#8221;: &#8211;  É o diretório onde os downloads incompletos irão ficar<br />
&#8220;incomplete-dir-enabled&#8221;: &#8211; Se irá usar o diretório incompleto ou não<br />
&#8220;rpc-enabled&#8221;: &#8211; Se o acesso via web estará ligado ou não<br />
&#8220;rpc-port&#8221;: &#8211; Porta do serviço<br />
&#8220;rpc-whitelist-enabled&#8221;: &#8211; Se permitirá o acesso somente a certos IPs<br />
&#8220;rpc-whitelist&#8221;: &#8211; Lista dos ips permitidos</p>
<p>Existem diversas outras configurações que podem ser feitas, mas essas são as básicas que utilizei para fazer ele funcionar, tive alguns problemas com a White-list então desabilitei a mesma, habilitei o rpc e pronto. </p>
<p>Este é o meu<br />
<a href='http://www.matbra.com/wp-content/uploads/settings.json_.tar.gz'>Arquivo de configuração do transmission-daemon</a> no mesmo a senha é &#8220;teste&#8221; e o usuário é &#8220;admin&#8221; </p>
<p>Para iniciar o transmission-daemon com um arquivo de configuração diferente, utilize &#8211;config-dir DIR/PARA/O/ARQUIVO</p>
<p>(Lembrando que não é necessário colocar o caminho até o settings.json e sim somente o caminho onde está o mesmo) </p>
<p>Adicionei no /etc/rc.local</p>
<blockquote><p>
transmission-daemon &#8211;config-dir /home/usuario/.config/transmission-daemon/
</p></blockquote>
<p>Removi o transmission-daemon do /etc/init.d/ reinicie e pronto. </p>
<p>Qualquer dúvida ou problema entre em contato, ficarei feliz em ajudar,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/08/04/cliente-torrent-em-servidor-linux-com-acesso-via-web/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Como quebrar arquivo grande em varios pedacos no Linux</title>
		<link>http://www.matbra.com/2010/08/04/como-quebrar-arquivo-grande-em-varios-pedacos-no-linux/</link>
		<comments>http://www.matbra.com/2010/08/04/como-quebrar-arquivo-grande-em-varios-pedacos-no-linux/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 07:38:32 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[large files]]></category>
		<category><![CDATA[split]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=800</guid>
		<description><![CDATA[Olá, Para você quebrar um arquivo grande em pedaços pequenos você pode usar o comando Split do Linux. Como o mesmo funciona? split &#8211;bytes=1m /caminho/arquivo/grande /caminho/arquivo/de/saida/prefixo Você pode alterar o sufixo do &#8211;bytes por diversos valores, como: kB = 1000 K = 1024 MB = 1000 * 1000 M = 1024 * 1024 G = [...]]]></description>
			<content:encoded><![CDATA[<p>Olá, </p>
<p>Para você quebrar um arquivo grande em pedaços pequenos você pode usar o comando Split do Linux. Como o mesmo funciona? </p>
<blockquote><p> split &#8211;bytes=1m /caminho/arquivo/grande /caminho/arquivo/de/saida/prefixo</p></blockquote>
<p>Você pode alterar o sufixo do &#8211;bytes por diversos valores, como:<br />
kB = 1000<br />
K = 1024<br />
MB = 1000 * 1000<br />
M = 1024 * 1024<br />
G = 1000 * 1000 * 1000<br />
GB = 1024 * 1024 * 1024</p>
<p>Atenciosamente,<br />
Matheus</p>
<p>Referencia:</p>
<p>http://www.techiecorner.com/107/how-to-split-large-file-into-several-smaller-files-linux/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/08/04/como-quebrar-arquivo-grande-em-varios-pedacos-no-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando uma biblioteca do sistema no Minix.</title>
		<link>http://www.matbra.com/2010/07/26/criando-uma-biblioteca-do-sistema-no-minix/</link>
		<comments>http://www.matbra.com/2010/07/26/criando-uma-biblioteca-do-sistema-no-minix/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 03:57:26 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[creation]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[minix]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=747</guid>
		<description><![CDATA[Antes de tudo acesse /usr/src/include e crie o arquivo Header com a seguinte estrutura: NOME.h _PROTOTYPE(int NOME_DA_FUNCAO, (int PARAM)); Depois disso acesse /usr/src/lib/other e crie o arquivo com a seguinte estrutura: NOME.c #include&#60;lib.h&#62; #include&#60;unistd.h&#62; #include&#60;stdio.h&#62; PUBLIC int NOME_DA_FUNCAO(int PARAM) { // O QUE FAZ? } Edite o arquivo Makefile.in no mesmo diretorio (/usr/src/lib/other). Adicione o [...]]]></description>
			<content:encoded><![CDATA[<p>Antes de tudo acesse /usr/src/include e crie o arquivo Header com a seguinte estrutura:</p>
<p>NOME.h</p>
<blockquote><p>_PROTOTYPE(int NOME_DA_FUNCAO, (int PARAM));</p></blockquote>
<p><span id="more-747"></span></p>
<p>Depois disso acesse /usr/src/lib/other e crie o arquivo com a seguinte estrutura:</p>
<p>NOME.c</p>
<blockquote><p>#include&lt;lib.h&gt;<br />
#include&lt;unistd.h&gt;<br />
#include&lt;stdio.h&gt;</p>
<p>PUBLIC int NOME_DA_FUNCAO(int PARAM) {<br />
// O QUE FAZ?<br />
}</p></blockquote>
<p>Edite o arquivo Makefile.in no mesmo diretorio (/usr/src/lib/other). Adicione o nome do seu arquivo a lista em ordem alfabetica.</p>
<p>O que fazer agora?</p>
<p>Regere o arquivo Makefile</p>
<blockquote><p>$ cd /usr/src/lib/other/<br />
$ make Makefile</p></blockquote>
<p>Gere as bibliotecas: (processo um pouco lento dependendo da maquina)</p>
<blockquote><p>$ cd /usr/src/tools<br />
$ make libraries</p></blockquote>
<p>Quando finalizar sem erros &#8220;compile&#8221; o sistema:</p>
<blockquote><p>$ cd /usr/src/tools<br />
$ make hdboot</p></blockquote>
<p>Ele substituira os arquivos do boot automaticamente, para ter as atualizacoes, reiniciar o sistema.</p>
<p>Como testar? Crie um arquivo no /</p>
<p>testTest.c</p>
<blockquote><p>#include &lt;stdio.h&gt;<br />
#include &lt;unistd.h&gt;<br />
#include &lt;lib.h&gt;<br />
#include &lt;fcntl.h&gt;<br />
#include &lt;NOME.h&gt;</p>
<p>int main(int argc, char *argv[]) {<br />
NOME_DA_FUNCAO(PARAM);<br />
}</p></blockquote>
<p>Agora voce pode criar suas proprias bibliotecas do sistema no Minix.</p>
<p><a href="http://www.matbra.com/wp-content/uploads/Test-Files.tar.gz">Exemplo de biblioteca criada pelo usuario para o Minix</a></p>
<p>Atenciosamente,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/07/26/criando-uma-biblioteca-do-sistema-no-minix/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Novo design, tradução.</title>
		<link>http://www.matbra.com/2010/07/20/novo-design-traducao/</link>
		<comments>http://www.matbra.com/2010/07/20/novo-design-traducao/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 04:25:18 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=697</guid>
		<description><![CDATA[Como vocês podem ver o design foi atualizado, espero que tenham gostado. Mas caso alguém tenha algo a acrescentar, achava o anterior melhor, pior ou qualquer outro feedback entre em contato. Começei a utilizar um plugin chamado Qtranslate para manter o blog em duas linguas, começei um processo de tradução de alguns artigos e talvez [...]]]></description>
			<content:encoded><![CDATA[<p>Como vocês podem ver o design foi atualizado, espero que tenham gostado. Mas caso alguém tenha algo a acrescentar, achava o anterior melhor, pior ou qualquer outro feedback entre em contato.</p>
<p>Começei a utilizar um plugin chamado <a href="http://www.qianqin.de/qtranslate/" target="_blank">Qtranslate</a> para manter o blog em duas linguas, começei um processo de tradução de alguns artigos e talvez fique mais algum tempo desaparecido traduzindo o mesmo, mas farei o possivel para trazer novidades o mais rápido que der.</p>
<p>Abraço,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/07/20/novo-design-traducao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizar Firefox 4.0 Beta no Ubuntu</title>
		<link>http://www.matbra.com/2010/07/06/utilizar-firefox-4-0-beta-no-ubuntu/</link>
		<comments>http://www.matbra.com/2010/07/06/utilizar-firefox-4-0-beta-no-ubuntu/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 14:44:45 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=677</guid>
		<description><![CDATA[Ola, Estava dando uma olhada nos meus feeds e vi que o Firefox 4.0 Beta estava disponivel para download. Fui verificar, esta mesmo, porem na verdade o que aconteceu foi que a Mozilla Foundation transformou a versao 3.7pre6a em 4.0b1. Utilizei o mesmo e nao reparei nenhuma grande melhoria, novidade fechando com as informacoes disponiveis [...]]]></description>
			<content:encoded><![CDATA[<p>Ola,</p>
<p>Estava dando uma olhada nos meus feeds e vi que o Firefox 4.0 Beta estava disponivel para download. Fui verificar, esta mesmo, porem na verdade o que aconteceu foi que a Mozilla Foundation transformou a versao 3.7pre6a em 4.0b1. </p>
<p>Utilizei o mesmo e nao reparei nenhuma grande melhoria, novidade fechando com as informacoes disponiveis no Imasters.Um screenshot do mesmo pra nao passar em branco a baixo.</p>
<p><a href="http://www.matbra.com/2010/07/06/utilizar-firefox-4-0-beta-no-ubuntu/firefox-4-beta/" rel="attachment wp-att-681"><img src="http://www.matbra.com/wp-content/uploads/firefox-4-beta-300x187.png" alt="firefox-4-beta" title="firefox-4-beta" width="300" height="187" class="aligncenter size-medium wp-image-681" /></a></p>
<p>Bom, mas como utilizar a nova versao do Firefox? Simples, baixe a versao que voce deseja utilizar </p>
<p><a href="ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/4.0b1-candidates/build1/linux-i686/en-US/firefox-4.0b1.tar.bz2" target="_blank">Firefox 4.0 beta &#8211; Linux 32 Bits</a><br />
<a href="ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/4.0b1-candidates/build1/linux-x86_64/en-US/firefox-4.0b1.tar.bz2" target="_blank">Firefox 4.0 beta &#8211; Linux 64 Bits</a><br />
<a href="ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/4.0b1-candidates/build1/" target="_blank">Firefox 4.0 beta &#8211; outros</a></p>
<p>Apos o download completo, feche o seu firefox. Extraia. Execute o arquivo firefox. Se voce quizer ficar utilizando ele, mesmo com as falhas que ele deve possuir e maior instabilidade voce pode criar atalho para o mesmo. </p>
<p>Abracos,<br />
Matheus</p>
<p>Feed que me informou:<br />
<a href="http://imasters.uol.com.br/noticia/17373/des_de_software/firefox_4_beta_esta_disponivel_para_download/">http://imasters.uol.com.br/noticia/17373/des_de_software/firefox_4_beta_esta_disponivel_para_download/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/07/06/utilizar-firefox-4-0-beta-no-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atualizar Android para 2.2 no Nexus one.</title>
		<link>http://www.matbra.com/2010/05/26/atualizar-android-para-2-2-no-nexus-one/</link>
		<comments>http://www.matbra.com/2010/05/26/atualizar-android-para-2-2-no-nexus-one/#comments</comments>
		<pubDate>Wed, 26 May 2010 03:03:38 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=675</guid>
		<description><![CDATA[Olá, Apenas alguns dias atrás (quarta-feira) passada. Foi anunciado o novo Android 2.2. Li em vários lugares que ele era mais rápido e possuia algumas novas funcionalidades, como thetering, e se tornar um Wifi-Hotspot. Então fui pesquisar como instalar no meu Nexus One e achei! Como o site está em ingles vou fazer uma pequena [...]]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Apenas alguns dias atrás (quarta-feira) passada. Foi anunciado o novo Android 2.2. Li em vários lugares que ele era mais rápido e possuia algumas novas funcionalidades, como thetering, e se tornar um Wifi-Hotspot. </p>
<p>Então fui pesquisar como instalar no meu Nexus One e achei! Como o site está em ingles vou fazer uma pequena tradução a não livre. </p>
<p>Para saber qual arquivo baixar, acesse &#8220;Settings&#8221; e depois &#8220;About the phone&#8221; no final você possuira um Build number. Se o seu for ERE27 você deve baixar o arquivo abaixo:<br />
<a href="http://files.androidspin.com/downloads.php?dir=public/nexus-one/&#038;file=signed-passion-FRF50-from-ERE27.1e519a24.zip">http://files.androidspin.com/downloads.php?dir=public/nexus-one/&#038;file=signed-passion-FRF50-from-ERE27.1e519a24.zip</a></p>
<p>PS: Caso o link estiver quebrado, entre em contato, ou procure você mesmo e me informe. Não sei porque mas algumas vezes eles alteram o final após o ERE27.</p>
<p>1. Renomeie e copie o arquivo baixado para seu microSD card.<br />
2. Com seu celular desligado, pressione a trackball (bolinha) e pressione o botão ligar.<br />
3. Você será levado a uma tela branca com tres Robos Androids em Skates.<br />
- Volume para cima meche para cima.<br />
- Volume para baixo meche para baixo.<br />
- Botão de ligar/desligar é enter.<br />
- Selecione &#8220;Bootloader&#8221;<br />
4. Na proxima tela selecione &#8220;Recovery&#8221;<br />
5. Seu celular irá reiniciar e aparecera uma figura de um Robo Android e um ponto de exclamação.<br />
6. Presione o botão de ligar e o volume pra cima ao mesmo tempo. Pode demorar algumas tentativas para ir.<br />
7. Agora usando a trackball selecione &#8220;Apply sdcard:update.zip&#8221; e deixe executar. </p>
<p>Testado e funcionando! Android versão 2.2! Lembrando que para este processo seu celular não precisa ser &#8220;rootado&#8221; </p>
<p>Referencia:<br />
<a href="http://www.google.com/support/forum/p/android/thread?tid=0c24d652d14af195&#038;hl=en">http://www.google.com/support/forum/p/android/thread?tid=0c24d652d14af195&#038;hl=en</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/05/26/atualizar-android-para-2-2-no-nexus-one/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Instalar Flash no Ubuntu 10.04 64bits</title>
		<link>http://www.matbra.com/2010/05/14/instalar-flash-no-ubuntu-10-04-64bits/</link>
		<comments>http://www.matbra.com/2010/05/14/instalar-flash-no-ubuntu-10-04-64bits/#comments</comments>
		<pubDate>Fri, 14 May 2010 22:56:07 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[10.04]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=670</guid>
		<description><![CDATA[Ola, Problema classico encontrado ao instalar os Ubuntus novos versao 64 bits, como fazer o flash funcionar? Encontrei um Script na internet que faz isso automaticamente para voce, instalador nativo flash ubuntu 64 bits Apos feito o download acesse o diretorio onde o mesmo esta e de permissao de execucao ao arquivo da seguinte maneira: [...]]]></description>
			<content:encoded><![CDATA[<p>Ola,</p>
<p>Problema classico encontrado ao instalar os Ubuntus novos versao 64 bits, como fazer o flash funcionar? </p>
<p>Encontrei um Script na internet que faz isso automaticamente para voce, <a href="http://www.myscienceisbetter.info/flash-player/native-64bit-flash-installer.sh">instalador nativo flash ubuntu 64 bits</a> </p>
<p>Apos feito o download acesse o diretorio onde o mesmo esta e de permissao de execucao ao arquivo da seguinte maneira: </p>
<div class="codesnip-container" >$ chmod +x native-64bit-flash-installer.sh</div>
<p>Entao execute-o</p>
<div class="codesnip-container" >$ ./native-64bit-flash-installer.sh</div>
<p>Lembrando que eh necessario que o firefox esteja fechado. </p>
<p>Abraco,<br />
Matheus</p>
<p>Referencia:<br />
<a href="http://mattrudge.wordpress.com/2010/05/03/installing-flash-player-on-ubuntu-10-04-64-bit/">http://mattrudge.wordpress.com/2010/05/03/installing-flash-player-on-ubuntu-10-04-64-bit/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/05/14/instalar-flash-no-ubuntu-10-04-64bits/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
