Subindo uma aplicação Rails para o Heroku

Subindo uma aplicação Rails para o Heroku

Para quem quer uma opção de onde hospedar sua aplicação de teste gratuitamente, uma opção é o Heroku. Nesse tutorial, mostro como subir um simples aplicação de exemplo para o heroku.

Criando nosso projeto na nossa máquina

rails new heroku-test

Após criar a aplicação, vamos direto para o arquivo Gemfile. Precisamos editar uma linha. Procure onde tem a linha gem 'sqlite3'. Mude ela para como mostrado abaixo


gem 'sqlite3', group: :development

Isso nos certifica que usaremos o banco sqlite apenas no ambiente de desenvolvimento, pois para usarmos o plano gratuito oferecido pelo Heroku, temos que usar como banco de dados o Postgres.

Agora no final do nosso Gemfile vamos adicionar as seguintes linhas:

group :production do
  gem 'pg'
  gem 'rails_12factor'
end

A gem pg é para o dizer que iremos usar o Postgres em produção e a outra gem é requisito para o Heroku manipular os nossos assets. Para mais detalhes sobre esses detalhes recomendo essa leitura: 12factor.

Vamos rodar o comando para instalar as gems

bundle install

Para finalizar nossa app de exemplo, vamos criar um controller e uma view padrão, apenas para ser nossa página inicial.

rails g controller pages index

Criamos o controller pages e precisamos apenas de um método, index, para mostrar nossa página de exemplo. Vamos editar a view index com um pequeno lorem.

app/views/pages/index.html.erb

<h1>Estou no Heroku!</h1>
<p>
Lorem ipsum dolor sit amet, modo convenire cu vel, an liber oratio quo. No cum recusabo consequuntur, quo scripta eruditi civibus ne. No fabulas hendrerit philosophia has, et praesent suscipiantur vix, quo dico zril persequeris te. Ipsum reprimique dissentias usu ne. Ut quo dicta vivendo elaboraret, his te graeci corpora antiopam.

Mea mutat petentium assentior ea, duo ei vero iuvaret percipit. Nulla doctus salutandi nam in, mel at iusto hendrerit, nec no vocent perfecto invenire. Timeam oblique corrumpit at pro, pri mundi dolorem in. Debitis noluisse pertinacia pro ne, ad primis detraxit cotidieque nam.
</p>

Depois, vamos a nosso arquivo de rotas para dizer qual será a nossa página inicial padrão.

config/routes.rb

Rails.application.routes.draw do
  get 'pages/index'
  root 'pages#index'
end

Enviando para o Heroku

Agora que temos nossa aplicação pronta, falta apenas alguns detalhes.

  1. Visite o site: https://heroku.com
  2. Crie uma conta
  3. Ative sua conta
  4. Instale o Heroku toolbet
  5. Teste se está ok, digite no terminal: heroku version
  6. Adicione sua chave SSH para sua conta do Heroku: heroku keys:add

OBS: Caso não tenha uma chave SSH, veja como criar aqui

Com esses passos feitos, precisamos comitar

git init
git add .
git commit -m "Commit inicial"

Depois do commit inicial, vamos criar nossa aplicação no heroku.

heroku create
git push heroku master

Pronto, agora para ver nossa aplicação no ar, digite

heroku open

É isso, pessoal, caso tenham tido problema no meio do caminho, fala nos comentários. Ah, tem esse gist que eu fiz que tem um resumo de configurações com o git e o heroku. gist

Sites Referências da Comunidade Ruby

Sites Referências da Comunidade Ruby

Há cerca de 3 anos atrás eu comecei meus estudos na linguagem ruby e no framework rails. São muitos conceitos, muitas informações e muitas coisas novas para se aprender. Então, aqui vai minha lista para me manter informado e acompanhando as novidades no mundo Ruby e Rails. Vou dividir por conteúdos nacionais e internacionais.

OBS: Existem muitos outros sites incríveis falando dessa tecnologia, estes listados são apenas os que julgo mais focados no assunto.

Sites Nacionais

Akita on Rails

