quinta-feira, março 08, 2007

Piratas, nunca mais

Bom, dias atrás eu estava para começar um projeto em Delphi, coisa pequena, aqui em casa. Antes de começar, dei uma olhada rápida no meu bloglines e encontrei um post dizendo que a CodeGear havia disponibilizado um pacote de atualizações para o Delphi 2006, a versão que eu utilizava.

Ótimo, notícia muto boa, a versão estava com alguns bugs. Mas, como eu não disponho de R$ 10.500,00 para comprar uma licença, minha versão é pirata, crackeada com muito custo.

Baixei o pack, e ingenuamente iniciei a instalação.Instalou tudo bem, então pensei: opa, meu crack deu certo também nos updates do Delphi..humpf... quando abri o programa, tudo travado, solicitando uma chave de registro. Imagina a raiva que eu passei, além de que não pude iniciar o desenvolvimento do projeto.

Então, dado o acesso de raiva que eu tive, decidi:

- nada de piratas: desenvolvimento é com Java no Eclipse, e, para projetos pequenos, Ruby on Rails, também no Eclipse, usando o RadRails.
- Banco de dados é Firebird, PostgreSql, ou, no máximo, OracleXE
- Windows? bom.. o meu ainda é pirata, mas meu próximo micro virá com Windows original, com certeza.
- Office - bom, este ainda compensa .. as ferramentas que existem por aí são sofríveis.
- Desenvolvimento de páginas htm/xhtml/css não mais com o Dreamweaver ou HomeSite, agora é com o Aptana.

Como você vê,para desenvolver, há ferramentas gratuitas, open-source ou não, que barateiam e muito o custo de desenvolvimento, sem deixar nada a desejar para as caras e pagas ferramentas.

terça-feira, março 06, 2007

Uma view para muitos métodos no RoR

Dica simples, mas valiosa pra quem tá começando com Ruby on Rails:

Quando você cria um controller e define seus métodos, o RoR por padrão exige uma view para cada método. Vamos supor que você crie uma view de login para usuários cadastrados, e na mesma view,um cadastro para novos usuários. São duas ações, controladas por um mesmo controller, porém, por métodos diferentes.


Exemplo:




def login
if request.post?
perfil = Profile.find_by_email_and_password(params[:email],params[:password])
if perfil
render :text => "Usuário logado com sucesso"
else
flash[:notice] = "Usuário ou senha estão incorretos"
end
end
render_action "login"
end

def addnew
@profile = new Profile(params[:profile])
if request.post? and @profile.save
flash[:notice] = "Usuário cadastrado com sucesso"
render_action "login"
end



Neste caso, temos dois métodos: o addnew, que adiciona um novo usuário, e o login, responsável por autenticar o usuário já cadastrado. Para direcionarmos o resultado destes dois métodos para uma única view, é necessário a utilização da função render_action

No código acima, os dois métodos, depois de executados, redirecionarão o navegador para a view login.rhtml.