sexta-feira, 2 de setembro de 2011

Coloque suas idéias em prática com vraptor 3 rodando no GAE

Olá! :D

Afim de colocar idéias em prática com os conhecimentos de programação que tenho e querendo um baixo custo para isso (tempo, por enquanto), descobri um framework java web open source, o vraptor.

Comecei com ele como quase todos (creio), peguei a apostila gratuita da caelum - que é a empresa responsável pela criação e manutenção do vraptor - e fui lendo-a e fazendo os exercícios. Em um final de semana a apostila estava finalizada e na cabeça logo veio: "Sim, era essa facilidade que eu queria". E já que o meu pensamento é em baixo custo, não perder tempo é essencial, afinal, tempo é dinheiro.

Vou enumerar aqui algumas vantagens que eu vi ao utilizar o vraptor.

Primeiro, a preocupação que eu tenho que ter com o framework é baixíssima. Com a premissa de 'Convention over Configuration' (CoC), o vraptor consegue manter meu tempo de codificação em cima do problema que eu quero solucionar (o fim), e acaba com a preocupação de difíceis configurações e maiores problemas com a tecnologia (o meio). Poucas vezes eu tenho que alterar alguma convenção do vraptor. Gosto do nome das controllers, de jsps, dos padrões de URIs, etc.

Segundo, é um framework action-based. Me dá liberdade de escolhas sobre frameworks javascript (JQuery, ExtJS, YUI, etc.), template-engines (jsp, velocity, etc.). Eu gosto do modelo action-based também por me dar visualização daquilo que eu programei. Olho o código fonte no browser e vejo aquilo que eu escrevi e nada mais. A detecção dos erros também é algo mais simples.

Terceiro, o conteúdo sobre vraptor na internet é o que não falta (em português ainda!). Temos a documentação no site oficial com guias bem explicativos, sem linguagem formal chata de ler e sem enrolações. Tem o fórum do GUJ, que é o maior fórum de java em lingua portuguesa. Lá você encontra grande parte dos problemas pelos quais você ainda vai passar. E esses problemas são respondidos na maioria das vezes pelos próprios commiters do vraptor (principalmente @lucascs e garcia-jj), que te respondem sempre educadamente não importando o nível da sua dúvida. Eu mesmo já postei umas dúvidas ridículas lá.

Quarto, vraptor-scaffold! Baseado na idéia do rails de iniciar novos projetos e montar os 'andaimes' da nossa aplicação, o @rodolfoliviero criou essa gem em ruby. Com o vraptor-scaffold, o trabalho de um CRUD mecânico é extinto. Classes de teste são geradas, o código de view gerado é muito clean. Basta criar manualmente os relacionamentos do seus models, ajustar views e se preocupar com a parte complexa do seu sistema :).

Essas são algumas das vantagens que me vem a cabeça quando falo do vraptor.

Levando em consideração ainda o baixo custo, eu não precisava apenas de um framework web que não consumisse todo o tempo que tenho disponível. Eu precisava de um servidor barato para colocar minhas idéias em produção. Eu já tinha conhecimento da existência do Google App Engine (GAE) desde que foi lançado. Mas tinha feito apenas alguns pequenos testes com servlets e só. A Google te fornece um ótimo plugin para o eclipse onde você pode começar a desenvolver rapidamente sua aplicação e fazer seu primeiro deploy em segundos com sua conta google.

Eis que então eu vejo que há um blank project do vraptor pronto para ser deployado no GAE.

Agora era só me adequar ao formato de se manter meus dados no BigTable (Datastore do GAE) e pronto. Eu conseguiria colocar aplicações java web "de graça" no ar e melhor, sem dores de cabeça no desenvolvimento :).

Quero dizer agora que ainda não tive uma super-idéia que está dando certo e eu estou conseguindo ganhar dinheiro com isso. Porém eu já tenho um ambiente pronto para a matança e vou atrás de um dia ainda conseguir isso.

Esse post serviu para passar diversas referências (links) para começar a desenvolver. Nos próximos eu pretendo aplicar a prática aqui. Vou refazer passos e relembrar problemas pelos qual eu já passei. Até! o/

quinta-feira, 25 de agosto de 2011

SyntaxHighlighter no Blogger.

Olá galera, estou começando um blog com objetivo que está escrito subtitulo deste mesmo.
Estava querendo fazer isso já há um tempinho porém sempre enrolava. Vou começar logo então.
Primeiro post vou falar sobre o SyntaxHighlighter, que é uma ferramenta em javascript para adicionar o syntax highlight nos trechos de código postados em um website/blog.

Pode ser baixado em SyntaxHighlighter.
A versão que eu estou utilizando nesse post é 3.0.83.
Feito o download, segue a estrutura de diretórios:


Iremos obrigatoriamente usar o arquivo 'src/shCore.js' e 'styles/shCore.css'.
Depois podemos escolher outros arquivos para as determinadas linguagens em que usaremos o syntax highlight.
Para usar esses arquivos, eu utilizei o sites.google.com para disponibiliza-los na web. Acredito que possa ser utilizado o DropBox também.
Após feito o upload dos arquivos que você quer utilizar, deve-se seguir os passos:

1. entrar na aba 'Modelo' do painel de administração do blogger.
2. editar hmtl
3. ao fim da tag <head> (ctrl+f </head) colar o seguinte codigo.
4. salvar as alterações.

<link href="http://ondeestouhospedado/shCore.css" rel="stylesheet" type="text/css" />
<link href="http://ondeestouhospedado/shThemeDefault.css" rel="stylesheet" type="text/css" />
<script src="http://ondeestouhospedado/shCore.js" type="text/javascript"></script>
<script src="http://ondeestouhospedado/shBrushCss.js" type="text/javascript"></script>
<script src="http://ondeestouhospedado/shBrushJava.js" type="text/javascript"></script>
<script src="http://ondeestouhospedado/shBrushJScript.js" type="text/javascript"></script>
<script src="http://ondeestouhospedado/shBrushRuby.js" type="text/javascript"></script>
<script src="http://ondeestouhospedado/shBrushXml.js" type="text/javascript"></script>
<script type="text/javascript"> 
   SyntaxHighlighter.config.bloggerMode = true;
   SyntaxHighlighter.all()
</script>

Depois faça um teste com uma publicação no blog para confirmar se deu certo.
É só usar um bloco de código em volta da tag <pre> e informar a linguagem no attributo 'class'.
Ex:
<pre class="brush: java" >
public static void main(String args[]) {
   System.out.println("Hello, Arthur!");
}
</pre>

Resultado:
public static void main(String args[]) {
   System.out.println("Hello, Arthur!");
}

Eu particularmente escolhi as linguagens css, java, js, ruby e xml (para html também). Porém diversos outros arquivos para aplicar o sh em outras linguagens são disponibilizados.

Então é isso aí.