<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
  <title>Area Criações - Web e Design - Home</title>
  <id>tag:blog.areacriacoes.com.br,2009:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  
  <link href="http://blog.areacriacoes.com.br/" rel="alternate" type="text/html" />
  <updated>2009-11-06T14:40:18Z</updated>
  <link rel="self" href="http://feeds.feedburner.com/AreaCriaes-WebEDesign-Home" type="application/atom+xml" /><feedburner:emailServiceId>AreaCriaes-WebEDesign-Home</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-11-06:1501</id>
    <published>2009-11-06T14:31:00Z</published>
    <updated>2009-11-06T14:40:18Z</updated>
    <category term="classe" />
    <category term="object model" />
    <category term="oop" />
    <category term="ruby" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/JAF9JuEfKuE/m-todos-de-classe-n-o-s-o-m-todos-est-ticos-e-como-tirar-proveito-disto" rel="alternate" type="text/html" />
    <title>Métodos de classe não são métodos estáticos, e como tirar proveito disto</title>
<summary type="html">&lt;p&gt;Quando trabalhamos com &lt;span class="caps"&gt;OOP&lt;/span&gt; a divisão do código é bem clara. Classes definem um Objeto que possui
atributos e comportamentos, comportamento é representado por métodos. Em Ruby tudo segue esta linha
sem exceções (blocos não se encaixam perfeitamente assim).&lt;/p&gt;


	&lt;p&gt;Mas também é comum por exemplo situações onde talvez um método não precise estar associado a um objeto. Ou seja, não faz muito sentido precisar instanciar um objeto desta classe para poder acessar estes métodos.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Quando trabalhamos com &lt;span class="caps"&gt;OOP&lt;/span&gt; a divisão do código é bem clara. Classes definem um Objeto que possui
atributos e comportamentos, comportamento é representado por métodos. Em Ruby tudo segue esta linha
sem exceções (blocos não se encaixam perfeitamente assim).&lt;/p&gt;


	&lt;p&gt;Mas também é comum por exemplo situações onde talvez um método não precise estar associado a um objeto. Ou seja, não faz muito sentido precisar instanciar um objeto desta classe para poder acessar estes métodos.&lt;/p&gt;
&lt;p&gt;Quando trabalhamos com &lt;span class="caps"&gt;OOP&lt;/span&gt; a divisão do código é bem clara. Classes definem um Objeto que possui atributos e comportamentos, comportamento é representado por métodos. Em Ruby tudo segue esta linha sem exceções (blocos não se encaixam perfeitamente assim).&lt;/p&gt;


	&lt;p&gt;Mas também é comum por exemplo situações onde talvez um método não precise estar associado a um objeto. Ou seja, não faz muito sentido precisar instanciar um objeto desta classe para poder acessar estes métodos.&lt;/p&gt;


	&lt;p&gt;Esta capacidade é conhecida de outras linguagens como classes estáticas ou métodos estáticos. Em Ruby
não temos isto, temos apenas métodos de classe e métodos de instância. Mas o curioso que mesmo os métodos
de classe são métodos de instância mas da classe em si.&lt;/p&gt;


	&lt;p&gt;Por exemplo:&lt;/p&gt;


&lt;pre&gt;
class Utilities

    def    self.resize_images(images=[])
        ...
    end

end
&lt;/pre&gt;

	&lt;h2&gt;Entendendo o que é um método de classe&lt;/h2&gt;


	&lt;p&gt;Acima temos um método resize_images que é criado em Utilities. O self no momento da definição do método é Utilities, por este motivo seria o mesmo que definir o método assim &lt;strong&gt;def Utilities.resize_images&lt;/strong&gt; . 
Como método foi criado em Utilities, você poderá acessa-lo como Utilities.resize_images sem a necessidade de enviar um .new para Utilities.&lt;/p&gt;


	&lt;p&gt;Uma pequena curiosidade é que as próprias definições de classe em Ruby são objetos, então 
Utilities (que é uma constante) também é um objeto, e estes objetos possuem como Metaclasse Class. Então por este motivo o que se assemelha a métodos estáticos de linguagens como Java ou &lt;span class="caps"&gt;AS3&lt;/span&gt; é nada mais do que um método criado no objeto Utilities que é uma instância de Class armazenada em uma constante chamada Utilities.&lt;/p&gt;


	&lt;p&gt;Por exemplo, pelo &lt;span class="caps"&gt;IRB&lt;/span&gt; crie uma nova classe assim &lt;pre&gt;class Carro ; end&lt;/pre&gt; e depois execute Object.constants.sort e você vera que agora Object também possui uma constante chamada Carro.&lt;/p&gt;


	&lt;p&gt;Agora que entendemos como funcionam os métodos de classe, existem outras formas de criar métodos de classe que é através da abertura da metaclasse, por exemplo:&lt;/p&gt;


&lt;pre&gt;
class Utilities

    def    self.resize_images(images=[])
        ...
    end

    def    self.rename_images(images=[])
        ...
    end
end
&lt;/pre&gt;

	&lt;p&gt;Seria o mesmo que:&lt;/p&gt;


&lt;pre&gt;
class Utilities

    class &amp;lt;&amp;lt; self
        def    resize_images(images=[])
            ...
        end

        def    rename_images(images=[])
            ...
        end
    end
end
&lt;/pre&gt;

	&lt;p&gt;Você poderia também abrir a classe Utilities com instance_eval para adicionar métodos de classe nela, ou utilizar um módulo chamando-o com extend. Não vou entrar nestes detalhes para não me prolongar de mais.&lt;/p&gt;


	&lt;h3&gt;Formas de empacotar seus métodos&lt;/h3&gt;


	&lt;p&gt;Também não é incomun casos onde você tenha uma classe apenas com métodos de classe, o que é o caso da Utilities. Criando uma classe assim estariámos modularizando o nosso código, mas o que muita gente diria que é melhor criar um módulo ao invés de uma classe e estender as classes com o módulo Utilities. Também seria uma boa opção.&lt;/p&gt;


	&lt;p&gt;Mas talvez existem casos onde você não deseja ter que abrir a classe e extende-la apenas para ter acesso ao um método, então uma outra forma de modularizar seu código é através de um método pouco conhecido. Como módulos são classes que não podem ser instanciadas você não poderia fazer algo como abaixo:&lt;/p&gt;


&lt;pre&gt;
module Utilities
    def    resize_images(images=[])
        ...
    end

    def    rename_images(images=[])
        ...
    end
end

Utilities.resize_images
Utilities.rename_images
&lt;/pre&gt;

	&lt;p&gt;Mas você poderia utilizar um module_function para permitir que estes métodos se tornem métodos acessíveis como métodos de classe. Como abaixo:&lt;/p&gt;


&lt;pre&gt;
module Utilities
    module_function

    def    resize_images(images=[])
        ...
    end

    def    rename_images(images=[])
        ...
    end
end
&lt;/pre&gt;

	&lt;p&gt;E agora você poderá chamar os métodos em qualquer lugar, desta forma:&lt;/p&gt;


&lt;pre&gt;
Utilities.resize_images
Utilities.rename_images
&lt;/pre&gt;

	&lt;p&gt;Então se você possui uma classe que tem apenas métodos de classe, não possui atributos ou acessors talvez seja interessante pensar nesta solução. Acaba sendo um pouco fora da idéia convencional de &lt;span class="caps"&gt;OOP&lt;/span&gt;, mas se pensarmos a fundo veremos que módulos são nada mais que classes que não podem ser instanciadas e já que não precisamos instanciar Utilities este método se encaixa bem.&lt;/p&gt;


	&lt;p&gt;Uma outra forma de ter o mesmo resultado seria estendendo o módulo com ele mesmo através de &lt;strong&gt;extend self&lt;/strong&gt; , mas para explicar todas as formas e o que está por trás seria necessário um livro sobre Ruby object model e metaprogramação.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=JAF9JuEfKuE:7-RHrEOs2Hg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=JAF9JuEfKuE:7-RHrEOs2Hg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=JAF9JuEfKuE:7-RHrEOs2Hg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=JAF9JuEfKuE:7-RHrEOs2Hg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=JAF9JuEfKuE:7-RHrEOs2Hg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=JAF9JuEfKuE:7-RHrEOs2Hg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=JAF9JuEfKuE:7-RHrEOs2Hg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=JAF9JuEfKuE:7-RHrEOs2Hg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/11/6/m-todos-de-classe-n-o-s-o-m-todos-est-ticos-e-como-tirar-proveito-disto</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-29:1492</id>
    <published>2009-10-29T13:35:00Z</published>
    <updated>2009-10-29T13:35:26Z</updated>
    <category term="Ruby e Rails" />
    <category term="bash" />
    <category term="ruby" />
    <category term="shell" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/NHw5_dHCl8Q/ruby-para-automatiza-o-di-ria" rel="alternate" type="text/html" />
    <title>Ruby para automatização diária</title>
<summary type="html">&lt;p&gt;Para nós que utilizamos sistemas Unix temos várias formas de automatizar tarefas repetitivas, principalmente que os que utilizam Mac Os. Integrado ao OsX temos ferramentas como o Automator que permitem a criação de fluxos de trabalho e que são bem simples de serem criados, também é possível customizar e criar várias novas tarefas e fluxos para o OsX através de AppleScript.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Para nós que utilizamos sistemas Unix temos várias formas de automatizar tarefas repetitivas, principalmente que os que utilizam Mac Os. Integrado ao OsX temos ferramentas como o Automator que permitem a criação de fluxos de trabalho e que são bem simples de serem criados, também é possível customizar e criar várias novas tarefas e fluxos para o OsX através de AppleScript.&lt;/p&gt;
&lt;p&gt;Para nós que utilizamos sistemas Unix temos várias formas de automatizar tarefas repetitivas, principalmente que os que utilizam Mac Os. Integrado ao OsX temos ferramentas como o Automator que permitem a criação de fluxos de trabalho e que são bem simples de serem criados, também é possível customizar e criar várias novas tarefas e fluxos para o OsX através de AppleScript.&lt;/p&gt;


	&lt;p&gt;Para quem utiliza muito terminal, ou precisa executar tarefas administrativas também é possivel utilizar ShellScript para criar automatizações.&lt;/p&gt;


	&lt;p&gt;Todas estas ferramentas são muito interessantes, mas tem um pequeno porém. As vezes fluxos mais complexos no Automator são bem chatos de serem criados e considero Apple Script e Shell Script linguagens bem feias, grandes e improdutivas. Então nada melhor do que usar Ruby para estas situações.&lt;/p&gt;


	&lt;p&gt;O que eu normalmente faço é criar uma pasta bin dentro da pasta do meu usuário. Dentro desta pasta bin eu coloco todos os arquivos de configuração do terminal bash ( não vou entra em detalhes sobre como dividir os arquivos de configuração pois já foi bem explicado no Peepcode &lt;a href="https://peepcode.com/products/advanced-command-line"&gt;aqui&lt;/a&gt;) e também uma série de arquivos ruby que serão executáveis. Basta adicionar esta pasta bin ao seu path do terminal e você terá seus mini-aplicativos ruby acessiveis independente de qual diretório estiver.&lt;/p&gt;


	&lt;p&gt;Crie uma pasta bin e dentro do seu arquivo .bashrc acrescente ao final a pasta bin (normalmente como abaixo):&lt;/p&gt;


