<?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>Fernando Valente</title>
	<atom:link href="http://www.fernandovalente.com.br/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fernandovalente.com.br/wordpress</link>
	<description>Programação e Tecnologia</description>
	<lastBuildDate>Fri, 18 May 2012 20:52:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Google Groups. #ficaadica!</title>
		<link>http://www.fernandovalente.com.br/wordpress/2012/05/07/google-groups-ficaadica/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2012/05/07/google-groups-ficaadica/#comments</comments>
		<pubDate>Mon, 07 May 2012 13:01:14 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[fica a dica]]></category>
		<category><![CDATA[ficaadica]]></category>
		<category><![CDATA[Google Goups]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1966</guid>
		<description><![CDATA[Eu acompanho alguns grupos no groups.google.com e sempre me deparo com os mesmos problemas em todos eles&#8230; Participantes sem noção, folgados e preguiçosos&#8230; Baseado nisso, resolvi criar esse post com 4 regras básicas para você não se tornar um chato, odiado e banido nesses grupos. 1) Procure saber as regas do grupo. Cansados de tanta besteira, 90% dos [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Eu acompanho alguns grupos no <a title="Google Groups" href="http://groups.google.com" target="_blank">groups.google.com</a> e sempre me deparo com os mesmos problemas em todos eles&#8230; Participantes sem noção, folgados e preguiçosos&#8230; Baseado nisso, resolvi criar esse post com 4 regras básicas para você não se tornar um chato, odiado e banido nesses grupos.</p>
<p style="text-align: justify;"><strong>1)</strong> <strong>Procure saber as regas do grupo.</strong></p>
<p style="text-align: justify;">Cansados de tanta besteira, 90% dos grupos possuem uma lista de regras, que todo usuário deveria ler antes de qualquer coisa! Mas posso garantir que apenas 1% dos novos usuários tem esse cuidado. Saber a regra do jogo antes de começar a jogar é muito importante, até mesmo para resguardar você de algo que não concorde.</p>
<p style="text-align: justify;"><strong>2) Não peça a solução e sim uma luz.</strong></p>
<p style="text-align: justify;">Uma das coisas que mais me irrita é entrar em algum grupo e me deparar com alguém pedindo a solução pronta para um determinado problema. Tome muito cuidado com isso, não queira que alguém faça o trabalho por você pois isso não será bom para <strong>VOCÊ</strong>! Quando for criar um novo tópico no grupo, ao invés de pedir a solução, diga tudo que você fez (por mais que acredite ter feito besteira), diga suas dificuldades fale o que você precisa, solicite uma ajuda, uma luz  e não uma solução pronta!</p>
<p style="text-align: justify;"><strong>3) Procure, procure e depois publique</strong></p>
<p style="text-align: justify;">Outro grande erro da maioria dos usuários é pedir ajuda para algo que já foi discutido e resolvido. Antes de escrever, procure no Google e no grupo que você pretende solicitar ajuda. Publicar solicitações já resolvidas e discutidas anteriormente mostra que você só entra no grupo para pedir.</p>
<p style="text-align: justify;"><strong>4) <a title="IDE" href="http://pt.wikipedia.org/wiki/Ambiente_de_Desenvolvimento_Integrado" target="_blank">IDE</a></strong></p>
<p style="text-align: justify;"><span style="color: #993300;"><strong>Pelo amor de Deus</strong></span>&#8230; Não crie um tópico como: &#8220;Qual é a melhor <a title="IDE" href="http://pt.wikipedia.org/wiki/Ambiente_de_Desenvolvimento_Integrado" target="_blank">IDE</a> para desenvolver em&#8230;&#8221;. Faça diferente&#8230; Entre no Google e procure pelas opções existentes, teste todas e tire suas conclusões! Nem sempre o que é bom para mim será bom para você!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2012/05/07/google-groups-ficaadica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Python] &#8211; Cálculo de salário liquido</title>
		<link>http://www.fernandovalente.com.br/wordpress/2012/05/03/python-calculo-de-salario-liquido/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2012/05/03/python-calculo-de-salario-liquido/#comments</comments>
		<pubDate>Thu, 03 May 2012 14:03:06 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[calculo salário]]></category>
		<category><![CDATA[salário liquido]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1970</guid>
		<description><![CDATA[Depois de uma longa caminhada com PHP, iniciei meus estudos com Python. Com base nesses estudos, resolvi criar um teste simples mas utilizando várias funcionalidades do Python. Basicamente nesse teste você informa o seu salário bruto e ele apresenta o valor do salário liquido que você vai receber, utilizando o desconto de passagem, INSS, IR [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Depois de uma longa caminhada com PHP, iniciei meus estudos com Python. Com base nesses estudos, resolvi criar um teste simples mas utilizando várias funcionalidades do Python. Basicamente nesse teste você informa o seu salário bruto e ele apresenta o valor do salário liquido que você vai receber, utilizando o desconto de passagem, INSS, IR e outros possíveis descontos que podem varias de uma empresa para outra. Ao final dos meus testes, reparei que havia criado um código útil e muito simples e, por esse motivo, resolvi liberar ele. Lembrando que os valores base do INSS e IR são de 2012, se você for utilizar para cálculos futuros, lembre-se sempre de atualizar os valores para chegar a um resultado real.</p>
<p style="text-align: justify;">Download do código: <a href="http://migre.me/8VWJT" target="_blank">http://migre.me/8VWJT</a></p>
<pre class="brush:python">#!/usr/bin/env python
# -*- coding: utf-8 -*-

__all__ = ('calcular_passagem', 'calcular_ir', 'format_number', 'calcular_inss')

def calcular_passagem(salario):
	return salario * 6 / 100.0

def calcular_inss(salario):
	if salario &lt; 1174.87:  		porcentagem_desconto_inss = 8 	if salario &gt;= 1174.87 and salario &lt; 1958.11:  		porcentagem_desconto_inss = 9 	if salario &gt;= 1958.11:
		porcentagem_desconto_inss = 11
	return salario * porcentagem_desconto_inss / 100.0

def calcular_ir(salario, desconto_inss):
	"""
	O empregado deve multiplicar a base de calculo pela aliquota de IR e dividir por 100.
	Sobre o resultado, subtrair o valor referente a parcela a deduzir do imposto.

	O calculo e feito com o valor bruto - o inss.
	"""

	base_calculo_ir = salario - desconto_inss

	if base_calculo_ir &lt; 1637.12: 		return 0 	if base_calculo_ir &gt;= 1637.12 and base_calculo_ir &lt; 2453.51:  		porcentagem_desconto_ir = 7.5 		deducao_imposto = 122.78 	if base_calculo_ir &gt;= 2453.51 and base_calculo_ir &lt; 3271.39:  		porcentagem_desconto_ir = 15 		deducao_imposto = 306.80 	if base_calculo_ir &gt;= 3271.39 and base_calculo_ir &lt; 4087.65:  		porcentagem_desconto_ir = 22.5 		deducao_imposto = 552.15 	if base_calculo_ir &gt;= 4087.65:
		porcentagem_desconto_ir = 27.5
		deducao_imposto = 756.53

	return (base_calculo_ir * porcentagem_desconto_ir / 100.0) - deducao_imposto

def format_number(number, precision=2, group_sep='.', decimal_sep=','):
	"""
	Baseado em http://www.python.org.br/wiki/FormatarNumerosBrasil
	"""
	assert isinstance(number, float), 'Float esperado'
	assert isinstance(precision, int), 'Int esperado'
	assert isinstance(group_sep, str), 'Str esperado'
	assert isinstance(decimal_sep, str), 'Str esperado'

	number = '%.*f' % (max(0, precision), number)
	number = number.split('.')

	integer_part = number[0]

	if integer_part[0] == '-':
	    sign = integer_part[0]
	    integer_part = integer_part[1:]
	else:
	    sign = ''

	if len(number) == 2:
	    decimal_part = decimal_sep + number[1]
	else:
	    decimal_part = decimal_sep + '00'

	integer_part = list(integer_part)
	c = len(integer_part)

	while c &gt; 3:
	    c -= 3
	    integer_part.insert(c, group_sep)

	return sign + ''.join(integer_part) + decimal_part

def calcular_salario():
	try:
		# Entrada de dados
		salario = float(raw_input("Qual e o seu salario bruto? "))
		passagem = raw_input("Passagem? (S ou N) ")
		outros_descontos = float(raw_input("Informe outros descontos fora IR e INSS (0 para nenhum): "))

		# passagem
		desconto_passagem = 0

		if passagem.lower() not in ('s', 'n'):
			raise Exception, 'Informe s ou n para passagem'

		if passagem.lower() == 's':
			desconto_passagem = calcular_passagem(salario)

		# INSS
		desconto_inss = calcular_inss(salario)

		# IR
		desconto_ir = calcular_ir(salario, desconto_inss)

		# Totais finais
		total_liquido_mes = reduce((lambda x,y: x-y), [salario, desconto_passagem, desconto_inss, desconto_ir, outros_descontos])
		total_ganho_ano = total_liquido_mes * 12

		total_imposto_mes = reduce((lambda x,y: x+y), [desconto_inss, desconto_ir])
		total_imposto_ano = total_imposto_mes * 12

		try:
			print "Valor bruto informado: R$ %s" % format_number(salario)
			print "Salario liquido/mes: R$ %s" % format_number(total_liquido_mes)
			print "Total imposto/mes: R$ %s" % format_number(total_imposto_mes)
			print "Total imposto/ano: R$ %s" % format_number(total_imposto_ano)
			print "Total desconto passagem: R$ %s" % format_number(desconto_passagem)
			print "Outros descontos: R$ %s" % format_number(outros_descontos)
			print "Total ganho/ano liquido R$ %s" % format_number(total_ganho_ano)
		except Exception as e:
			print "[ERRO] %s" % (e)

	except Exception as e:
		print "[ERRO] %s" % (e)

if __name__ == '__main__':
	calcular_salario()</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2012/05/03/python-calculo-de-salario-liquido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Rapidinhas] &#8211; Validação de CPF com JavaScript</title>
		<link>http://www.fernandovalente.com.br/wordpress/2012/03/06/rapidinhas-validacao-de-cpf-com-javascript/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2012/03/06/rapidinhas-validacao-de-cpf-com-javascript/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 21:43:43 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Rapidinhas]]></category>
		<category><![CDATA[Fernando A Valente]]></category>
		<category><![CDATA[Fernando Valente]]></category>
		<category><![CDATA[RE]]></category>
		<category><![CDATA[Validação CPF]]></category>
		<category><![CDATA[Validação CPF JavaScript]]></category>
		<category><![CDATA[validação CPF JS]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1931</guid>
		<description><![CDATA[Mais simples impossível! Download do código /* * Project: Validação CPF JS * Description: Simples validação de CPF * Author: Fernando A. Valente * http://www.fernandovalente.com.br * http://www.fernandovalente.com.br/blog */ function validaCpf(cpfDigitado) { var cpf, ponto, traco, cpfPronto, numeros, digitos, soma, i, resultado, digitos_iguais; /* * Verifica se o cpf informado possui 11 ou 14 caracteres. * [...]]]></description>
			<content:encoded><![CDATA[<p>Mais simples impossível! <a title="Validação CPF JS" href="https://github.com/fernandovalente/validacao_cpf_js" target="_blank">Download do código</a></p>
<pre class="brush:javascript">/*
 *  Project: Validação CPF JS
 *  Description: Simples validação de CPF
 *  Author: Fernando A. Valente
 *	    http://www.fernandovalente.com.br
 *	    http://www.fernandovalente.com.br/blog
 */

function validaCpf(cpfDigitado) {
    var cpf, ponto, traco, cpfPronto, numeros, digitos, soma, i, resultado, digitos_iguais;

    /*
     *	Verifica se o cpf informado possui 11 ou 14 caracteres.
     *	11 caracteres = CPF informado sem os pontos e o traço. Ex: 12334566789
     *	14 caracteres = CPF informado com pontos e traços. Ex: 123.345.667-89
     */
    if(cpfDigitado.length == 14){
	if(!cpfDigitado.match(/[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9][0-9]\-[0-9][0-9]/)) return false

       ponto = cpfDigitado.split(".");
       traco = ponto[2].split("-");
       cpfPronto = ponto[0]+ponto[1]+traco[0]+traco[1];

       cpf = cpfPronto;
    }else if(cpfDigitado.length == 11){
       cpf = cpfDigitado;
    }else{
       return false;
    }

    /*
     * Efetua a validação do cpf
     */
    digitos_iguais = 1;

    if (cpf.length &lt; 11) return false;

    for (i = 0; i &lt; cpf.length - 1; i++){
       if (cpf.charAt(i) != cpf.charAt(i + 1)) {
              digitos_iguais = 0;
              break;
       }
    }

    if (!digitos_iguais) {
       numeros = cpf.substring(0,9);
       digitos = cpf.substring(9);
       soma = 0;

       for (i = 10; i &gt; 1; i--){
              soma += numeros.charAt(10 - i) * i;
       }

       resultado = soma % 11 &lt; 2 ? 0 : 11 - soma % 11;

       if (resultado != digitos.charAt(0)) return false;

       numeros = cpf.substring(0,10);
       soma = 0;

       for (i = 11; i &gt; 1; i--){
              soma += numeros.charAt(11 - i) * i;
       }

       resultado = soma % 11 &lt; 2 ? 0 : 11 - soma % 11;

       if (resultado != digitos.charAt(1)) return false;

	return true;
    } else {
       return false;
    }

}</pre>
<p>Simples assim&#8230;</p>
<p>Abraços!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2012/03/06/rapidinhas-validacao-de-cpf-com-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[PHP] &#8211; Framework PHP, a missão!</title>
		<link>http://www.fernandovalente.com.br/wordpress/2012/02/16/php-framework-php-a-missao/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2012/02/16/php-framework-php-a-missao/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 21:02:14 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Alexandre Jammel]]></category>
		<category><![CDATA[Artur Souza]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[DESIT]]></category>
		<category><![CDATA[fica a dica]]></category>
		<category><![CDATA[ficaadica]]></category>
		<category><![CDATA[framework php]]></category>
		<category><![CDATA[Gustavo Brandão]]></category>
		<category><![CDATA[HUPE]]></category>
		<category><![CDATA[Skpars]]></category>
		<category><![CDATA[symfony php]]></category>
		<category><![CDATA[UERJ]]></category>
		<category><![CDATA[zendFramework]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1911</guid>
		<description><![CDATA[Você que trabalha com PHP certamente já se viu no meio de um &#8220;tiroteio&#8221; quando teve que tomar a decisão de qual framework usar, afinal existem várias boas opções no mercado e eu me deparei com o mesmo problema. 90% das vezes que estou em um papo com outros programadores, principalmente com quem trabalhar a pouco [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-full wp-image-1915" style="margin-left: 3px; margin-right: 4px; border-image: initial; border-width: 1px; border-color: #ccc; border-style: solid;" title="php_frameworks" src="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2012/02/php_frameworks.jpg" alt="" width="267" height="220" /><span>Você que trabalha com PHP certamente já se viu no meio de um &#8220;tiroteio&#8221; quando teve que tomar a decisão de qual <span>framework</span> usar, afinal existem várias boas opções no mercado e eu me deparei com o mesmo problema. 90% das vezes que estou em um papo com outros programadores, principalmente com quem trabalhar a pouco tempo com PHP, alguém me pergunta: &#8220;Qual é o melhor <span>framework</span>?&#8221;, &#8220;Qual devo escolher?&#8221;. E minha resposta sempre é: &#8220;Depende!&#8221;.</span></p>
<p style="text-align: justify;"><span>Já trabalho com PHP a um certo tempo e, como todos, iniciei os estudos com o PHP &#8220;cru&#8221;, mas a uns 3 anos (cálculo feito até a data deste <span>post</span>) venho desenvolvendo minhas aplicações com um FW criado no HUPE (Hospital Universitário Pedro Ernesto da Universidade do Estado do Rio de Janeiro) pelo meu amigo Artur <span>Souza</span> e aprimorado por mim e meus amigos Alexandre <span>Jammel</span> e Gustavo Brandão. Mas o tempo passa, o tempo voa e a </span><a title="Comercial Bamerindus" href="http://www.youtube.com/watch?v=IfHbB0h55t8" target="_blank">Poupança Bamerindus</a><span> continua numa boa. Tão na boa que resolvi matar a dúvida que estava na minha cabeça, e na maioria dos programadores PHP&#8230; Qual é o melhor <span>framework</span> do mercado?</span></p>
<p style="text-align: justify;"><span>A primeira atitude que tomei foi não me deixar influenciar pela &#8220;modinha&#8221; ou por evangelistas de algum <span>framework</span>, foi complicado mas deu certo! Resolvi começar com o <span>Symfony</span>, mas mesmo achando ele muito bom, achei complicado em algum pontos. O próximo foi o <span>ZendFramework</span>&#8230; Fantástico, mas enorme! Costumo dizer que usar o ZF é o mesmo que colocar um prego na parede com uma marreta. Depois desses 2, entrei de cabeça no <span>Cake</span> e confesso que me identifiquei bastante com ele, acho que pelo fato do <span>Cake</span> parecer muito com FW que desenvolvemos no HUPE, mas vou falar a verdade&#8230; Não gostei da forma como ele resolve alguns problemas&#8230; E agora? Vamos ao <span>CodeIgniter</span>&#8230; Ele também usa uma estrutura muito parecida com a que usamos no HUPE, mas ele é muito simples! Código elegante, soluções inteligentes, robusto e simples, muito simples, assim como o <span>Cake</span>.</span></p>
<p style="text-align: justify;">Resolvido, é o Code que vou usar! Estudando, procurando e aprendendo encontrei mais um grande motivo para usar o Code, a junção do CodeIgniter+Sparks+PHP-ActiveRecord. Essa soma da um resultado realmente bom e simples de instalar e usar.</p>
<p style="text-align: justify;"><span>Conclusão&#8230; <span>ZendFramework</span>, <span>CodeIgniter</span>, <span>CakePHP</span>, <span>Symfony</span>, <span>Kohana</span> etc. Não importa qual <span>framework</span> você vai usar, o importante é usar um! O primeiro passo para encontrar o perfeito para você é estudar, testar, estudar e estudar mais, só assim você será capaz de chegar a uma conclusão. Outra grande dica é, NÃO vá pela cabeça de ninguém! Não existe o melhor <span>framework</span> e sim o que melhor te atende! Assim como não existe a melhor linguagem e sim a linguagem que melhor te atende!</span></p>
<p style="text-align: justify;">Sendo assim, tire suas conclusões, estude e boa sorte! <img src='http://www.fernandovalente.com.br/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2012/02/16/php-framework-php-a-missao/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[Rapidnhas] &#8211; Removendo index.php da URL no CodeIgniter</title>
		<link>http://www.fernandovalente.com.br/wordpress/2012/02/06/rapidnhas-removendo-index-php-da-url-no-codeigniter/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2012/02/06/rapidnhas-removendo-index-php-da-url-no-codeigniter/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 18:13:14 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Rapidinhas]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[Fernando A Valente]]></category>
		<category><![CDATA[Fernando Valente]]></category>
		<category><![CDATA[nandovalente]]></category>
		<category><![CDATA[remove index.php codeigniter]]></category>
		<category><![CDATA[Removendo index.php da URL]]></category>
		<category><![CDATA[Removendo index.php da URL no CodeIgniter]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1904</guid>
		<description><![CDATA[Procurei bastante até resolver meu problema&#8230; Remover a &#8220;desgraça&#8221; do index.php a URL no CodeIgniter. Encontrei muita dica ruim, a grande maioria copiada e colada de outros sites e quase todas com erros. Li de um lado, li de outro lado e, em pouco tempo, já tinha meu problema resolvido. Vamos aos passos: 1) no [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft  wp-image-1905" style="margin-left: 4px; margin-right: 4px; border-image: initial; border-width: 1px; border-color: black; border-style: solid;" title="codeigniter-logo" src="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2012/02/codeigniter-logo.png" alt="" width="175" height="175" /></p>
<p style="text-align: justify;">Procurei bastante até resolver meu problema&#8230; Remover a &#8220;desgraça&#8221; do index.php a URL no CodeIgniter. Encontrei muita dica ruim, a grande maioria copiada e colada de outros sites e quase todas com erros. Li de um lado, li de outro lado e, em pouco tempo, já tinha meu problema resolvido. Vamos aos passos:</p>
<p style="text-align: left;">1) no config.php (application/config/config.php) modifique a linha $config['index_page'] = &#8216;index.php&#8217;; para $config['index_page'] = &#8221;; e a linha $config['uri_protocol'] = &#8216;AUTO&#8217;; para $config['uri_protocol'] = &#8216;REQUEST_URI&#8217;;</p>
<p style="text-align: left;">2) Crie um arquivo .htaccess na raiz do seu projeto, no mesmo nível  do application, system, user_guide etc. e coloque o seguinte dentro dele:</p>
<p>&nbsp;</p>
<pre>RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]</pre>
<p style="text-align: justify;">3) Corre para o abraço meu filho! Agora você não precisa mais usar o index.php nos seus links!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2012/02/06/rapidnhas-removendo-index-php-da-url-no-codeigniter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Rapidinhas] &#8211; Descobrir endereço encurtado PHP</title>
		<link>http://www.fernandovalente.com.br/wordpress/2011/12/19/rapidinhas-descobrir-endereco-encurtado-php/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2011/12/19/rapidinhas-descobrir-endereco-encurtado-php/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 13:27:21 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[Rapidinhas]]></category>
		<category><![CDATA[descobrir endereço encurtado]]></category>
		<category><![CDATA[Descobrir endereço encurtado PHP]]></category>
		<category><![CDATA[Encurtador url]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1863</guid>
		<description><![CDATA[Na última semana um amigo me perguntou de que maneira ele poderia descobrir um endereço de uma imagem encurtada pelo PHP. Existe uma maneira muito simples e rápida para resolver essa questão, basta utilizar a função get_headers(); do PHP e pronto! Essa função retorna os cabeçalhos enviados pelo servidor. Ex: $link = get_headers('http://migre.me/7b6op', 1); print_r($link['Location']); Resposta: http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/11/programacao-par.png [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Na última semana um amigo me perguntou de que maneira ele poderia descobrir um endereço de uma imagem encurtada pelo PHP. Existe uma maneira muito simples e rápida para resolver essa questão, basta utilizar a função <a href="http://br.php.net/manual/en/function.get-headers.php" target="_blank">get_headers();</a> do PHP e pronto! Essa função retorna os cabeçalhos enviados pelo servidor. Ex:</p>
<pre class="brush:php">$link = get_headers('http://migre.me/7b6op', 1);
print_r($link['Location']);</pre>
<div>Resposta: http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/11/programacao-par.png</div>
<div>Faça um teste (print_r($link);) e veja o que o get_headers retorna:</div>
<div>
<pre class="brush:php">Array
(
    [0] =&gt; HTTP/1.1 301 Moved Permanently
    [Date] =&gt; Array
        (
            [0] =&gt; Mon, 19 Dec 2011 13:16:22 GMT
            [1] =&gt; Mon, 19 Dec 2011 13:16:38 GMT
        )

    [Server] =&gt; Array
        (
            [0] =&gt; Apache/2.2.14 (Ubuntu)
            [1] =&gt; Apache
        )

    [X-Powered-By] =&gt; PHP/5.3.2-1ubuntu4.11
    [Location] =&gt; http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/11/programacao-par.png
    [Connection] =&gt; Array
        (
            [0] =&gt; close
            [1] =&gt; close
        )

    [Content-Length] =&gt; Array
        (
            [0] =&gt; 0
            [1] =&gt; 41712
        )

    [Vary] =&gt; Accept-Encoding
    [Content-Type] =&gt; Array
        (
            [0] =&gt; text/html; charset=utf-8
            [1] =&gt; image/png
        )

    [1] =&gt; HTTP/1.1 200 OK
    [Last-Modified] =&gt; Mon, 07 Nov 2011 20:57:13 GMT
    [ETag] =&gt; "27c8656-a2f0-4c8f1c40"
    [Accept-Ranges] =&gt; bytes
)</pre>
<p>Simples, rápido e direto.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2011/12/19/rapidinhas-descobrir-endereco-encurtado-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Agile] &#8211; Programação em par</title>
		<link>http://www.fernandovalente.com.br/wordpress/2011/11/09/agile-programacao-em-par/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2011/11/09/agile-programacao-em-par/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 10:26:05 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[Desenvolvimento ágil]]></category>
		<category><![CDATA[Extreme Programming]]></category>
		<category><![CDATA[pair programming]]></category>
		<category><![CDATA[palestra fernando valente]]></category>
		<category><![CDATA[php rio]]></category>
		<category><![CDATA[phpnrio]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1837</guid>
		<description><![CDATA[No último dia 05/11/2011 estive palestrando no PHPnRio11 e, no fim da minha palestra, um grupo me procurou para tirar algumas dúvidas. Uma delas foi se eu realmente achava que era útil utilizar a programação em par e, por esse motivo, achei que valeria um post para o assunto. A programação em par, ou pair programming, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">No último dia 05/11/2011 estive palestrando no <a title="PHPnRio11" href="http://www.fernandovalente.com.br/wordpress/2011/11/06/php-como-foi-o-phpnrio11/" target="_blank">PHPnRio11</a> e, no fim da minha palestra, um grupo me procurou para tirar algumas dúvidas. Uma delas foi se eu realmente achava que era útil utilizar a programação em par e, por esse motivo, achei que valeria um <em>post</em> para o assunto.</p>
<p style="text-align: justify;"><a href="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/11/programacao-par.png"><img class="alignleft size-full wp-image-1841" style="margin-left: 4px; margin-right: 4px;" title="programacao-par" src="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/11/programacao-par.png" alt="" width="284" height="173" /></a>A programação em par, ou <em>pair programming</em>, tem como objetivo minimizar erros durante o desenvolvimento de software. Essa técnica utiliza sempre dois programadores trabalhando em conjunto em um mesmo computador. Em quanto um fica no comando (<a href="http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&amp;palavra=piloto" target="_blank">piloto</a>) o outro acompanha o processo (<a href="http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&amp;palavra=co-piloto" target="_blank">co-piloto</a>) e auxilia o piloto no seu trabalho, podendo assumir o comando sempre que for preciso.</p>
<p style="text-align: justify;">O problema é que a grande maioria das pessoas acha que ter um programador &#8220;de bobeira&#8221; olhando o que o outro está fazendo é um grande desperdício&#8230; Mais é ai que está o &#8220;pulo do gato&#8221;! Não é isso que acontece, ou não deveria acontecer. O que precisamos entender é que o co-piloto não está só observando, ele também está programando! Ele tem que participar ativamente no processo!  Quando utilizamos dois programadores com experiência e vivência diferente, teremos a possibilidade de chegar a uma terceira conclusão. Durante o desenvolvimento de uma determinada aplicação, a dupla deve discutir e chegar a um acordo de qual será a melhor solução para o problema apresentado.</p>
<p style="text-align: justify;">Existem vários benefícios na programação em par, mas resolvi comentar os mais importantes (na minha opinião):</p>
<p style="text-align: justify;"><strong>1) Duas cabeças funcionam melhor do que uma: </strong>Como eu falei anteriormente, com esse método reduzimos muito a possibilidade de erro, uma vez que temos duas pessoas trabalhando em cima de um único problema.</p>
<p style="text-align: justify;"><strong>2) </strong><strong>Maior comprometimento: </strong>Existem inúmeras formas de um programador se distrair ao longo do seu dia de trabalho (Twitter, Facebook, bate-papo, e-mail etc.), mas quando temos uma pessoa ao lado o nosso comprometimento com o trabalho fica ainda maior.</p>
<p style="text-align: justify;"><strong>3) Troca de conhecimento: </strong>Duas pessoas diferentes, conhecimentos diferentes, experiências diferentes. Essa troca de conhecimento também é muito importante quando recebemos um novo desenvolvedor no projeto. Será muito mais fácil e menos desgastante para ele, aprender interagindo com sua nova equipe do que lendo uma documentação, que muitas vezes não mostra a verdadeira realidade.</p>
<p style="text-align: justify;">Agora&#8230; Nem tudo são flores. Existem alguns grandes problemas que você poderá encontrar na implantação da programação em par e o maior problema será a sua equipe! Se não existir comprometimento, cumplicidade, trabalho em equipe será impossível obter sucesso. Eu aplico programação em par com a minha equipe a quase 2 anos e posso garantir que a qualidade e produtividade teve uma melhora muito grande!</p>
<p style="text-align: justify;">Aplique, apanhe, comente e boa sorte! <img src='http://www.fernandovalente.com.br/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2011/11/09/agile-programacao-em-par/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] &#8211; Como foi o PHPnRio11?</title>
		<link>http://www.fernandovalente.com.br/wordpress/2011/11/06/php-como-foi-o-phpnrio11/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2011/11/06/php-como-foi-o-phpnrio11/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 20:37:08 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP'n Rio]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Desenvolvimento ágil]]></category>
		<category><![CDATA[Fernando Valente]]></category>
		<category><![CDATA[palestra]]></category>
		<category><![CDATA[palestrante]]></category>
		<category><![CDATA[php in rio]]></category>
		<category><![CDATA[php rio]]></category>
		<category><![CDATA[phpnrio11]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1802</guid>
		<description><![CDATA[Depois de muita espera, finalmente aconteceu o PHPnRio11 e foi um sucesso! Tudo começou com um grupo de programadores de PHP querendo fazer a diferença e, graças a essa galera, o evento desse ano mostrou seu potencial. Foi nítida a evolução dos últimos eventos para esse. Parabéns para os organizadores, aplaudo de pé o evento! Tenho certeza [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/11/galera.jpg"><img class="aligncenter size-full wp-image-1819" title="Galera no PHPnRio11" src="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/11/galera.jpg" alt="" width="480" height="270" /></a></p>
<p style="text-align: justify;">Depois de muita espera, finalmente aconteceu o <a title="PHPnRio11" href="http://www.phpnrio.com.br" target="_blank">PHPnRio11</a> e foi um sucesso! Tudo começou com um grupo de programadores de PHP querendo fazer a diferença e, graças a essa galera, o evento desse ano mostrou seu potencial. Foi nítida a evolução dos últimos eventos para esse. Parabéns para os organizadores, aplaudo de pé o evento! Tenho certeza que ano que vem será ainda melhor!</p>
<p style="text-align: justify;">Minha palestra:</p>
<div style="padding: 5px 0 12px;">Algumas fotos que bati do evento: <a title="PHPnRio11" href="http://migre.me/64Uoa" target="_blank">migre.me/64Uoa</a></div>
<div id="__ss_10045800" style="width: 425px;"><iframe src="http://www.slideshare.net/slideshow/embed_code/10045800" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="425" height="355"></iframe></div>
<p>Videos (5 pastes):<br />
<iframe src="http://www.youtube.com/embed/rixnYPp0DKw" frameborder="0" width="560" height="315"></iframe></p>
<p><iframe src="http://www.youtube.com/embed/bz8-GxI0pVg" frameborder="0" width="560" height="315"></iframe></p>
<p><iframe src="http://www.youtube.com/embed/wTbVDM3i0Io" frameborder="0" width="560" height="315"></iframe></p>
<p><iframe src="http://www.youtube.com/embed/Qb7JXxySPKo" frameborder="0" width="560" height="315"></iframe></p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/bd2amAbDM7I" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2011/11/06/php-como-foi-o-phpnrio11/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP´n Rio 11! Vai perder?</title>
		<link>http://www.fernandovalente.com.br/wordpress/2011/10/12/php%c2%b4n-rio-11-vai-perder/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2011/10/12/php%c2%b4n-rio-11-vai-perder/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 13:00:48 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Fernando A Valente]]></category>
		<category><![CDATA[Fernando Valente]]></category>
		<category><![CDATA[palestra scrum]]></category>
		<category><![CDATA[palestrante]]></category>
		<category><![CDATA[php in rio 2011]]></category>
		<category><![CDATA[php rio]]></category>
		<category><![CDATA[php'n rio 11]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1721</guid>
		<description><![CDATA[No próximo dia 05/11/2011 estarei palestrando no PHP´n Rio 11 e você está mais do que convidado! Inscrições abertas! &#8220;..o Grupo Local de Usuários de PHP do Rio de Janeiro (PHP Rio) vem organizando, anualmente, desde 2009, o evento chamado de PHP&#8217;n Rio. Trata- se de um evento técnico e com um retorno da comunidade magnífico, [...]]]></description>
			<content:encoded><![CDATA[<div align='center'><iframe width="560" height="315" src="http://www.youtube.com/embed/d5rYw2th9BM" frameborder="0" allowfullscreen></iframe></div>
<p>No próximo dia 05/11/2011 <a title="PHP'n Rio 11" href="http://www.phpnrio.com.br/palestrantes#1" target="_blank">estarei palestrando no PHP´n Rio 11</a> e você está mais do que convidado! Inscrições abertas!</p>
<p>&#8220;<a title="PHP'n Rio 11" href="http://www.phpnrio.com.br/evento" target="_blank">..o Grupo Local de Usuários de PHP do Rio de Janeiro (PHP Rio) vem organizando, anualmente, desde 2009, o evento chamado de PHP&#8217;n Rio. Trata- se de um evento técnico e com um retorno da comunidade magnífico, de forma que contamos sempre com auditório cheio de profissionais e estudantes, que desempenham uma participação excepcional. O PHP&#8217;n Rio está sendo apoiado juridicamente pela Associação Libre de Tecnologias Abertas (ALTA).</a>&#8221;</p>
<p><a title="Inscrição PHP'n Rio" href="http://www.phpnrio.com.br/inscricoes" target="_blank">Não deixe para depois, clique aqui e faça sua inscrição</a> (valor do evento R$30,00)!! Nos vemos lá! =]</p>
<p>Mais informações em <a title="PHP'n Rio 11" href="http://www.phpnrio.com.br/" target="_blank">www.phpnrio.com.br</a></p>
<p><a href="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/09/phprio2011.png"><img class="aligncenter size-full wp-image-1722" title="phprio11" src="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/09/phprio2011.png" alt="" width="555" height="358" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2011/10/12/php%c2%b4n-rio-11-vai-perder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP&#039;n Rio] &#8211; Quer ganhar uma camiseta PHP da LinuxMall? [ATUALIZADO!]</title>
		<link>http://www.fernandovalente.com.br/wordpress/2011/10/11/phpn-rio-quer-ganhar-uma-camisa-php-da-linuxmall/</link>
		<comments>http://www.fernandovalente.com.br/wordpress/2011/10/11/phpn-rio-quer-ganhar-uma-camisa-php-da-linuxmall/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 17:54:39 +0000</pubDate>
		<dc:creator>Fernando Valente</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP'n Rio]]></category>
		<category><![CDATA[Camiseta PHP]]></category>
		<category><![CDATA[Fernando A Valente]]></category>
		<category><![CDATA[Fernando Valente]]></category>
		<category><![CDATA[Filipe La Ruina]]></category>
		<category><![CDATA[Linux mall]]></category>
		<category><![CDATA[PHP LinuxMall]]></category>
		<category><![CDATA[phpnrio11]]></category>
		<category><![CDATA[Sorteio]]></category>

		<guid isPermaLink="false">http://www.fernandovalente.com.br/wordpress/?p=1774</guid>
		<description><![CDATA[O sorteio foi realizado, mas infelizmente o ganhador não poderá comparecer ao evento e, de acordo com as regras do sorteio, ele foi desclassificado. Sendo assim, um novo sorteio irá acontecer, só que dessa vez no dia do evento!! Novamente, BOA SORTE! Como diria seu Jorge&#8230; &#8220;É isso aiiiiii!!!!&#8221;. Em uma parceria com a LinuxMall, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1822" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-1822 " title="Filipe La Ruina" src="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/10/DSCF0041.jpg" alt="" width="480" height="270" /><p class="wp-caption-text">Filipe La Ruina, o ganhador da camiseta PHP LinuxMall</p></div>
<p><img class="alignleft size-full wp-image-1775" style="margin-left: 6px; margin-right: 6px;" title="Camiseta PHP LinuxMall" src="http://www.fernandovalente.com.br/wordpress/wp-content/uploads/2011/10/Captura-de-tela-2011-10-07-às-20.42.32.png" alt="" width="232" height="316" /></p>
<p><del>O sorteio foi realizado, mas infelizmente o ganhador não poderá comparecer ao evento e, de acordo com as regras do sorteio, ele foi desclassificado. Sendo assim, um novo sorteio irá acontecer, só que dessa vez no dia do evento!!</del></p>
<p><del>Novamente, BOA SORTE! <img src='http://www.fernandovalente.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </del></p>
<p><del>Como diria seu Jorge&#8230; &#8220;É isso aiiiiii!!!!&#8221;. Em uma parceria com a <a title="LinuxMall" href="http://www.linuxmall.com.br" target="_blank">LinuxMall</a>, vou sortear uma camiseta PHP no próximo dia 03/11/2011 as 20h, mas atenção para as regras:</del></p>
<p><del>1) O sorteio será feito pelo sistema <a title="Twitquero" href="http://www.twitquero.com" target="_blank">Twitquero<br />
</a>2) <strong><span style="color: #993300;">O ganhador deverá estar presente no <a title="PHP'n Rio 11" href="http://www.phpnrio.com.br/" target="_blank"><span style="color: #993300;">PHP&#8217;n Rio 11</span></a> (se o mesmo não comparecer, um novo sorteio será realizado no fim da minha palestra).</span></strong><br />
3) A entrega da camiseta será no fim da minha palestra, se o ganhador chegar depois&#8230; Já era! <img src='http://www.fernandovalente.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
4) O ganhador deverá seguir o twitter <a title="Twitter LinuxMall" href="http://www.twitter.com/linuxmall" target="_blank">@linuxmall</a> e, é claro, o meu <a title="Twitter Nando Valente" href="http://www.twitter.com/nandovalente" target="_blank">@nandovalente</a></del></p>
<p><a title="Sorteio Camiseta PHP" href="http://twitquero.com/e8" target="_blank">Simples assim! Agora clique AQUI e boa sorte!!</a> <img src='http://www.fernandovalente.com.br/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p><del><strong><span style="color: #993300;">Atenção! Devido a quantidade enorme de bots e perfis criados apenas para participação de sorteios, uma avaliação será feita com o ganhador. Se perfil for identificado como um bot ou perfil feito para sorteios, um novo sorteio será realizado.</span></strong></del></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandovalente.com.br/wordpress/2011/10/11/phpn-rio-quer-ganhar-uma-camisa-php-da-linuxmall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

