Category Archives: Ruby on Rails

Instalando a gem ‘pg’

Instalou o PostreSQL via brew e agora está precisando instalar a gem pg na sua maquina e não está conseguindo?

gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.x.x/bin/pg_config

resultado abaixo:

fabiotomio$ gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.4/bin/pg_config
Building native extensions with: '--with-pg-config=/usr/local/Cellar/postgresql/9.3.4/bin/pg_config'
This could take a while...
Successfully installed pg-0.17.1
invalid options: -f fivefish
(invalid options are ignored)
Parsing documentation for pg-0.17.1
Installing ri documentation for pg-0.17.1
Done installing documentation for pg after 2 seconds
1 gem installed

e seja feliz!

Zend Framework, CakePHP, Symfony, CodeIgniter! PHP Hypertext pre o que mesmo?

Qual a sua preocupação na fluência em uma linguagem?
Qual a sua preocupação em aprender mais um framework?

Quando entramos no mercado de trabalho, a principal pergunta que você terá que responder é:
Trabalha com qual framework?

Em tempos atuais é muito mais importante o conhecimento em um framework que a própria fluência e conhecimento da linguagem que o framework é desenvolvido. Tem profissional que só dá atenção para a alguma funcionalidade nova na linguagem, quando quebra um projeto, ou quando o próprio framework exige. Será que as coisas não estão invertidas?

É subtendido que a linguagem é dominada ou conhecida, mas as coisas não são bem assim. A linguagem se tornou coadjuvante nessa história toda, mas com certeza, independente do framework que o profissional quiser aprender, a fluência na linguagem é essencial, seus conceitos, características, origens, evolução, etc. Digo mais, dependendo do framework, só a fluência na linguagem não é suficiente! Mas essa é outra história.

Tem dado a devida importância para a sua linguagem de programação?
Tem acompanhado o seus releases? em em em?

Pense nisso, e clique no link abaixo que mais lhe interessar!

Até a próxima!

 

Java Update Release Notes
http://www.oracle.com/technetwork/java/javase/releasenotes-136954.html

PHP Releases
http://php.net/releases/index.php

Ruby News
http://www.ruby-lang.org/en/news/

Entendo a estrutura de diretórios do Rails

Bom já temos o MySQL e o Ruby on Rails na máquina, já sabemos também como criar um projeto Rails. Mas o que ele cria? Por que todas aquelas pastas? Precisa de tudo isso pra funcionar? Com esse post dou início aos estudos efetivos do Rails, particularmente estou começando ainda meus estudos com o Rails, comprei o meu segundo livro de Rails recentemente e este é mais detalhado, recomendo. O título é “Programando Rails A Bíblia” de Obie Fernandez, um experiente programador Java que acabou migrando pro Raisl logo quando o Rails estava surgindo.

Minha idéia é ir postando os conteúdos na medida que eu vou evoluindo nos estudo do Rails. Assim quem quizer aprender é só seguir os posts. Bom vamos ver se isso vai dar certo.

Mas vamos ao que interessa!

Bom, digitamos no Terminal o comando: rails NomeDoProjeto, e o resultado é

README
Rakefile
app/
config/
db/
doc/
lib/
log/
public/
script/
test/
tmp/
vendor/

É sobre essa organização de pastas que vamos falar hoje.

README – arquivo com instruções de uso;
Rakefile – script de construção;
app/ – Dentro dessa pasta estão os arquivos da estrutura MVC – (Model, View e Controller);
components/ – componentes reutilizáveis;
config/ – parâmetros de configurações tanto do projeto quanto do banco de dados;
db/ – Informações sobre o esquema e as migrations geradas para modificar o banco de dados;
doc/ – Documentação auto gerada, utilizando o Rdoc,
lib/ – Código compartilhado códigos que não podemos adicionar a uma um modelo, view ou controller, algo como um gerador de arquivos pdf.
log/ – documentos de log produzidos pelo seu aplicativo;
public/ – Diretório acessível pela Web. É a pasta onde o HTTP server utiliza pra rodar o seu aplicativo;
script/ – Scripts utilitários, onde estão os programas utilizados pelos desenvolvedores Rails, para entede-los você pode executalos sem nenhum argumento, você obterá informações sobre de uso;
test/ – Utilitários de testes, onde escrevemos os teste funcionais, testes de integração, fixtures e simulações;
tmp/ – Arquivos temporários utilizados e gerados em tempo de execução do seu aplicativo;
vendor/ – Código importado onde você irá por os seus plugins utilizados pela aplicação, código de terceiros.

