<?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 &#187; Aprendendo</title>
	<atom:link href="http://www.matbra.com/category/aprendendo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matbra.com</link>
	<description>&#34;Cogito ergo sum&#34;</description>
	<lastBuildDate>Tue, 20 Dec 2011 00:03:21 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Sistema Grafico Interativo &#8211; Computação Gráfica.</title>
		<link>http://www.matbra.com/2010/12/08/sistema-grafico-interativo-computacao-grafica/</link>
		<comments>http://www.matbra.com/2010/12/08/sistema-grafico-interativo-computacao-grafica/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 03:27:55 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[computacao grafica]]></category>
		<category><![CDATA[sistema grafico interativo]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=1028</guid>
		<description><![CDATA[Olá, Esta publicação traz um sistema gráfico interativo, o mesmo possui criação de pontos, retas, poligonos, curvas. Também possui operações de rotação, cor em objetos, entre outras funcionalidades. SGI Final Espero que gostem, Matheus]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Esta publicação traz um sistema gráfico interativo, o mesmo possui criação de pontos, retas, poligonos, curvas. Também possui operações de rotação, cor em objetos, entre outras funcionalidades. </p>
<p><a href='http://www.matbra.com/wp-content/uploads/CG-1.7-Final.zip'>SGI Final</a></p>
<p>Espero que gostem,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/12/08/sistema-grafico-interativo-computacao-grafica/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaSpaces &#8211; Um exemplo introdutório.</title>
		<link>http://www.matbra.com/2010/12/01/javaspaces-um-exemplo-introdutorio/</link>
		<comments>http://www.matbra.com/2010/12/01/javaspaces-um-exemplo-introdutorio/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 19:35:31 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[computação distribuida]]></category>
		<category><![CDATA[javaspaces]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=1021</guid>
		<description><![CDATA[Boa tarde, Este exemplo é um serviço de microblog, &#8220;semelhante&#8221; ao twitter. O mesmo utiliza o JavaSpaces. JavaSpaces &#8211; examplo Espero que seja util, Matheus]]></description>
			<content:encoded><![CDATA[<p>Boa tarde,</p>
<p>Este exemplo é um serviço de microblog, &#8220;semelhante&#8221; ao twitter. O mesmo utiliza o JavaSpaces. </p>
<p><a href='http://www.matbra.com/wp-content/uploads/javaspaces-example.zip'>JavaSpaces &#8211; examplo</a></p>
<p>Espero que seja util,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/12/01/javaspaces-um-exemplo-introdutorio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebServices &#8211; Um exemplo introdutório.</title>
		<link>http://www.matbra.com/2010/10/07/webservices-um-exemplo-introdutorio/</link>
		<comments>http://www.matbra.com/2010/10/07/webservices-um-exemplo-introdutorio/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 19:23:46 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[computação distribuida]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=983</guid>
		<description><![CDATA[Ola, Neste exemplo é demonstrado a criação de um Cliente para um Web Services. O exemplo de um Web Service que também é Cliente (Collector), e um Web Service que é somente Web Service. (Store). O programa utilizado para criação utilizado foi o NetBeans com o GlassFish. A versão do netbeans foi netbeans-6.9.1-ml-java. Cliente, Coletor, [...]]]></description>
			<content:encoded><![CDATA[<p>Ola,</p>
<p>Neste exemplo é demonstrado a criação de um Cliente para um Web Services. O exemplo de um Web Service que também é Cliente (Collector), e um Web Service que é somente Web Service. (Store). </p>
<p>O programa utilizado para criação utilizado foi o NetBeans com o GlassFish. A versão do netbeans foi netbeans-6.9.1-ml-java.</p>
<p><a href='http://www.matbra.com/wp-content/uploads/Cliente-collector-store-funcionando.tar.gz'>Cliente, Coletor, Lojas &#8211; Exemplo de WebServices</a></p>
<p>Espero que o exemplo seja útil a você.<br />
Matheus </p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/10/07/webservices-um-exemplo-introdutorio/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>Instalar Windows 7 + Ubuntu 9.10</title>
		<link>http://www.matbra.com/2010/03/18/instalar-windows-7-ubuntu-9-10/</link>
		<comments>http://www.matbra.com/2010/03/18/instalar-windows-7-ubuntu-9-10/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 20:48:56 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=637</guid>
		<description><![CDATA[Olá Ontem estava tentando instalar o Windows 7 sendo que eu ja tinha o Ubuntu 9.10 instalado. Pesquisei um pouco na internet e encontrei algumas informações. Só vou passar o link para as mesmas porque fiquei com preguiça de fazer e como eu não possuia nada no meu computador podia formata-lo tranquilamente. http://ubuntuforums.org/showthread.php?t=1035999 O método [...]]]></description>
			<content:encoded><![CDATA[<p>Olá</p>
<p>Ontem estava tentando instalar o Windows 7 sendo que eu ja tinha o Ubuntu 9.10 instalado. Pesquisei um pouco na internet e encontrei algumas informações. Só vou passar o link para as mesmas porque fiquei com preguiça de fazer e como eu não possuia nada no meu computador podia formata-lo tranquilamente. </p>
<p><a href="http://ubuntuforums.org/showthread.php?t=1035999">http://ubuntuforums.org/showthread.php?t=1035999</a></p>
<p>O método que utilizei foi simplesmente dar boot com o cd do Windows 7, deletar todas as particoes, como possuo um notebook e no mesmo soh possuo um hd, ja pensei nas particoes. Criei uma particao pra dados de 200GB, criei uma de uns 45GB para o Windows 7. O resto deixei livre para instalar o linux. </p>
<p>Procedi normalmente instalando o Windows 7, quando a instalacao foi finalizada, dei boot com o Live CD do Ubuntu 9.10 e instalei o mesmo normalmente, utilizando a configuracao avançada para criaçao de particao, caso contrario ele iria apagar toda a partição. Após finalizada a instalação, reiniciei e vua-la, Grub configurada perfeitamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2010/03/18/instalar-windows-7-ubuntu-9-10/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RMVB no Movie Player com Ubuntu 9.10</title>
		<link>http://www.matbra.com/2009/11/03/rmvb-no-movie-player-com-ubuntu-9-10/</link>
		<comments>http://www.matbra.com/2009/11/03/rmvb-no-movie-player-com-ubuntu-9-10/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 00:24:37 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=622</guid>
		<description><![CDATA[Boa noite, Fui ver alguns seriados em formato RMVB hoje antes da re-instalação do Rhythmbox e ocorreu o problema de não ser possível achar codecs. No momento fiquei irritado e fui dar uma volta. Ao voltar, fui ouvir músicas e aconteceu o problema de ouvir Mp3 no Rhythmbox, após uma pequena pesquisada no google achei [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite, </p>
<p>Fui ver alguns seriados em formato RMVB hoje antes da re-instalação do Rhythmbox e ocorreu o problema de não ser possível achar codecs. No momento fiquei irritado e fui dar uma volta. </p>
<p>Ao voltar, fui ouvir músicas e aconteceu o problema de ouvir <a href="http://http://www.matbra.com/2009/11/03/mp3-no-rhythmbox/">Mp3 no Rhythmbox</a>, após uma pequena pesquisada no google achei como solucionar o mesmo. </p>
<p>Quando fui tentar ver seriados novamente, o problema estava resolvido ele conseguiu achar os codecs. Então caso você esteja tendo problemas para achar os codecs tente atualizar sua sourcelist:</p>
<blockquote><p> $  sudo apt-get update </p></blockquote>
<p>Atenciosamente,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/11/03/rmvb-no-movie-player-com-ubuntu-9-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mp3 no Rhythmbox com Ubuntu 9.10</title>
		<link>http://www.matbra.com/2009/11/03/mp3-no-rhythmbox/</link>
		<comments>http://www.matbra.com/2009/11/03/mp3-no-rhythmbox/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 00:19:36 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=620</guid>
		<description><![CDATA[Olá, Instalei o Ubuntu 9.10 hoje e quando fui ouvir minhas músicas mp3 no Rhythmbox ele avisava que precisava de codec, mandava buscar porém o mesmo não encontrava os codecs necessários. Segui as dicas do Ubuntu Geek que são as seguintes: Remova o Rhythmbox com o seguinte comando: $ sudo apt-get remove rhythmbox &#8211;purge Atualize [...]]]></description>
			<content:encoded><![CDATA[<p>Olá, </p>
<p>Instalei o Ubuntu 9.10 hoje e quando fui ouvir minhas músicas mp3 no Rhythmbox ele avisava que precisava de codec, mandava buscar porém o mesmo não encontrava os codecs necessários. Segui as dicas do <a href="http://www.ubuntugeek.com/fix-for-rhythmbox-not-playing-mp3-in-ubuntu-karmic.html#more-2459">Ubuntu Geek </a> que são as seguintes: </p>
<p>Remova o Rhythmbox com o seguinte comando:</p>
<blockquote><p>$ sudo apt-get remove rhythmbox &#8211;purge</p></blockquote>
<p>Atualize a sourcelist:</p>
<blockquote><p>$ sudo apt-get update</p></blockquote>
<p>Instale o Rhythmbox novamente:</p>
<blockquote><p>$ sudo apt-get install rhythmbox</p></blockquote>
<p>Realizei estes procedimentos e tudo funcionou.</p>
<p>UPDATE: Após tentar ver RMVBs novamente e o Movie Player conseguir achar os codecs, pensei um pouco e acredito que somente a atualização do sourcelist seja suficiente para conseguir solucionar este problema. Já que o Rhytmbox não possui ligação com o Movie Player e após a realização dos procedimentos descritos aqui, ambos funcionarem. </p>
<p>Atenciosamente,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/11/03/mp3-no-rhythmbox/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Adicionado o LURL a seção Code.</title>
		<link>http://www.matbra.com/2009/10/24/adicionado-o-lurl-a-secao-code/</link>
		<comments>http://www.matbra.com/2009/10/24/adicionado-o-lurl-a-secao-code/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 20:13:24 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=614</guid>
		<description><![CDATA[Boa tarde, Gostaria de informar que o LURL (Little URL) ou conhecido por Tiny-URL na sessão Code. Pretendo dedicar um pouco do tempo livre que eu não tenho ao desenvolvimento desse &#8220;Programa&#8221;. Aproveitei e terminei a versão para PHP5, re-estruturei algumas classes. Também corrigi uns erros da versão do PHP4 e da versão PHP5. Criei [...]]]></description>
			<content:encoded><![CDATA[<p>Boa tarde,</p>
<p>Gostaria de informar que o LURL (Little URL) ou conhecido por Tiny-URL na sessão Code. Pretendo dedicar um pouco do tempo livre que eu não tenho ao desenvolvimento desse &#8220;Programa&#8221;. </p>
<p>Aproveitei e terminei a versão para PHP5, re-estruturei algumas classes. Também corrigi uns erros da versão do PHP4 e da versão PHP5. Criei o mesmo sobre a licença GPL. </p>
<p>Caso você possua alguma dúvida sobre como utilizar o LURL, encontrar um Bug, fizer melhorias, por favor entre em contato. </p>
<p>Abraços,<br />
Matheus Bratfisch </p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/10/24/adicionado-o-lurl-a-secao-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nova versão do LURL (Tiny-URL).</title>
		<link>http://www.matbra.com/2009/10/19/nova-versao-do-lurl-tiny-url/</link>
		<comments>http://www.matbra.com/2009/10/19/nova-versao-do-lurl-tiny-url/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 01:49:49 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[tinyurl]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=597</guid>
		<description><![CDATA[Boa noite, Na primeira versão do LURL (Tiny-URL), o usuário João, sugeriu que em vez de eu gerar um identificador aleatório, que poderia causar problemas quando o banco de dados se tornasse muito grande, eu poderia utilizar o campo ID, pois o mesmo é Auto Increment, e por isso ele se auto incrementa, não permitindo [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite, </p>
<p>Na <a href="http://www.matbra.com/2009/05/09/criando-seu-proprio-tiny-url/">primeira versão do LURL (Tiny-URL)</a>, o usuário João, sugeriu que em vez de eu gerar um identificador aleatório, que poderia causar problemas quando o banco de dados se tornasse muito grande, eu poderia utilizar o campo ID, pois o mesmo é Auto Increment, e por isso ele se auto incrementa, não permitindo que existam dois campos com o mesmo identificador. </p>
<p>Já pensava em acatar a idéia do João a bastante tempo mas sempre estava com preguiça, até que alguns dias atrás uma amiga pediu ajuda para fazer um script para conversão de números entre bases. Após ajudar a mesma, ficou fácil. Só passar o código para PHP, modificar algumas funções antigas e pronto. </p>
<p><span id="more-597"></span></p>
<p>Foi necessário criar dois novos métodos importantes: </p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">function</span> convertDecimalTo<span class="br0">&#40;</span><span class="re0">$decimal</span><span class="sy0">,</span><span class="re0">$newBase</span><span class="sy0">,</span><span class="re0">$str</span><span class="sy0">,</span><span class="re0">$letters</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$decimal</span> <span class="sy0">&gt;=</span> <span class="re0">$newBase</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$x</span> <span class="sy0">=</span> <span class="re0">$decimal</span> <span class="sy0">%</span> <span class="re0">$newBase</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$y</span> <span class="sy0">=</span> <span class="re0">$decimal</span> <span class="sy0">/</span> <span class="re0">$newBase</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$str</span> <span class="sy0">=</span> <span class="re0">$letters</span><span class="br0">&#123;</span><span class="re0">$x</span><span class="br0">&#125;</span> <span class="sy0">.</span> <span class="re0">$str</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$y</span> <span class="sy0">&lt;</span> <span class="re0">$newBase</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$str</span> <span class="sy0">=</span> <span class="re0">$letters</span><span class="br0">&#123;</span><span class="re0">$y</span><span class="br0">&#125;</span> <span class="sy0">.</span> <span class="re0">$str</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> convertDecimalTo<span class="br0">&#40;</span><span class="re0">$y</span><span class="sy0">,</span><span class="re0">$newBase</span><span class="sy0">,</span><span class="re0">$str</span><span class="sy0">,</span><span class="re0">$letters</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$str</span><span class="br0">&#41;</span> <span class="sy0">==</span> 0<span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$str</span> <span class="sy0">=</span> <span class="re0">$letters</span><span class="br0">&#123;</span><span class="re0">$decimal</span><span class="br0">&#125;</span> <span class="sy0">.</span> <span class="re0">$str</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$str</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw2">function</span> convertBaseToDecimal<span class="br0">&#40;</span><span class="re0">$value</span><span class="sy0">,</span><span class="re0">$newBase</span><span class="sy0">,</span><span class="re0">$letters</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sum</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$len</span> <span class="sy0">=</span> <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$end</span> <span class="sy0">=</span> <span class="re0">$len</span><span class="sy0">-</span><span class="nu0">1</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$x</span><span class="sy0">=</span><span class="re0">$end</span><span class="sy0">;</span><span class="re0">$x</span><span class="sy0">&gt;=</span><span class="nu0">0</span><span class="sy0">;</span><span class="re0">$x</span><span class="sy0">&#8211;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sum</span> <span class="sy0">=</span> <span class="re0">$sum</span> <span class="sy0">+</span> <a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$letters</span><span class="sy0">,</span><span class="re0">$value</span><span class="br0">&#123;</span><span class="re0">$x</span><span class="br0">&#125;</span><span class="br0">&#41;</span> <span class="sy0">*</span> <a href="http://www.php.net/pow"><span class="kw3">pow</span></a><span class="br0">&#40;</span><span class="re0">$newBase</span><span class="sy0">,</span><span class="br0">&#40;</span><span class="re0">$end</span> <span class="sy0">-</span> <span class="re0">$x</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$sum</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>As demais modificações você pode ver aqui:<br />
<a href='http://www.matbra.com/2009/10/19/nova-versao-do-lurl-tiny-url/lurl2-php/' rel='attachment wp-att-598'>LURL (Tiny-URL) com Identificador apartir do ID em PHP 4</a></p>
<p>Assim que for possível vou fazer as alterações na versão para PHP5 onde é utilizado classes.<br />
Matheus Bratfisch</p>
<p>PS: Vou criar uma página para o LURL na sessão Code em breve. </p>
<p><a href="http://www.matbra.com/2009/07/04/graficos-para-seu-tiny-url/">LURL (Tiny-URL) com gráfico e estatísticas para PHP4</a><br />
<a href="http://www.matbra.com/2009/07/08/classe-para-tiny-url-em-php5/">LURL (Tiny-URL) com gráfico e estatísticas para PHP5</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/10/19/nova-versao-do-lurl-tiny-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mudança de base numérica com Python.</title>
		<link>http://www.matbra.com/2009/10/19/mudanca-de-base-numerica-com-python/</link>
		<comments>http://www.matbra.com/2009/10/19/mudanca-de-base-numerica-com-python/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 03:20:37 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=594</guid>
		<description><![CDATA[Boa noite, Algum tempo já venho pensando em mudar o método utilizado pelo Little URL, já que o mesmo atualmente cria strings aleatórias para cada registro, porém seria melhor criar os endereços utilizando uma base (16,32,64) pois assim não corresse o risco do gerador entrar em loop já que cada endereço registrado possui um número [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite, </p>
<p>Algum tempo já venho pensando em mudar o método utilizado pelo <a href="http://www.matbra.com/2009/07/04/graficos-para-seu-tiny-url/">Little URL</a>, já que o mesmo atualmente cria strings aleatórias para cada registro, porém seria melhor criar os endereços utilizando uma base (16,32,64) pois assim não corresse o risco do gerador entrar em loop já que cada endereço registrado possui um número único no banco de dados. (Chave primária). Hoje uma amiga perguntou como ela faria um programa para mudar a base de um número manualmente, aproveitei que ela me lembrou disso e resolvi fazer. </p>
<div class="codesnip-container" >
<div class="python codesnip" style="font-family:monospace;"><span class="kw1">def</span> convert<span class="br0">&#40;</span><span class="kw3">decimal</span>,newBase,<span class="kw2">str</span>,letters<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw3">decimal</span> <span class="sy0">&gt;</span>= newBase:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x = <span class="kw3">decimal</span> <span class="sy0">%</span> newBase<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y = <span class="kw3">decimal</span> / newBase &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">str</span> = letters<span class="br0">&#91;</span>x<span class="br0">&#93;</span> + <span class="kw2">str</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> y <span class="sy0">&lt;</span> newBase:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">str</span> = letters<span class="br0">&#91;</span>y<span class="br0">&#93;</span> + <span class="kw2">str</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> convert<span class="br0">&#40;</span>y,newBase,<span class="kw2">str</span>,letters<span class="br0">&#41;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw2">len</span><span class="br0">&#40;</span><span class="kw2">str</span><span class="br0">&#41;</span> == 0:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">str</span> = letters<span class="br0">&#91;</span><span class="kw3">decimal</span><span class="br0">&#93;</span> + <span class="kw2">str</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">str</span><br />
let = <span class="st0">&quot;0123456789ABCDEF&quot;</span><br />
<span class="kw1">print</span> convert<span class="br0">&#40;</span><span class="nu0">17</span>,<span class="nu0">16</span>,<span class="st0">&quot;&quot;</span>,let<span class="br0">&#41;</span></div>
</div>
<p>A váriavel let, são os valores utilizados na criação da base. Por exemplo ao se utilizar uma base binária, os valores deveriam ser 01 e assim consecutivamente. </p>
<p>Espero que goste,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/10/19/mudanca-de-base-numerica-com-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

