Sorteio: 5 convites para o Google Wave


Olá pessoal, post rápido!!
Tenho 5 convites do google wave para sortear para os visitantes do blog!
Peço desculpa pela falta de posts, mais assim que as provas passarem os posts voltam!

Seguinte: Cada comentário será numerado em ordem crescente! Para manter a linha ruby farei um pequeno aplicativo para gerar 5 números aleatórios.

A lista dos ganhadores será publicada no dia 05 de dezembro!

Deixe o comentário com seu nome, email e cidade!


Abraços a todos! Leia Mais!

Parâmetros para formatar data e hora

Há várias formas de mostrarmos a hora e a data em Ruby on Rails, para arrumarmos do nosso jeito devemos utilizar alguns parâmetros, mas são muitos, então é difícil de memorizá-los, por isso estou listando os parâmetros aqui e a forma de utilizá-los também:


%a The abbreviated weekday name (“Sun'’)
%A The full weekday name (“Sunday'’)
%b The abbreviated month name (“Jan'’)
%B The full month name (“January'’)
%c The preferred local date and time representation
%d Day of the month (01..31)
%H Hour of the day, 24-hour clock (00..23)
%I Hour of the day, 12-hour clock (01..12)
%j Day of the year (001..366)
%m Month of the year (01..12)
%M Minute of the hour (00..59)
%p Meridian indicator (“AM'’ or “PM'’)
%S Second of the minute (00..60)
%U Week number of the current year, starting with the first Sunday as the first day of the first week (00..53)
%W Week number of the current year, starting with the first Monday as the first day of the first week (00..53)
%w Day of the week (Sunday is 0, 0..6)
%x Preferred representation for the date alone, no time
%X Preferred representation for the time alone, no date
%y Year without a century (00..99)
%Y Year with century
%Z Time zone name
%% Literal “%'’ character

Exemplo de utilização:

<%=h Date.today.strftime("%A, %d de %B de %Y") %>
A data será mostrada assim:

Sexta-Feira, 02 de Outubro de 2009


Espero estar ajudando a todos.

Att,

Rafael Barcellos Leia Mais!

ERROR: Error installing rails: invalid gem format for /var/lib/gems/1.8/cache/rake-0.8.7.gem

Voltando a cair dentro na programação, consequentemente voltei a me deparar com erros.

Desta vez ao tentar instalar o rails ( usando $ sudo gem install rails --include-dependecies ) em uma outra máquina o erro que foi acusado foi o seguinte.

ERROR: Error installing rails: invalid gem format for /var/lib/gems/1.8/cache/rake-0.8.7.gem
Para solucionar o problema remova o arquivo rake-0.8.7.gem

$ sudo rm /var/lib/gems/1.8/cache/rake-0.8.7.gem

Depois de remove-lo, tente instalar o rails novamente, e deve funcionar.

Gostaria de lembrar que esse erro tambem pode acontecer com outros arquivos, que não sejam o rake-0.8.7.gem, como por exemplo os arquivos: actionpack-2.1.0.gem ; activerecord-2.0.2.gem ...

Espero ter ajudado! Leia Mais!

Ruby on Rails: Modificando tela de acesso negado Acl9

Post rápido hoje. Quando implementamos o acl9 para gerenciar 'roles' no sistema nos deparamos com a tela abaixo quando usamos um usuário sem permissão para executar uma ação dentro do sistema.



Para resolver isso é muito simples.
Basta adicionar o codigo abaixo no /controllers/application_controler.rb:

rescue_from 'Acl9::AccessDenied', :with => :negar_acesso

def negar_acesso
if current_user
render :template => 'acesso_negado'
else
flash[:notice] = 'Acesso negado. Você precisa estar logado.'
redirect_to login_path
end
end

Agora basta criar o arquivo acesso_negado.html.erb na raiz das views (/view/acesso_negado.html.erb) e adicionar uma mensagem de erro personalizada.

Até! Leia Mais!

Como instalar JRE no Linux


Olá, esse vai ser o meu primeiro post aqui no Blog, mas com certeza será o primeiro de muitos outros.

Essa dúvida pode parecer banal para muitos, mas sei também que para muitos outros, principalmente usuários que migraram para Linux recentemente, é muito útil.

A instalação do java serve para realizar a execução de applets, como por exemplo o Teclado Virtual do Banco do Brasil, que é utilizado para acessar sua conta no Internet Bank.

Siga os passos abaixo para realizar a instalação do JRE:

Abra o terminal e como usuário root e rode os seguintes comandos:

#apt-get install sun-java6-jre
Depois de baixados os pacotes do jre execute:

#apt-get install sun-java6-plugin
#apt-get -f install
Depois de rodar os comandos acima, reinicie o Firefox e o Java JRE estará funcionando. Leia Mais!

Github.com, o que é? como usar?


Olá pessoal, estava sem tempo para novos posts nas duas semanas que passaram! Obrigado pelas visitas que o blog tem tido! Vamos ao que interessa:

Primeiramente, você sabe o que é git? Se não sabe aconselho a ler o tutorial sobre git do Fabio Akita.

Github.com, o que é?

Github.com é um website feito em RoR que hospeda repositórios git. No plano gratuito seu projeto será publico, e no plano pago existe a possibilidade do projeto ficar no modo private. Ao colocar seu projeto no github, todos poderão olhar seu codigo, colaborar para a melhoria do mesmo, formando uma rede "Social Coding", de modo grosseiro um "Orkut" dos webdevelopers.
O projeto do framework Rails está hospedado lá, e qualquer um pode ver.

Como usar?

Vamos listar passos para conseguirmos hospedar um projeto git contendo um arquivo texto no Github.

  • Criar um conta no Github.com
  • Iniciar um novo projeto no Github.com
  • Adicionar permissões com public key ssh
  • Criar e configurar o projeto localmente usando git
  • Efetuar o primeiro commit e em seguida o push para o Github.com
Iniciar um novo projeto

Feito o primeiro login, vá no link Create a new repository.
Preencha as informações referentes ao seu novo projeto.


Adiocionar chave public no Github

Para este passo precisamos gerar primeiramente uma chave public em seu linux.
Execute o comando no terminal:

$ ssh-keygen -t rsa

Aperte enter em todas as perguntas sem especificar nada.
Após isto copie o conteúdo do arquivo ~/.ssh/id_pub.rsa

$ cat ~/.ssh/id_pub.rsa


Vá no link Account.
Clique no
add another public key e cole o conteúdo do id_pub.rsa copiado no passo acima no espaço.

Para testar execute no terminal o seguinte comando:
$ ssh git@github.com

Se der certo você vai ver uma menssagem de boas vindas.

Criar e configurar o projeto local

Crie uma pasta
$ mkdir projeto


Crie um arquivo teste dentro da pasta
$ cd projeto
$ echo Aprendendo a usar Github.com > README


Inicie um projeto git e adicione o arquivo
$ git init
$ git add README

Efetuar o primeiro commit e push

Primeiro commit
$ git commit -a -m "Primeiro commit"


Informando o endereço do seu repositório no GitHub.com
$ git remote add origin git@github.com:seu-usuario-no-Github/nome-do-projeto-criado.git


Exemplo:
$ git remote add origin git@github.com:jcmaciel/Sysobras.git


Primeiro Push
$ git push origin master


Até! Leia Mais!

Ruby on Rails: Implementando AutoFill com Jquery




Olá pessoal, hoje vou compartilhar um método que pode ser bobo para usuários avançados mais acho interessante por quase não existir material na internet.
Precisei desenvolver esse script para implementar uma função autofill em um sistema que desenvolvo para UENF (Universidade Estadual Norte Fluminense).

Todo mundo já usou sites com preenchimento automatico de campos.
Exemplo clássico deste recurso é quando se coloca o CEP em um formulário de endereço, e os campos contendo rua, bairro, cidade, são automaticamente preenchidos (AutoFill).

Neste exemplo uso a biblioteca JavaScript Jquery.

Vamos lá:

Criando uma aplicação teste em Ruby on Rails

Começamos criando uma aplicação "teste" para implementar o autofill.

$ rails autofill -d postgresql


* perceba que eu uso o postgresql como banco de dados, use o banco que esteja acostumado

Feito isso vamos geral um scaffold rapidamente.

$ cd autofill
$ script/generate scaffold Cadastro nome:string telefone:string email:string


Criar banco de dados e rodar a migração
Abra o arquivo config/database.yml e altere os dados de login do seu banco de dados.
Depois disso execute os comandos:

$ rake db:create
$ rake db:migrate


Com essa parte pronta podemos começar a implementar.

Abrindo a view new.html.erb (apps/views/cadastros/new.html.erb)
Insira o trecho abaixo antes da tag <% form_for(@cadastro) do |f| %>

Trecho:
<button id="autofill" name="autofill">Autofill?</button>
<div id="pegardados_autofill" style="display: none;">

<br>ID: <input id="id_autofill" name="id_autofill"> </input>
<button id="load_autofill" name="load_autofill">carregar</button>
</div>
<div id="msg_autofill" style="display: none;">
</div>

Screenshot:


Ajustando o controller (apps/controllers/cadastros_controller.rb)
Como este é apenas um exemplo e normalmente em exemplos temos que simular uma fonte de dados para fazer o autofill, vamos pegar dados do próprio cadastro, integrando com JSON.
Muito simples.

No controller ative o formato JSON no método show:

def show
@cadastro = Cadastro.find(params[:id])

respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @cadastro }
format.json { render :json => @cadastro } // ADICIONE ESTA LINHA
end
end


Baixando Jquery e criando o arquivo autofill.js

Se você não tem jquery em sua aplicação faça isto:
Baixe o arquivo jquery-1.3.2.js e coloque na pasta da sua aplicação rails
$ mv jquery-1.3.2.js /pathdasuaaplicação/public/javascripts/jquery-1.3.2.js


Crie dentro desta mesma pasta (../public/javascripts/) um arquivo com nome autofill.js e coloque o seguinte conteudo:

$(function(){ // FUNÇÃO PARA EXIBIR A DIV
$("#autofill")
.click(function(){
$("#pegardados_autofill").show(1300);

});
});

$(function(){
$("#load_autofill")
.click(function(){
var id = $('#id_autofill').val();
if(id == ""){
alert("Campo em branco, coloque o id.")
}
$.getJSON("http://localhost:3000/cadastros/" + id + ".json", function(data){ //pegando dados via JSON

$('#cadastro_nome').val(data.cadastro.nome);// completando os campos
$('#cadastro_telefone').val(data.cadastro.local);
$('#cadastro_email').val(data.cadastro.preco);

$("#msg_autofill").html("Dados carregados com sucesso..");

$("#msg_autofill").show(1100);
$("#msg_autofill").fadeOut(1800);

});
});
})


Finalizando
Seguindo todos esses passos, resta somente colocar a biblioteca no arquivo new.html.erb e o autofill.js

Abra new.html.erb e adicione antes da tag <h1>....</h1>

<%= javascript_include_tag 'jquery' %>
<%= javascript_include_tag 'autofill' %>


Salve e rode o servidor

$ script/server


Testando

Como não temos nenhum cadastro, consequentemente não temos da onde efetuar o autofill.
Efetue um cadastro então:
http://localhost:3000/cadastros/new

Não clique no botão AutoFill? por enquanto, apenas preencha os campos com nome telefone e email.
Com o cadastro efetuado já temos o primeiro ID para testar o auto fill.

Retorne ao endereço http://localhost:3000/cadastros/new e agora sim clique no botão Autofill?
Uma div com efeito deverá surgir e no campos ID: coloque o id 1 , clique em carregar e veja o resultado!



Com esse exemplo acho que da para adaptar em qualquer situação.
depois posto a função usando XML como padrão de dados.

Até! Leia Mais!

Livros: Startup + A cabeça de Steve Jobs


Olá pessoal, agradeço muito as visitas que o blog JCMaciel.com teve nos últimos dias.

Post rápido hoje.


Recentemente adquiri um box contento dois livro, Startup e A cabeça de Steve Jobs, da editora Agir, em uma excelente promoção do submarino.

Comecei a ler primeiro o Startup, um livro que conta a história das principais startup's do vale do silício em formato de entrevista.
Como tenho certa aptidão pelo lado do empreendedorismo, sou suspeito de falar sobre o livro.

Uma leitura não direcionada somente para o lado dos negócios como também para tecnologia. Você que é da área de T.I, ou qualquer outra área e tem vontade de entender como surgiram as ideias e que nem tudo são flores quando se começa um projeto de sucesso, está obra é extremamente recomendada.

Agora, vou iniciar a leitura da obra, A cabeça de Steve Jobs, uma biografia que mostra o trajeto de sucesso do empresário Steve Jobs, co-fundador da Apple.
Mais para frente farei uma resenha sobre ele quando acabar a leitura :-)

Edit¹: Se você leu o "Startup" e gostou, leia a versão original em inglês, "Founders at Work". Neste exemplar existem entrevistas não publicadas na versão em pt-BR.
Dica via twitter do @dvdoliveira

Link para o produto
Leia Mais!

Ambiente de Desenvolvimento Rails: Gedit + Gmate


Fala pessoal!!
Como todo programador Rails desmonetizado sonha em usar o Textmate (eu) trago uma solução bem fácil e extremamente explicada: um plugin para Gedit que aproxima-o do Textmate, o Gmate.
Com ele seu Gedit terá:
  • Console Embutido com possibilidade de varios terminais
  • Navegador de arquivos
  • Rails Hot Commands
  • Rails Hot Keys
  • Snapopen - abre arquivos rapidamente alá Textmate
  • TodoList
  • Bookmarks
  • Autocompletation
  • Syntax Highlight
  • E mais que eu posso estar esquecendo (#badblock)

Preview:


Instalação

$ sudo apt-get install gedit-plugins
Instalar gmate

$ git clone git://github.com/lexrupy/gmate.git

se aparecer git: command not found digite:

$ sudo apt-get install git-core
Extra:
Se você não tiver o git e não quiser instalar (programador rails geralmente precisa do git :] ) baixe o .deb http://cloud.github.com/downloads/lexrupy/gmate/gedit-gmate_0.9-ubuntu1_all.deb (somente para distros baseadas no debian) / baixe o tar.gz e descompacte http://juquinhaa.googlepages.com/gmate.taz.gz

# sanar as dependencias com esse comando:
$ sudo apt-get install python-pyinotify python-webkitgtk
# entre no diretorio
$ cd gmate
# instale
$ sh install.sh

Baixando o mterminal (Terminal embutido)
http://fazibear.googlepages.com/mterminal.tar.gz
Descompacte e copie os arquivos para a pasta /usr/lib/gedit-2/plugins/

Ativando e Configurando

Abra o Gedit e vá em Editar>Preferências>Plug-ins
Marque:
  • Advanced Bookmarks
  • Align
  • Auto Completation Plugin
  • Embedded Terminal
  • Gemini
  • HTML Tidy
  • Painel do navegador de arquivos
  • Quick Highlight Mode
  • Rails Extract partial
  • Rails File Loader
  • Rails Hot Commands
  • Rails HotKeys
  • Smart Ident
  • Snap open
  • TODO List
  • Trechos
  • Word completion

na aba Fontes e Cores escolha um tema que mais lhe agradar visualmente.

Para ativar o terminal aperte CTRL + F9
Para ativar o painel de navegação de arquivos use F9

Breve resumo das funcionalidades

Snap Open
Uso: CTRL + ALT + O
Abre arquivos rapidamente.
Rails HotKeys
Uso: CTRL + SHIFT + R e aperte logo em seguida F1. A lista com todos os comandos se abrirá.
CTRL + SHIFT + R e logo em seguida N abre o browser com endereço: http://localhost:3000/
Rails Hot Commands
Uso: CTRL + ALT + C e digite script. Logo abaixo uma lista vai aparecer contendo os comandos disponiveis.
Digite algum comando para executar rapidamente.
TODO List
Uso: CTRL + ALT + T abre uma janela contendo as tarefas a serem efetuadas, completas e etc.
Para usar basta em algum arquivo do projeto comentar assim:
Ex:
#TODO: lembrar aqui de implementar uma função tal.
Esse arquivo será listado na janela dos afazeres (CTRL + ALT + T)
Links:

Boa produtividade!
Até! Leia Mais!

Começando a programar: Ruby on Rails


Olá, interrompendo a seção de erros (afinal, as férias extendidas pela gripe suína servem para diminuir os erros encontrados :P), vou listar a seguir alguns tutoriais, link's da comunidade RoR (1º passo - acostume-se com o RoR, Ruby on Rails) e alguns pdfs que encontrei por ai!
Se você está lendo algo sobre RoR pela primeira vez aqui no blog certamente vai ler artigos onde todos indicam começar estudando a linguagem Ruby. Esse estudo é indicado digamos na segunda parte da programação com RoR, pois é nela que você pode precisar de coisas específicas e ai não tem jeito de usar automatizadores de códigos (scaffolds). Chega de papo, mas lembre-se de não sair por ai falando que está programando em uma linguagem nova "Ruby on Rails", pois Ruby é a linguagem e Rails é o framework utilizado!

Sobre o Ruby
Sobre o Rails
Livros
Blogs

Isso é um bom começo para iniciar no mundo RoR. Erros? Procure no blog!
Se você tem algum link e queira compartilhar, poste no comentário que eu junto na lista. Leia Mais!

Erro: Rake: undefined method 'reenable' for [environment']>:Rake::Task

Ao rodar o comando rake db:migrate me deparei com este erro Rake: undefined method 'reenable' for [environment']>:Rake::Task.
Rodrigo Manhães do blog SacodeCoisas postou sobre este problema, mais aqui segue o passo a passo.

Causa: O rake que vem instalado no Sistema Operacional provavelmente com uma versão mais antiga que a instalada com o GEM.

Solução: Desinstalar o rake do S.O.

Remover o rake:
sudo aptitude remove rake


Instalar o rake novo pelo gem:
sudo gem install rake


Pode acontecer(quase sempre, pelo menos no Ubuntu 9.04) que o link simbolico ruby seja removido junto com o rake.
Crie novamente o link simbolico para o ruby:
ln -s /usr/bin/ruby1.8 /usr/bin/ruby


Crie também o link simbolico para o rake novo:
ln -s /var/lib/gems/1.8/gems/rake-0.8.7/bin/rake /usr/bin/rake


Ps: até a edição deste post a ultima versão disponivel do rake era a 0.8.7, caso sua versão seja superior substitua pela sua versão.
Leia Mais!

Retirar password de usuário no Linux

Mais um post de utilidades. Parece coisa boba mais as vezes coisas simples são difíceis de achar.
Para retirar a senha de um usuário no linux ( no meu caso precisei para o usuário git para facilitar a clonagem de repositórios) use o comando:

# passwd --delete usuário

ou simplesmente

#passwd -d usuário

Até. Leia Mais!

GIT fatal: no matching remote head

Seção erros.

fatal: no matching remote head no GIT

Este erro acontece quando você tenta clonar um projeto de algum repositório e ele simplesmente está vazio.


gsi7@gsi7-desktop:~/Desktop/sistema$ git clone git@172.20.5.171:nucest.git
Initialized empty Git repository in /home/gsi7/Desktop/sistema/nucest/.git/
fatal: no matching remote head
Leia Mais!

Ruby on Rails: Radio Button

Se está a procura de como colocar um radio button em sua aplicação ruby on rails use o exemplo abaixo:

<%= f.radio_button :nomedocampo, "Valor"%>Label


onde "Valor" => é o dado que ficará armazenado no BD
Label => é o texto em exibição na página.

Simples como ruby on rails! Leia Mais!

FATAL: Autenticação PostGreSql com usuário "postgres"

Continuando a seção dos erros comuns, outro erro chato ao instalar o pgsql é:

FATAL: autenticação do tipo Ident falhou para usuário "postgres"


Para resolver esse basta editar o arquivo abaixo:

$ sudo nano /etc/postgresql/8.3/main/pg_hba.conf

Nele existem as seguintes linhas:


# Database administrative login by UNIX sockets
local all postgres ident sameuser


troque o "ident sameuser" por "password" ficando desta forma:

# Database administrative login by UNIX sockets
local all postgres password


Salve o arquivo e reinicie o servidor pgsql com o comando
$ sudo /etc/init.d/postgresql-8.3 restart


Com isso o erro não acontecerá mais!
Até!

Ps: Nos exemplos eu utilizo o nano como editor, mais o nano pode ser trocado por vim, emacs e etc. Leia Mais!

Rails -v : command not found

Um problema muito comum quando se instala rails através do RubyGems é:

servidorgsi:/home/projetos# rails -v
-bash: rails: command not found


Para resolver este probleminha basta executar o comando:

$ export PATH=$PATH:/var/lib/gems/1.8/bin

Apos isso:

servidorgsi:/home/projetos# rails -v
Rails 2.3.3


Edit:
Se ao reiniciar o pc, a variável ambiente não for reconhecida novamente, basta editar o arquivo

$ nano /etc/profile


e coloque o comando acima ultima linha.
Feito isso command not found jamais. Leia Mais!

Solução para o trabalho colaborativo - OpenGoo


Aqueles que procuram uma ferramenta para melhorar a produtividade e acima de tudo a organização e eficiência dos projetos, eis que surge uma solução: OpenGoo.com
Um projeto Open-source feito em php e de instalação simples.
Para rodar o sistema use no servidor:

  • Apache
  • Mysql
  • PHP5 (PHP4 não funciona)
A versão estável em 19/07/2009 é 1.4.2
Link para download: OpenGoo-1.4.2

Teste no link OpenGoo-Demo - Usuário: demo / Senha: demo Leia Mais!

Contato

Para entrar em contato mande um email para:

josecarlos@jcmaciel.com
ou

juquinhaa@gmail.com
Leia Mais!