Mostrando postagens com marcador Ruby. Mostrar todas as postagens
Mostrando postagens com marcador Ruby. Mostrar todas as postagens

quinta-feira, 26 de abril de 2012

Meu ambiente de trabalho em 7 itens II

Tô aqui de bobeira, sem sono, vi um post meu antigo "Meu ambiente de trabalho em 7 itens", resolvi então dizer como esse ambiente está hoje em dia.

1 - Ubuntu

Sempre utilizando a versão atual do sistema, hoje fiz o upgrade para Ubuntu 12.04 LTS, estou na época em que alguns usuários reclamaram muito do Unity, só que eu acho muito boa, como tento usar pouco o mouse, ele está me servindo muito bem. Estou querendo fazer uns testes com Arch Linux, mas isso só  em casa.

2 - VIM

Aposentei o uso do GEdit à alguns mêses, estou pegando pesado no aprendizado do VIM, utilizo a receita do Akita, muito boa, atende o que eu preciso ... por enquanto. Estou pensando em dar uma olhada no Emacs.

3 - Chrome

Chrome é foda, não consigo usar muito outros navegadores depois dele.

4 - Consulta

Como trabalho com Ruby, utilizo http://edgeapi.rubyonrails.org/ e http://www.ruby-doc.org/core-1.9.2/index.html, fora a quantidade absurda de livros que tenho para consultar, Stack Overflow sempre ajuda. Não posso esquecer dos senhores Github e o Google, sempre quebrando galhos.

5 - Papel e caneta

Parece antigo, mas funciona muito bem para mim, colocar a ideia no papel me ajuda na conclusão da tarefa melhor e mais rapidamente.

6 - Pomodoro

Sempre que posso utilizo Pomodoro, muito bom para focar e dividir a tarefas, saber quando parar e dar uma relaxada.

7 - Música

Meu Last.fm diz melhor o que gosto de ouvir, para ocorrer a famosa concentração.

Acho que é só, até o próximo post.

quinta-feira, 3 de março de 2011

Ruby on Rails do zero

No decorrer dos meus posts vou trabalhar sempre na mesma aplicação que começarei neste post, vou disponibilizar ela no Github.
Essa aplicação terá de tudo que um site tem normalmente, Devise, Simple Form, Sphinx, Acts As Taggable On, Gravatar, Autocomplete, Ajax, Rspec, etc.. Vou ajudar a criar tarefas que otimizem o seu tempo, como testar suas aplicações, como fazer um bom código. Muita coisa que vou escrever aqui vocês poderam encontrar fazendo uma busca no Google, mas a diferença é que vai estar tudo em um só lugar e explicado em vários posts para facilitar sua vida, fora que como disse antes, a aplicação ficará no Github para o seu auxílio.

Vou utilizar o Ruby 1.9.2, e estou usando RVM.

Crie uma aplicação nova:

rails new zblog -d mysql

Vá na pasta public e renomeie o arquivo index.

Abra o arquivo Gemfile e adicione as linhas abaixo:

gem 'aws-s3'
gem 'warden', '0.10.7'
gem 'bcrypt-ruby', '2.1.2'
gem 'devise', '1.1.rc2'
gem 'rspec'
gem 'rspec-rails'
gem 'simple_form', '1.3.1'

Irei falar de cada um com o tempo. Vamos configurar o Simple Form para você poder fazer os scaffolds já utilizando ele, primeiro instale.

rails g simple_form:install

Arquivos gerados abaixo:

create  config/initializers/simple_form.rb
create  config/locales/simple_form.en.yml
create  lib/templates/erb/scaffold/_form.html.erb

Crie um controller home que será a nossa futura capa:

rails g controller home

Vá em config/routes e coloque:

root :to => "home#index"

Vamos gerar um scaffold de Post para você ver a mágica do Simple Form.

rails g scaffold Post title:string body:text publication:datetime enabled:boolean

Em posts/_form.html.erb:

<%= simple_form_for(@post) do |f| %>
  <%= f.error_notification %>

  <div class="inputs">
    <%= f.input :title %>
    <%= f.input :body %>
    <%= f.input :publication %>
    <%= f.input :enabled %>
  </div>

  <div class="actions">
    <%= f.button :submit %>
  </div>
<% end %>

Se está acostomado com os scaffolds do Rails, você vai logo ver a diferença. Primeiro é adicionado um helper chamado simple_form_for, que é nosso formulário, os inputs criados criam um html automático que você teria que fazer, isso diminui e muito o código a ser colocado no seu arquivo.