&lt;pre&gt;export PATH=/opt/local/bin:/opt/local/sbin:${PATH}:/usr/local/mysql/bin:~/bin&lt;/pre&gt;

	&lt;p&gt;Agora basta você criar o seus scripts ruby sempre se lembrando de não colocar a extensão .rb e de acrescentar o comentário com bang para tornar o arquivo executável (normalmente assim #!/usr/bin/env ruby no OsX).&lt;/p&gt;


	&lt;p&gt;Seguem abaixo alguns do scripts que utilizo mais no meu dia a dia:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://gist.github.com/185602"&gt;Cria um arquivo .gitignore com entradas comuns&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://gist.github.com/217594"&gt;Redimensiona imagens e cria thumbnails&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://gist.github.com/217597"&gt;Renomeia arquivos em série&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://gist.github.com/217598"&gt;Instala a chave pública em máquinas remotas&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://gist.github.com/217599"&gt;Abre o resultado do grep no textmate&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://gist.github.com/217601"&gt;Pull de diversos diretórios diferentes&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://gist.github.com/217602"&gt;Apaga e cria repositórios locais ou remótos de uma vez no Git&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://gist.github.com/217603"&gt;Mostra alterações que você ainda não fez push para um repo Git&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://gist.github.com/217604"&gt;Reorganiza a identação de um arquivo ruby&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Também possuo alguns que não em Ruby, mas fica um pouco fora do escopo deste post. Se você possui algum script por favor compartilhe também :D (não coloquei tudo no github pois eu tenho uma série de coisas particulares dentro da pasta bin também).&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=NHw5_dHCl8Q:vmyriAG8wz4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=NHw5_dHCl8Q:vmyriAG8wz4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=NHw5_dHCl8Q:vmyriAG8wz4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=NHw5_dHCl8Q:vmyriAG8wz4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=NHw5_dHCl8Q:vmyriAG8wz4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=NHw5_dHCl8Q:vmyriAG8wz4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=NHw5_dHCl8Q:vmyriAG8wz4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=NHw5_dHCl8Q:vmyriAG8wz4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/29/ruby-para-automatiza-o-di-ria</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-26:1491</id>
    <published>2009-10-26T17:08:00Z</published>
    <updated>2009-10-27T22:18:15Z</updated>
    <category term="Ruby e Rails" />
    <category term="curso" />
    <category term="rails" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/6UZduLZT04s/curso-de-ruby-on-rails-em-novembro" rel="alternate" type="text/html" />
    <title>Curso de Ruby on Rails em Novembro</title>
<summary type="html">&lt;p&gt;Dentro de uma semana começaremos mais um curso de Ruby on Rails na e-Genial. Será o último curso do ano, que espero fechar com chave de ouro aplicando o curso da melhor forma possível.&lt;/p&gt;


	&lt;p&gt;O material do curso já está preparado e atualizado para Rails 2.3.4, além de contar com uma nova grade alinhada com as tendências atuais da comunidade Rails. Está tudo pronto para começar o curso, só falta você ;)&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Dentro de uma semana começaremos mais um curso de Ruby on Rails na e-Genial. Será o último curso do ano, que espero fechar com chave de ouro aplicando o curso da melhor forma possível.&lt;/p&gt;


	&lt;p&gt;O material do curso já está preparado e atualizado para Rails 2.3.4, além de contar com uma nova grade alinhada com as tendências atuais da comunidade Rails. Está tudo pronto para começar o curso, só falta você ;)&lt;/p&gt;
&lt;p&gt;Dentro de uma semana começaremos mais um curso de Ruby on Rails na e-Genial. Será o último curso do ano, que espero fechar com chave de ouro aplicando o curso da melhor forma possível.&lt;/p&gt;


	&lt;p&gt;O material do curso já está preparado e atualizado para Rails 2.3.4, além de contar com uma nova grade alinhada com as tendências atuais da comunidade Rails. Está tudo pronto para começar o curso, só falta você ;)&lt;/p&gt;


	&lt;h3&gt;Como funciona o curso&lt;/h3&gt;


	&lt;p&gt;Para quem não conhece os cursos da e-Genial, o que eu posso dizer é que o único curso online presencial. A estrutura do curso permite que façamos nossas aulas ao vivo, contando com recursos de chat, áudio, vídeo, slides e compartilhamento de tela (que eu uso muito). Tudo isto em tempo real e exatamente como uma sala de aula real, mas com uma vantagem, todos as aulas são gravadas. Todo o código criado durante o curso ao vivo é enviado junto com as gravações das aulas.&lt;/p&gt;


	&lt;p&gt;Os alunos que não podem acompanhar as aulas ao vivo assistem as gravações, e todos podem tirar dúvidas no grupo de discussões fechado para a turma do curso. Eu pessoalmente me preocupo muito com o grupo e tento responder todas as perguntas, sem exceção.&lt;/p&gt;


	&lt;p&gt;O curso também conta com um excelente material teórico, exclusivo e atualizado por nós instrutores. No total são 21 apostilas, disponibilizadas gradualmente, garantindo o ensino de forma simples.&lt;/p&gt;


	&lt;h3&gt;A minha responsabilidade e benefícios que tenho&lt;/h3&gt;


	&lt;p&gt;Está fazendo dois anos que trabalho em parceria com a e-Genial, uma parceria que me orgulho, principalmente por causa da equipe da e-Genial (que é fantástica) e da liberdade que me dão para conduzir as turmas da forma que considero melhor. Já ministrei treinamentos de Flex e atualmente estou voltado apenas para o Rails.&lt;/p&gt;


	&lt;p&gt;Não considero estes cursos com uma coisa simples, é importante que todos os alunos que estiverem interessados em aprender a tecnologia saiam do curso com a visão correta da comunidade e prontos para continuar seu aprendizado no caminho certo.&lt;/p&gt;


	&lt;p&gt;Em nenhuma outra forma de treinamento seria possível ensinar a mais de 50 alunos por turma, então a responsabilidade é bem maior. Já que como desenvolvedor Rails também não vou querer povoar a comunidade com profissionais ruins, caso contrário o meu trabalho será prejudicado a longo prazo.&lt;/p&gt;


	&lt;p&gt;E um benefício incrível que tenho com o curso é que ele cria um meio para trocar experiências com dezenas de pessoas diferentes com problemas diferentes e ainda participar das soluções. Por este motivo tento responder todas as dúvidas da lista de discussão e sempre fico alguns minutos no final de cada aula trocando experiências com o pessoal.&lt;/p&gt;


	&lt;p&gt;Por estes motivos eu garanto sempre fazer o meu melhor para ministrar os cursos.&lt;/p&gt;


	&lt;h3&gt;Veja a nova grade abaixo:&lt;/h3&gt;


	&lt;p&gt;Aula 1 – Introdução ao Ruby / Instalação / Linguagem 1
Aula 2 – Linguagem 2
Aula 3 – Linguagem 3 / Futuro
Aula 4 – Começando com Rails 2.3.4
Aula 5 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: MVC, Banco de Dados e Console
Aula 6 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Scaffold e Validações
Aula 7 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Relacionamento entre Models PI
Aula 8 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Relacionamento entre Models &lt;span class="caps"&gt;PII&lt;/span&gt;
Aula 9 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Relacionamento entre Models &lt;span class="caps"&gt;PIII&lt;/span&gt;
Aula 10 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Composições, Filtros e Callbacks Aula 11 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Entendendo &lt;span class="caps"&gt;REST&lt;/span&gt; e aprofundando em Rotas
Aula 12 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Internacionalização
Aula 13 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Upload com Paperclip
Aula 14 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Authlogic e Autenticação &lt;span class="caps"&gt;HTTP&lt;/span&gt;
Aula 15 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Enviando Emails e Ajax P. I
Aula 16 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Ajax P. II
Aula 17 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Testes
Aula 18 – Depuração, Segurança
Aula 19 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Cache e preparação para deploy
Aula 20 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Deploy ( Capistrano e outros )
Aula 21 – &lt;span class="caps"&gt;CRM&lt;/span&gt;: Fechamento do curso&lt;/p&gt;


	&lt;p&gt;Para ver o conteúdo detalhado visite: &lt;a href="http://www.egenial.com.br/cursorails/grade"&gt;http://www.egenial.com.br/cursorails/grade&lt;/a&gt;&lt;/p&gt;


	&lt;h3&gt;Está em dúvida?&lt;/h3&gt;


	&lt;p&gt;Se você ainda está em dúvida se deve ou não estudar uma nova linguagem como o Ruby, ou dedicar tempo para um curso, então leia este &lt;a href="http://blog.areacriacoes.com.br/2009/10/8/curso-de-rails-devo-come-ar-a-estudar-rails"&gt;post&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Espero encontrar com você lá :D&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=6UZduLZT04s:XQibGRNe-Fo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=6UZduLZT04s:XQibGRNe-Fo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=6UZduLZT04s:XQibGRNe-Fo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=6UZduLZT04s:XQibGRNe-Fo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=6UZduLZT04s:XQibGRNe-Fo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=6UZduLZT04s:XQibGRNe-Fo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=6UZduLZT04s:XQibGRNe-Fo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=6UZduLZT04s:XQibGRNe-Fo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/26/curso-de-ruby-on-rails-em-novembro</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-24:1490</id>
    <published>2009-10-24T14:32:00Z</published>
    <updated>2009-10-24T14:48:07Z</updated>
    <category term="Ruby e Rails" />
    <category term="eventos" />
    <category term="palestra" />
    <category term="rails" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/jC7EBsZMdnE/lingu-gil-2009-misturando-linguagens-e-agilidade" rel="alternate" type="text/html" />
    <title>LinguÁgil 2009 - Misturando Linguagens e Agilidade</title>
<summary type="html">&lt;p&gt;&lt;img src="http://sites.google.com/site/linguagil2009/_/rsrc/1256307063141/config/app/images/customLogo/customLogo.gif?revision=12" alt=""&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;&lt;img src="http://sites.google.com/site/linguagil2009/_/rsrc/1256307063141/config/app/images/customLogo/customLogo.gif?revision=12" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://sites.google.com/site/linguagil2009/_/rsrc/1256307063141/config/app/images/customLogo/customLogo.gif?revision=12" alt=""&gt;&lt;/p&gt;


	&lt;p&gt;Diante da extensa gama de tecnologias e metodologias que existem para desenvolvimento web/desktop é mais do que válido eventos que reunam várias desenvolvedores especialistas em áreas diferentes. E assim será o evento LinguÁgil 2009 – Misturando Linguagens e Agilidade.&lt;/p&gt;


	&lt;p&gt;Os grupos AgileBahia, JavaBahia, PHPBahia e RailsBahia realizarão em Salvador este evento, que tem um formato muito interessante, que faz parte da &lt;span class="caps"&gt;XII&lt;/span&gt; Semana de Informática da Unime. Inédito na Bahia, o evento reune algumas das principais comunidades de TI, buscando estimular aprendizado e discussões em torno de linguagens de programação e metodologias ágeis.&lt;/p&gt;


	&lt;p&gt;Vou participar do evento palestrando sobre introdução ao Rails/Ruby e seu eco-sistema voltado para excelência e produtividade. Também vou aplicar um mini-curso introdutório ao Rails, este framework mágico que desencadeou uma série de boas práticas e hoje é copiado por quase todos os demais frameworks.&lt;/p&gt;


	&lt;p&gt;Pessoalmente acho que será um evento muito interessante, principalmente por contar com a presença de profissionais que trabalham com tecnologias que atualmente não utilizo. Tenho certeza que irei aprender muito e também espero poder passar um pouco também.&lt;/p&gt;


	&lt;h3&gt;Informações do evento&lt;/h3&gt;


	&lt;p&gt;Local:&lt;/p&gt;


	&lt;p&gt;Unime – Lauro de Freitas – Bahia&lt;/p&gt;


	&lt;p&gt;Palestrantes/instrutores&lt;/p&gt;


	&lt;p&gt;Alberto “Spock” Lemos (Globalcode), Alexandre Gomes (SEA Tecnologia), Dairton Bassi (Neurobox), Daniel Lopes (Área Criações), Felipe Ribeiro (UFCG), Felipe Rodrigues (Fratech), Henrique Landim (Partner Process) e outros&lt;/p&gt;


	&lt;p&gt;Palestras &lt;span class="caps"&gt;GRATUITAS&lt;/span&gt; (14/11)&lt;/p&gt;


	&lt;p&gt;Agile, Manifesto 2.0, Ruby On Rails, &lt;span class="caps"&gt;PHP&lt;/span&gt;/Frameworks, &lt;span class="caps"&gt;JSF 2&lt;/span&gt;.0/Scrum Toys, Linguagens para a &lt;span class="caps"&gt;JVM&lt;/span&gt;, Pentaho&lt;/p&gt;


	&lt;p&gt;Oficinas/Coding-Dojo (12 e 13/11)&lt;/p&gt;


	&lt;p&gt;Coding-Dojo Agile, Java/Web com Demoiselle, Integração Contínua/Maven (a confirmar), Python (a confirmar)&lt;/p&gt;


	&lt;p&gt;Mini-cursos (R$ 60 a R$ 120)&lt;/p&gt;


	&lt;p&gt;12/11 – Métodos Ágeis, &lt;span class="caps"&gt;JSF&lt;/span&gt;, Portlets com Liferay, &lt;span class="caps"&gt;TDD&lt;/span&gt;/Java, Ruby