As pastas app/ e test/ é onde fica quase toda a nossa aplicação, é onde mais iremos trabalhar!

Bom hoje é isso. Acho que com isso conseguimos ver com outros olhos toda a estrutura de pastas criada automaticamente pelo Rails. Nos próximos posts vou detalhar mais cada uma destas pastas falando dos seus arquivos internos.

Ruby on Rails 2.2 no Mac (Leopard)

Para instalar o Ruby on Rails você precisa do MySQL, como instalar o MySQL no Mac você encontra esse post Instalando o MySQL no Mac (Leopard) e precisa também do Xcode Tools. O Xcode Tools veio com o seu Mac, é o CD2 de instalação do Mac OS X. Com o Xcode é instalado também o gcc, um compilador necessário para instalar o suporte do MySQL para o Ruby.

Fiz a instalação em vários Mac`s diferentes até chegar nesse tutorial, pra validar refiz em outro Mac no trabalho. Ao todo foram 4 instalações em 4 Mac`s diferentes, em ambientes totalmente diferentes, com proxy, sem proxy, mini Mac, iMac e Macbook. Espero que você não tenha problemas, se tiver é só comentar o post que retorno.

Caso você já instalou o MySQL e o Xcode então vamos ao que interessa.

Primeiro é atualizar o Gem, que é o gerenciados de pacotes do Ruby. Pra ilustrar abaixo estão as versões que acompanham o Leopard.

install-ruby-on-rails-on-leopard-01

Você deve ter notado, a instalação do Ruby on Rails é feita no Terminal.
Para iniciar a instalação precisamos ter permissões root, o comando sudo sh resolve essa questão:

sudo sh

Ele vai pedir a senha, dai você se pergunta: que senha? É a mesma senha do seu usuário, mas não pode ser em branco, caso sua senha esteja em branco, defina uma em System Preferences -> Accounts. Não esqueça que o seu usuário tem que pertencer ao grupo Admin, caso não pertença é preciso acessar o Mac com um ususário que pertença.

new-password

Agora sim, com a senha definida, vamos ao Terminal e digitamos: sudo sh

 sudo sh

Vamos atualizar o gem utilizando o comando gem update –system

 gem update --system

Quando fiz esses printscreen eu estava no trabalho, lá para acessar a Internet precisamos autenticar no proxy a primeira linha do print abaixo faz isso, diz pro sistema pra quando acessar algum conteúdo utilizando o protocolo HTTP efetue essa requisição utilizando o proxy, esse comando eu utilizo no Linux toda a vez que preciso atualizar algum pacote ao baixar algum arquivo utilizando o wget, como o Leopard é irmão do Linux não custa garantir.

Se você não estiver em uma rede que precise se autenticar no proxy pra acessar a Internet esqueça isso, caso esse seja o seu caso não custa ter 100% de certeza configurando as opções de Proxy em System Preferences -> Network -> Sua Conexão -> Advanced -> Proxies.

install-ruby-on-rails-on-leopard-02

Vai apararecer na sua tela algo parecido com o print abaixo.

install-ruby-on-rails-on-leopard-03

Digitando gem -v e rails -v validamos se foi atualizado com sucesso.

gem -v
ruby -v

install-ruby-on-rails-on-leopard-042

Agora é a vez do Rails, para instalar o Rails pedimos para o Gem agora atualizado instalar utilizando o comando

 gem install rails --include-dependencies

install-ruby-on-rails-on-leopard-07

Pronto, pra validar é só digitar o comando rails -v

 rails -v

Agora precisamos instalar o suporte do Ruby ao MySQL, esse comando é um pouco mais extenso:

 env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

install-ruby-on-rails-on-leopard-09

Pronto, Gem e Ruby atualizados e Rails e suporte do Ruby pro MySQL instalados, para testes vamos criar nossa primeiro projeto:

 rails FirstRailsApp --database=mysql

install-ruby-on-rails-on-leopard-10

Vai aparecer na tela o seguinte

install-ruby-on-rails-on-leopard-11

Vamos entrar na pasta do projeto cd FirstRailsApp e iniciar o servidor Web para ver se está funcionando.

cd FirstRailsApp
script/server

install-ruby-on-rails-on-leopard-12

Que tal ver se funcionou? Abra o seu navegador e acesse http://localhost:3000 irá aparecer o seguinte conteúdo

install-ruby-on-rails-on-leopard-13

Se quizer testar se a conexão com o banco está ok, precisamos antes configurar o arquivo database.yml que está dentro da pasta config do seu projeto (config/database.yml).