Adicione o CSS abaixo para dar uma melhorada no layout:


.simple_form label {
  float: left;
  width: 100px;
  text-align: right;
  margin: 2px 10px;
}

.simple_form div.input {
  margin-bottom: 10px;
}

.simple_form div.boolean, .simple_form input[type='submit'] {
  margin-left: 120px;
}

.simple_form div.boolean label, .simple_form label.collection_radio {
  float: none;
  margin: 0;
}

.simple_form label.collection_radio {
  margin-right: 10px;
  margin-left: 2px;
}

.simple_form .error {
  clear: left;
  margin-left: 120px;
  font-size: 12px;
  color: #D00;
  display: block;
}

.simple_form .hint {
  clear: left;
  margin-left: 120px;
  font-size: 12px;
  color: #555;
  display: block;
  font-style: italic;
}

Depois disso faça alguns teste utilizando o Simple Form, como adicionar um "hint" no input "title":

<%= f.input :title, :hint => "title" %>

também teste validação no seu model, e veja como fica o layout:

class Post < ActiveRecord::Base
  validates_presence_of :title, :body
end

Existe um arquivo em config/initializers/simple_form.rb que você poderá configurar e um arquivo em config/locales/simple_form.en.yml, para tradução, se criar um arquivo simple_form.pt-br.yml, irá poder traduzir os inputs gerados pelo Simple Form. Mas se for traduzir tem que especificar em config/application.rb, qual será a língua padrão:

config.i18n.default_locale = 'pt-br'

Para não alongar muito o post e deixar cansativo, vou encerrar ele por aqui, no próximo vou mostrar o Devise e o Gravatar. Vou mostrar mais sobre o Simple Form com o tempo, por enquanto paro por aqui. Essa aplicação já está no Github(github.com/vagnerzampieri/zblog), você irá notar que tem código a mais do que foi mostrado aqui, mas nós chegaremos lá.
Até a pŕoxima.

terça-feira, 8 de fevereiro de 2011

Não sabe um caminho para seguir na programação? tente este aqui, parte 6/6

Comunidades, não tenha medo delas, elas só existem para ajudar.

Terminar essa saga parece um parto, mas enfim consegui. Vou falar de comunidades e do que elas me ajudaram até agora.
Quando eu comecei a programar de verdade (foi quando eu arrumei meu primeiro emprego e único em 09/2009), eu nem fazia ideia de como construir uma futura carreira, na realidade se eu não tivesse no terceiro período da faculdade eu tinha desistido de informática no meu primeiro dia de trabalho. Eu tive que instalar um monte de parada na máquina, sem nunca ter mexido em um Linux direito, nem sabia configurar o PHP naquela época, linguagem na qual não trabalhei dois mês e mudamos para Ruby :). Eu imaginei naquela época que não ia durar no emprego, que programação não era para mim, que aquilo não fazia lógica, mas ao mesmo tempo que eu senti aquele medo absurdo que não fazia ideia de onde vinha, me lembrei de algo que eu sigo em minha vida inteira, não desisto das coisas que acredito. Falei para mim mesmo, existe Ctrl-z pra que, pra usar, se errar faço de novo, e tive a ajuda de um grande mestre jedi que virou meu amigo, que é o Fernando Kosh, o cara me ensinou o caminho das pedras, mas ao mesmo tempo fazia o "se vira", que é muito útil.
E uma das coisas que ele mais me falava/fala é das comunidades open source que existe na área, a primeira delas foi o #horaextra que acontece no centro do Rio em uma mesa de bar todas às segundas. Os caras falam de tecnologia a noite toda praticamente. Mas não parou por ela ao ser apresentado ao mundo Ruby on Rails e Linux conheci uma quantidade grande de pessoas que participam de comunidades e incentivam a sua participação nelas.
Só que mesmo assim eu não participava delas, eu pensava que não precisava, que o mais importante era eu estudar, me desenvolver sozinho, só que tem um problema nisso. Quando você faz uma busca no Google por algo relacionado a programação, algum erro que você não consegue tirar, ou algum script que você quer fazer mas não tem ideia de como começar. É por causa das comunidades, dos fóruns, das listas que sua dúvida é tirada, é por causa dessa interação com outros programadores que você vai conseguir tirar as suas dúvidas e ajudar outros programadores que vão ter dúvidas que você já teve, e agora tem conhecimento adquirido para ajudar.
A minha ficha só caiu de verdade em relação a participação foi quando eu fui na palestra do Henrique Bastos no DevInRio de 2010, a palestra foi tão boa que eu me senti um idiota por não participar das comunidades, naquela mesma semana fui ao #horaextra, #dojorio, tive uma ideia de evento maneira para fazer (que não foi concretizada ainda, já que eu parei no hospital tempos depois por uma arritimia no coração que me deixou parado um tempo, mas isso não vem ao caso, mas por causa disso eu perdi o RubyConf de 2010, foi dias antes, rssr). Eu posso não ter conseguido colocar minha ideia em prática, mas estou ajudando nos encontros de #ForkinRio na Cidadelas, empresa que trabalho, estudamos Rails3 e tem sido uma experiência muito boa, confeço que não participo do #rubyonrio como queria, ou das outras comunidades, mas faço o possível para conparecer e ajudar no que puder.
Hoje aquele cara que começou na área com medo, achando que programação é uma viagem, que nunca ia conseguir, já foi promovido, elogiado pelo seu trabalho e comprometimento com a empresa, e virou víciado em desafios, programar coisas diferentes e difíceis, e encara uma missão com calma e racionalidade, por que sabe hoje que programação não é um bicho de sete cabeças.
Espero que eu consiga ajudar alguém com minha experiência, vou tentar postar regurlamente as minhas experiências com programação, principalmente falando de Ruby e Linux.
Até a próxima !!