13/11 – XP, Scrum, Pentaho, &lt;span class="caps"&gt;PHP&lt;/span&gt;/TDD, Rails&lt;/p&gt;


	&lt;p&gt;Inscrições:&lt;/p&gt;


	&lt;p&gt;Com desconto até 05/11
Preços promocionais para estudantes e membros do AgileBahia / JavaBahia / PHPBahia / RailsBahia&lt;/p&gt;


	&lt;p&gt;Programação detalhada, inscrições e mais informações em &lt;a href="http://www.linguagil.com.br/"&gt;www.linguagil.com.br&lt;/a&gt;&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jC7EBsZMdnE:EOvcRb1uoLs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jC7EBsZMdnE:EOvcRb1uoLs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=jC7EBsZMdnE:EOvcRb1uoLs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jC7EBsZMdnE:EOvcRb1uoLs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=jC7EBsZMdnE:EOvcRb1uoLs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jC7EBsZMdnE:EOvcRb1uoLs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jC7EBsZMdnE:EOvcRb1uoLs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jC7EBsZMdnE:EOvcRb1uoLs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/24/lingu-gil-2009-misturando-linguagens-e-agilidade</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Tânia Azze</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-22:1488</id>
    <published>2009-10-22T14:52:00Z</published>
    <updated>2009-10-22T14:53:44Z</updated>
    <category term="magnus" />
    <category term="muhr" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/jF82X-UFtmo/magnus-muhr-e-seu-ensaio-fotogr-fico-com-moscas-mortas" rel="alternate" type="text/html" />
    <title>Magnus Muhr e seu ensaio fotográfico com moscas mortas.</title>
<summary type="html">&lt;p&gt;O fot&amp;oacute;grafo sueco &lt;a href="http://www.fotosidan.se/gallery/view.htm?ID=230148"&gt;  Magnus Muhr &lt;/a&gt; montou um ensaio fotogr&amp;aacute;fico cheio de humor com moscas mortas. Ficou super legal!&lt;/p&gt;


&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem23.png"&gt;
&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;O fot&amp;oacute;grafo sueco &lt;a href="http://www.fotosidan.se/gallery/view.htm?ID=230148"&gt;  Magnus Muhr &lt;/a&gt; montou um ensaio fotogr&amp;aacute;fico cheio de humor com moscas mortas. Ficou super legal!&lt;/p&gt;


&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem23.png"&gt;
&lt;/p&gt;
&lt;p&gt;O fot&amp;oacute;grafo sueco &lt;a href="http://www.fotosidan.se/gallery/view.htm?ID=230148"&gt;  Magnus Muhr &lt;/a&gt; montou um ensaio fotogr&amp;aacute;fico cheio de humor com moscas mortas. Ficou super legal!&lt;/p&gt;


&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem23.png"&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem18.png"&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem20.png"&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem19.png"&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem21.png"&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem17.png"&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem15.png"&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem14.png"&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/22/Imagem13.png"&gt;
&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jF82X-UFtmo:WNrB_UjqzDQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jF82X-UFtmo:WNrB_UjqzDQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=jF82X-UFtmo:WNrB_UjqzDQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jF82X-UFtmo:WNrB_UjqzDQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=jF82X-UFtmo:WNrB_UjqzDQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jF82X-UFtmo:WNrB_UjqzDQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jF82X-UFtmo:WNrB_UjqzDQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=jF82X-UFtmo:WNrB_UjqzDQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/22/magnus-muhr-e-seu-ensaio-fotogr-fico-com-moscas-mortas</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Tânia Azze</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-19:1487</id>
    <published>2009-10-19T18:44:00Z</published>
    <updated>2009-10-19T19:29:01Z</updated>
    <category term="Design" />
    <category term="variados" />
    <category term="scattered pixel" />
    <category term="visual system" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/PRb4aTACVgk/exposi-o-scattered-pixel" rel="alternate" type="text/html" />
    <title>Exposição Scattered Pixel</title>
<content type="html">
            &lt;p&gt;Formada em 2007, o &lt;a href="http://www.adigitalexperience.com/"&gt;Visual System&lt;/a&gt; é um grupo de artistas cujas obras redefinem o papel da mídia digital em um ambiente futurista urbano. A exposição &lt;a href="http://www.scattered-pixels.com/"&gt;Scattered Pixel&lt;/a&gt;, que está em Nova York, é composta por três instalações interativas que foram criadas pelos artistas: Oliver Pasquet, Djeff Regottaz, Bastien Ribeiro e Valere Terrier. Elas revalam como as obras digitais contemporâneas submergem o espectador em um conglomerado de interatividade. Música de Oliver Pasquet.&lt;/p&gt;


&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/19/Imagem4.png" /&gt;&lt;p /&gt;

&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/19/Imagem5.png" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/19/Imagem3.png" /&gt;&lt;p /&gt;

&lt;p&gt;Veja o vídeo:&lt;p /&gt;

&amp;lt;object height="225" width="400"&gt;&amp;lt;param&gt;&amp;lt;object height="225" width="400"&gt;&amp;lt;param /&gt;&amp;lt;param /&gt;&amp;lt;param /&gt;&amp;lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=7071410&amp;amp;amp;server=vimeo.com&amp;amp;amp;show_title=1&amp;amp;amp;show_byline=1&amp;amp;amp;show_portrait=0&amp;amp;amp;color=&amp;amp;amp;fullscreen=1" height="225" width="400"&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/7071410"&gt;&lt;span class="caps"&gt;SCATTERED PIXEL&lt;/span&gt;&lt;/a&gt; from &lt;a href="http://vimeo.com/vsteam"&gt;VS Team&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=PRb4aTACVgk:hXcTjGRN__Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=PRb4aTACVgk:hXcTjGRN__Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=PRb4aTACVgk:hXcTjGRN__Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=PRb4aTACVgk:hXcTjGRN__Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=PRb4aTACVgk:hXcTjGRN__Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=PRb4aTACVgk:hXcTjGRN__Y:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=PRb4aTACVgk:hXcTjGRN__Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=PRb4aTACVgk:hXcTjGRN__Y:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/19/exposi-o-scattered-pixel</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-17:1484</id>
    <published>2009-10-17T04:29:00Z</published>
    <updated>2009-10-17T04:39:15Z</updated>
    <category term="Projetos" />
    <category term="area criações" />
    <category term="design" />
    <category term="novo site" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/3fXYJl6OaV0/nosso-novo-website-online" rel="alternate" type="text/html" />
    <title>Nosso novo website online</title>
<content type="html">
            &lt;p&gt;Colocamos hoje o novo website do escritório. Durante bastante já estávamos insatisfeitos com design anterior, e também com a identidade visual da empresa. Então resolvemos fazer uma renovação geral, criando nova logomarca, novo layout para o site e também material impresso.&lt;/p&gt;


	&lt;p&gt;E durante o tempo que utilizamos o site anterior, reparamos que poucas pessoas liam as páginas de serviços e quem somos, então resolvemos criar o novo website com apenas as seções que são realmente cruciais. O resultado foi um site com atualmente apenas duas páginas, focado no portfólio e formas de contato.&lt;/p&gt;


	&lt;p&gt;O design do novo site já estava pronto á alguns dias, mas estava faltando um tempo para confecção do &lt;span class="caps"&gt;XHTML&lt;/span&gt; e dos templates Rails. Então resolvi aproveitar minha viagem ao Rails Summit para criar tudo isto nos horários no avião, no hotel e em alguns momentos menos interessantes do evento.&lt;/p&gt;


	&lt;p&gt;O próximo passo será aplicar a mesma identidade visual do site atual também no blog. Esperamos que gostem, e para acessar o site basta visitar: &lt;a href="http://www.areacriacoes.com.br/"&gt;www.areacriacoes.com.br&lt;/a&gt;&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=3fXYJl6OaV0:4iOQVXSjrbE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=3fXYJl6OaV0:4iOQVXSjrbE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=3fXYJl6OaV0:4iOQVXSjrbE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=3fXYJl6OaV0:4iOQVXSjrbE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=3fXYJl6OaV0:4iOQVXSjrbE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=3fXYJl6OaV0:4iOQVXSjrbE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=3fXYJl6OaV0:4iOQVXSjrbE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=3fXYJl6OaV0:4iOQVXSjrbE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/17/nosso-novo-website-online</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-15:1481</id>
    <published>2009-10-15T15:40:00Z</published>
    <updated>2009-10-15T15:52:30Z</updated>
    <category term="Ruby e Rails" />
    <category term="rails" />
    <category term="ruby" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/esOMZWxDXls/rails-summit" rel="alternate" type="text/html" />
    <title>Rails Summit</title>
<summary type="html">&lt;p&gt;O inicio desta semana foi dedicado a participar do Rails Summit e a primeira coisa que posso dizer é que foi um evento fantástico. Exitei em ir ao evento por várias vezes mas acabei decidindo que iria valer a pena. E agora vejo que não me arrependo nem um pouco.&lt;/p&gt;


	&lt;p&gt;Um grande evento, com uma organização excelente e sem nenhuma falha. Algumas pessoas vão tentar discordar da minha opinão dizendo
que no primeiro dia houveram falhas com microfone, que de fato ocorreram, mas eu não considero isto falhas reais já que em momento
algum prejudicaram o andamento das palestras ou aprendizado.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Obs: A e-Genial também liberou 10 bolsas para o meu próximo curso que foram sorteadas ao final do evento, e para confirmar o resultado do sorteio enviei um email para cada um dos sorteados mas dois deles voltaram. Então se você foi sorteado e recebeu o email responda-o, caso não tenha recebido entre em contato comigo (daniel v lopes at areacriacoes ponto com ponto br)&lt;/strong&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;O inicio desta semana foi dedicado a participar do Rails Summit e a primeira coisa que posso dizer é que foi um evento fantástico. Exitei em ir ao evento por várias vezes mas acabei decidindo que iria valer a pena. E agora vejo que não me arrependo nem um pouco.&lt;/p&gt;


	&lt;p&gt;Um grande evento, com uma organização excelente e sem nenhuma falha. Algumas pessoas vão tentar discordar da minha opinão dizendo
que no primeiro dia houveram falhas com microfone, que de fato ocorreram, mas eu não considero isto falhas reais já que em momento
algum prejudicaram o andamento das palestras ou aprendizado.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Obs: A e-Genial também liberou 10 bolsas para o meu próximo curso que foram sorteadas ao final do evento, e para confirmar o resultado do sorteio enviei um email para cada um dos sorteados mas dois deles voltaram. Então se você foi sorteado e recebeu o email responda-o, caso não tenha recebido entre em contato comigo (daniel v lopes at areacriacoes ponto com ponto br)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;O inicio desta semana foi dedicado a participar do Rails Summit e a primeira coisa que posso dizer é que foi um evento fantástico. Exitei em ir ao evento por várias vezes mas acabei decidindo que iria valer a pena. E agora vejo que não me arrependo nem um pouco.&lt;/p&gt;


	&lt;p&gt;Um grande evento, com uma organização excelente e sem nenhuma falha. Algumas pessoas vão tentar discordar da minha opinão dizendo
