<?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>fzmaster.info</title>
	<atom:link href="http://www.fzmaster.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fzmaster.info</link>
	<description>A WEB, mas melhor</description>
	<lastBuildDate>Thu, 15 Sep 2011 22:22:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Mostrando tweets novos sem clicar</title>
		<link>http://www.fzmaster.info/2011/09/15/mostrando-tweets-novos-sem-clicar/</link>
		<comments>http://www.fzmaster.info/2011/09/15/mostrando-tweets-novos-sem-clicar/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 22:20:28 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.fzmaster.info/?p=347</guid>
		<description><![CDATA[&#160; Este código é um oferecimento da XPDEV para você que gosta de ficar o dia todo no Twitter. Com ele, você vai evitar de ficar clicando no link para ver os novos tweets. Para adicionar este recurso, arraste este LINK para a sua barra de favoritos. Ele está configurado para fazer a atualização de [...]		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2011/09/15/mostrando-tweets-novos-sem-clicar/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a title="XPDEV" href="http://www.xpdev.com.br/" target="_blank"><img class="alignnone size-full wp-image-349" title="xpdev" src="http://www.fzmaster.info/wp-content/uploads/2011/09/xpdev.png" alt="" width="249" height="94" /></a></p>
<p>Este código é um oferecimento da <a title="XPDEV" href="http://www.xpdev.com.br" target="_blank">XPDEV</a> para você que gosta de ficar o dia todo no Twitter.</p>
<p>Com ele, você vai evitar de ficar clicando no link para ver os novos tweets.</p>
<p><img class="alignnone size-full wp-image-350" title="atualizar" src="http://www.fzmaster.info/wp-content/uploads/2011/09/atualizar.png" alt="" width="541" height="197" /></p>
<p>Para adicionar este recurso, arraste este <a title="LINK PARA ATUALIZAR O TWITTER" href="javascript:function atualizar(){ jQuery('#new-tweets-bar').click(); } setInterval(&quot;atualizar()&quot;, 5000);">LINK </a> para a sua barra de favoritos.<br />
Ele está configurado para fazer a atualização de 5 em 5 segundos.</p>
<p>Fica a dica para seguir @XPDEVBRASIL também.</p>
<p>&nbsp;</p>
<p>Até a próxima.</p>
<p>fzmaster</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2011/09/15/mostrando-tweets-novos-sem-clicar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP &#8211; Redirecionar tela de login para página fora da aplicação</title>
		<link>http://www.fzmaster.info/2011/02/25/cakephp-redirecionar-tela-de-login-para-pagina-fora-da-aplicacao/</link>
		<comments>http://www.fzmaster.info/2011/02/25/cakephp-redirecionar-tela-de-login-para-pagina-fora-da-aplicacao/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 03:47:58 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programacao]]></category>

		<guid isPermaLink="false">http://www.fzmaster.info/?p=339</guid>
		<description><![CDATA[Uma situação bem inusitada que pode ocorrer durante o desenvolvimento de uma aplicação é precisar atrelar o seu sistema de login à uma página externa à aplicação. Vou mostrar como pode-se fazer isso usando CakePHP. No CakePHP nós temos o conceito de herança aplicado aos controllers. Neste caso, nosso controller de usuários herda da app_controller [...]		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2011/02/25/cakephp-redirecionar-tela-de-login-para-pagina-fora-da-aplicacao/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<p>Uma situação bem inusitada que pode ocorrer durante o desenvolvimento de uma aplicação é precisar atrelar o seu sistema de login à uma página externa à aplicação.</p>
<p>Vou mostrar como pode-se fazer isso usando CakePHP.</p>
<p>No CakePHP nós temos o conceito de herança aplicado aos controllers. Neste caso, nosso controller de usuários herda da app_controller métodos e atributos. Quando se tem o sistema de login em CakePHP, deve-se habilitar o componente Auth. Vamos também fazer umas modificações em nosso método AppController::before_filter(). No final teremos algo como isso.</p>
<pre class="brush:php">&lt;?php
class AppController extends Controller {

	var $components = array('Auth');

	function beforeFilter(){
		$this-&gt;Auth-&gt;userModel = 'Usuario'; # mudamos o padrao de User para Usuario

       }

}
?&gt;</pre>
<p>Agora nosso arquivo usuarios_controller.php. Ele deve ter os métodos login() e logout() para funcionar corretamente com o components Auth. Neste caso, devemos apenas implementar algumas pequenas mudanças no método login() como mostrado abaixo:</p>
<pre class="brush:php">&lt;?php
class UsuariosController extends AppController {

	var $name = 'Usuarios';

	function login() {
	   $this-&gt;redirect('http://www.outro.dominio.com.br/pagina.html');
	}

	function logout() {
		$this-&gt;redirect($this-&gt;Auth-&gt;logout());
	}

}
?&gt;</pre>
<p>Por isso é hoje. Essa dica é muito quando sua aplicação fica em outra parte do domínio que vai passar o formulário de login. <img src='http://www.fzmaster.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2011/02/25/cakephp-redirecionar-tela-de-login-para-pagina-fora-da-aplicacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como copiar informações da Wikipedia</title>
		<link>http://www.fzmaster.info/2011/02/11/como-copiar-informacoes-da-wikipedia/</link>
		<comments>http://www.fzmaster.info/2011/02/11/como-copiar-informacoes-da-wikipedia/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 04:46:55 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.fzmaster.info/?p=332</guid>
		<description><![CDATA[Essa dica é muito boa para pegar referências nativas automaticamente sem precisar ficar dando Ctrl+C, Ctrl+V. Primeiro, vamos escolher um página da wikipedia para obtermos o conteúdo. Por exemplo: Tropa de Elite 2 Vamos ver o código fonte da página a fim de encontrar algum padrão: Hum&#8230; note que encontramos o seguinte. Todo artigo está [...]		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2011/02/11/como-copiar-informacoes-da-wikipedia/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<p>Essa dica é muito boa para pegar referências nativas automaticamente sem precisar ficar dando Ctrl+C, Ctrl+V.</p>
<p>Primeiro, vamos escolher um página da wikipedia para obtermos o conteúdo.</p>
<p>Por exemplo: <a title="Tropa de Elite 2" href="http://pt.wikipedia.org/wiki/Tropa_de_Elite_2:_O_Inimigo_agora_%C3%89_Outro" target="_blank">Tropa de Elite 2</a></p>
<p><img class="alignnone size-full wp-image-333" title="tropa2" src="http://www.fzmaster.info/wp-content/uploads/2011/02/tropa2.png" alt="" width="661" height="319" /></p>
<p>Vamos ver o código fonte da página a fim de encontrar algum padrão:</p>
<p>Hum&#8230; note que encontramos o seguinte. Todo artigo está envolvido nas tags de comentário &lt;!&#8211; content &#8211;&gt; e &lt;!&#8211; /content &#8211;&gt;</p>
<pre class="brush:php">&lt;!-- content --&gt;
		&lt;div id="content"&gt;
			&lt;a id="top"&gt;&lt;/a&gt; 

............CONTEUDO SUPRIMIDO ...........
	&lt;!-- /bodyContent --&gt;
		&lt;/div&gt;
		&lt;!-- /content --&gt;
		&lt;!-- header --&gt;</pre>
<p>Ótimo. Então vamos trabalhar em cima disso.</p>
<p>A dica para pegar o conteúdo ENTRE essas tags é usando expressões regulares.</p>
<p>Nós precisamos pegar: TAG DE ENTRADAS + CONTEÚDO + TAG DE SAÍDA.</p>
<p>Assim, podemos usar a própria tag literalmente e o operador qualquer coisa (.) repetido infinitas vezes.</p>
<p>Assim, teremos:</p>
<pre class="brush:js">&lt;!-- content --&gt;.*&lt;!-- /content --&gt;</pre>
<p>Para integrar no nosso sistema, vamos usar a função PHP chamada preg_match_all que vai casar a expressão regular com o conteúdo inserido. O conteúdo será provido pela variável $informação que  foi carregada com a string do código fonte da página. O código foi capturado com a função file_get_contents().</p>
<p>Veja como ficou o código</p>
<pre class="brush:php">&lt;?php
$informacao = file_get_contents('http://pt.wikipedia.org/wiki/Tropa_de_Elite_2:_O_Inimigo_agora_%C3%89_Outro');
preg_match_all('%&lt;!-- content --&gt;.*&lt;!-- /content --&gt;%s', $informacao, $resultado, PREG_PATTERN_ORDER);
$resultado = $resultado[0][0];

echo $resultado;
?&gt;</pre>
<p>Pronto, agora podemos usar o conteúdo da variável para salvar no banco de dados, ou fazer um carregamento em Ajax.</p>
<p>Use a imaginação.</p>
<p>Post feito com base na dúvida de <a href="http://www.inf.ufes.br/~mssoares/" target="_blank">MSS</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2011/02/11/como-copiar-informacoes-da-wikipedia/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gerar Backup do banco de dados MySQL e enviar por e-mail</title>
		<link>http://www.fzmaster.info/2011/01/05/gerar-backup-do-banco-de-dados-mysql-e-enviar-por-e-mail/</link>
		<comments>http://www.fzmaster.info/2011/01/05/gerar-backup-do-banco-de-dados-mysql-e-enviar-por-e-mail/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 23:15:13 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programacao]]></category>

		<guid isPermaLink="false">http://www.fzmaster.info/?p=321</guid>
		<description><![CDATA[Pois é. Hoje meu servidor ficou fora do ar. O motivo foi o servidor de banco de dados que caiu, assim nenhum site que usasse banco de dados, estava travado. Não abria. Retomando essa discussão, e se o servidor tivesse crashado geral e tivesse perdido tudo? Já era, né? Não é bem assim. Abaixo estou [...]		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2011/01/05/gerar-backup-do-banco-de-dados-mysql-e-enviar-por-e-mail/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">Pois é. Hoje meu servidor ficou fora do ar. O motivo foi o servidor de banco de dados que caiu, assim nenhum site que usasse banco de dados, estava travado. Não abria. Retomando essa discussão, e se o servidor tivesse crashado geral e tivesse perdido tudo? Já era, né? Não é bem assim.</div>
<div>Abaixo estou compartilhando o meu código de backup que criei há um tempo atrás.</div>
<div>Nele é possível montar o backup do banco de dados e mandar por e-mail.</div>
<div>No meu caso, o mesmo executa 1 vez por dia. Mas fica a seu critério ao rodar o cron.</div>
<div>Dependências: <a href="http://phpmailer.worxware.com/" target="_blank">phpmailer. Baixe aqui</a>.</div>
<div>
<pre class="brush:php">&lt;?php
// aumenta a memoria e importa o mailer
ini_set("memory_limit","64M");
require 'class.phpmailer.php';
// gera backup
$nome = '/tmp/' . date('Ymd-Hi') . '.sql';
exec("mysqldump -u usuario --password='senha' --all-databases &gt; {$nome}");
exec("gzip $nome");
$nome .= ".gz";
$tamanho = number_format(filesize($nome) / 1048576, 0);
$data = date('d/m/Y');
$m = new PHPMailer();
$m-&gt;SetFrom('emaildofrom@dominio.com', 'Backup do BD');
$m-&gt;AddAddress('destinatario@dominio.com', 'Nome do Destinatario');
$m-&gt;AddAttachment($nome);
$m-&gt;Subject = 'Backup de Banco de Dados Diario '.$data;
$m-&gt;MsgHTML(nl2br("Backup dos Bancos de Dados. \n Dia: {$data} \n Tipo: ANEXO \n Tamanho: {$tamanho}MB."));
// envio backup
if ($m-&gt;Send()) {
unlink($filename);
}
?&gt;</pre>
<p>Então é isso.<br />
Fica a dica e até mais. Qualquer dúvida, podem comentar aqui abaixo.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2011/01/05/gerar-backup-do-banco-de-dados-mysql-e-enviar-por-e-mail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No donut for me!</title>
		<link>http://www.fzmaster.info/2011/01/05/no-donut-for-me/</link>
		<comments>http://www.fzmaster.info/2011/01/05/no-donut-for-me/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 23:00:59 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.fzmaster.info/?p=317</guid>
		<description><![CDATA[Pois é. Hoje o servidor de banco de dados saiu do ar o que ocasionou a queda de todos os clientes que usam banco de dados no meu servidor. Desde ontem (04/01/2011 às 21:00 Horário de Brasília) todos os sistemas ficaram fora do ar. Agora voltou e está tudo ok. Fica a dica para o [...]		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2011/01/05/no-donut-for-me/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<div id="attachment_318" class="wp-caption aligncenter" style="width: 250px"><img class="size-full wp-image-318" title="no-donut" src="http://www.fzmaster.info/wp-content/uploads/2011/01/no-donut.jpg" alt="" width="240" height="185" /><p class="wp-caption-text">No donut for me!</p></div>
<p>Pois é. Hoje o servidor de banco de dados saiu do ar o que ocasionou a queda de todos os clientes que usam banco de dados no meu servidor. Desde ontem (04/01/2011 às 21:00 Horário de Brasília) todos os sistemas ficaram fora do ar. Agora voltou e está tudo ok. Fica a dica para o próximo post do meu gerador de backup automático.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2011/01/05/no-donut-for-me/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Código Rápido. Enviando Newsletter usando PHP</title>
		<link>http://www.fzmaster.info/2010/12/30/codigo-rapido-enviando-newsletter-usando-php/</link>
		<comments>http://www.fzmaster.info/2010/12/30/codigo-rapido-enviando-newsletter-usando-php/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 17:39:10 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://fzmaster.info/?p=81</guid>
		<description><![CDATA[Está aí um macetinho para quem gosta de enviar newsletter via PHP // conecta ao banco $start = int($_GET['start']); $sql = mysql_query("SELECT * FROM emails ORDER BY id LIMIT 10, $start"); while($i&#60;10) { // manda os emails // aqui você pode usar a função mail() para enviar. consulte: http://br2.php.net/manual/en/function.mail.php } $start_new = $start + 10; [...]		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2010/12/30/codigo-rapido-enviando-newsletter-usando-php/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<p>Está aí um macetinho para quem gosta de enviar newsletter via PHP</p>
<pre class="brush:php">// conecta ao banco

$start = int($_GET['start']);
$sql = mysql_query("SELECT * FROM emails ORDER BY id LIMIT 10, $start");

while($i&lt;10)
{
// manda os emails

// aqui você pode usar a função mail() para enviar. consulte: http://br2.php.net/manual/en/function.mail.php
}

$start_new = $start + 10;
header("Location: arquivo.php?start=$start_new");</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2010/12/30/codigo-rapido-enviando-newsletter-usando-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PuTTY: cliente SSH e telnet gratuito</title>
		<link>http://www.fzmaster.info/2010/12/30/putty-cliente-ssh-e-telnet-gratuito/</link>
		<comments>http://www.fzmaster.info/2010/12/30/putty-cliente-ssh-e-telnet-gratuito/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 16:28:16 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programas]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programa]]></category>

		<guid isPermaLink="false">http://www.fzmaster.info/?p=304</guid>
		<description><![CDATA[O Putty é um cliente SSH e Telnet muito leve para utilizar. O download pode ser feito aqui. Com o Putty, você pode acessar remotamente por meio do Windows o seu servidor Linux. Muito fácil de usar. Recomendo. Tweet		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2010/12/30/putty-cliente-ssh-e-telnet-gratuito/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<p>O Putty é um cliente SSH e Telnet muito leve para utilizar. O <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">download</a> pode ser feito aqui.</p>
<div id="attachment_305" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-305" title="Putty" src="http://www.fzmaster.info/wp-content/uploads/2010/12/2010-12-29_211326-300x288.png" alt="" width="300" height="288" /><p class="wp-caption-text">Interface do Putty</p></div>
<p>Com o Putty, você pode acessar remotamente por meio do Windows o seu servidor Linux. Muito fácil de usar. Recomendo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2010/12/30/putty-cliente-ssh-e-telnet-gratuito/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problema: Books for Mars resolvido</title>
		<link>http://www.fzmaster.info/2010/12/29/problema-books-for-mars-resolvido/</link>
		<comments>http://www.fzmaster.info/2010/12/29/problema-books-for-mars-resolvido/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 22:46:25 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[códigos]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://www.fzmaster.info/?p=301</guid>
		<description><![CDATA[Mais um problema do Coding Kata solucionado. Apesar deste problema estar no Beginner ++  ele é muito mais fácil que muitos do Beginner. Uma linha de código foi suficiente para resolvê-lo. Veja o código abaixo e teste à vontade. Disponível no Git também. import unittest def ISBN(isbn): """ Autor: fzmaster Data: 29/12/2010 Problema: Books for [...]		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2010/12/29/problema-books-for-mars-resolvido/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<p>Mais um problema do Coding Kata solucionado. Apesar deste problema estar no Beginner ++  ele é muito mais fácil que muitos do Beginner. Uma linha de código foi suficiente para resolvê-lo.</p>
<p>Veja o código abaixo e teste à vontade. Disponível no <a href="https://gist.github.com/759165" target="_blank">Git</a> também.</p>
<pre class="brush:py">import unittest

def ISBN(isbn):
    """
    Autor: fzmaster
    Data: 29/12/2010
    Problema: Books for Mars

http://codingkata.org/katas/unit/mars-books

    Calcular digito verificador do ISBN
    """
    return (10-(3*(int(isbn[1]) + int(isbn[3]) + int(isbn[5]) + int(isbn[7]) + int(isbn[9]) + int(isbn[11])) + int(isbn[0]) + int(isbn[2]) + int(isbn[4]) + int(isbn[6]) + int(isbn[8]) + int(isbn[10])) % 10) % 10 

class ISBNTestCase(unittest.TestCase):

    def test_caso1(self):
        assert ISBN('978030640615') == 7
    def test_caso2(self):
        assert ISBN('978857780013') == 1
    def test_caso3(self):
        assert ISBN('978857522247') == 8
    def test_caso4(self):
        assert ISBN('978857522212') == 6

if __name__ == '__main__':
    unittest.main()</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2010/12/29/problema-books-for-mars-resolvido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como instalar módulo Enum no Python</title>
		<link>http://www.fzmaster.info/2010/12/29/como-instalar-modulo-enum-no-python/</link>
		<comments>http://www.fzmaster.info/2010/12/29/como-instalar-modulo-enum-no-python/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 18:10:04 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[aula]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.fzmaster.info/?p=296</guid>
		<description><![CDATA[O Python não tem nativamente variáveis do tipo Enum. Entretanto é possível instalar um módulo que pode solucionar este problema. Siga os passos abaixo: Instale o Python; Instale o SettupTools Baixe o Enum (versão atual: 0.4.4) e descompacte-o Abra o prompt e dentro do diretório do Enum digite: Linux: $ python setup.py install Windows: C:\diretorio\&#62; [...]		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2010/12/29/como-instalar-modulo-enum-no-python/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<p>O Python não tem nativamente variáveis do tipo Enum.</p>
<p>Entretanto é possível instalar um módulo que pode solucionar este problema. Siga os passos abaixo:</p>
<ul>
<li><a href="http://www.python.org" target="_blank">Instale</a> o Python;</li>
<li><a href="http://pypi.python.org/pypi/setuptools#downloads" target="_blank">Instale</a> o SettupTools</li>
<li><a href="http://pypi.python.org/pypi/enum/#downloads" target="_blank">Baixe o Enum</a> (versão atual: 0.4.4) e descompacte-o</li>
<li>Abra o prompt e dentro do diretório do Enum digite:
<ul>
<li>Linux: $ python setup.py install</li>
<li>Windows: C:\diretorio\&gt; python setup.py install</li>
</ul>
</li>
</ul>
<p>Pronto, você instalou o módulo corretamente.</p>
<p>Agora você pode testá-lo.</p>
<p>Abra outro prompt e digite:</p>
<p>$ python</p>
<p>&gt;&gt;&gt; import enum</p>
<p>&gt;&gt;&gt;</p>
<p>Se não subiu erros, a importação foi feita com sucesso.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2010/12/29/como-instalar-modulo-enum-no-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Problema: Movie Tickets resolvido</title>
		<link>http://www.fzmaster.info/2010/12/29/problema-movie-tickets-resolvido/</link>
		<comments>http://www.fzmaster.info/2010/12/29/problema-movie-tickets-resolvido/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 18:02:38 +0000</pubDate>
		<dc:creator>fzmaster</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[coding kata]]></category>
		<category><![CDATA[kata]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://www.fzmaster.info/?p=293</guid>
		<description><![CDATA[Mais um problema do Coding Kata solucionado. Ainda estamos no Beginner ++  mas estamos fazendo todos, um a um, calmamente. Veja o código abaixo e teste à vontade. Só lembrando que para este código foi instalado o módulo Enum. Aproveite e baixe-o. Clique aqui para ver como instalar este módulo em Python. O código também [...]		<div class="social_linkz">
							<span id="fb-root"></span><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="http://www.fzmaster.info/2010/12/29/problema-movie-tickets-resolvido/" send="false" layout="button_count" width="35" show_faces="false" action="like" font=""></fb:like>
								<a href="http://twitter.com/share" class="twitter-share-button" data-count="none"  >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
								<g:plusone size="standard" count="true"></g:plusone>
						</div>
		]]></description>
			<content:encoded><![CDATA[<p>Mais um problema do Coding Kata solucionado. Ainda estamos no Beginner ++  mas estamos fazendo todos, um a um, calmamente.</p>
<p>Veja o código abaixo e teste à vontade.</p>
<p>Só lembrando que para este código foi instalado o módulo <a href="http://pypi.python.org/pypi/enum/" target="_blank">Enum</a>. Aproveite e baixe-o. <a href="http://www.fzmaster.info/2010/12/29/como-instalar-modulo-enum-no-python/" target="_blank">Clique aqui para ver</a> como instalar este módulo em Python.</p>
<p>O código também está disponível no <a href="https://gist.github.com/758811" target="_blank">Gist</a>.</p>
<pre class="brush:py">import unittest
from enum import Enum

class Cinema():
    """
    Autor: fzmaster
    Data: 28/12/2010
    Problema: Movie Tickets

http://codingkata.org/katas/unit/movie-tickets

    Calcular o valor do ingresso do cinema dadas as condicoes pre estabelecidas
    """
    precoTicket = 0.00
    pessoas = 0
    precoTotal = 0.00
    dias = Enum('DOM', 'SEG', 'TER', 'QUA', 'QUI', 'SEX', 'SAB')
    dia = ''

    def startPurchase(self, runtime, day, isParquet, is3D):
        """
        Explicacao da funcao
        """
        self.dia = day
        if runtime &gt; 120:
            self.precoTicket += 1.50
        if bool(is3D):
            self.precoTicket += 3.00
        if not bool(isParquet):
            self.precoTicket += 2.00
        if str(self.dia) == str(self.dias[4]):
            self.precoTicket -= 2.00

    def addTicket(self, age, isStudent):
        precoPadrao = 0.00
        if bool(isStudent):
            precoPadrao = 8.00
        else:
            precoPadrao = 11.00
        if age &gt;= 65:
            precoPadrao = 6.00
        elif age &lt;= 13:
            precoPadrao = 5.50
        self.pessoas +=1
        self.precoTotal += precoPadrao + self.precoTicket

    def finishPurchase(self,):
        if self.pessoas &gt;= 20 and str(self.dia) == str(self.dias[4]):
            self.precoTotal += self.pessoas*2.00
        return self.precoTotal

class MovieTestCase(unittest.TestCase):

    def test_movie1(self):
        compra = Cinema()
        compra.startPurchase(130,'TER', False, True)
        compra.addTicket(14,True)
        compra.addTicket(30,False)
        assert compra.finishPurchase() == 32.00

if __name__ == '__main__':
    unittest.main()</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fzmaster.info/2010/12/29/problema-movie-tickets-resolvido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