Falar de Rails no Brasil e não lembrar do Fábio Akita é quase impossível. Conheço pessoas que sabem quem é o Akita, mas nunca ouviram falar de um tal de DAVID HEINEMEIER HANSSON o criador do Rails lol. Saiba tudo sobre o Akita aqui. Então, os conteúdos do Akita são sempre pertinentes e você irá encontrar constantemente looongos e detalhados posts. Vale a pena cada minuto lá!

Sugestão de Post: Quais são algumas das piores práticas para aplicações Ruby on Rails?

Nando Vieira

Uma das coisas mais bacanas nos posts do nando é que quase sempre você termina de ler e já pode aplicar no seu projeto. Ele fala desde coisas de servidores, quando a código para iniciante, e de uma forma sempre muito didática, provavelmente adquirida com anos como professor em cursos online no howto. Saiba tudo sobre o Nando aqui. Por sinal fiz o curso de Background Jobs no Rails e ele simplesmente te economiza semanas, talvez meses de estudos e tentativas e erros em um único dia de intenso aprendizado. Recomendo fortemente os cursos do howto.

Sugestão de post: Atualizando seu projeto para uma nova versão do Rails

Blog HE:labs

Na HE:labs eles costumam dizer não apenas fazem software, mas eles avassalam! Uma empresa do Rio de Janeiro que conta com um grupo de desenvolvedores não só cariocas, mas divididos Brasil afora. Com tudo isso eles geram conteúdo de muitaaaa qualidade. Startup, empreendedorismo, Ruby, Rails, Devops, tudo isso é assunto do blog da HE. Os caras manjam dos paranauê, então confere lá!

Sugestão de post: Entendendo o autoload do Rails

Plataformatec

Com figuras como José Valim, Rafael França e Carlos Antonio da Silva, todos membros do Rails Core Team e todos os 3 estão entre os 3 maiores colaboradores do Rails! Além da empresa produzir populares gems como devise e simple form, um de seus fundadores, o Valim criou uma linguagem de programação muito falada atualmente Elixir. Então eles tem muita propriedade para falar! Confira lá pesquisando principalmente pela categoria de Ruby on Rails, pois os últimos posts vem focando mais o Elixir.

Sugestão de post: Active Record scopes vs class methods

Sites Internacionais

Avdi Grimm

Um dos nomes mais respeitados na comunidade Ruby, Avdi Grimm se destaque pela profundidade tecnica e cientifica de seus posts. Autor de livros como Confident Ruby (já li e recomendo), screencast Ruby Tapas e o podcast Ruby Rouges. Cada post vem com um pouco de filosofia e muito conteúdo tecnico!

Sugestão de post: Demeter: It’s not just a good idea. It’s the law.

justinweiss.com

Justin Weiss tem um conteúdo incrível e com dicas sempre práticas, você sai de um post e já pode inserir a dica na sua rotina. Ele tem um lista onde você pode se inscrever gratuitamente e receber conteúdos exclusivos (de fato ele manda materiais bem relevantes!). Também tem um livro, Practicing Rails, abordando como começar no mundo Rails sem ficar sobrecarregado.

Sugestão de post: How to Dispel Ruby Magic and Understand Your Gems

Giant Robots

Blog de uma das grandes empresas do mundo Rails, a Thoughtbot, esse blog, aborda desde conceitos mais básicos do ruby, como também arquitetura de software e TDD. A empresa tem vários projetos open-source, como a famosa gem de upload de arquivos Paperclip e a gem para testes Factory Girl.

Gostaria de destacar um conteúdo especial da Thoughbot, o seu guia de como eles fazem as coisas na empresa, o chamado Plabook. Ele aborda desde como eles planejam os sprints, como fazem deploy, como pagam os colaboradores, em resumo como toda empresa funciona. Confira em https://playbook.thoughtbot.com

Sitepoint – Rubby

Encerrando a categoria gringa, vale a pena destacar o site focado em tutoriais chamado Sitepoint. Ele tem várias categorias onde são postados tutoriais de ótima qualidade! Para nós eu destaco a sessão ruby ele tem muita coisa boa.

Sugestão de post: Deploy Your Rails App to AWS

É isso, espero que tenho anotado as dicas. Se você tem um site para adicionar na lista, deixa ai nos comentários, eu agradeço muito!