que no primeiro dia houveram falhas com microfone, que de fato ocorreram, mas eu não considero isto falhas reais já que em momento
algum prejudicaram o andamento das palestras ou aprendizado. Eu gostaria de parabenizar e ao mesmo tempo agradecer a esta iniciativa do Fábio Akita e também a todos os demais envolvidos, já que não tive tempo de me despedir dele e falar isto pessoalmente.&lt;/p&gt;


	&lt;p&gt;O evento começou com um excelente keynote do Chad Fowler e foi encerrado por outro excelente do Obie Fernandez. Várias palestras foram muito interessantes, entre elas a do Gregg Pollack, David Chelimsky, José Valim e Vinícius Telles. A palestra do Richard Kilmer também foi muito interessante, sobre HotCocoa e MacRuby, mas eu já tinha visto um apresentação dele muito parecida.&lt;/p&gt;


	&lt;p&gt;Acabei perdendo a palestra do Carlos Vilela por precisar sair para fazer o checkout do hotel e também perdi várias apresentações que eu gostaria de ter assistido mas foram em paralelo, então precisei escolher. Espero que as gravações seja lançadas logo.&lt;/p&gt;


	&lt;p&gt;Também aproveitei uns 5 minutinhos para dar uma prévia do que será o &lt;a href="http://www.cifrascash.com/"&gt;cifras&lt;/a&gt;. Não entrei em detalhes da implementação e nem do sistema pois já era muito tarde e o pessoal estava bem cansado.&lt;/p&gt;


	&lt;p&gt;Mas mesmo com todo o conteúdo interessante do evento, sem dúvida um dos pontos mais importantes é o networking. Para nós que trabalhamos online e conhecemos muita gente apenas pela internet, é muito interessante conhece-las pessoalmente.&lt;/p&gt;


	&lt;p&gt;Conheci muita gente bacana, e gostaria de agradecer ao Rafael Rosa (meu companheiro de quarto :) pela boa recepção, e também ao Tucaz (@tucaz) pela carona ao aeroporto.  Outra ponto bacana foi conhecer vários ex-alunos do curso da e-Genial e ver que o pessoal continua estudando Ruby.&lt;/p&gt;


	&lt;p&gt;No geral a única coisa chata é que tive que voltar um pouco antes, e perdi o coquetel e a festinha do final. Também teve muita gente que eu gostaria de ter conhecido mas não encontrei no evento ou não deu tempo, além dos demais quer eu gostaria de ter trocado uma idéia melhor mas por falta de tempo não teve jeito (Mergulhão, Julio Monteiro, George Guimarães, José Valim e etc). Mas de qualquer forma, ano que vem estarei lá novamente.&lt;/p&gt;


	&lt;p&gt;Abraço a todos que conheci e sucesso. Agora é colocar em dia os 3 que ficaram atrasados ;-)&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Obs: A e-Genial também liberou 10 bolsas para o meu próximo curso que foram sorteadas ao final do evento, e para confirmar o resultado do sorteio enviei um email para cada um dos sorteados mas dois deles voltaram. Então se você foi sorteado e recebeu o email responda-o, caso não tenha recebido nada entre em contato comigo (daniel v lopes at areacriacoes ponto com ponto br)&lt;/strong&gt;&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=esOMZWxDXls:x6VwNlIBqr4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=esOMZWxDXls:x6VwNlIBqr4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=esOMZWxDXls:x6VwNlIBqr4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=esOMZWxDXls:x6VwNlIBqr4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=esOMZWxDXls:x6VwNlIBqr4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=esOMZWxDXls:x6VwNlIBqr4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=esOMZWxDXls:x6VwNlIBqr4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=esOMZWxDXls:x6VwNlIBqr4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/15/rails-summit</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-08:1474</id>
    <published>2009-10-08T01:12:00Z</published>
    <updated>2009-10-08T02:51:17Z</updated>
    <category term="Ruby e Rails" />
    <category term="cursos" />
    <category term="e-genial" />
    <category term="rails" />
    <category term="ruby" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/eCpqS_fWtPA/curso-de-rails-devo-come-ar-a-estudar-rails" rel="alternate" type="text/html" />
    <title>Curso de Rails - devo começar a estudar Rails?</title>
<summary type="html">&lt;p&gt;Hoje mesmo conclui mais um treinamento na e-Genial, minha segunda turma de Rails. Mas já estamos com matrículas abertas para a turma de Novembro.&lt;/p&gt;


	&lt;p&gt;E como sempre recebo dúvidas sobre se devo estudar Rails, se vou conseguir empregar no meu serviço, como funciona o curso e etc. Então vou tentar responder as mais comuns neste post.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Hoje mesmo conclui mais um treinamento na e-Genial, minha segunda turma de Rails. Mas já estamos com matrículas abertas para a turma de Novembro.&lt;/p&gt;


	&lt;p&gt;E como sempre recebo dúvidas sobre se devo estudar Rails, se vou conseguir empregar no meu serviço, como funciona o curso e etc. Então vou tentar responder as mais comuns neste post.&lt;/p&gt;
&lt;p&gt;Hoje mesmo conclui mais um treinamento na e-Genial, minha segunda turma de Rails. Mas já estamos com matrículas abertas para a turma de Novembro.&lt;/p&gt;


	&lt;p&gt;E como sempre recebo dúvidas sobre se devo estudar Rails, se vou conseguir empregar no meu serviço, como funciona o curso e etc. Então vou tentar responder as mais comuns neste post.&lt;/p&gt;


	&lt;p&gt;Então vamos lá:&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Quero fazer o curso da e-Genial mas o horário das aulas não bate com o meu, vou tirar o mesmo proveito ?&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Posso garantir que sim. O curso conta com 21 aulas onde cada aula você receberá uma apostila com por volta de 15 páginas (ao final do curso você terá lido 309 pag. sobre a versão mais atual do Rails). As aulas ao vivo são uma revisão das apostilas executando o código ao vivo e com dicas práticas. Tudo é gravado e disponibilizado no dia seguinte ou no mesmo dia da aula ao vivo, para que quem não assistiu não perca nada.&lt;/p&gt;


	&lt;p&gt;Todos que participam do curso também fazem parte de um grupo de discussão, onde eu respondo todas as perguntas (não em tempo integral, mas respondo todas sem exceção), então mesmo que você não assista nenhuma aula ainda assim poderá tirar suas dúvidas.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Trabalho em uma linguagem, minha empresa desenvolve tudo com esta linguagem que atende bem. Estudar Rails e Ruby vai me ajudar como?&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Ruby é uma linguagem produtiva e otimizada para felicidade do desenvolvedor. Mesmo que por enquanto sua empresa não invista em Ruby, você poderá criar rapidamente scripts para automatizar processos como deploy dos seus projetos e backups.&lt;/p&gt;


	&lt;p&gt;Ruby e Rails também abraçam uma dezena de boas práticas, que ajudam a você entender como tornar o seu código de fácil manutenção e mais amigável.&lt;/p&gt;


	&lt;p&gt;Estudando Rails você vai se acostumar a boas práticas como analisar logs, deploy automatizado, testes automatizados, um ambiente integrado a um versionador como Git, etc. Além de aprender a pensar de uma forma simples mas eficaz em assuntos como design patterns, por exemplo &lt;span class="caps"&gt;MVC&lt;/span&gt; e &lt;span class="caps"&gt;ORM&lt;/span&gt;, que muitas se complicam sem necessidade.&lt;/p&gt;


	&lt;p&gt;Você também aprenderá como arquitetar um projeto web de forma organizada, se preocupando com as urls e como isto facilita a criação de uma &lt;span class="caps"&gt;API&lt;/span&gt; Rest.&lt;/p&gt;


	&lt;p&gt;Você também aprenderá sobre dezenas de falhas de segurança em projetos web, e aprender como se proteger delas.&lt;/p&gt;


	&lt;p&gt;Mesmo que você não vá trabalhar com Rails na sua empresa todos os dias, estes conceitos vão te ajudar no seu trabalho atual.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;No meu trabalho atual me chefe não está aberto a nenhuma linguagem nova, como introduzirei Ruby e Rails ?&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Nesta situação, você poderá estudar sozinho, sem o apoio oficial da sua empresa pagando seus estudos. Mas quando surgir aquela chance de otimizar algo na empresa que nunca sobra tempo para ser feito, você poderá fazer em algumas horas e apresentar um protótipo funcional para resolver o problema.&lt;/p&gt;


	&lt;p&gt;Comece em projetos pequenos, por exemplo vocês vão lançar um novo produto em Java ou &lt;span class="caps"&gt;PHP&lt;/span&gt;, mas precisa de um site. Então faça o site em Rails, e ele estará pronto em poucos dias.&lt;/p&gt;


	&lt;p&gt;Se mesmo apresentando resultados práticos e reais a sua empresa continuar agindo de forma não pragmática talvez seja melhor você procurar um outro emprego que vá te garantir crescimento como profissional. E emprego para bom desenvolvedor Rails é o que não falta.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Estou cursando faculdade e não tenho muita experiência, nunca criei um sistema inteiro. Rails vai me ajudar?&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Sim, definitivamente. Como o próprio criador do Rails costuma dizer, uma tela em branco é flexível mas deixa espaço para decisões ruins. Por este motivo o framework já toma diversas decisões eximindo você de cometer erros de arquitetura, mas te mostrando o caminho das pedras para uma boa estrutura (se você seguir as convenções do Rails).&lt;/p&gt;


	&lt;p&gt;Outro ponto que vai ajudar os menos experientes é a flexibilidade do Ruby através de Gems e do Rails através de plugins, que são nada mais que código de terceiros re-aproveitável. Então se você não sabe como fazer um sistema de autenticação ou upload, aprenda com quem sabe, basta aplicar e ler o código fonte destes projetos (que são todos opensource).&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Trabalho com uma linguagem que adoro, amo de paixão, e não quero programar em mais nada. Por que vou perder tempo estudando Ruby?&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Primeiro, você é sempre contratado para gerar lucros para alguma pessoal ou empresa, e não porque ama uma linguagem. E para conseguir cometer o menor número de falhas em decisões, como bom profissional que você deve tentar ser, é necessário que tenha uma caixa de ferramentas completa (&lt;a href="http://blog.areacriacoes.com.br/2009/9/18/n-o-mate-o-mosquito-com-uma-granada"&gt;como já comentamos aqui&lt;/a&gt;).&lt;/p&gt;


	&lt;p&gt;Lembre-se também que a sua linguagem mainstream hoje poderá ser o cobol de amanhã, então crie o costume de estudar.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Presto serviços de freelancer, e muitas vezes gostaria de abrir meu próprio negócio, Rails vai me ajudar ?&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Desde o inicio o Rails foi criado para otimizar o trabalho de equipes pequenas mas mantendo o qualidade do código. O próprio &lt;a href="http://basecamphq.com"&gt;Basecamp&lt;/a&gt;, sistema que originou o Rails, foi criado como um projeto paralelo em conjunto com o trabalho diário do David Hansson.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Não sei programar, posso fazer o curso ?&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Sim, pode. Mas deverá se dedicar um pouco mais. Eu recomendo alguns livros de fácil leitura assim que o grupo de discussão é aberto, então se você não sabe programar deve ler estes livros o mais rápido possível para tirar o maior proveito. Em caso de dúvidas futuras poderá usar o material gravado e teórico como referência.&lt;/p&gt;


&lt;hr /&gt;

	&lt;p&gt;Tentei responder as dúvidas que normalmente recebo do pessoal que está em dúvida se deve estudar Ruby.&lt;/p&gt;


	&lt;p&gt;Qualquer outra dúvida, por favor perguntem nos comentários&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=eCpqS_fWtPA:BFg2ZEr0zRA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=eCpqS_fWtPA:BFg2ZEr0zRA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=eCpqS_fWtPA:BFg2ZEr0zRA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=eCpqS_fWtPA:BFg2ZEr0zRA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=eCpqS_fWtPA:BFg2ZEr0zRA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=eCpqS_fWtPA:BFg2ZEr0zRA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=eCpqS_fWtPA:BFg2ZEr0zRA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=eCpqS_fWtPA:BFg2ZEr0zRA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/8/curso-de-rails-devo-come-ar-a-estudar-rails</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-07:1461</id>
    <published>2009-10-07T02:55:00Z</published>
    <updated>2009-10-07T02:55:14Z</updated>
    <category term="Ruby e Rails" />
    <category term="e-genial" />
    <category term="rails" />
    <category term="ruby" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/uOxDYTydWLE/terminando-mais-um-curso-de-rails" rel="alternate" type="text/html" />
    <title>Terminando mais um curso de Rails</title>
