<?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>codificando.com &#187; agile</title>
	<atom:link href="http://codificando.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://codificando.com</link>
	<description>Desenvolvimento de Software com qualidade</description>
	<lastBuildDate>Mon, 19 Jul 2010 21:28:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Gerencie seu ambiente Ruby com RVM</title>
		<link>http://codificando.com/2010/07/gerencie-ambiente-ruby-rvm/</link>
		<comments>http://codificando.com/2010/07/gerencie-ambiente-ruby-rvm/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 03:52:05 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[rvm]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=461</guid>
		<description><![CDATA[Introdução Ruby 1.8, Ruby 1.9, Rails 2, Rails 3, cada projeto usando diversas gems. Como isolar esses ambientes para evitar conflitos? Em Outubro de 2007, surgiu uma ferramenta chamada RVM, com o objetivo de criar ambientes isolados para desenvolver software &#8230; <a href="http://codificando.com/2010/07/gerencie-ambiente-ruby-rvm/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3><strong>Introdução</strong></h3>
<p>Ruby 1.8, Ruby 1.9, Rails 2, Rails 3, cada projeto usando diversas gems. Como isolar esses ambientes para evitar conflitos?</p>
<p>Em Outubro de 2007, surgiu uma ferramenta chamada <a href="http://rvm.beginrescueend.com/">RVM</a>, com o objetivo de criar ambientes isolados para desenvolver software em Ruby, permitindo que programadores pudessem usar várias versões de Ruby e Gems numa mesma máquina de forma limpa e sem conflitos. O projeto vem se tornando mais popular este ano, e de fato tem se mostrado muito útil. A lista dos autores pode ser conferida <a href="http://beginrescueend.com/authors" target="_blank">aqui</a>.</p>
<h3><strong>Instalação</strong></h3>
<p>Para instalar o RVM, não é preciso muita coisa além de um ambiente POSIX (linux, bsd, etc). Eu instalei no meu Mac sem problemas. Eu acho que a única coisa que não vem por padrão que você precisa instalar é o <a href="http://git-scm.com/" target="_blank">git</a>, que é usado para instalar/atualizar o RVM e instalar/atualizar as versões de Ruby.</p>
<p>Dito isso, abra o terminal e execute o seguinte comando:</p>
<p><strong>$ bash &lt; &lt;( curl http://rvm.beginrescueend.com/releases/rvm-install-head )</strong></p>
<p>O procedimento não deve demorar mais que alguns minutos, dependendo da sua conexão. Em seguida, abra seu profile (.bash_profile, .profile, .bashrc, etc) e adicione as seguintes linhas:</p>
<p><strong>[[ -s "$HOME/.rvm/scripts/rvm" ]] &amp;&amp; source &#8220;$HOME/.rvm/scripts/rvm&#8221;<br />
PS1=&#8221;\$(~/.rvm/bin/rvm-prompt) $PS1&#8243;<br />
</strong><br />
A segunda linha é para que a versão do Ruby que você estiver usando apareça no prompt, caso contrário você vai precisar ficar verificando a todo momento qual versão você está usando e isso pode ser bem chato.</p>
<p>Em seguida, carregue o rvm (da próxima vez que abrir o shell isso não será mais necessário):</p>
<p><strong>$ source ~/.rvm/scripts/rvm</strong></p>
<p>Pronto, o RVM está instalado e é hora de começar a arrumar nosso ambiente.</p>
<h3><strong>Instalando versões de Ruby</strong></h3>
<p>A partir do RVM, é possível instalar qualquer implementação Ruby. Por exemplo, podemos instalar o Ruby, Ruby Enterprise e o Jruby. Para uma lista completa acesse <a href="http://rvm.beginrescueend.com/interpreters/" target="_blank">aqui</a>.</p>
<p>Nesse tutorial, vamos instalar o ruby 1.8.7 . Execute o comando abaixo no terminal:</p>
<p><strong>$ rvm install 1.8.7</strong></p>
<p>1.8.7 é um atalho para o último patchlevel da verão 1.8.7 do Ruby. Em geral, isso funciona para todas as versões. A instalação demora um pouquinho, mas nada absurdo, portanto vá tomar um café e volte. Após o termino, &#8220;entre&#8221; no ambiente do Ruby instalado.</p>
<p><strong>$ rvm &#8211;default 1.8.7</strong></p>
<p>Nesse momento, você entrou no Ruby 1.8.7 e definiu essa VM como default no RVM.</p>
<p>Para voltar ao Ruby do systema (fora da RVM), basta ir no shell e digital:</p>
<p><strong>$ rvm use system</strong></p>
<p>Para listar as VMs instaladas (ou Rubies como preferem os criadores e como chamaremos a partir de agora), basta digitar:</p>
<p><strong>$ rvm list</strong></p>
<p>Escolha a Rubie e use-a conforme o exemplo abaixo:</p>
<p><strong>$ rvm use 1.8.7</strong></p>
<h3><strong>Instalando as Gems</strong></h3>
<p>Uma das manias que a maioria dos Rubistas tem é instalar as gems usando sudo. Isso hoje em dia é considerado má prática. Ainda mais com RVM, já que a intenção é criar uma espécie de SANDBOX por usuário/aplicação, conforme veremos a seguir.</p>
<p>Primeiramente vamos ver as gems que estão instaladas na nova Rubie. O comando é o já conhecido gem list. Ao rodar esse comando na Rubie instalada pelo RVM, você pode ter a impressão que suas gems sumiram, mas na verdade isso é exatamente o esperado, pois cada Rubie tem seu ambiente totalmente isolado. Para ter uma idéia, rode o seguinte comando e veja o output:</p>
<p><strong>$ rvm info</strong></p>
<p>O output fornece toda a informação sobre o ambiente dessa Rubie que está sendo usada no momento. Observe bem a linha home: \n gem:. Nela você verá onde estão sendo instaladas as gems. Repare que ele cria uma estrutura de diretórios sugestiva para você manter suas gems bem isoladas. A estrutura é a seguinte:</p>
<p><strong>~/.rvm/gems/{Rubie@Gemset}/</strong></p>
<p>Todas as gems serão instaladas nesse diretório. Não estranhe o <strong>@Gemset</strong>, falaremos dele adiante.</p>
<p>Vamos então instalar o Rails nessa Rubie. Não use sudo pelo amor de Deus <img src='http://codificando.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>$ gem install rails &#8211;no-ri &#8211;no-rdoc</strong></p>
<p>Depois execute um gem list para ver seu ambiente instalado. Se quiser, execute rvm system e veja que suas gems no ruby do sistema provavelmente são totalmente diferentes.</p>
<h3><strong>Gemsets</strong></h3>
<p>Vamos falar agora do tal @Gemset que eu coloquei na estrutura. Gemsets é uma forma de criar uma SANDBOX mais &#8220;profunda&#8221;. Em um primeiro momento pode parecer desnecessário, mas se você pensar que pode ter mais de um projeto por Rubie e não quer que as gems deles se misturem nem gerem algum tipo de conflito, essa estrutura passa a fazer todo sentido.</p>
<p>Supunha que você tenha um projeto chamado blog. Para criar uma gemset (e entrar nele) para esse projeto basta executar o seguinte comando:</p>
<p><strong>$ rvm gemset create blog &amp;&amp; rvm gemset use blog</strong></p>
<p>Feito isso você verá que no seu prompt (se você fez essa configuração de instalação) estará aparecendo da seguinte forma: <strong>rubie@gemset</strong>. Rode o comando gemlist e verá que novamente suas gems que foram instaladas na Rubie sumiram. Mais uma vez isso é esperado, pois acabamos de criar uma nova SANDBOX para esse projeto específico. Nesse momento, basta instalar suas gems nessa gemset que seu projeto terá um ambiente totalmente isolado.</p>
<p>Se você executar o rvm info, verá que a home das suas gems está com um path diferente do anterior, pois o rvm criou um diretório para a Ruby com a nova Gemset, deixando tudo muito bem organizado.</p>
<p>Existem algumas gems que todos os projetos podem precisar, como Rake e Capistrano. Não seria uma boa idéia instalar essas gems em cada gemset. O RVM nos dá uma ajuda nesse sentido, criando uma gemset global, permitindo compartilhar gems entre todas as gemsets de uma Rubie. Para instalar uma gem nessa gemset basta mudar para ela e installar, como já vimos anteriormente. Vamos a um exemplo:</p>
<p><strong>$ rvm gemset use global<br />
$ gem install capistrano capistrano-ext &#8211;no-ri &#8211;no-rdoc</strong></p>
<p><span style="color: #000000;">Pronto, essas gems não precisam mais ser instaladas para cada projeto novo que você for rodar nessa Rubie.</span></p>
<h3><strong>Conclusão</strong></h3>
<p>O Ruby Version Manager é uma ferramenta muito interessante para gerênciar seu ambiente Ruby. Ter vários Rubies instalado se torna cada vez mais comum, pois os projetos antigos precisam ser mantidos e novos projetos surgem, usando Rubies mais novos. O uso dos gemsets para isolar as gems também faz toda a diferença, evitando diversas dores de cabeça e deixando o ambiente organizado e limpo. Vale a pena experimentar.</p>
<h3><strong>&lt;&lt; UPDATE &gt;&gt;<strong> </strong></strong></h3>
<p><strong><strong><span style="font-weight: normal;">Tem um comando importante que não abordei que é o </span>rvm list known<span style="font-weight: normal;"> que mostra as opções de Rubies disponíveis para instalação. Créditos ao <a href="http://twitter.com/rodvlopes" target="_blank">Rodrigo Lopes</a>.</span></strong></strong></p>
<p><strong><strong> </strong></strong>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2010/07/gerencie-ambiente-ruby-rvm/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Computação Ubíqua e Dispositivos móveis</title>
		<link>http://codificando.com/2010/07/computacao-ubiqua-dispositivos-moveis/</link>
		<comments>http://codificando.com/2010/07/computacao-ubiqua-dispositivos-moveis/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 03:32:03 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[futuro]]></category>
		<category><![CDATA[gestão]]></category>
		<category><![CDATA[pensamentos]]></category>
		<category><![CDATA[reflexao]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[produto]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=445</guid>
		<description><![CDATA[Introdução É fato que nos dias de hoje muitas tecnologias novas surgiram no cenário mundial. Temos sido inundados por celulares, smartphones, notebooks, netbooks e outros mais. Hoje em dia existe internet 3G nas principais grandes cidades do mundo. Internet WIFI &#8230; <a href="http://codificando.com/2010/07/computacao-ubiqua-dispositivos-moveis/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>Introdução</h2>
<p>É fato que nos dias de hoje muitas tecnologias novas surgiram no cenário mundial. Temos sido inundados por celulares, smartphones, notebooks, netbooks e outros mais. Hoje em dia existe internet 3G nas principais grandes cidades do mundo. Internet WIFI já é algo comum faz tempo. Esses recursos estão começando a mudar nossas vidas de uma forma surpreendente. Mas será que essa idéia é nova? Quando será que começaram as pesquisas sobre essas tecnologias? Qual será o impacto futuro em nossas vidas? Acredito que estamos realmente num caminho onde a computação fará parte de quase todos os objetos que usamos no dia a dia.</p>
<h2>Definição</h2>
<p><a href="http://www.priberam.pt/dlpo/default.aspx?pal=ub%C3%ADquo" target="_blank">Ubíquo</a> não é uma palavra muito usada em nosso cotidiano. Portanto, vale a pena apresentarmos alguns significados para nos ajudar a aprofundar mais no assunto.</p>
<p><a href="http://www.priberam.pt/dlpo/default.aspx?pal=ub%C3%ADquo" target="_blank">Ubíquo</a> significa algo universal, ou seja, algo que todos entendem, conhecem. Ubíquo também pode ser interpretado como aquilo que esta presente em todos os lugares, ao mesmo tempo. É como onipresença. Essa segunda definição tem mais a ver com o conteúdo desse artigo.</p>
<h2>História</h2>
<p>Em 1991, Mark Weiser <a href="http://sandbox.xerox.com/want/papers/ubi-sciam-sep91.pdf" target="_blank">escreveu um artigo</a> chamado “O Computador do Século 21 (The Computer for the 21st Century). Weiser era cientista chefe do <a href="http://www.parc.com/" target="_blank">Centro de Pesquisa Xerox PARC</a>. Nesse artigo, ele definiu o termo Computação Ubíqua, que define um contexto onde  a presença computacional em algum objeto é totalmente transparente para quem usa e em alguns cenários totalmente invisível. Weiser também exemplifica a escrita, que foi provavelmente a primeira tecnologia de informação e que se tornou Ubíqua em países industrializados. Ele usa esse exemplo para definir que as tecnologias que são mais profundas são as aquelas que “desaparecem”. Por desaparecer, acho que Weiser quis dizer que a tecnologia fica tão arraigada no nosso dia a dia tornando seu uso automático, deixando de ser aquele algo novo e surpreendente. Vislumbrando como seria a computação do nosso século, Weiser também fala sobre redes gigabits, armazenamento de terabytes e sobre Tabs e Pads, que seriam os palms, smartphones, <a href="http://en.wikipedia.org/wiki/Kindle" target="_blank">Kindles</a> e <a href="http://www.apple.com/ipad/" target="_blank">iPads</a> que temos hoje. Quase no fim do artigo, ele conta uma estória ilustrativa de uma pessoa vivendo nesse mundo todo conectado e apresenta diversos protótipos feitos por ele e sua equipe de alguns desses equipamentos e tecnologias.</p>
<p>No que diz respeito a tecnologias, lembro-me bem que <a href="http://java.sun.com" target="_blank">Java</a> era uma dessas que originalmente foi criada para ser usada em <a href="http://www.java.com/en/javahistory/" target="_blank">dispositivos embarcados</a>, especialmente na informatização da casa, mas era algo muito avançado para época. Isso surgiu no mesmo ano em que Weiser escreveu seu artigo. No fim das contas a linguagem <a href="http://java.sun.com" target="_blank">Java</a> tomou outro rumo, muito bem sucedido por sinal.</p>
<h2>Contexto atual e futuro</h2>
<p>É impossível negar que a computação Ubíqua tem afetado nosso dia a dia. Hoje temos Hotspots WIFI em diversos lugares. A internet 3G está presente nos celulares modernos, possibilitando infinitas formas de comunicação. Serviços de Voz sobre IP tornaram possível usarmos ferramentas como <a href="http://www.skype.com/intl/en/home" target="_blank">Skype</a>, que permite obter um número de um País e utilizar em qualquer lugar do mundo. Cada vez mais fazem parte do nosso dia a dia tecnologias como as de automóveis com computador de bordo, <a href="http://www.apple.com/iphone/" target="_blank">iPhones</a>, <a href="http://www.apple.com/ipad/" target="_blank">iPads</a>, totem para compra de ingressos no cinema, totem para check-in de voos, e outros mais.</p>
<p>Outra tecnologia que está acelerando o processo da computação Ubíqua é o <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">Cloud Computing</a>. Há alguns anos, milhares de pessoas tem suas contas de email online em serviços como gmail, yahoo mail e similares, de forma a não precisarem mais de um cliente de email como ferramenta obrigatória em seus computadores. Essa modalidade é conhecida como <a href="http://en.wikipedia.org/wiki/Software_as_a_service" target="_blank">SaaS</a> (Software as a Service). Outra modalidade é o <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">IaaS</a> (Infrastructure as a Service), onde existe uma infraestrutura transparente para quem contrata servidores, podendo adicionar mais recursos computacionais ao invés de mais um computador ou hardware físico.  Mais recentemente surgiram também plataformas para desenvolvimento de software totalmente na web como o <a href="http://code.google.com/appengine/" target="_blank">Google App Engine</a>, <a href="http://heroku.com/" target="_blank">Heroku</a> e outros. Esse é o modelo <a href="http://en.wikipedia.org/wiki/Platform_as_a_service" target="_blank">PaaS</a> (Platform as a Service).</p>
<p>Hoje em dia fala-se muito também em casas inteligentes, um conceito onde toda a casa está interligada e conectada, permitindo que luzes acendam com comando de voz, geladeiras enviem pedidos de compras ao supermercado quando estiverem perto de esvaziar,  cafeteiras saberem o horário do seu café da manhã e prepararem o café sem você precisar fazer nada, e por ai vai. Esse conceito está ligado a <a href="http://www.gta.ufrj.br/~rezende/cursos/eel879/trabalhos/smarthouses/introd.html" target="_blank">Computação Pervasiva</a>, que é uma espécie de subárea da Computação Ubíqua. Quem assistiu o filme <a href="http://www.imdb.com/title/tt0106697/plotsummary" target="_blank">“O Demolidor&#8221; (1993)</a>, com os atores Silvestre Stalone e Welsey Snipes, lembra que esses conceitos estão presentes no filme. Embora atualmente existam algumas <a href="http://www.youtube.com/user/SmartHouseLt" target="_blank">iniciativas de empresas</a> nesse ramo de <a href="http://www.gta.ufrj.br/~rezende/cursos/eel879/trabalhos/smarthouses/introd.html" target="_blank">Computação Pervasiva</a>, essa tecnologia ainda está bem distante de uma adoção em massa.</p>
<p>Falando de futuro, é bem verdade que ainda não chegamos no nível onde Weiser aponta em seu artigo, mas afinal, ainda estamos no início do século, tendo passado apenas uma década. Uma das frases ditas por ele nesse artigo que chamou muito a atenção sobre esse futuro foi: <em><strong>“Não precisamos de nenhuma revolução na inteligência artificial, apenas incorporar a computação no cotidiano”</strong></em>.</p>
<h2>Conclusão</h2>
<p>O Caminho para Computação Ubíqua tem avançado muito nos últimos anos. As pesquisas e previsões de Mark Weiser tem se concretizado, quase que como uma profecia. Como profissionais de TI, nos resta estar atentos as oportunidades de negócio que essas tecnologias tem a nos oferecer e tirar proveito disso.
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2010/07/computacao-ubiqua-dispositivos-moveis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails Summit 2009 &#8211; Resumo</title>
		<link>http://codificando.com/2009/10/rails-summit-2009-resumo/</link>
		<comments>http://codificando.com/2009/10/rails-summit-2009-resumo/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 23:57:17 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[engenharia]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[evento]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=238</guid>
		<description><![CDATA[O Rails Summit terminou. Foi um evento bem legal, com ótimas palestras e a galera de sempre, que já conhecemos. Vou fazer um resumo das palestras que assisti. Chad Fowler &#8211; http://chadfowler.com A palestra do Chad foi como sempre focada &#8230; <a href="http://codificando.com/2009/10/rails-summit-2009-resumo/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O Rails Summit terminou. Foi um evento bem legal, com ótimas palestras e a galera de sempre, que já conhecemos.</p>
<p>Vou fazer um resumo das palestras que assisti.</p>
<p><strong>Chad Fowler &#8211; <a href="http://chadfowler.com">http://chadfowler.com</a><br />
</strong></p>
<p>A palestra do Chad foi como sempre focada em carrreia. Ele advertiu os desenvolvedores que produzem porcaria todo dia sem peso algum na consciência. Ele pensa (e eu também) que nós não devemos investir tempo desnvolvendo coisas que já sabemos que são porcaria. E isso não é pessimismo, simplesmente é não perder tempo.</p>
<p>Chad falou também sobre os FUDs que sempre usam contra Ruby/Rails. Isso não foi nenhuma novidade mas ele abordou de forma bem divertida e valeu muto a pena.</p>
<p>Uma das partes mais legais foi a estatística mostrando que Ruby só faz parte de 6% da requisição do usuário. Na verdade não só ruby, mas outra tecnologia também. Isso bom para refletirmos sobre as discussões sobre performance e escalabilidade das aplicações web.</p>
<p><strong>Gregg Pollack &#8211; <a href="http://envlabs.com">http://envlabs.com</a><br />
</strong></p>
<p>O foco da palestra do gregg foi sobre como atacar alguns pontos para o otimizar sua aplicação Rails. Dentre as formas, ele apresentou algumas gems/plugins que ajudam a identificar alguns pontos para melhoria de performance em uma aplicação. Vou destacar algumas:</p>
<ul>
<li>Bullet &#8211; Ajuda a identificar queries com alguns problemas. Ex: N + 1</li>
<li>Rails Indexes &#8211; Identifica colunas onde deveriam ter índices. Se baseia nas buscas do sistema.</li>
<li>Scrooge &#8211; Faz com que o ActiveRecord passe a buscar somente os campos que estão sendo usados, ao invés de buscar todos os campos. Ex: em um find(:all), após a primeira execução, o scrooge identifica quais campos foram usados e ná próxima vez modifica a query para não buscar os campos desnecessários.</li>
<li>Rack Bug &#8211; É uma Monitor para aplicações Rack. Fornece basicamente todas as informações. Sessões, CPU, Memória, etc. Bem útil</li>
<li>oink &#8211; Mostra detalhes dos requests de cada controller. Ex: consumo de memória.</li>
<li>Cloud Crowd &#8211; Servidor para rodar tarefas em background. Feito em sinatra.</li>
</ul>
<p><strong>Ilya Grigorik &#8211; <a href="http://www.igvita.com/about/">http://www.igvita.com/about/</a><br />
</strong></p>
<p>Ilya falou sobre integração/comunicação de aplicações baseadas em web, utilizando-se de tecnologias como XMPP, AMQP, Webhooks, PubsubHubbub. Foi bem interessante, pois a maioria do auditório conhecia pouco sobre o assunto.</p>
<p><strong>Fabio Akita &#8211; <a href="http://akitaonrails.com">http://akitaonrails.com</a><br />
</strong></p>
<p>A palestra do akita foi sobre agile. Ele falou bastante sobre a teoria do caos, sistemas complexos e a evolução das coisas. No fim, o recado maior foi alertar que agile não é o último estágio no desenvolvimento de software, deixando claro que temos (e vamos) que evoluir ainda mais.</p>
<p><strong>Glenn Vanderburg &#8211; <a href="http://blog.thinkrelevance.com">http://blog.thinkrelevance.com</a><br />
</strong></p>
<p>Palestra sobre o framework Tarantula, que tem por objetivo fazer testes de ataques XSS, SQL Injection, entre outros. Achei bem interessante, pois é possível automatizar esse passo, que geralmente fazemos manualmente. Glenn inclusive sugeriu que faça parte do build antes de lançar um release.</p>
<p><strong>Fabio Kung &#8211; <a href="http://fabiokung.com/">http://fabiokung.com/</a><br />
</strong></p>
<p>Fabio fez uma ótima palestra sobre DSLs (Domain Specific Languages) internas usando Ruby. Ao invés de apresentar exemplos simples ele apresentou um exemplo real de uma necessidade de uma aplicação que trata de instâncias de máquinas na cloud da Locaweb.</p>
<p><strong>Carlos Vilella <a href="http://lixo.org">http://lixo.org</a><br />
</strong></p>
<p>Carlos fez uma palestra bem curta, falando sobre o uso de Ruby na Thoughtworks. Falou sobre os poucos projetos que falharam e deixou o restante do tempo para perguntas.</p>
<p><strong>Tapajós &#8211; <a href="http://tapajos.me/">http://tapajos.me/</a><br />
</strong></p>
<p>A palestra do Tapajós foi sobre bancos de dados não relacionais. Focado bastante em CouchDB e Rails, ele explorou algumas features chaves na utilização dessa abordagem de banco de dados, também fazendo uma curta palestra e deixando boa parte do tempo para perguntas.</p>
<p><strong>Bruno Miranda &#8211; Rails não escala</strong></p>
<p>Eu gostei muto da palestra do Bruno, apesar de achar que o que ele falou é básico para qualquer Arquiteto de Software experiente.  Bruno falou bastante sobre filas, sharding, Cache, Proxy reverso, otimização de queries e sobre rodar processos em background. Acho que a palestra dele foi válida pois qualquer um hoje em dia que aprende tecnologias como Rails sai fazendo aplicações sem um conhecimento mínimo de arquitetura de software. Quando as coisas não dão certo culpam a tecnologia, gerando FUDs.</p>
<p><strong>Vinicius Teles (<a href="http://improveit.com.br/">http://improveit.com.br/</a>) &#8211; Empreendorismo</strong></p>
<p>A palestra do Vinícius foi ótima para quem pretende desenvolver um produto e/ou abrir seu próprio negócio. Ele abordou pontos como Fluxo de Caixa, oportunidades vastas que existem no Brasil e o impacto de pequenas decisões certas ou erradas que tomamos na nossa vida profissional.</p>
<p><strong>Obie Fernandes &#8211; <a href="http://obiefernandez.com/">http://obiefernandez.com/</a><br />
</strong></p>
<p>A palestra do Obie encerrou o evento em grande estilo, falando sobre talento, esforço e reforçando bem <a href="http://codificando.com/2009/06/07/afinal-o-que-seria-um-profissional-senior/">o que eu disse há um tempo atrás nesse blog</a>. Não adianta você saber um monte de coisas se não souber bem, se não tiver experiência com isso, treino, treino e mais treino. Você só ganha nível com tempo e treino, isso é fato.</p>
<p>Pra finalizar, gostaria de parabenizar ao <a href="http://akitaonrails.com">Fabio Akita</a> e a <a href="http://www.locaweb.com.br">Locaweb</a> pelo excelente evento mais uma vez.</p>
<p>E ano que vem tem mais.
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/10/rails-summit-2009-resumo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Melhoria Contínua começa em nós</title>
		<link>http://codificando.com/2009/08/melhoria-continua-comeca-em-nos/</link>
		<comments>http://codificando.com/2009/08/melhoria-continua-comeca-em-nos/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 16:24:30 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[ensino]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[pensamentos]]></category>
		<category><![CDATA[reflexao]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=190</guid>
		<description><![CDATA[Nos últimos tempos tenho me interessado bastante sobre alguns pontos que considero fundamentais em agilidade e sustentabilidade de um projeto e/ou de uma empresa. Um desses pontos, acredito que seja a melhoria contínua (e.g. kaizen e hansei). Muitas empresas tem &#8230; <a href="http://codificando.com/2009/08/melhoria-continua-comeca-em-nos/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nos últimos tempos tenho me interessado bastante sobre alguns pontos que considero fundamentais em agilidade e sustentabilidade de um projeto e/ou de uma empresa. Um desses pontos, acredito que seja a melhoria contínua (e.g. <a href="http://pt.wikipedia.org/wiki/Kaizen" target="_blank">kaizen</a> e <a href="http://en.wikipedia.org/wiki/Hansei" target="_blank">hansei</a>). Muitas empresas tem buscado isso de diversas formas (muito interessantes por sinal), mas eu acredito fortemente que a melhoria contínua começa em nós, profissionais da área em questão. Sem que nós estejamos comprometidos em melhorar continuamente como profissionais e como pessoas,  melhoria contínua (e.g. <a href="http://pt.wikipedia.org/wiki/Kaizen" target="_blank"> </a><a href="http://pt.wikipedia.org/wiki/Kaizen" target="_blank">kaizen</a> e <a href="http://en.wikipedia.org/wiki/Hansei" target="_blank">hansei</a>) pode acabar se tornando uma espécie de <a href="http://pt.wikipedia.org/wiki/Utopia">utopia</a>, pois se as pessoas não melhoram, não tem como a empresa melhorar.</p>
<p>Sobre a melhoria contínua, vou focar aqui nos aspectos (1) <strong>errar</strong> e (2) <strong>compromisso com a mudança</strong>.</p>
<h3><strong>Errar</strong><img class="alignright size-medium wp-image-195" title="tela_azul" src="http://codificando.com/wp-content/uploads/2009/08/tela_azul-300x207.jpg" alt="tela_azul" width="300" height="207" /></h3>
<p>O erro sempre foi um tabu nas empresas. Errar sempre foi considerado sinônimo de fraqueza ou incapacidade. No modelo que estavamos acostumado a trabalhar, erros geralmente eram punidos com severas advertências, demissões e/ou humilhações. No modelo em que estamos tentando trabalhar, os erros devem ser vistos como oportunidade para crescermos e melhorarmos como indivíduo e como profissional. Dessa forma, errar faz parte do processo, já que inevitavelmente erraremos algumas vezes ao longo da jornada.</p>
<h3><strong>Compromisso com a mudança</strong></h3>
<p>Quando pensamos em compromisso com a mudança no nível da empresa, talvez seja mais fácil, mas quando pensamos para o nível pessoal, complica um pouco. Mudar manias, paradigmas pessoais e outras coisas mais, geralmente é um processo bemmmm complicado. Porém, essa é a oportunidade que temos para aplicar na prática o que aprendemos com os nossos erros.</p>
<p>O compromisso em melhorar é fundamental para que haja resultados práticos. Errar e não melhorar, repetindo os mesmos erros, faz com que de nada tenha servido a oportunidade de reflexão.</p>
<h3>Nosso papel quando os outros erram</h3>
<p>Quando um colega seu errar, ajude. Criticar, humilhar, querer ver o mau dessa pessoa, de nada ajudará. Isso só fará com que você esteja piorando como profissional e como pessoa. Se for possível, ajude, se não for, torça para que essa pessoa consiga usar seu erro como uma oportunidade de melhoria. E não se esqueça: você também erra e vai continuar errando.</p>
<h3>Testemunho pessoal</h3>
<p>Recentemente, tive a infelicidade de cometer um erro. Foi um pequeno erro, mas que aconteceu e então isso me entristeceu bastante. No momento em que percebi essa falha, tratei de resolver o que precisava ser resolvido de forma mais urgente e deixei a reflexão para o primeiro momento oportuno.</p>
<p>Passado pouquíssimos dias, fiz uma profunda reflexão sobre a falha para que ela não viesse a ocorrer novamente. Dessa forma, além de melhorar como pessoa, acredito ter melhorado como profissional.</p>
<p>Talvez você pense: mas assumir assim um erro? Não tem vergonha disso não?</p>
<p>Digo com toda naturalidade: NÃO!!!</p>
<p>Quem erra é porque está evoluindo, quem erra é porque tenta alguma coisa, quem erra é porque pensa, quem erra é porque raciocina &#8230; quem erra, é porque está vivo. A diferença está em aproveitar isso como oportunidade.</p>
<h3>Conclusão</h3>
<p>Eu erro, você erra. Logo, nós erramos. Portanto, a melhoria contínua começa em nós!!!</p>
<h3>Referências:</h3>
<p>[1] <a href="http://visaoagil.wordpress.com/2009/01/06/melhoria-continua-e-efetiva-atraves-do-hansei-e-kaizen/" target="_blank">http://visaoagil.wordpress.com/2009/01/06/melhoria-continua-e-efetiva-atraves-do-hansei-e-kaizen/</a></p>
<p>[2] <a href="http://www.slideshare.net/Comunidade_Lean_Thinking/melhoria-contnua" target="_blank">http://www.slideshare.net/Comunidade_Lean_Thinking/melhoria-contnua</a></p>
<p>[3] <a href="http://en.wikipedia.org/wiki/5_Whys" target="_blank">http://en.wikipedia.org/wiki/5_Whys</a></p>
<p>[4] <a href="http://pt.wikipedia.org/wiki/Kaizen" target="_blank">http://pt.wikipedia.org/wiki/Kaizen</a></p>
<p>[5] <a href="http://en.wikipedia.org/wiki/Hansei" target="_blank">http://en.wikipedia.org/wiki/Hansei</a>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/08/melhoria-continua-comeca-em-nos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