Os 3 Pilares da Motivação

Esse texto é uma tradução minha do excelente “The Three Pillars of Motivation” de Francisco Sáez. Vale a pena a leitura e reflexão.

 

Daniel Pink nos fala em seu livro Drive: The Surprising Truth About What Motivates Us que trabalhar é tão natural como jogar e descansar e isso, sobre as condições ideais, nos faz aceitar e buscar esse tipo de responsabilidade.

A maioria das pessoas são movidas por motivações intrínsecas ao invés de extrínseca, ou seja, elas se preocupam mais com a satisfação que pode ter em fazer determinado trabalho do que com as recompensas externas que eles irão receber por fazer isso.

A longo prazo, pessoas motivadas intrinsecamente tem mais sucesso do que as que apenas procuram a recompensa, pois elas tem uma vontade muito grande de controlar suas vidas. Elas também tendem a ter uma maior auto-estima e melhores relacionamentos.

Para alcançar esse nível de motivação nós precisamos de três ingredientes:

1. Autonomia

Nós gostamos de dirigir nossos comportamentos nós mesmos

Algumas empresas estabeleceram ambientes de trabalho baseado apenas em resultados. Nesses ambientes você não precisa “bater o ponto”, nem sequer estar presente na empresa em um horário específico. Os funcionários precisam fazer de fato o trabalho que lhe foi designado. Como, quando, onde e com quem eles fazem, é de responsabilidade deles. No entanto, o funcionário é totalmente responsável pelo trabalho feito.

Esse tipo de motivação pode ser muito superior do que salários altos, pois quando nós atingimos uma qualidade de vida digna para nossa família, o dinheiro deixa de ser um fator motivador para nosso desempenho.

Autonomia não significa independencia. Significa liberdade de escolha. O senso de ter autonomia produz um efeito muito positivo na nossa atitude e em nosso desempenho. Além disso, segundo algumas pesquisas, existe um relação direta entre autonomia e bem-estar geral.

2. Maestria

Nós queremos ser cada vez melhores nas coisas que nos preocupamos.

Quando fazemos o que gostamos e somos bons nisso, normalmente alcançamos o que a psicologia chama de Estado de Fluxo. É um estado em que você está completamente focado no que você está fazendo e usando ao máximo suas habilidades. O tempo voa e o relacionamento entre você e sua tarefa é perfeito.

A busca constante pela melhoria nos ajuda a nos sentir satisfeitos com nosso trabalho e nos leva para um nível maior de produtividade. De fato, estudos mostram que o desejo por desafios intelectuais é o melhor indicador de produtividade.

O oposto também influencia, contudo negativamente: Fazer tarefas que não são minimamente desafiadoras é uma fonte de frustração. Precisamos achar um equilíbrio entre o que nós temos que fazer e o que nós podemos fazer.

Maestria não é fácil, requer um esforço contínuo e nunca estará completamente alcançado. Porém, quanto mais você melhora suas habilidades, mais você irá gostar de continuar exercitando.

3. Propósito

Nós precisamos conectar a conquista da excelência a um grande propósito.

Esse é o terceiro pilar da motivação e o que nos dá uma ligação entre os outros dois. De acordo com Csikszentmihalyi, propósito fornece energia para viver.

Até agora, as metas das empresas são anunciadas usando palavras como eficiência, vantagens, diferenciais, valores, etc. É importante realmente saber porque fazemos o que fazemos com palavras diferentes como verdade, amor, ajuda, melhorar, etc. O propósito de uma empresa e como isso está relacionado com a comunidade pode ser um incentivo muito maior do que meramente financeiro.

Metas com fins lucrativos talvez tenham impacto nos investidores, mas nenhum no bem-estar dos clientes e empregados. Não é sobre ter apenas metas, mas sobre ter as metas certas. Benefícios devem ser vistos como uma forma de se aproximar dos objetivos, mas não dos objetivos em si.

Se você ainda não pensou sobre isso, segue um guia para achar seu propósito de vida.

Bônus

Agora vai uma dica minha sobre um dos melhores Ted Talks que já assisti, não deixe de conferir The puzzle of motivation