<content type="html">
            &lt;p&gt;Chegou ao fim mais um &lt;a href="http://www.egenial.com.br/cursorails"&gt;curso da e-Genial&lt;/a&gt; que eu ministro. Amanhã termina o curso de Rails 2.3.4– do básico ao avançado. E como sempre, foi uma experiência fantástica e mais uma vez aprendi muito com todos os meus alunos!&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/10/7/pill.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Espero que os alunos tenham tirado proveito dos recursos do curso, e que possam continuar aprendendo mais sobre Rails em sua jornada contínua de estudo, que é uma boa exigência de nossa profissão.&lt;/p&gt;


	&lt;p&gt;O meu maior objetivo com este curso de Rails, é tentar passar um pouco deste eco-sistema (Ruby, Rails, deploy, Unix, versionamento, qualidade, etc)  que melhorou drasticamente o jeito com que desenvolvo software e me manteve na área como desenvolvedor.&lt;/p&gt;


	&lt;p&gt;Acredito realmente que estudar Rails, se feito da forma correta e entendido da melhor forma, pode melhorar muito sua forma de pensar em relação ao ambiente geral do desenvolvimento web. Melhorando seu entendimento através de boas práticas aplicadas no dia-a-dia, e não apenas aquela teoria chata que é comum em cursos de faculdade.&lt;/p&gt;


	&lt;p&gt;Então, este ano treinei 88 alunos em Rails (&lt;a href="http://www.egenial.com.br/cursorails"&gt;ainda temos mais uma turma para Novembro&lt;/a&gt;), e espero que a grande maioria tenha gostado.&lt;/p&gt;


	&lt;p&gt;Gostaria que vocês, que foram meus alunos, comentassem o que acharam do Rails, do Ruby e etc. E os que já fizeram o treinamento a mais tempo, se estão trabalhando com Rails atualmente.&lt;/p&gt;


	&lt;p&gt;Abraços e muito obrigado a todos.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=uOxDYTydWLE:a41fvHIhwXI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=uOxDYTydWLE:a41fvHIhwXI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=uOxDYTydWLE:a41fvHIhwXI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=uOxDYTydWLE:a41fvHIhwXI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=uOxDYTydWLE:a41fvHIhwXI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=uOxDYTydWLE:a41fvHIhwXI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=uOxDYTydWLE:a41fvHIhwXI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=uOxDYTydWLE:a41fvHIhwXI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/7/terminando-mais-um-curso-de-rails</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-10-01:1451</id>
    <published>2009-10-01T14:37:00Z</published>
    <updated>2009-10-08T15:11:01Z</updated>
    <category term="Ruby e Rails" />
    <category term="moip" />
    <category term="rails" />
    <category term="ruby" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/LfPlG4wQCII/pagamento-com-moip" rel="alternate" type="text/html" />
    <title>Pagamento com Moip</title>
<summary type="html">&lt;p&gt;Já tem um bom tempo que ando estudando os meios de pagamento brasileiros. Como não quero depender de uma infra-estrutura Windows e também não quero passar por muita burocracia em vários casos, acabou sobrando apenas meios como os gateways de integração (não verdade não são bem gateways).&lt;/p&gt;


	&lt;p&gt;A diferença básica entre uma integração ou um gateway é que através do gateway o usuário nunca sai do seu site. Você recolhe os dados e envia através de conexão segura (&lt;a href="http://blog.areacriacoes.com.br/2009/7/28/ssl-com-apache-em-development-mode"&gt;&lt;span class="caps"&gt;SSL&lt;/span&gt;&lt;/a&gt; ) para o gateway que passa por uma série passos padrozinados.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Já tem um bom tempo que ando estudando os meios de pagamento brasileiros. Como não quero depender de uma infra-estrutura Windows e também não quero passar por muita burocracia em vários casos, acabou sobrando apenas meios como os gateways de integração (não verdade não são bem gateways).&lt;/p&gt;


	&lt;p&gt;A diferença básica entre uma integração ou um gateway é que através do gateway o usuário nunca sai do seu site. Você recolhe os dados e envia através de conexão segura (&lt;a href="http://blog.areacriacoes.com.br/2009/7/28/ssl-com-apache-em-development-mode"&gt;&lt;span class="caps"&gt;SSL&lt;/span&gt;&lt;/a&gt; ) para o gateway que passa por uma série passos padrozinados.&lt;/p&gt;
&lt;p&gt;Já tem um bom tempo que ando estudando os meios de pagamento brasileiros. Como não quero depender de uma infra-estrutura Windows e também não quero passar por muita burocracia em vários casos, acabou sobrando apenas meios como os gateways de integração (não verdade não são bem gateways).&lt;/p&gt;


	&lt;p&gt;A diferença básica entre uma integração ou um gateway é que através do gateway o usuário nunca sai do seu site. Você recolhe os dados e envia através de conexão segura (&lt;a href="http://blog.areacriacoes.com.br/2009/7/28/ssl-com-apache-em-development-mode"&gt;&lt;span class="caps"&gt;SSL&lt;/span&gt;&lt;/a&gt; ) para o gateway que passa por uma série passos padrozinados.&lt;/p&gt;


	&lt;p&gt;Este passos normalmente são authorize, capture, purchase ou void. E através destes passos é possível que uma biblioteca como o &lt;a href="http://www.activemerchant.org/"&gt;Active Merchant&lt;/a&gt; consiga abstrair as dificuldades e facilitar a transação com vários &lt;strong&gt;gateways&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;Porém, como não temos gateways padronizados no Brasil (ao menos não encontrei nenhum) sobraram as integrações. Integração é algo no estilo Paypal, onde o usuário é redirecionado para o site da organização que realiza a captura dos dados e a cobrança.&lt;/p&gt;


	&lt;p&gt;O bacana é que o ActiveMerchant também tem meios de pagamento através de integração, porém as soluções deste tipo no Brasil também são bem despadronizadas. O que dificulta uma implementação deste meios de pagamento com o ActiveMerchant.&lt;/p&gt;


	&lt;p&gt;E pensando em encontrar uma boa solução para pagamentos dos meus clientes, venho testando os que parecem ser mais interessante, como por exemplo o pagamento certo da Locaweb (&lt;a href="http://github.com/danielvlopes/lw_pago_certo_uso"&gt;veja a app de teste que fiz&lt;/a&gt;). Também testei o pagseguro e o pagamento digital, mas nem criei uma app de teste porque ambos são muito bagunçados, documentação ruim, api estranha com métodos horrorosos, suporte inexistente (ao menos não encontrei) e por aí vai.&lt;/p&gt;


	&lt;p&gt;Então, na semana passada comecei a testar o &lt;a href="http://moip.com.br/"&gt;MoIP&lt;/a&gt;. Testei todas as ferramentas deles: intregação simples, integração &lt;span class="caps"&gt;HTML&lt;/span&gt; e integração via &lt;span class="caps"&gt;API&lt;/span&gt; Rest.&lt;/p&gt;


	&lt;p&gt;Apesar de um pouco desconhecido ainda, eles são muito melhor do que todo o resto que testei no Brasil. De todos, é o que mais se aproxima do Paypal.&lt;/p&gt;


	&lt;p&gt;Primeira vantagem do Moip é que ele possui um sandbox, que é um ambiente idêntico ao real só que as transações não acontecem de verdade, desta forma você pode testar a vontade. Quando falo de uma ambiente de testes não é aquele tipo de solução do PagSeguro que é um servidorzinho de testes que você tem que instalar na sua máquina, e sim um sandbox mantido pelo próprio Moip semelhante ao caso do Paypal.&lt;/p&gt;


	&lt;p&gt;Segundo, a &lt;span class="caps"&gt;API&lt;/span&gt; é bem documentada (tem falhas, como parâmetros escondidos, mas já é 100x melhor do que os outros) . Possui &lt;span class="caps"&gt;IPN&lt;/span&gt;, que é notificação de pagamento, ou seja, após o pagamento o MoIP vai ficar contatando sua app e enviando o status da transação.&lt;/p&gt;


	&lt;p&gt;Terceiro, possui pagamento recorrente, mas este eu não testei pois prefiro tratar estas coisas na minha app.&lt;/p&gt;


	&lt;p&gt;Para terminar, eles possuem uma &lt;span class="caps"&gt;API&lt;/span&gt; Rest. Se você não quer tanta flexibilidade, então pode usar só um form simples através da integração &lt;span class="caps"&gt;HTML&lt;/span&gt;, mas se estiver usando Rails é melhor que use &lt;span class="caps"&gt;API&lt;/span&gt; Rest já que isto é muito simples no Rails.&lt;/p&gt;


&lt;del&gt;Eu também ia dizer que o suporte é uma vantagem, mas ultimamente não tem sido. Mandei um email reportando duas incompatibilidades com o Safari e eles nem me responderam, também fiz algumas perguntas nesta semana e até hoje nada.&lt;/del&gt; &lt;ins&gt;Reportei duas falhas sobre o Safari através do sistema de Tickets e fui respondido em menos de 24h. Inclusivo pedindo mais sugestões, além de em pouco tempo terem resolvido os problemas. Também fiz algumas perguntas que não estavam na documentação e me responderam com muito clareza.&lt;/ins&gt;

	&lt;p&gt;Ainda não tive tempo de tentar uma integração com o ActiveMerchant (acredito que é totalmente possível), mas para fins de testes e aprendizado criei uma &lt;a href="http://github.com/danielvlopes/moip_usage/"&gt;appzinha básica no github&lt;/a&gt; que usa o &lt;a href="http://railstips.org/2008/7/29/it-s-an-httparty-and-everyone-is-invited"&gt;HTTParty&lt;/a&gt; para comunicar com Moip via &lt;span class="caps"&gt;API&lt;/span&gt; Rest.&lt;/p&gt;


O ponto central da integração (da forma que eu fiz), é uma classe na pasta lib do Rails que contém o código abaixo:
&lt;p&gt;Este código faz nada mais que incluir o HTTParty, montar um xml simples com o builder e depois fazer um post autenticado (com os dados que vieram do arquivo gateway.yml). O método charge faz tudo isto e retorna um xml que é convertido em um hash para você usar dentro de sua app.&lt;/p&gt;


	&lt;p&gt;Desta forma eu posso chamar em qualquer controller algo como abaixo:&lt;/p&gt;


&lt;p&gt;Então se você está afim de encontrar um jeito fácil de pagamento com Rails no Brasil, acesse este &lt;a href="http://github.com/danielvlopes/moip_usage"&gt;link&lt;/a&gt;&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=LfPlG4wQCII:BG1XZQqHgXk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=LfPlG4wQCII:BG1XZQqHgXk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=LfPlG4wQCII:BG1XZQqHgXk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=LfPlG4wQCII:BG1XZQqHgXk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=LfPlG4wQCII:BG1XZQqHgXk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=LfPlG4wQCII:BG1XZQqHgXk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=LfPlG4wQCII:BG1XZQqHgXk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=LfPlG4wQCII:BG1XZQqHgXk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/10/1/pagamento-com-moip</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-09-21:1444</id>
    <published>2009-09-21T16:04:00Z</published>
    <updated>2009-09-21T16:06:48Z</updated>
    <category term="XHTML/CSS" />
    <category term="browser" />
    <category term="chrome" />
    <category term="firefox" />
    <category term="ie6" />
    <category term="ie7" />
    <category term="safari" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/ugYjP-8naLQ/pare-de-dar-suporte-ao-ie7-e-ie6" rel="alternate" type="text/html" />
    <title>Pare de dar suporte ao IE7 e IE6</title>
