<?xml version="1.0" encoding="UTF-8"?>
<post>
  <body>&lt;p&gt;Esse t&#237;tulo poderia ser: &quot;por que n&#227;o d&#225; para fazer um blog em 15 minutos&quot;. Tudo bem, David Hanson consegue, afinal ele &#233; o cara :)&lt;/p&gt;

&lt;p&gt;Estou falando do famoso v&#237;deo de uma &lt;a href=&quot;http://media.rubyonrails.org/video/rails_take2_with_sound.mov&quot;&gt;cria&#231;&#227;o de um blog em 15 minutos&lt;/a&gt;, feito pelo pr&#243;prio criador do framework Ruby on Rails, David H. Hanson. Se voc&#234; n&#227;o viu ainda, veja agora! &#201; interessante ver o quanto um v&#237;deo pode fazer para propagar um produto ou id&#233;ia, e para empolgar as pessoas. Muitas pessoas que come&#231;am a mexer com Rails dizem &#8220;eu vi aquele v&#237;deo de 15 minutos, e fiquei impressionado&#8221; (myself included!). Desde a cria&#231;&#227;o deste v&#237;deo em 2005, o Rails j&#225; evoluiu muito e hoje o pr&#243;prio DHH diz que j&#225; &#233; poss&#237;vel fazer a mesma coisa em 3 minutos. Para um v&#237;deo mais atualizado veja o screencast do Akita, sobre &lt;a href=&quot;http://www.akitaonrails.com/2007/12/10/the-first-rails-2-0-screencast-english&quot;&gt;cria&#231;&#227;o de um blog em Rails 2.x (dispon&#237;vel em ingl&#234;s e portugu&#234;s)&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;Voltando ao assunto, criar um blog em 15 minutos &#233; f&#225;cil. Agora para quem quer aprender Rails no processo de cria&#231;&#227;o de um blog, a hist&#243;ria &#233; outra. Voc&#234; precisa de um blog funcional com: autentica&#231;&#227;o de administrador, um layout m&#237;nimo, controle de vers&#227;o, algum esquema de deployment automatizado, etc.&lt;/p&gt;

&lt;p&gt;Pretendo descrever aqui n&#227;o um processo de um blog, mas sim o processo que fiz para criar o meu blog. Vamos l&#225;:&lt;/p&gt;
 