terça-feira, 28 de dezembro de 2010

Meu ambiente de trabalho em 7 itens

A missão de fazer esse post foi sugerida pelo Bruno Codeman que é da comunidade SouDev e está incentivando os desenvolvedores falarem de seus ambientes de trabalho.

1 - Ubuntu 10.10

Comecei na área de programação desde setembro de 2009 programando em Ruby on Rails. Antes disso programava em PHP alguns dos meus trabalhos de faculdade e o SO era um Windows XP. A maior diferença que vi foi a velocidade e a facilidade que um Linux me dá na hora de um desenvolvimento, como a comunidade Linux é gigantesca, todos os problemas que tive com a adaptação foram sanados rapidamente com o auxilio dos participantes. Não sou nenhum especialista em Linux, mas aprendi muito com ele até hoje, e vejo que hoje em dia sei um pouco sobre SO, coisa que pensava que sabia mexer em Windows.

2 - GEdit

Não utilizo nenhuma IDE para programar já que é bem fácil utilizar
Ruby on Rails. Faço todos os meus códigos no GEdit por ser uma
ferramenta que me dá a agilidade que preciso no desenvolvimento.
Instalo nele o GMate, que traz uma quantidade de plugins enormes que,
configurados da forma correta, me dá a agilidade necessária.

3 - Phpmyadmin

Utilizo por enquanto o MySQL como banco de dados e, para facilitar a
visualização das tabelas, utilizo o Phpmyadmin, que me facilita
bastante. Como eu já o utilizava na época que fazia alguns scripts de
PHP, não precisei de adaptação e sim aprofundamento na ferramenta.

4 - Chrome

Hoje em dia estou utilizando o Chrome para desenvolvimento e estou
gostando. Ele tem uma ferramenta parecida com o Firebug do Firefox  já
integrada. Acho ele bem rápido, mas como estou há pouco tempo
utilizando-o, não tenho muitas coisas para falar.

5 - Rails Brain, Rails Guides e Github

São os meus companheiros inseparáveis. Neles tem toda a documentação
necessária para Rails que eu preciso. O Rails Brain é uma API de Rails
bem rápida feita em Ajax e o Rails Guides vem com toda a documentação
necessária para eu tirar minhas dúvidas maiores. O Github é onde eu
encontro alguns plugins que me ajudam no desenvolvimento dos sites que
faço, nele também tem documentações e aplicativos de testes bem úteis. 

6 - Google

Se tenho uma dúvida grande o guru Google me ajuda a resolver da forma
mais rápida e correta possível.

7 - Música

Rock o dia inteiro nos fones, é a melhor forma que eu encontrei de me
concentrar. Toca desde Coldplay a Demon Hunter, passando por todos os
estilos de Rock e de vez em quando um Rap.

Já que a ideia é passar o bastão para outros, eu gostaria que o Luciano Sousa, Raphael Almeida, Fernando Kosh e o Rui Andrada compartilhem seus ambientes de trabalho.