<content type="html">
            &lt;p&gt;Em desenvolvimento web estamos sempre dependendo da máquina do visitante, então estamos na mão do sistema operacional, hardware e principalmente dos navegadores.&lt;/p&gt;


	&lt;p&gt;Isto normalmente não é um problema, com exceção dos navegadores da Microsoft, que por anos se mostram muito inferiores. (Entenda mais sobre o assunto lendo este &lt;a href="http://blog.beonthe.net/post/193336961/qual-e-o-navegador-que-voce-usa"&gt;post&lt;/a&gt;)&lt;/p&gt;


	&lt;p&gt;Mas finalmente a versão atual do Internet Explorer( versão 8), é aceitável (mas ainda inferior).&lt;/p&gt;


	&lt;p&gt;Diante desta situação decidimos parar com o suporte a qualquer versão do Internet Explorer que seja inferior ao 8. E para mostrar isto ao usuário nós testamos diversas alternativas como &lt;a href="http://blog.areacriacoes.com.br/2009/7/1/boa-solu-o-para-acabar-com-o-ie6-e-ie7"&gt;barrinhas em Javascript&lt;/a&gt;. Mas como sempre, a alternativa mais simples é a melhor:&lt;/p&gt;


&lt;p&gt;Basta colocar o css em seus arquivos de css do layout e o comentário condicional. No meu caso estou sempre utilizando Rails, por isto aparecem os comandos link_to e image_tag, se você estiver usando &lt;span class="caps"&gt;HTML&lt;/span&gt; puro então substitua por &lt;code&gt;&amp;lt;img...&lt;/code&gt; e &lt;code&gt;&amp;lt;a href...&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;As imagens que utilizo (já com a cor de fundo na tonalidade correta) estão abaixo para download:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://blog.areacriacoes.com.br/assets/2009/9/21/browser_logos.zip"&gt;Logos do Browsers&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Também adote e esta empreitada contra a péssima qualidade de serviço apresentada nos navegadores da Microsoft.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ugYjP-8naLQ:SO7OiIn2qlM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ugYjP-8naLQ:SO7OiIn2qlM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=ugYjP-8naLQ:SO7OiIn2qlM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ugYjP-8naLQ:SO7OiIn2qlM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=ugYjP-8naLQ:SO7OiIn2qlM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ugYjP-8naLQ:SO7OiIn2qlM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ugYjP-8naLQ:SO7OiIn2qlM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ugYjP-8naLQ:SO7OiIn2qlM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/9/21/pare-de-dar-suporte-ao-ie7-e-ie6</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-09-18:1434</id>
    <published>2009-09-18T03:48:00Z</published>
    <updated>2009-09-18T22:35:37Z</updated>
    <category term="flash" />
    <category term="flex" />
    <category term="html" />
    <category term="javascript" />
    <category term="rails" />
    <category term="ruby" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/leJI_H9m-6c/n-o-mate-o-mosquito-com-uma-granada" rel="alternate" type="text/html" />
    <title>Não mate o mosquito com uma granada</title>
