<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>O início do fim</title>
	
	<link>http://oiniciodofim.alojagratis.org</link>
	<description>Apenas um blog pessoal...</description>
	<pubDate>Sun, 12 Oct 2008 18:25:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/oiniciodofim" type="application/rss+xml" /><item>
		<title>Escrevendo testes unitários em Java com o JUnit</title>
		<link>http://feeds.feedburner.com/~r/oiniciodofim/~3/418605738/escrevendo-testes-unitarios-em-java-com-o-junit</link>
		<comments>http://oiniciodofim.alojagratis.org/desenvolvimento/escrevendo-testes-unitarios-em-java-com-o-junit#comments</comments>
		<pubDate>Sun, 12 Oct 2008 14:09:32 +0000</pubDate>
		<dc:creator>Felipe</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[ágil]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[JUnit]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[testes unitários]]></category>

		<category><![CDATA[unit tests]]></category>

		<guid isPermaLink="false">http://oiniciodofim.brogui.com/?p=20</guid>
		<description><![CDATA[Então, essa semana tivemos que apresentar ao professor aquela calculadora lógica que falei uns posts atrás.
Ah, beleza. O aplicativo está funcionando e não aparentou nenhum problema aparentemente&#8230; Só aparentemente&#8230; Chegou na hora do &#8220;vamos ver&#8221;, apareceu um bug muito estranho. Ela não estava calculando corretamente. Depois da apresentação, olhei o código-fonte e vi que estava [...]]]></description>
			<content:encoded><![CDATA[<p>Então, essa semana tivemos que apresentar ao professor <a href="http://oiniciodofim.alojagratis.org/desenvolvimento/calculadora-de-expressoes-logicas-sera-que-e-tao-dificil-assim">aquela calculadora lógica</a> que falei uns posts atrás.</p>
<p>Ah, beleza. O aplicativo está funcionando e não aparentou nenhum problema aparentemente&#8230; Só aparentemente&#8230; Chegou na hora do &#8220;vamos ver&#8221;, apareceu um bug muito estranho. Ela não estava calculando corretamente. Depois da apresentação, olhei o código-fonte e vi que estava chamando uma função com os parâmetros invertidos!</p>
<p>Puts, bateu a raiva: eu <strong>devia</strong> ter desenvolvido com testes unitários. Mas não fiz por preguiça&#8230;</p>
<p>O que vem a ser um teste unitário? Um teste unitário é um tipo de teste que se concentra na verificação da menor unidade do projeto de software, como por exemplo, parâmetros, saídas, valores de retorno, exceções ou o estado do objeto. Essa categoria de testes <strong>não</strong> procura testar toda a funcionalidade de uma aplicação, que fica a cargo de outros testes, como de integração ou de performance.</p>
<p>E o <a href="http://junit.org/">JUnit</a>? Ele é um framework open-source que possibilita a criação de testes unitários em Java. Como a maioria das IDEs incorporam o JUnit dentro de seu ambiente de desenvolvimento, fica fácil usar esse framework.</p>
<p><span id="more-61"></span>Um pequeno exemplo (idiota, mas um exemplo):</p>
<p>Vamos supor que no meu aplicativo eu quero uma classe <em>Operacoes</em> que contem métodos para realizar as 4 operações básicas da matemática. (Usarei o Netbeans 6.1)</p>
<p>Eu começo criando a classe <em>Operacoes</em> e escrevo só a assinatura do método:</p>
<pre class="prettyprint">// Operacoes.java
public class Operacoes {
    public static int soma(int v1, int v2) {
        return 0;
    }
    public static int subtracao(int v1, int v2) {
        return 0;
    }
    public static int multiplicacao(int v1, int v2) {
        return 0;
    }
    public static int divisao(int v1, int v2) {
        return 0;
    }
}</pre>
<p>Agora escrevo os testes&#8230; Você deve estar se perguntando? &#8220;Hã?&#8221; Mas és assim mesmo. Primeiro escrevemos os testes e depois implementamos os métodos.</p>
<p>Seleciono o arquivo no Netbeans e aperto Ctrl+Shift+U. Aparecerá o seguinte:</p>
<p><a href="http://oiniciodofim.alojagratis.org/wp-content/uploads/2008/10/selecao.jpg"  rel="lightbox[roadtrip]"><img class="size-medium wp-image-81" title="Selecionar versão do JUnit" src="http://oiniciodofim.alojagratis.org/wp-content/uploads/2008/10/selecao.jpg" alt="Selecionar versão do JUnit" width="244" height="202" /></a></p>
<p>Escolha a versão 4.x. É mais simples. Depois, ele pede que teste você deseja criar:</p>
<p><a href="http://oiniciodofim.alojagratis.org/wp-content/uploads/2008/10/criar.jpg"  rel="lightbox[roadtrip]"><img class="size-medium wp-image-82" title="Criar teste" src="http://oiniciodofim.alojagratis.org/wp-content/uploads/2008/10/criar-246x300.jpg" alt="Criando teste" width="246" height="300" /></a></p>
<p>Se você olhar esse novo arquivo que ele criou, verá métodos do tipo:</p>
<pre class="prettyprint">@Test
public void testSoma() {
}</pre>
<p><code>@Test</code> é uma anotação. Ele diz que o método seguinte é um teste.</p>
<p>O JUnit utiliza provê vários métodos assertivos para avaliar os testes. No site oficial, existe a <a href="http://junit.org/junit/javadoc/4.5/">documentação</a>, mas é da versão 4.5. Talvez hajam algumas diferenças.<br />
<!--more--><br />
Voltando ao exemplo, como são feitas as asserções?</p>
<p>Para verificar objetos, podemos usar o método <code>assertEquals</code>. Uma versão desse método que eu mais gosto de usar é <code>assertEquals(String message, Object expected, Object actual)</code>. O primeiro parâmetro <code>message</code> é a mensagem que aparece quando o teste falha, <code>expected</code> é o objeto que o método deveria retornar e <code>actual</code> é o que o método retornou.</p>
<p>Meu método testSoma poderia ficar assim:</p>
<pre class="prettyprint">@Test
public void testSoma() {
   assertEquals("2+2 falhou", 4, Operacoes.soma(2, 2));
   assertEquals("10+5 falhou", 15, Operacoes.soma(10, 5));
   assertEquals("12+13 falhou", 25, Operacoes.soma(12, 13));
}</pre>
<p>Pronto, escrevi o teste. Se eu rodar ele (Alt+F6) recebo uma bonita mensagem de erro <img src='http://oiniciodofim.alojagratis.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><a href="http://oiniciodofim.alojagratis.org/wp-content/uploads/2008/10/erro_soma.jpg"  rel="lightbox[roadtrip]"><img class="alignnone size-medium wp-image-94" title="Erro" src="http://oiniciodofim.alojagratis.org/wp-content/uploads/2008/10/erro_soma.jpg" alt="" width="289" height="168" /></a></p>
<p>E assim eu faço com os outros métodos de teste:</p>
<pre class="prettyprint">// OperacoesTest.java
import org.junit.Test;
import static org.junit.Assert.*;

public class OperacoesTest {
  @Test
  public void testSoma() {
    assertEquals("2+2 falhou", 4, Operacoes.soma(2, 2));
    assertEquals("10+5 falhou", 15, Operacoes.soma(10, 5));
    assertEquals("12+13 falhou", 25, Operacoes.soma(12, 13));
  }

  @Test
  public void testSubtracao() {
    assertEquals("4-1 falhou", 3, Operacoes.subtracao(4, 1));
    assertEquals("4-6 falhou", -2, Operacoes.subtracao(4, 6));
    assertEquals("10-2 falhou", 8, Operacoes.subtracao(10, 2));
  }

  @Test
  public void testMultiplicacao() {
    assertEquals("2*3 falhou", 6, Operacoes.multiplicacao(2, 3));
    assertEquals("6*0 falhou", 0, Operacoes.multiplicacao(6, 0));
  }

  @Test
  public void testDivisao() {
    assertEquals("4/2 falhou", 2, Operacoes.divisao(4, 2));
    assertEquals("2/5 falhou", 0, Operacoes.divisao(2, 5));
  }
}</pre>
<p>Pronto, meu testes estão prontos (por enquanto). E todos falham.</p>
<p><a href="http://oiniciodofim.alojagratis.org/wp-content/uploads/2008/10/falha_total.jpg"  rel="lightbox[roadtrip]"><img src="http://oiniciodofim.alojagratis.org/wp-content/uploads/2008/10/falha_total.jpg" alt="" title="Todos os teste falham" width="289" height="168" class="alignnone size-medium wp-image-101" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://oiniciodofim.alojagratis.org/desenvolvimento/escrevendo-testes-unitarios-em-java-com-o-junit/feed</wfw:commentRss>
		<feedburner:origLink>http://oiniciodofim.alojagratis.org/desenvolvimento/escrevendo-testes-unitarios-em-java-com-o-junit</feedburner:origLink></item>
		<item>
		<title>Comprei um Nokia E51</title>
		<link>http://feeds.feedburner.com/~r/oiniciodofim/~3/418183171/comprei-um-nokia-e51</link>
		<comments>http://oiniciodofim.alojagratis.org/pessoal/comprei-um-nokia-e51#comments</comments>
		<pubDate>Mon, 06 Oct 2008 15:50:27 +0000</pubDate>
		<dc:creator>Felipe</dc:creator>
		
		<category><![CDATA[Pessoal]]></category>

		<guid isPermaLink="false">http://oiniciodofim.brogui.com/?p=18</guid>
		<description><![CDATA[Final de semana, faço um review dele, mas por enquanto, ficam aqui as especificações:
Nokia E51
Frequência de operação: WCDMA 2100 / WCDMA 850 / GSM 850 / 900 / 1800 / 1900
Bandas: WCDMA/ GSM
Tecnologias suportadas: XHTML, HTML, MMS, Java MIDP
Sistema operacional: S60 3rd Edition Feature Pack 1 baseado no Symbian OS v9.2
Dimensões: 115 x 47 x [...]]]></description>
			<content:encoded><![CDATA[<p>Final de semana, faço um review dele, mas por enquanto, ficam aqui as especificações:</p>
<p><a href="http://www.nokia.com.br/A4799272"><strong>Nokia E51</strong></a></p>
<p>Frequência de operação: WCDMA 2100 / WCDMA 850 / GSM 850 / 900 / 1800 / 1900<br />
Bandas: WCDMA/ GSM<br />
Tecnologias suportadas: XHTML, HTML, MMS, Java MIDP<br />
Sistema operacional: S60 3rd Edition Feature Pack 1 baseado no Symbian OS v9.2<br />
Dimensões: 115 x 47 x 12 mm<br />
Peso: 100 g</p>
<p><strong> Tela</strong><br />
Resolução: 240 x 320<br />
Quantidade de cores: 24 bit 				 				(~16 milhões)<br />
<strong></strong></p>
<p><strong>Câmera </strong><br />
2 megapixel<br />
Grava vídeos em 15 fps</p>
<p><strong> Memória</strong><br />
No celular: 120 MB<br />
Até 4 GB com cartão de memória microSD<br />
Aceita JAR de qualquer tamanho</p>
<p><strong>Navegação</strong><br />
HTML sobre TCP/IP<br />
Navegador S60 OSS<br />
WAP 2.0<br />
XHTML sobre TCP/IP</p>
<p><strong> Mensagens </strong><br />
MMS+<a href="http://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language">SMIL </a><br />
SMS<br />
MMS</p>
<p><strong>Java</strong><br />
MIDP 2.0<br />
CLDC 1.1<br />
JSR 135 Mobile Media API<br />
JSR 172 Web Services API<br />
JSR 177 Security and Trust Services API<br />
JSR 179 Location API<br />
JSR 180 SIP API<br />
JSR 184 Mobile 3D Graphics API<br />
JSR 185 JTWI<br />
JSR 205 Wireless Messaging API<br />
JSR 226 Scalable 2D Vector Graphics API<br />
JSR 234 Advanced Multimedia Supplements<br />
JSR 75 FileConnection and PIM API<br />
JSR 82 Bluetooth API<br />
Nokia UI API</p>
<p><strong> Formatos de áudio</strong><br />
AAC, AAC+, eAAC+, MP3, MP4, M4A, AMR-NB, AMR-WB, Mobile XMF, SP-MIDI, MIDI (poly 64), RealAudio 7,8,10, True tones</p>
<p><strong> Formatos de vídeo</strong><br />
3GPP (H.263)<br />
H.264/AVC<br />
MPEG-4<br />
RealVideo 7,8,9/10</p>
<p><strong> DRM</strong><br />
OMA DRM Forward Lock<br />
OMA DRM v1.0<br />
OMA DRM v2.0<br />
DRM via: download HTTP, MMS, download OMA</p>
<p><strong> Tipos de rede suportados </strong></p>
<p>UTMS (3G)<br />
HSDPA (3.5G)<br />
WCDMA<br />
EGPRS<br />
GPRS<br />
HSCSD<br />
CSD</p>
<p><strong> Conectivade com o PC</strong><br />
Bluetooth<br />
Infravermelho<br />
Mini USB (não é o formato proprietário da Nokia)<br />
WLAN (com suporte a conexões ad-hoc)</p>
]]></content:encoded>
			<wfw:commentRss>http://oiniciodofim.alojagratis.org/pessoal/comprei-um-nokia-e51/feed</wfw:commentRss>
		<feedburner:origLink>http://oiniciodofim.alojagratis.org/pessoal/comprei-um-nokia-e51</feedburner:origLink></item>
		<item>
		<title>Calculadora de expressões lógicas: será que é tão difícil assim?</title>
		<link>http://feeds.feedburner.com/~r/oiniciodofim/~3/418183172/calculadora-de-expressoes-logicas-sera-que-e-tao-dificil-assim</link>
		<comments>http://oiniciodofim.alojagratis.org/desenvolvimento/calculadora-de-expressoes-logicas-sera-que-e-tao-dificil-assim#comments</comments>
		<pubDate>Mon, 15 Sep 2008 00:38:06 +0000</pubDate>
		<dc:creator>Felipe</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[calculadora]]></category>

		<category><![CDATA[faculdade]]></category>

		<category><![CDATA[fasul]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[lógica]]></category>

		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://oiniciodofim.brogui.com/?p=12</guid>
		<description><![CDATA[Há aproximadamente 1 mês, nosso professor de Lógica Aplicada à Computação (o senhor Fábio Spanhol) nos desafiou com um trabalho que parecia impossível à primeira vista:
Implementar uma calculadora lógica que aceite como entrada os símbolos:

T - Verdade
F - Falso
^ - Conjunção
v - Disjunção
~ - Negação
-&#62; - Condicional
&#60;-&#62; - Bicondicional
( ) - Parentização

A calculadora deve avaliar [...]]]></description>
			<content:encoded><![CDATA[<p>Há aproximadamente 1 mês, nosso professor de Lógica Aplicada à Computação (o senhor <a href="http://pulse.plaxo.com/pulse/profile/show/60130875862?pk=ea671ba917473f10e2a2769d905e5c9b7749cae1">Fábio Spanhol</a>) nos <em>desafiou </em>com um trabalho que parecia impossível à primeira vista:</p>
<blockquote><p>Implementar uma calculadora lógica que aceite como entrada os símbolos:</p>
<ul>
<li>T - Verdade</li>
<li>F - Falso</li>
<li>^ - Conjunção</li>
<li>v - Disjunção</li>
<li>~ - Negação</li>
<li>-&gt; - Condicional</li>
<li>&lt;-&gt; - Bicondicional</li>
<li>( ) - Parentização</li>
</ul>
<p>A calculadora deve avaliar a expressão, considerando as precedências e apresentar o resultado lógico.</p>
<p>Deve se desenvolvida em C, Java, Haskell, Lua, LISP ou Python, e os grupos podem conter até 4 pessoas.</p></blockquote>
<p>Na verdade, ele só nos tinha dado a opção de fazer em C ou Java, mas depois de muita insistência, ele liberou as outras linguagens <em>(que por sinal, dessas eu só programo em Python)</em>. <img src='http://oiniciodofim.alojagratis.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><span id="more-73"></span></p>
<p>No início, nos pairava a dúvida: <em>&#8220;Pqp, como vamos validar essa porr*?&#8221; </em>Ah, expressões regulares&#8230; A oitava maravilha do mundo&#8230; Simples assim&#8230; Peraí&#8230; Simples? Eu disse simples? Você acha que a expressão abaixo é simples? (Ela já está com as barras invertidas devidamente escapadas)</p>
<p>&#8220;<code>^(~*[(]*?|([FT]|[(]*[~]*?[FT])[)]*?(V|\\^|-&gt;|&lt;-&gt;)[(]?~?[(]?)*(F|T|[FT][)]*)$</code>&#8221;</p>
<p>Pois é meu amigo&#8230; Parafraseando o Kibe Loco (site que, aliás, não acesso) <em>&#8220;a verdade é ácida e o kibe é cru&#8221;</em>. Beleza então, a classe String do Java (sim, fizemos em Java), tem um método <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#matches(java.lang.String)">matches</a> para comparar a String com uma <em>regex</em>.</p>
<p>Mas quem diria hein? O Java apanha pra validar uma expressão lógica (não é a regular!) com mais de 40 caracteres. Tá, o cara tem que ser meio louco para fazer uma expressão lógica com 40 caracteres&#8230; Mas é lento!</p>
<p>Ok, passado <span style="text-decoration: line-through;">o trauma</span> a dificuldade inicial, veio o segundo problema: e como resolver? Puts, mais essa agora&#8230; Depois de um tempinho, veio a resposta: o  <a href="http://github.com/FelipeBZ/calculadora-logica/tree/master%2FShunting%20yard%20algorithm.pdf?raw=true">Shunting yard algorithm</a> (slides feitos por mim) funciona excepcionalmente bem&#8230; E é muito simples de ser implementado. O &#8220;coração&#8221; do programa está <a href="http://github.com/FelipeBZ/calculadora-logica/tree/master/src/br/edu/fasul/lac/ExpressaoLogica.java">aqui</a>, comentado linha por linha.</p>
<p>Aos meus colegas de sala, fica aqui a dica. Aos outros, sim, esse é mais um post inútil.</p>
<p><a href="http://github.com/FelipeBZ/calculadora-logica/tree/master">Repositório no GitHub</a>, <a href="http://github.com/FelipeBZ/calculadora-logica/tree/master/src/br/edu/fasul/lac">link direto para a pasta do código-fonte</a>, <a href="http://github.com/FelipeBZ/calculadora-logica/tree/master%2Fdist%2FCalculadoraLogica.jar?raw=true">link para o pseudo-executável (.jar).</a></p>
]]></content:encoded>
			<wfw:commentRss>http://oiniciodofim.alojagratis.org/desenvolvimento/calculadora-de-expressoes-logicas-sera-que-e-tao-dificil-assim/feed</wfw:commentRss>
		<feedburner:origLink>http://oiniciodofim.alojagratis.org/desenvolvimento/calculadora-de-expressoes-logicas-sera-que-e-tao-dificil-assim</feedburner:origLink></item>
		<item>
		<title>Metodologia: Cascata x Ágil</title>
		<link>http://feeds.feedburner.com/~r/oiniciodofim/~3/418183173/metodologia-cascata-x-agil</link>
		<comments>http://oiniciodofim.alojagratis.org/desenvolvimento/metodologia-cascata-x-agil#comments</comments>
		<pubDate>Mon, 01 Sep 2008 00:51:11 +0000</pubDate>
		<dc:creator>Felipe</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[ágil]]></category>

		<category><![CDATA[cascata]]></category>

		<guid isPermaLink="false">http://oiniciodofim.brogui.com/?p=6</guid>
		<description><![CDATA[
Em, praticamente, qualquer curso envolva o desenvolvimento de sistemas, ensina-se a desenvolver um projeto usando 5 grandes fases:

Definição: onde são definidos os requisitos do projeto. Na maioria da vezes, é aqui que acontecem as conversas com o cliente, para levantar todas as suas necessidades;
Projeto: com os requisitos em mãos, começamos a estruturar as telas, os [...]]]></description>
			<content:encoded><![CDATA[<p><object data="http://www.youtube.com/v/gDDO3ob-4ZY&#038;hl=pt-br&#038;fs=1" type="application/x-shockwave-flash" width="425" height="350"><param name="quality" value="high" /><param name="movie" value="http://www.youtube.com/v/gDDO3ob-4ZY&#038;hl=pt-br&#038;fs=1" /></object></p>
<p>Em, praticamente, qualquer curso envolva o desenvolvimento de sistemas, ensina-se a desenvolver um projeto usando 5 grandes fases:</p>
<ul>
<li><strong>Definição</strong>: onde são definidos os requisitos do projeto. Na maioria da vezes, é aqui que acontecem as conversas com o cliente, para levantar todas as suas necessidades;</li>
<li><strong>Projeto</strong>: com os requisitos em mãos, começamos a estruturar as telas, os dados e os planos de testes;</li>
<li><strong>Codificação</strong>: é a fase onde a programação é de fato feita;</li>
<li><strong>Testes</strong>: necessários para garantir que a codificação tenha sido feita apropriadamente;</li>
<li><strong>Implementação</strong>: é o momento de colocar o sistema em produção.</li>
</ul>
<p>Essa metodologia de desenvolvimento é conhecida como “cascata” (<em>waterfall </em>em inglês), pois cada fase depende da fase anterior para acontecer. Uma conseqüência desse método é que quanto mais avançado estiver o desenvolvimento de sistema, maior será o custo de alterar o projeto, custo esse que pode vir de diferentes formas, tais como corte de funcionalidades, corte de qualidade de desenvolvimento, aumento de prazos e conseqüente aumento de valores. Coisa que prejudica o relacionamento com o cliente.</p>
<p>Desenvolvimento em cascata só funciona em ambientes bem definidos e compreendidos.</p>
<p>Mas e então? Existe alternativa?</p>
<p>Sim, e esses são os métodos de desenvolvimento ágil.</p>
<p>O ágil é um conjunto de processos para desenvolvimento desoftware que usa conceitos como:</p>
<ul>
<li>Iteratividade</li>
<li>Técnicas incrementais</li>
<li>Auto-gerenciamento</li>
<li>Auto-organização</li>
<li>Pessoas</li>
</ul>
<p>O ágil olha menos para processo e foca mais no que pessoas podem fazer para obter os resultado. É também:</p>
<ul>
<li>Propício à mudanças</li>
<li>Mais colaborativo</li>
<li>Planejamento constante</li>
<li>Entregas mais rápidas</li>
<li>Comprometimento da equipe</li>
<li>Adaptado a realidade</li>
</ul>
<p>Existem várias metodologias para desenvolvimento ágil, mas sem dúvida, a mais conhecido é a <a href="http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema">XP</a>.</p>
<p><strong>Fontes</strong>: <a href="http://agilblog.locaweb.com.br/2008/05/05/o-que-sao/">Metodologias Ágeis de Desenvolvimento - Locaweb</a>, <a href="http://railsbox.org/2008/8/31/agil-vs-cascata">railsbox</a> via <a href="http://twitter.com/ozeias/statuses/905034079">twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://oiniciodofim.alojagratis.org/desenvolvimento/metodologia-cascata-x-agil/feed</wfw:commentRss>
		<feedburner:origLink>http://oiniciodofim.alojagratis.org/desenvolvimento/metodologia-cascata-x-agil</feedburner:origLink></item>
		<item>
		<title>Sobre o blog</title>
		<link>http://feeds.feedburner.com/~r/oiniciodofim/~3/236647642/sobre-o-blog</link>
		<comments>http://oiniciodofim.alojagratis.org/extras/sobre-o-blog#comments</comments>
		<pubDate>Fri, 29 Aug 2008 21:57:18 +0000</pubDate>
		<dc:creator>Felipe</dc:creator>
		
		<category><![CDATA[Extras]]></category>

		<category><![CDATA[Pessoal]]></category>

		<guid isPermaLink="false">http://oiniciodofim.alojagratis.org/extras/sobre-o-blog</guid>
		<description><![CDATA[&#8220;O início do fim&#8221; foi um um ARG promovido pela Revista Superinteressante (da Abril) e batizado assim pelos seus participantes, porque, num podcast da equipe, ouvia-se a frase: &#8220;Este é o início do fim da Super&#8221;. 
Para isso foi criado este domínio. Ele hospedava um wiki e um fórum onde os participantes discutiam sobre os [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;O início do fim&#8221; foi um um <a href="http://pt.wikipedia.org/wiki/Alternate_reality_game">ARG</a> promovido pela Revista Superinteressante (da Abril) e batizado assim pelos seus participantes, porque, num podcast da equipe, ouvia-se a frase: <cite>&#8220;Este é o início do fim da Super&#8221;</cite>. </p>
<p>Para isso foi criado este domínio. Ele hospedava um wiki e um fórum onde os participantes discutiam sobre os enigmas.</p>
<p>Domínio <em>free</em> já viu né? Tem que haver tráfego&#8230; Então, hospedei meu blog pessoal aqui.</p>
<p>Mais detalhes sobre o ARG, você encontra <a href="http://super.abril.com.br/salveasuper/">aqui</a>.</p>
<p><strong>Sobre o autor</strong></p>
<p>O cara aqui do outro lado é um <em>geek</em> que cursa Sistemas de Informação. Adoro assuntos polêmicos, novidades e qualquer coisinha feita em AJAX com uma &#8220;etiquetinha&#8221; escrito <em>beta</em>.</p>
<p>Eu desenvolvo em Java, Python e me viro com HTML, XHTML, PHP e CSS.</p>
<p>Bom, pra um post inicial, acho que é o suficiente.</p>
]]></content:encoded>
			<wfw:commentRss>http://oiniciodofim.alojagratis.org/extras/sobre-o-blog/feed</wfw:commentRss>
		<feedburner:origLink>http://oiniciodofim.alojagratis.org/extras/sobre-o-blog</feedburner:origLink></item>
	</channel>
</rss>