&lt;p&gt;&lt;b&gt;Layout&lt;/b&gt;: aqui &#233; onde muitos programadores (principalmente eu!) empacam. Criar um layout do zero n&#227;o &#233; f&#225;cil, especialmente se voc&#234; tem bom gosto e especialmente se j&#225; viu muitos sites bons por a&#237;. O layout deste blog ficou bem diferente do que eu havia imaginado, mas at&#233; que quebra o galho. Levei 2 semanas para criar uma imagem no Photoshop deste layout. Muito tempo, n&#233;? Um designer faz isso em 1 hora, se j&#225; tiver uma boa dire&#231;&#227;o sobre o que ele precisa criar. Outra coisa que consumiu um certo tempo foi procurar &#237;cones na web. Voc&#234; geralmente precisa de &#237;cones para real&#231;ar o seu layout, e achar um icon set que te agrade, tamb&#233;m pode demorar. No meio desse processo, encontrei um blog de um designer chamado &lt;a href=&quot;http://singularityconcepts.com/blog.cfm?postID=4&quot;&gt;Joel Watson&lt;/a&gt; que fala muito sobre o processo de cria&#231;&#227;o de um layout de sites, e o que te faz ser um designer melhor. Est&#225; em ingl&#234;s. Vale a pena ler.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Criar o CSS&lt;/b&gt;: essa parte &#233; mais tranquila. Em 1 ou 2 horas voc&#234; cria o CSS b&#225;sico, e depois vai aperfei&#231;oando. Se voc&#234; precisa aprender CSS nos padr&#245;es Web, alguns sites que recomendo s&#227;o: o blog &lt;a href=&quot;http://www.tableless.com.br/&quot;&gt;Tableless&lt;/a&gt;, o campus online de v&#237;deos da &lt;a href=&quot;http://visie.com.br/campus&quot;&gt;Visie&lt;/a&gt;, o blog &lt;a href=&quot;http://www.pinceladasdaweb.com.br/blog/&quot;&gt;Pinceladas da Web&lt;/a&gt; e o &lt;a href=&quot;http://revolucao.etc.br/&quot;&gt;Revolu&#231;&#227;o Etc&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Hospedagem Rails&lt;/b&gt;: deployment de Rails n&#227;o &#233; simplesmente fazer upload dos arquivos e pronto, site funcionando (a menos que voc&#234; use Mod_Rails e j&#225; tenha o Apache configurado). Com Rails voc&#234; pode fazer o deployment de uma aplica&#231;&#227;o usando v&#225;rias combina&#231;&#245;es de software: Apache + FastCGI, Mongrel, Mod_Rails (Phusion Passenger), Nginx, Thin, Lighttpd. A maioria dos provedores de hospedagem nem sabe como fazer funcionar um site em Rails. Alguns oferecem o Apache + FastCGI, que n&#227;o funciona muito bem, e s&#243; aguenta um uso bem moderado da aplica&#231;&#227;o. Ao ver algumas op&#231;&#245;es no mercado, acabei escolhendo o Rails Playground (plano Developer, a US$ 5 / m&#234;s, com op&#231;&#245;es maiores de plano, para quando o site crescer), mas existem outros como Linode, SliceHost, e outros bem mais caros como Engine Yard, Joyent, e por a&#237; vai. Na Rails Playground uso atualmente Apache + FastCGI (eu sei, totalmente b&#225;sico sendo que temos Passenger, Mongrel, e outros), mas com a op&#231;&#227;o de mudar para Mongrel quando precisar. E &#233; at&#233; interessante come&#231;ar algo com a vers&#227;o simples, e ir sentindo a necessidade de escalar a aplica&#231;&#227;o. E nesse processo todo, voc&#234; aprende muito sobre deployment de Rails. Voc&#234; primeiro escala o teu c&#243;digo, fazendo o melhor com o que voc&#234; tem, e s&#243; a&#237; parte pra mudan&#231;as no servidor. O investimento de ter uma conta de hospedagem em um provedor que entende de Rails vale muito a pena, altamente recomendado para quem quer aprender Rails.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Controle de vers&#227;o (Git, &#233; claro!)&lt;/b&gt;: o Akita fala muito disso no &lt;a href=&quot;http://podcast.rubyonrails.pro.br/&quot;&gt;Rails Brasil Podcast&lt;/a&gt;. E n&#227;o &#233; pra menos. &#201; imposs&#237;vel voc&#234; criar uma aplica&#231;&#227;o sem ter um controle de vers&#227;o das altera&#231;&#245;es. E aqui entra o Git, um software opensource de controle de vers&#227;o criado pelo Linus Torvalds, sim ele mesmo, o criador do Linux. Em 1 semana esse cara criou um controlador de vers&#227;o, descontente com as op&#231;&#245;es existentes no momento (em 2006).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Reposit&#243;rio do c&#243;digo (GitHub, &#233; claro!)&lt;/b&gt;: depois de criar um c&#243;digo inicial da tua aplica&#231;&#227;o, ou pelo menos o arquivo README que seja, voc&#234; precisa colocar isto em um reposit&#243;rio de onde voc&#234; possa acessar remotamente e trabalhar no c&#243;digo sempre que quiser. Funciona assim: voc&#234; cria uma conta no &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt;, e envia a tua aplica&#231;&#227;o para o site. Depois sempre que voc&#234; quiser trabalhar em cima da aplica&#231;&#227;o, voc&#234; &quot;baixa&quot; o c&#243;digo para tua m&#225;quina local, trabalha nas altera&#231;&#245;es, faz teus commits, e depois envia as atualiza&#231;&#245;es para o reposit&#243;rio. Voc&#234; pode usar o plano free, onde teus projetos s&#227;o considerados open-source, e assim todos podem abrir e ver teu c&#243;digo. Ou voc&#234; pode usar um plano pago, a partir de U$ 7/m&#234;s, e criar projetos privados, que s&#243; voc&#234; pode ver.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Deployment da aplica&#231;&#227;o&lt;/b&gt;: Capistrano &#233; uma solu&#231;&#227;o em Ruby, que funciona na tua pr&#243;pria m&#225;quina. Funciona como um script que faz em sequ&#234;ncia, todas as tarefas que voc&#234; faria para colocar um site em produ&#231;&#227;o:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;entra por SSH no servidor de produ&#231;&#227;o;&lt;/li&gt;
&lt;li&gt;gera um tar.gz do conte&#250;do atual do site;&lt;/li&gt;
&lt;li&gt;envia o conte&#250;do novo do site;&lt;/li&gt;
&lt;li&gt;corrige permiss&#245;es em arquivos;&lt;/li&gt;
&lt;li&gt;roda Migrations, no servidor de banco de dados;&lt;/li&gt;
&lt;li&gt;restarta o servidor Web;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#201; altamente recomendado, e depois de configurado voc&#234; s&#243; precisa rodar &#8220;cap deploy&#8221; para subir uma nova vers&#227;o para produ&#231;&#227;o.&lt;/p&gt;

&lt;p&gt;Em breve, teremos a pr&#243;xima parte da s&#233;rie de posts sobre como foi criar este blog, usando Ruby on Rails. Stay tuned! :)&lt;/p&gt;
</body>
  <comments-count type="integer">1618</comments-count>
  <created-at type="datetime">2008-11-01T14:52:51Z</created-at>
  <id type="integer">2</id>
  <permalink nil="true"></permalink>
  <slug>processo-criacao</slug>
  <title>Processo de cria&#231;&#227;o de um blog em Rails - Parte 1</title>
  <updated-at type="datetime">2008-11-02T23:30:08Z</updated-at>
  <user-id type="integer" nil="true"></user-id>
</post>