<summary type="html">&lt;p&gt;Já tem um bom tempo que pretendo escrever sobre isto, a ferramenta correta para o problema correto. Resolvi finalmente escrever sobre este assunto devido aos questionamentos que surgiram na minha palestra do RailsForKids, perguntado como escolhemos as tecnologias para nossos projetos.&lt;/p&gt;


	&lt;p&gt;Este post também é uma resposta ao &lt;a href="http://blog.dclick.com.br/2009/09/17/flex-nao-e-para-sites-capitulo-209843/pt/"&gt;flamewar sem sentido&lt;/a&gt; que apareceu na comunidade Flex por causa de uma levantamento pragmático sobre a tecnologia.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/9/18/toolbox_1.jpg" alt="" /&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Já tem um bom tempo que pretendo escrever sobre isto, a ferramenta correta para o problema correto. Resolvi finalmente escrever sobre este assunto devido aos questionamentos que surgiram na minha palestra do RailsForKids, perguntado como escolhemos as tecnologias para nossos projetos.&lt;/p&gt;


	&lt;p&gt;Este post também é uma resposta ao &lt;a href="http://blog.dclick.com.br/2009/09/17/flex-nao-e-para-sites-capitulo-209843/pt/"&gt;flamewar sem sentido&lt;/a&gt; que apareceu na comunidade Flex por causa de uma levantamento pragmático sobre a tecnologia.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/9/18/toolbox_1.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Já tem um bom tempo que pretendo escrever sobre isto, a ferramenta correta para o problema correto. Resolvi finalmente escrever sobre este assunto devido aos questionamentos que surgiram na minha palestra do RailsForKids, perguntado como escolhemos as tecnologias para nossos projetos.&lt;/p&gt;


	&lt;p&gt;Este post também é uma resposta ao &lt;a href="http://blog.dclick.com.br/2009/09/17/flex-nao-e-para-sites-capitulo-209843/pt/"&gt;flamewar sem sentido&lt;/a&gt; que apareceu na comunidade Flex por causa de uma levantamento pragmático sobre a tecnologia.&lt;/p&gt;


	&lt;p&gt;Gostaria de apresentar como costumamos decidir as ferramentas de um projeto. Então eu gostaria de apresentar a caixa de ferramentas e coisas com que trabalhei nos últimos anos:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Ruby&lt;/li&gt;
		&lt;li&gt;Rails&lt;/li&gt;
		&lt;li&gt;Javascript&lt;/li&gt;
		&lt;li&gt;Jquery&lt;/li&gt;
		&lt;li&gt;Prototype&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;XHTML&lt;/span&gt;/CSS&lt;/li&gt;
		&lt;li&gt;Flex&lt;/li&gt;
		&lt;li&gt;Flash (AS3 e usando frameworks como Gaia e Mate)&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;PHP&lt;/span&gt;&lt;/li&gt;
		&lt;li&gt;Delphi&lt;/li&gt;
		&lt;li&gt;Java (J2me)&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Eu não listei tecnologias relacionadas a design (como Adobe Photoshop, Adobe Illustrator, 3D Studio) ou infra-estrutura como &lt;span class="caps"&gt;GIT&lt;/span&gt;, Capistrano, sistemas Unix, Apache. Também não falo de metodologias e conceitos como &lt;span class="caps"&gt;TDD&lt;/span&gt;, BDD e outros. Também não listei tecnologias que estudo por diversão mas que nunca cheguei a utilizar em projetos reais, como Capuccino, Sproutcore, Smalltalk, Lisp, CouchDB, MacRuby, Objective-C, Adobe Air e etc. O foco aqui é mais linguagem de programação/marcação e mostrar a importância de conhecer bem mais de uma ferramenta.&lt;/p&gt;


	&lt;p&gt;Obviamente não sou fluente e nem especialista em tudo isto, mas posso dizer que apesar de tentar estudar várias coisas diferentes eu tento me especializar em apenas 2 coisas no máximo, Rails/Ruby e design de interfaces. Porém, em algumas linguagens/ferramentas tento me manter atualizado e estudando, em especial tecnologias que componham o ambiente de um sistema web (que por padrão é multi-disciplinar), ferramentas como &lt;span class="caps"&gt;XHTML&lt;/span&gt;/CSS, Javascript(e frameworks) e Flash( + derivados).&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/9/18/toolbox_1.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Sou a favor que todos (inclusive designers) devam ser especialistas generalistas. Em qualquer área é muito importante saber quais as ferramentas existem, conhecer as vantangens e desvantagens de cada uma, abrindo o leque o máximo possível, mas mantendo-se realmente especializado em uma ou no máximo duas coisas.&lt;/p&gt;


	&lt;p&gt;Você não nasceu com um cérebro deste tamanho para aprender só uma coisa, certo? Da Vinci só sabia pintar? Einstein era só físico? Michael Jackson só sabia dançar? Não! E todos foram extremamente bem sucedidos. E este era o trabalho deles, o que não é diferente para você. Entender suas ferramentas é o seu trabalho.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/9/18/jackson_1.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Então se você abrir sua visão será capaz de optar por uma ferramenta melhor para um problema específico.&lt;/p&gt;


	&lt;p&gt;Atualmente trabalho em uma empresa muito pequena, exatamente por que é onde eu posso tomar este tipo de decisão. E esta liberdade é o que me permite estudar todas estas tecnologias e saber que não estou preso a uma tecnologia pois a empresa é partner ou tem certificação de algo em especial.&lt;/p&gt;


	&lt;p&gt;No RailsForKids o Daniel Willian e outras pessoas pergutaram como escolhemos entre Flex e &lt;span class="caps"&gt;XHTML&lt;/span&gt;/CSS (repare que é uma dúvida restrita a front-end). Para responder, primeiro vamos entender o backend.&lt;/p&gt;


	&lt;p&gt;Aqui tentamos adotar a seguinte posição, somos desenvolvedores Rails por opção e evitamos utilizar &lt;span class="caps"&gt;PHP&lt;/span&gt; ou Java ao máximo pois são imensamente piores para manutenção se comparado a clareza e abstração do Ruby.&lt;/p&gt;


	&lt;p&gt;E descobrimos isto bem no início, uns 3 anos atrás, quando percebemos que gastavamos 6 meses para criar um portal ou um sistema razoávelmente complexo em &lt;acronym title="estou citando &amp;lt;span class="&gt;PHP&lt;/acronym&gt; e no final apesar de termos um código &lt;a href="http://en.wikipedia.org/wiki/Object-oriented_programming"&gt;&lt;span class="caps"&gt;OOP&lt;/span&gt;&lt;/a&gt; (pseudo &lt;span class="caps"&gt;OOP&lt;/span&gt; como qualquer código &lt;span class="caps"&gt;PHP&lt;/span&gt;) e muito bem organizado ainda não era lá grandes coisas para o padrão desejado.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/9/18/php_1.png" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Nós também não queríamos crescer, não queríamos contratar gente e produzir resultado rápido por força bruta. Queríamos ser produtivos, mas com qualidade. E usando o leque de ferramentas que estavamos testando (eu já desenvolvia em &lt;span class="caps"&gt;PHP&lt;/span&gt; a anos) seria impossível manter o negócio rentável. Não falo de amor por uma linguagem ou dogma, meu trabalho é exclusivamente gerar lucros para o meu cliente e consequentemente para nós mesmos.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/9/18/love_code_1.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Então o que fizemos foi abrir o leque e correr atrás de outras coisas. Python(Django), Smalltalk(Seaside), &lt;acronym title="Cake e Simphony"&gt;PHP&lt;/acronym&gt; e Ruby(Rails) foi o que procurei conhecer. Nitidamente a última solução era melhor para o nosso problema além de ser uma alternativa robusta por ideologia. E esta ferramenta se encaixou perfeitamente para o backend de praticamente todos os nosso projetos, seja site ou sistema, seja simples ou extremamente complexo. O Rails resolve muito bem o seu objetivo.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/9/18/nice-view-171-465x295.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Obs.: Também utilizo Wordpress que é &lt;span class="caps"&gt;PHP&lt;/span&gt;, por que ele é atualmente a ferramenta correta para blog, não por seu código (que considero ridículo, basta ler o fonte do projeto) mas por sua comunidade e gama de ferramentas que envolve o serviço do Wordpress (mas meu sonho é que ele fosse re-desenvolvido em Rails).&lt;/p&gt;


	&lt;p&gt;Então restou o front-end, atualmente temos diversas tecnologias para front-end e diferente do backend díficilmente você poderá usar em 90% do caso uma única ferramenta. Então vamos listar as principais, seguidas de suas vantagens e desvantagens:&lt;/p&gt;


	&lt;h3&gt;&lt;span class="caps"&gt;XHTML&lt;/span&gt;/CSS/ Javascript (nunca sem um framework):&lt;/h3&gt;


	&lt;p&gt;Alternativa extremamente difundida, simples de aprender e ainda conseguimos designers que entendam um pouco de &lt;span class="caps"&gt;HTML&lt;/span&gt; e &lt;span class="caps"&gt;CSS&lt;/span&gt;. Ainda tenho a vantagem de ter javascript por padrão em todos os browsers sem um plugin e sem ser compilado. O projeto pode crescer horizontalmente sem  me preocupar com o tamanho de um único arquivo, exatamente por não ser compilado. Ainda tenho a vantagem de ser amigável aos mecanismos de buscas e comportamentos que se tornaram padrão como &lt;span class="caps"&gt;URL&lt;/span&gt;’s, Bookmark, avançar e voltar no Browser e etc.&lt;/p&gt;


	&lt;p&gt;Também consigo criar &lt;strong&gt;algumas animações&lt;/strong&gt; e um certo nível de assincronismo utilizando um framework de Javascript como Jquery. Afirmo que você nunca deve desenvolver em JS sem um framework pois é impossível manter seu projeto cross-browser já que todos os browsers possuem erros no &lt;span class="caps"&gt;DOM&lt;/span&gt; e os frameworks abstraem isto. Seguindo esta regra, também não tenho discrepância entre navegadores e Javascript.&lt;/p&gt;


	&lt;p&gt;Mas agora aparecem as desvantagens, manter as coisas exatamente igual em todos os navegadores no ponto &lt;span class="caps"&gt;HTML&lt;/span&gt; e &lt;span class="caps"&gt;CSS&lt;/span&gt; não é tão simples, isto graças ao Internet Explorer. Porém já existe o &lt;span class="caps"&gt;IE8&lt;/span&gt; e este cenário esta mudando.&lt;/p&gt;


	&lt;p&gt;Outra desvantagem(ou vantagem) de &lt;span class="caps"&gt;HTML&lt;/span&gt;/CSS/Javascript é que eles abraçam o protocolo &lt;span class="caps"&gt;HTTP&lt;/span&gt; como ele foi pensado, então não é simples manter um assincronismo em um patamar maior. Logo se você precisa de algo como o &lt;a href="http://www.treinatom.com.br/pt/"&gt;Treinatom&lt;/a&gt; ou &lt;a href="https://www.photoshop.com/"&gt;PhotoshopExpress&lt;/a&gt; sem dúvida o &lt;span class="caps"&gt;HTML&lt;/span&gt;/CSS/Javascript não é uma boa alternativa, gerando muito código e consequentemente algo impossível de manter.&lt;/p&gt;


	&lt;h3&gt;Flash&lt;/h3&gt;


	&lt;p&gt;Flash, diferente do que muita gente pensa é uma tremenda ferramenta de programação. Possui uma linguagem robusta e uma “VM” (o FlashPlayer) muito bem desenvolvida. Ele permite resolver o problema que apresentei o sobre &lt;span class="caps"&gt;HTML&lt;/span&gt;. FlashPlayer não abraça o &lt;span class="caps"&gt;HTTP&lt;/span&gt; e não navega entre diversos arquivos e urls. Desta forma é possível manter um assincronismo e ao mesmo tempo ter animações robustas. O que o torna perfeito para animações, jogos, interatividade e ainda 3D.&lt;/p&gt;


	&lt;p&gt;Mas ele também possui desvantagens, por não abraçar o &lt;span class="caps"&gt;HTTP&lt;/span&gt; perdemos coisas como url’s, botões do browser e indexação (já que o swf não é um arquivo de texto). Porém tudo isto pode ser implementado, mas tem um custo e este custo poderá pesar em sua manutenção futura.&lt;/p&gt;


	&lt;p&gt;Outra desvantagem é por ser compilado, o que pode tornar o seus arquivos finais bem grandes e fazendo com que estes arquivos cresçam mais a cada nova necessidade. Porém isto também pode ser resolvido, mas tem um custo, como dividir em vários swfs, externalizar fontes, imagem, aúdio e video. E este trabalho não é tão trivial assim sendo uma coisa que o html já faz por nascença.&lt;/p&gt;


	&lt;p&gt;Vale lembrar que o Flash adota &lt;span class="caps"&gt;AS3&lt;/span&gt;, e ela não é uma linguagem enxuta como Ruby. Basta correr o olho em qualquer projeto flash maior e verá dezenas de getter, setter, definição de varíaveis e consantes. Recentemente analisei o fonte de um StockImage em Flash e fique realmente assustado. Por este motivo os custos que falei podem se tornar imensos e resultando em um projeto inviável.&lt;/p&gt;


	&lt;h3&gt;Flex&lt;/h3&gt;


	&lt;p&gt;Mais uma vez, diferente do que muita gente pensa Flex não é Flash. Apesar de ser um framework de &lt;span class="caps"&gt;AS3&lt;/span&gt; e compilar um swf, o fluxo de trabalho e forma de desenvolver do Flex é totalmente diferente do trabalho de um desenvolvedor Flash.&lt;/p&gt;


	&lt;p&gt;Flex não é tão bom para animações complexas e nem para jogos como o Flash. Isto ocorre por possuir seus componentes e classes bem definidas, criando uma limitação (mas uma limitação boa para seu objetivo).&lt;/p&gt;


	&lt;p&gt;Componentes, que por sua vez são pensados com o objetivo focado em aplicações semelhantes ao desktop. Grids, botões, janelas, menus e tudo que uma aplicação desktop costuma ter pode ser encontrado no Flex.&lt;/p&gt;


	&lt;p&gt;Outra vantagem, o Flex tenta trazer o bom do desktop para o web, então ele é por natureza assíncrono (já que roda no FlashPlayer). Por ser assíncrono e focado em aplicativos você terá facilidades para implementar coisas como o Treinatom ou Photoshop Express.&lt;/p&gt;


	&lt;p&gt;Mas tem um porém, você também perde url’s (ok, estou cansado de saber que é possível usar coisas como DeepLinking e HistoryManager mas isto tem um custo, que em html não existe).  E você tem que tomar os mesmos cuidados do Flash e dividir seu projeto em vários arquivos e externalizar assets. Consequentemente, por ser um swf você tem as mesmas desvantangens do Flash em relação a estrutura.&lt;/p&gt;


	&lt;h3&gt;Outros&lt;/h3&gt;


	&lt;p&gt;Existem outras coisas como Capuccino, SproutCore, Open laszlo, Silverlight, JavaFX, Gear e etc. Mas não vou entrar em detalhes pois acabam se encaixando no que foi dito acima.&lt;/p&gt;


	&lt;h3&gt;Agora que sabemos as vantagens e desvantangens podemos imaginar os cenários:&lt;/h3&gt;


	&lt;h4&gt;Websites, portais, sistemas:&lt;/h4&gt;


	&lt;p&gt;&lt;span class="caps"&gt;XHTML&lt;/span&gt;/CSS/JS é perfeito para websites e portais. Pois são projetos que precisam ser indexados com magnitude, precisam funcionar bem com o browser(urls, botões, histórico, etc) e não devem conter nenhuma barreira que exija usuário instalar algo(ok, flashplayer esta em 90% das máquinas, mas ainda é algo para instalar).&lt;/p&gt;


	&lt;p&gt;Já que são de acesso público (normalmente). Sites e portais, crescem exponencialmente todos os dias, e em html podem tirar proveito de técnicas de cache que criam arquivos html estático e evitam processamento no backend. Também podem crescer em número de arquivos sem se preocupar com o tamanho de um pacotão compilado que precisa ser sub-dividido.&lt;/p&gt;


	&lt;p&gt;É perfeito também para sistemas com muito conteúdo em texto, porém pouca mídia (video e aúdio) e sem muita necessida de assincronismo. Para um nível pequeno de assincronismo, algumas chamadas Ajax resolve bem o problema. E você continua com as vantagens que citei.&lt;/p&gt;


	&lt;p&gt;Melhor ainda se seu sistema precisa fazer uso de urls para organização (coisa comum em arquitetura &lt;span class="caps"&gt;REST&lt;/span&gt;) pois html abraça &lt;span class="caps"&gt;HTTP&lt;/span&gt;. E no fim você ainda poderá utilizar formas de otimizar performance via http e sairá no lucro.&lt;/p&gt;


	&lt;h4&gt;Hotsite, jogos e interatividade&lt;/h4&gt;


	&lt;p&gt;Hotsite, Jogos ou peças de marketing interativo na grande maioria das vezes não precisam ser indexados, não precisam de urls e fazem uso intenso de animações complexas e assincronismo.&lt;/p&gt;


	&lt;p&gt;Algumas vezes precisam aceitar bem fórmulas matemáticas e desenhar algo com isto.&lt;/p&gt;


	&lt;p&gt;A maior parte do tempo não terão formulários ou muito texto. Também não é algo que vai crescer exponencialmente e precisar de manutenção diária, e também normalmente são projetos com curto tempo de vida.&lt;/p&gt;


	&lt;p&gt;Logo Flash encaixa como uma luva, e não tem ferramenta melhor.&lt;/p&gt;


	&lt;h4&gt;Sistemas desktop like&lt;/h4&gt;


	&lt;p&gt;Se você precisa de algo online, mas que se comporte exatamente como uma app desktop, permitindo que ao mesmo tempo que um video é transmitido, um desenho seja feito e salvando estas coisas de forma permanente então Flex é melhor opção.&lt;/p&gt;


	&lt;p&gt;Flex foi pensando para aplicativos, normalmente fechados ou intranets onde você não tem a necessidade e enviar uma url para o twitter. Também é comum ver sistemas Flex rodando em um ambiente previsto, onde você sabe que todos terão o player instalado, que todos terão uma internet razoável e que não haverá problema dividir o projeto em vários arquivos de 250kb, além de um loading inicial de 500kb (que vai ficar no cache eternamente).&lt;/p&gt;


&lt;hr /&gt;


	&lt;p&gt;Para nós (Area) ainda existe um player diferente na história, o Rails que é uma Full-stack Framework e traz ferramentas para resolver facilmente os problemas do html e javascript. Além de ser &lt;span class="caps"&gt;REST&lt;/span&gt; por padrão e abraçar muito bem &lt;span class="caps"&gt;URL&lt;/span&gt;’s (diferente do &lt;span class="caps"&gt;PHP&lt;/span&gt; com mod-rewrite no Apache).&lt;/p&gt;


	&lt;p&gt;Então como optamos por Rails quase sempre também acabamos optando por &lt;span class="caps"&gt;HTML&lt;/span&gt; e Jquery mesmo para sistemas, claro se não houver a grande necessidade de assicronismo.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/9/18/davidhansson.jpg" alt="" /&gt;&lt;br /&gt;