Após configurado crie o database no MySQL utilizando por exemplo o MySQL Query Browser ou a sua ferramenta favorita.
Para testar o acesso ao banco digite rake db:migrate, ele irá tentar conectar com o banco e verificar se existe a base definida no arquivo de configuração.

rake db:migrate

Pronto, ambiente praparado.

Agora vamos revisar o nosso trabalho.

  • Atualizar o gerenciador de pacotes nativo do Leopard e com ele o Ruby
  • Instalar o Rails
  • Instalar o suporte do Ruby pro MySQL direcionando o arquivo de configuração do MySQL
  • Testar montando um projeto Rails

Resumo dos comandos – Indo direto ao ponto

Versões instaladas.

gem -v
ruby -v

Atualizando versões e instalando o Rails e suporte ao MySQL do Ruby

sudo sh
gem update --system
gem install rails --include-dependencies
env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Versões finais

gem -v
ruby -v
rails -v

Testando

rails FirstRailsApp --database-mysql
cd FirstRailsApp
rake db:migrate
script/server

Ver conteúdo no endereço: http://localhost:3000

Instalando o MySQL no Mac (Leopard)

Organizando um pouco o blog e segmentando o post “Ruby on Rails 2.2 e MySQL no Leopard” em dois pos estava muito comprido, não complexo, só por questão de busca e estética.

Você deve estar se perguntando por que instalar o MySQL sozinho se existem combinações do tipo MySQL + Apache e PHP. Vou explicar o porquê. Você lembra daqueles modelos de televisores que vinham com o vídeocassete junto, conhecidos como duetos, existem hoje uns que vem com o DVD acoplado. Quando acontece alguma coisa com o seu televisor e você precisa levar pra alguma assistência técnica pra arrumar, você fica sem o videocassete, caso dê problema no seu videocassete e você precise fazer a mesma coisa, você fica sem o televisor, sendo mais claro, a combinação é muito útil quando pensamos em praticidade e facilidade de uso, mas quando paramos pra pensar em manutenção, configurações e personalizações ficamos muitos amarrados. Outro motivo seria, o Mac já possui por padrão o Apache, porque instalar outro se já possuímos um? Dois Apaches na maquina? Por esses motivos prefiro trabalha com meus serviços não agrupados, em troca de um maior nível de flexibilidade e personalização.

Mas isso não o impede de ignorar esse tutorial e baixar o MAMP, mas se o caso não for esse vamos iniciar a instalação do MySQL?

Para instalar o MySQL precisamos fazer o download da última versão estável disponível no site. http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg

Baixar a opção Packager Formated – Mac OSX 10.5 (Leopard)
se você utiliza o Tiger baixar a opção Packager Formated – Mac OSX 10.4

install-mysql-on-leopard-02

Escolher o Mirror para download.

install-mysql-on-leopard-03

Montar o dmg e executar o arquivo X.X.X-osx10.X-x86.dmg
no meu caso mysql-5.1.30-osx10.5-x86.dmg
(este é o arquivo de instalação do MySQL).

Obs: Caso você utilize algum programa
com a famosa combinação AMP (Apache + MySQL e PHP)
como por exemplo o MAMP,
não esqueça de parar os servidores.


install-mysql-on-leopard-05

Seguir os seguintes passos no estilo NNF (Next-Next-Finish)

install-mysql-on-leopard-06

install-mysql-on-leopard-07

install-mysql-on-leopard-08

install-mysql-on-leopard-09

install-mysql-on-leopard-10

install-mysql-on-leopard-11

install-mysql-on-leopard-12

install-mysql-on-leopard-13

install-mysql-on-leopard-14

Instalar o MySQL Preference Pane.
É um utilitário que fica no System Preferences
que inicia e para o MySQL e configura a inicialização automática.
O nome do arquivo é MySQL.prefPane.

install-mysql-on-leopard-15

Deseja disponibilizar o Preference Pane
para todos os usuários?

install-mysql-on-leopard-16

Feito isso é só clicar em “Start MySQL Server”.

install-mysql-on-leopard-17

install-mysql-on-leopard-18

O usuário default é root sem senha.

O MySQL é bem intuitivo, não tem segredo, coloquei os prints das janelas pois não tem muito o que comentar, a instalação é simples e direta. Alguma dúvida comente o post que eu retorno.

Para ajudar o seu trabalho podemos baixar o PhpMyAdmin, ou bem mais fácil podemos baixar o MySQL Admin no link http://dev.mysql.com/downloads/gui-tools/5.0.html