&lt;em&gt;Obrigado David Hansson e comunidade Rails, que é formada por grandes desenvolvedores.&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Mas existem casos extremos e aspectos externos, como por exemplo um cliente exigir que o site seja em Flash pois &lt;a href="http://blog.areacriacoes.com.br/2009/9/15/m-sica-em-websites"&gt;terá uma música&lt;/a&gt; (nesses casos tentamos rejeitar o projeto), ou você prestar serviço como desenvolvedor para uma agência ou designer que criou um layout impossível de ser criado em html (e sem te mostrar antes) ou está no contrato uma transição entre cada página com animação. Neste caso Ajax ou Js pode não ser a resposta e você mais uma vez é obrigado a adotar uma ferramenta não muita adequada se não quiser perder o cliente (nem sempre é possível rejeitar um projeto).&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2009/9/18/uncle-sam-suicide.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;h3&gt;Mas no fim do dia a regra para nós é o seguinte:&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;span class="caps"&gt;XHTML&lt;/span&gt;/CSS para sites, portais e apps menos assincronas.&lt;/li&gt;
		&lt;li&gt;Flash para jogos, hotsites animados com tempo de vida e com tamanho limitado (sem muito db, forms ou texto)&lt;/li&gt;
		&lt;li&gt;Flex para apps assíncronas&lt;/li&gt;
		&lt;li&gt;Rails para quase tudo, exceto blogs (sobrou wordpress :( )&lt;/li&gt;
	&lt;/ul&gt;


Estes são os cenários comuns quando o assunto é web, mas em outro ambiente eu poderia sugerir (pois não sou especialista nestes ambientes):
	&lt;ul&gt;
	&lt;li&gt;&lt;span class="caps"&gt;AIR&lt;/span&gt;, Bowline e Shoes para desktop multiplataforma&lt;/li&gt;
		&lt;li&gt;MacRuby para desenvolvimento Mac&lt;/li&gt;
		&lt;li&gt;Rhodes ou Rails para mobile&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;E em nosso dia a dia tudo isto que falei é permeado por versionamento em &lt;a href="http://git-scm.com/"&gt;&lt;span class="caps"&gt;GIT&lt;/span&gt;&lt;/a&gt; (e &lt;a href="https://github.com/"&gt;Github&lt;/a&gt; ), Mac’s ou Linux (nunca Windows) para desenvolvimento e Linux no Host. Além de usar &lt;a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development"&gt;&lt;span class="caps"&gt;BDD&lt;/span&gt;&lt;/a&gt; ou &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;&lt;span class="caps"&gt;TDD&lt;/span&gt;&lt;/a&gt; em muitos casos (na verdade quando código é Rails ou Ruby).&lt;/p&gt;


	&lt;p&gt;Mas se você vai usar Flex para tudo, ou &lt;span class="caps"&gt;HTML&lt;/span&gt; para tudo ou Flash o problema é seu, ou melhor, do seu cliente. Para nós, no fim do dia o que importa é ter o cliente satisfeito e lucrando e conseguindo manter isto em um custo acessível, sendo pragmático para manter a nossa diversão trabalhando.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=leJI_H9m-6c:Eg0Q8PN_JFc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=leJI_H9m-6c:Eg0Q8PN_JFc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=leJI_H9m-6c:Eg0Q8PN_JFc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=leJI_H9m-6c:Eg0Q8PN_JFc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=leJI_H9m-6c:Eg0Q8PN_JFc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=leJI_H9m-6c:Eg0Q8PN_JFc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=leJI_H9m-6c:Eg0Q8PN_JFc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=leJI_H9m-6c:Eg0Q8PN_JFc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/9/18/n-o-mate-o-mosquito-com-uma-granada</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-09-15:1429</id>
    <published>2009-09-15T23:24:00Z</published>
    <updated>2009-09-16T00:07:23Z</updated>
    <category term="Design" />
    <category term="design" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/1s5Jr4DGdyE/m-sica-em-websites" rel="alternate" type="text/html" />
    <title>Música em websites</title>
<summary type="html">&lt;p&gt;E uma frase que sempre escuto de clientes é: &lt;strong&gt;Eu quero música no meu site.&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Antes de responder esta pergunta ao cliente devemos pensar o seguinte, nosso trabalho esta mais para um pintor onde o cliente decide a cor ou para um médico que ele é o único a decidir o que fazer? Acho que a resposta é uma mistura dos dois.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;E uma frase que sempre escuto de clientes é: &lt;strong&gt;Eu quero música no meu site.&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Antes de responder esta pergunta ao cliente devemos pensar o seguinte, nosso trabalho esta mais para um pintor onde o cliente decide a cor ou para um médico que ele é o único a decidir o que fazer? Acho que a resposta é uma mistura dos dois.&lt;/p&gt;
&lt;p&gt;Nós desenvolvemos quase qualquer tipo de coisa relacionada a &lt;span class="caps"&gt;WEB&lt;/span&gt;. Simples templates de newsletter, sites estáticos, hotsite em flash, banners, jogos até chegar em complexos sistemas.&lt;/p&gt;


	&lt;p&gt;E todos nós sabemos que para cada problema existe uma ferramenta correta, as vezes pode ser Rails, as vezes puro &lt;span class="caps"&gt;HTML&lt;/span&gt; ou Flash. Mas o que me incomoda muito e algumas vezes nos faz rejeitar trabalhos é a necessidade de aplicar uma ferramenta errada para o objetivo desejado.&lt;/p&gt;


	&lt;p&gt;E uma frase que sempre escuto de clientes é: &lt;strong&gt;Eu quero música no meu site.&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Antes de responder esta pergunta ao cliente devemos pensar o seguinte, nosso trabalho esta mais para um pintor onde o cliente decide a cor ou para um médico que ele é o único a decidir o que fazer? Acho que a resposta é uma mistura dos dois.&lt;/p&gt;


	&lt;p&gt;Porém é necessário fazer o cliente entender que ele não é o cliente e sim quem vai visitar o site (ou sistema que seja). E para aplicar uma música devemos pesar o técnico primeiro.&lt;/p&gt;


	&lt;p&gt;Se você tem um site grande,  com muito conteúdo dinâmico e conteúdo de texto que deve ser indexado por mecanismos de busca então ferramenta a perfeita é &lt;span class="caps"&gt;XHTML&lt;/span&gt; e &lt;span class="caps"&gt;CSS&lt;/span&gt;. Não tente fazer um site em Flash com centenas de páginas, &lt;span class="caps"&gt;AMF&lt;/span&gt; e comunicação espalhada por todos os lados e formulários de mais, pois isto será um inferno e o cliente vai gastar centenas e não vai obter retorno (direto recebe pedido de manutenção neste tipo de projeto, mas isto é assunto para outro post).&lt;/p&gt;


	&lt;p&gt;E aí que começa o problema da música, para aplicar uma música sem interrupções a cada nova página é necessário manter o visitante na mesma página. Para isto podemos usar &lt;span class="caps"&gt;FLASH&lt;/span&gt;, AJAX ou Iframes só que todas as opções são ridículas se você está no cenário do parágrafo anterior. Utilizar Flash apenas por causa da música é um absurdo e cairá no problema que eu já disse, usar Ajax é pior ainda pois você terá um Frankstein cheio de código javascript onde não deveria, e IFrames não preciso nem comentar (espero que ninguém use isto para montar um layout nos dias de hoje).&lt;/p&gt;


	&lt;p&gt;Ainda temos um outro impedimento, sabemos que o tempo médio em uma página é de segundos e que um streaming ou download as escondidas pode atrasar e muito a exibição da página. Além de consumir uma enorme quantidade de banda. Imagine que seu site tem pouco acesso, 100 por dia, mas tem uma música de 800kb assim você terá um consumo de mais de 80mb. Este valor pode será muito maior do que o necessário para uns 1000 visitantes.&lt;/p&gt;


	&lt;p&gt;Então se estou nesta situação , prefiro rejeitar o projeto caso o cliente não abra mão da música, pois nós sempre precisamos pensar na qualidade final e isso será impossível se você usar a ferramenta errada.&lt;/p&gt;


	&lt;p&gt;Porém se você está criando um hotsite ou um jogo interativo mais que natural que tenhamos uma música e isto não é problema pois o site já será em Flash. Mas ainda sim é preciso tomar cuidado com o seguinte:&lt;/p&gt;


	&lt;p&gt;Seu visitante espera escutar uma música? Se você estiver criando o site do CD de uma banda é provável que sim. Mas em 90% dos casos não. E se seu usuário estiver escutando sua própria música ou estiver em um ambiente de silêncio? Com certeza ele vai odiar o site.&lt;/p&gt;


	&lt;p&gt;Mas por fim, se realmente não for possível então tente ao menos colocar a música desligada por padrão e permitir que o visitante ligue-a para evitar esta horrível decepção. Ou se estiver em projeto &lt;span class="caps"&gt;HTML&lt;/span&gt; e o cliente não abrir mão deste tremendo erro coloque a músico desligada e só na Home do site.&lt;/p&gt;


	&lt;p&gt;Então tente mostrar isto ao cliente, o problema técnico e o problema de uso. Só para reforçar como um site com música pode trazer ódio:&lt;/p&gt;


&amp;lt;noscript&gt;&amp;lt;iframe src="http://tweetpaste.thingamaweb.com/embed/84028/" height="200" width="500"&gt;&lt;p&gt;&lt;a href="http://tweetpaste.thingamaweb.com/embed/84028/"&gt;View mariojunior&amp;rsquo;s tweet&lt;/a&gt;&lt;/p&gt;&amp;lt;/iframe&gt;&amp;lt;/noscript&gt;

&amp;lt;noscript&gt;&amp;lt;iframe src="http://tweetpaste.thingamaweb.com/embed/84032/" height="200" width="500"&gt;&lt;p&gt;&lt;a href="http://tweetpaste.thingamaweb.com/embed/84032/"&gt;View pcassiano&amp;rsquo;s tweet&lt;/a&gt;&lt;/p&gt;&amp;lt;/iframe&gt;&amp;lt;/noscript&gt;

&amp;lt;noscript&gt;&amp;lt;iframe src="http://tweetpaste.thingamaweb.com/embed/84033/" height="200" width="500"&gt;&lt;p&gt;&lt;a href="http://tweetpaste.thingamaweb.com/embed/84033/"&gt;View vinicius_luiz&amp;rsquo;s tweet&lt;/a&gt;&lt;/p&gt;&amp;lt;/iframe&gt;&amp;lt;/noscript&gt;

&amp;lt;noscript&gt;&amp;lt;iframe src="http://tweetpaste.thingamaweb.com/embed/84034/" height="200" width="500"&gt;&lt;p&gt;&lt;a href="http://tweetpaste.thingamaweb.com/embed/84034/"&gt;View danieldocki&amp;rsquo;s tweet&lt;/a&gt;&lt;/p&gt;&amp;lt;/iframe&gt;&amp;lt;/noscript&gt;

&amp;lt;noscript&gt;&amp;lt;iframe src="http://tweetpaste.thingamaweb.com/embed/84037/" height="200" width="500"&gt;&lt;p&gt;&lt;a href="http://tweetpaste.thingamaweb.com/embed/84037/"&gt;View jtadeulopes&amp;rsquo;s tweet&lt;/a&gt;&lt;/p&gt;&amp;lt;/iframe&gt;&amp;lt;/noscript&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=1s5Jr4DGdyE:FYDDT0I8ZeI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=1s5Jr4DGdyE:FYDDT0I8ZeI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=1s5Jr4DGdyE:FYDDT0I8ZeI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=1s5Jr4DGdyE:FYDDT0I8ZeI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=1s5Jr4DGdyE:FYDDT0I8ZeI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=1s5Jr4DGdyE:FYDDT0I8ZeI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=1s5Jr4DGdyE:FYDDT0I8ZeI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=1s5Jr4DGdyE:FYDDT0I8ZeI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/9/15/m-sica-em-websites</feedburner:origLink></entry>
  <entry xml:base="http://blog.areacriacoes.com.br/">
    <author>
      <name>Daniel Lopes</name>
    </author>
    <id>tag:blog.areacriacoes.com.br,2009-09-14:1426</id>
    <published>2009-09-14T19:39:00Z</published>
    <updated>2009-09-14T20:09:32Z</updated>
    <category term="Ruby e Rails" />
    <category term="rails" />
    <category term="ruby" />
    <link href="http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/rl2ea1kcP1w/slides-do-railsforkids" rel="alternate" type="text/html" />
    <title>Slides do RailsForKids</title>
<content type="html">
            &lt;p&gt;Seguem os slides da minha palestra para o RailsForKids:&lt;/p&gt;


&lt;div&gt;&lt;a href="http://www.slideshare.net/danielvlopes/frontend-1996929" title="Frontend"&gt;Frontend&lt;/a&gt;&amp;lt;object height="355" width="425"&gt;&amp;lt;param /&gt;&amp;lt;param /&gt;&amp;lt;param /&gt;&amp;lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=frontend-090914150158-phpapp01&amp;amp;#38;stripped_title=frontend-1996929" height="355" width="425"&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;&lt;div&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/danielvlopes"&gt;Daniel Lopes&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=rl2ea1kcP1w:DJ5DTk6XW3A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=rl2ea1kcP1w:DJ5DTk6XW3A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=rl2ea1kcP1w:DJ5DTk6XW3A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=rl2ea1kcP1w:DJ5DTk6XW3A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=rl2ea1kcP1w:DJ5DTk6XW3A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=rl2ea1kcP1w:DJ5DTk6XW3A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=rl2ea1kcP1w:DJ5DTk6XW3A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=rl2ea1kcP1w:DJ5DTk6XW3A:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>  <feedburner:origLink>http://blog.areacriacoes.com.br/2009/9/14/slides-do-railsforkids</feedburner:origLink></entry>
</feed>
