semana_groovy_logo

Semana Groovy 35!

Esta foi uma semana bem corrida para mim, o que não quer dizer que não haja alguns links que eu venha a compartilhar com vocês sobre as tecnologias que curtimos.

E… nesta sexta-feira irei apresentar um caso muito interessante sobre sistemas legados na QCon Rio usando algumas das tecnologias que falamos aqui. http://qconrio.com/speaker/henrique-lobo-weissmann

Duas excelentes notícias para quem trabalha com Grails!

Até este momento não estava recomendando o Grails 3.x para meus clientes. Isto está prestes a mudar devido a dois acontecimentos importantes:

O primeiro é que finalmente temos uma versão do plug-in Spring Security para o Grails 3:  http://grailsbrasil.com.br/noticia/show/277

Algo que ainda não havia notado no Grails 3.0.4. O suporte ao scaffolding dinâmico voltou! – https://github.com/grails/grails-core/issues?q=milestone%3Agrails-3.0.4

Um projeto muito legal open source feito em Grails

O Bruno Bemfica me mostrou um projeto muito bacana chamado Streama: um gerenciador de vídeos e streaming cuja leitura do código fonte é bastante interessante. Interessado? Dá uma olhada neste link: http://dularion.github.io/streama/

Links da semana

Um recurso muito bacana do Groovy e sobre o qual pouco se fala a respeito: o trampoline – https://wakeupcode.wordpress.com/2015/08/18/groovy-functional-sugar-trampoline/

Uma introdução bem bacana ao RatPack – http://kyleboon.org/blog/2015/08/05/zero-to-ratpack/

Ferramenta legal da semana: Jenv (talvez um GVM++)

Algum tempo atrás falei aqui sobre o GVM (http://www.itexto.net/devkico/?p=2259) que é uma excelente ferramenta para se gerenciar diferentes versões de ferramentas que pertençam ao ecossistema Groovy.

Uma limitação do GVM, no entanto, é que ele não te ajuda a gerenciar diferentes versões do JDK. Então encontrei uma ferramenta muito interessante que nos permite gerenciar tanto versões de diversos componentes do ecossistema Groovy (incluindo Grails) e também do Java (JDKs, Maven, inúmeros frameworks e muito mais). Se chama Jenv.

Mais detalhes sobre esta importante ferramenta (que já está substituindo o GVM para mim) neste link: http://jenv.mvnsearch.org/

semana_groovy_logo

Semana Groovy 34 – Túnel do tempo!

Estamos entrando em uma fase temática da Semana Groovy, sendo assim o tema de hoje é história. Vou compartilhar alguns links históricos sobre desenvolvimento com vocês além de, claro, os agora tradicionais links da semana.

No treinamento que estamos ministrando na itexto para desenvolvedores independentes um aluno me perguntou o que deveria estudar após dominar completamente as tecnologias que ensinamos. Minha resposta? História.

Nada melhor que um bom conhecimento histórico pra que você entenda de verdade por que as tecnologias que usamos possuem seu aspecto atual. Sendo assim, vamos lá!

Guia dos perplexos

Sem dúvida o projeto que mais gostei este ano foi o Guia dos Perplexos do Rene de Paula Jr. Para comemorar os vinte anos de Internet no Brasil, Rene entrevistou diversas pessoas com quem trabalhou durante este período.

É um retrato fascinante da história neste período e expõe muito bem o que rolou e aonde estamos hoje. São dezenas de entrevistas gravadas nos últimos dois meses (eu acho). Um trabalho realmente incrível: vale cada segundo assistido!

Segue o link: http://guiadosperplexos.tv/

No site é dito que foi terminada a primeira temporada. Torço para que a segunda venha logo!

NerdTV

O trabalho do Rene de Paula me lembrou muito algo que o Robert Cringely fez quase dez anos atrás chamado NerdTV. A diferença é o cenário: enquanto Cringely fala sobre o Vale do Silício, Rene de Paula fala sobre o Brasil.

Link para o NerdTV: http://www.pbs.org/cringely/nerdtv/

Links históricos sobre Groovy, Grails e Spring

Groovy é apresentado ao mundo por seu criador, James Strachan – http://radio-weblogs.com/0112098/2003/08/29.html

Por que Grails não se chama “Groovy on Rails” – http://grails.1312388.n4.nabble.com/Groovy-on-Rails-is-no-more-kind-of-td1313422.html

Primeiro post do Grails Brasil – http://grailsbrasil.com.br/post/show/2

O dia em que a SpringSource comprou a G2One (desenvolvedora original do Grails) – http://www.infoq.com/news/2008/11/springsource-g2one

E aí a SpringSource foi comprada pela VMWare! – http://colinharrington.net/blog/2009/08/vmware-acquiring-springsource-which-acquired-g2one/

Foi quando a VMWare resolveu criar uma empresa chamada Pivotal para explorar o ecossistema Spring, Groovy e Grails – https://gigaom.com/2012/07/16/vmware-plans-cloud-spin-out-to-keep-up-with-microsoft-amazon-and-google/

Então, em janeiro de 2015 a Pivotal decide parar de financiar os projetos Groovy e Grails. Seria o fim? – http://blog.pivotal.io/pivotal/news-2/groovy-2-4-and-grails-3-0-to-be-last-major-releases-under-pivotal-sponsorship

Na época havia dito que não era motivo para se preocupar, lembra? – http://www.itexto.net/devkico/?p=2116

E então, mais tarde neste ano, duas novidades interessantes que comprovaram o que disse:

Em março o projeto Groovy foi para a Apache e desde então vêm caminhando super bem! – http://glaforge.appspot.com/article/groovy-projects-intends-to-join-the-apache-software-foundation

E a OCI se tornou a principal financiadora do projeto Grails – http://www.infoworld.com/article/2909679/java/grails-web-framework-finds-home-at-object-computing.html

E que tal ver o nascimento do Spring? Ele vai aparecer pela primeira vez neste livro (ainda um clássico) do Rod Johnson – http://www.amazon.com/Expert-One-One-Development-without/dp/0764558315

E o artigo que realmente apresenta o Spring ao mundo? – http://www.theserverside.com/news/1364527/Introduction-to-the-Spring-Framework

E finalmente, os links da semana :)

Como integrar sua aplicação com o serviço S3 da AWS – http://www.tothenew.com/blog/integrating-amazon-s3-in-grails-application/

Awesome Groovy! – Uma lista muito bem feita contendo um monte de bibliotecas, frameworks e ferramentas para você usar com Groovy. Muito bacana! – https://github.com/kdabir/awesome-groovy

Como usar Groovy com Spring – https://www.accelebrate.com/blog/have-a-groovy-spring/

Migrando um projeto Grails da versão 1.3.7 para a 2.4.4 – exposto em detalhes. Excelente leitura! – https://dzone.com/articles/check-out-the-new-json-p-11-early-draft

Um comparativo entre Groovy e Scala (não gosto deste tipo de post, mas este aqui é particularmente interessante) – https://www.linkedin.com/pulse/scala-vs-groovy-functional-programming-showdown-owen-rubel

Peter Ledbrook compartilha suas primeiras impressões a respeito do Grails 3.0. Considere leitura obrigatória caso esteja pensando em atualizar suas aplicações para esta versão – http://blog.cacoethes.co.uk/groovyandgrails/exploring-grails-3

Quais plug-ins estão na fila para serem atualizados para a versão 3 do Grails? – https://github.com/grails/grails-core/wiki/Grails-3-Priority-Upgrade-Plugins

Apresentação útil: GVM: The Groovy Environment Manager – interessantíssimo para aqueles que estão interessados na ferramenta. Vale cada segundo! – https://www.youtube.com/watch?v=i6WOnN8uJdM

Lançamentos

Spring Batch 3.0.5 – http://spring.io/blog/2015/08/10/spring-batch-3-0-5-release-is-now-available

Spring Boot 1.3.0 M3 – http://spring.io/blog/2015/08/11/spring-boot-1-3-0-m3-available-now

Spring Roo 1.3.2 RC1 – http://spring.io/blog/2015/08/11/spring-roo-1-3-2-rc1-maintenance-release-now-available

semana_groovy_logo

Semana Groovy 33 – Blogs sobre Groovy, Grails e Spring!

Blogs sobre Groovy, Grails e Spring

Há blogs muito bons em português sobre Groovy e Grails: que tal você os adicionar aos seus favoritos?

Domine o Spring – https://domineospring.wordpress.com/

Emilio’s Blog – http://emilio2hd.com.br/

Portal Willcrisis – http://www.willcrisis.com/site/

Santo Grails – http://santograils.org/

Vai de Grails – http://vaidegrails.com/

/dev/Kico – http://devkico.itexto.com.br

E também não dá pra não citar o /dev/All (http://www.devall.com.br) aonde sempre aparece conteúdo sobre estes assuntos. :)

Links

Contribuindo para projetos abertos no GitHub – descobri este excelente post no /dev/All (http://www.devall.com.br), no qual o Gildásio Júnior nos mostra como proceder quando queremos contribuir para projetos open source hospedados no GitHub. Uma excelente leitura! – https://gjuniioor.wordpress.com/2015/07/30/contribuindo-para-projetos-abertos-no-github/

O que nos aguarda no Spring Framework 4.3 e 5.0? – https://spring.io/blog/2015/08/03/coming-up-in-2016-spring-framework-4-3-5-0

Making Java Testing Groovy – Um excelente post mostrando por que Groovy é uma linguagem fantástica para testadores que precisem lidar com Java (ou linguagens que vão ser executadas sobre a JVM) – Vale cada segundo esta leitura! – http://www.thattestingguy.com/making-java-testing-groovy/

Como usar o GVM no Windows – escrevi um rápido tutorial ensinando a usar o GVM no Windows – http://www.itexto.net/devkico/?p=2259

Uma crítica muito bem escrita ao padrão REST

Há posts que você lê e sabe que nasceram clássicos. Este tem grande probabilidade de entrar nesta categoria: “RESTful Considered Harmful”. Vivemos em uma época na qual ao pensarmos em APIs e integração imediatamente nos vêm à mente a implementação de uma arquitetura REST. Será que é sempre o caso? Quais os lados negativos e limitações desta abordagem? Considere leitura obrigatória! https://dzone.com/articles/restful-considered-harmful

Dica de projeto – Spring Session

Já viu o Spring Session? Trata-se de um projeto muito interessante desenvolvido pela Pivotal que é inteiramente focado na gestão de sessões em aplicações web. Com ele é possível, por exemplo, implementar sessões clusterizadas, multi-browser, por websocket e mais algumas coisas bastante interessantes.

O link para o site oficial do projeto é este: http://projects.spring.io/spring-session/

Dois posts de pessoas que estão descobrindo Groovy!

Feedback Leitura – Groovy recipes – Guilherme Costa escreve suas impressões sobre o livro e a linguagem – http://imguilherme.com/2015/08/04/feedback-leitura-groovy-recipes/

Groovy: uma jornada inesperada – Fernando Franzini se apaixona por Groovy (o entendo perfeitamente!) – https://fernandofranzini.wordpress.com/2015/08/03/groovy-uma-jornada-inesperada/

Lançamentos

Spring 4.2 GA – https://spring.io/blog/2015/07/31/spring-framework-4-2-goes-ga

Spring Statemachine 1.0-M3  – Um projeto bem interessante da Pivotal que desconhecia. Vale à pena dar uma estudada nesta criatura, especialmente se você for implementar workflows distribuídos –  http://spring.io/blog/2015/08/04/spring-statemachine-1-0-0-m3-released

Spring Session 1.0.2 – http://spring.io/blog/2015/08/03/spring-session-1-0-2-released

Dica de leitura – Guia de expressões regulares

Não há muito para onde fugir das expressões regulares. É uma daquelas ferramentas que você é obrigado a conhecer. Então nada melhor que um livro pra te ajudar nisto, certo?

“Expressões Regulares – Guia de Consulta rápida”, de Aurélio Jargas, trata-se da edição integral que o autor torna disponível gratuitamente em seu site. Uma mão (ou melhor, DUAS) na roda! – http://aurelio.net/regex/guia/

gvm

Como usar o GVM no Windows

Você conhece o GVM? Trata-se de uma poderosa ferramenta para desenvolvedores Groovy (e Grails). Basicamente o que ele faz é gerenciar para você as diferentes instalações do Groovy, Grails, Griffon, Gradle, Groovyserv e diversos outros componentes do ecossistema que se construiu ao redor da linguagem em seu computador.

Bom: este post não é para lhe ensinar a usar o GVM (mas darei alguns toques rápidos), mas sim como instalá-lo no Windows. Por padrão a ferramenta só tem instaladores para sistemas Linux e Mac OS X. Mas se você usa Windows (como eu), nem tudo está perdido. Vamos lá!

PowerShell na veia

powershell

Se você trabalha com desenvolvimento no Windows e não conhece esta ferramenta, uma dica: com certeza muito do seu tempo está sendo perdido.

O PowerShell é uma evolução do tradicional “Prompt de Comando” (Prompt do MS-DOS para os com maior experiência) que nos fornece uma interface de linha de comando com poder similar ao Bash do Linux.

(estou planejando gravar alguns vídeos ou escrever posts sobre esta ferramenta)

O GVM só será executável através do PowerShell. Não se preocupe em instalar a ferramenta, ela já vêm instalada no Windows por padrão.

Como iniciar o PowerShell

Há duas maneiras de se iniciar o PowerShell:

  • No “Prompt de Comando” execute o comando powershell (minha opção favorita)
  • Clique diretamente sobre o ícone em seu computador

Nota importante: para instalar o GVM no Windows você precisará iniciar o Prompt de Comando ou PowerShell como administrador do sistema.

Buscando o PowerShell no Windows 10

Buscando o PowerShell no Windows 10

Verifique a versão instalada do PowerShell

Com o PowerShell instalado, execute o comando abaixo:

$PSVersionTable.PSVersion

Sua versão deve ser a 3.0 ou posterior. Se for inferior, baixe este update no site da Microsoft.

Ative a execução de scripts pelo PowerShell

Set-ExecutionPolicy Unrestricted

Isto ativará a execução de scripts pelo PowerShell e habilitará a execução do módulo que instalaremos daqui a pouco.

Descubra qual o diretório de instalação de módulos do PowerShell

No PowerShell temos o conceito de módulos. Um módulo é essencialmente um programa que adiciona novas funcionalidades a esta interface de linha de comandos.

Execute o comando a seguir para descobrir aonde os módulos do PowerShell encontram-se instalados em seu computador:

$env:PSModulePath

Será exposta uma lista de diretórios separados pelo caractere ‘;’. Mude para um destes diretórios de sua preferência usando o comando abaixo:

cd [caminho para o diretório]

Finalmente, instalando o GVM no Windows!

Você precisará ter o Git instalado em seu PC, pois iremos baixar um módulo a partir do GitHub para dentro da pasta de instalação de módulos do PowerShell que foi selecionada no passo anterior. Execute o comando a seguir para obter o código fonte:

git clone https://github.com/flofreud/posh-gvm

E finalmente, execute o comando abaixo para finalizar a mágica:

Import-Module posh-gvm

Feito! Para testar a sua instalação, execute o comando a seguir:

gvm help

Comandos úteis do GVM

Para instalar uma nova versão de um componente Groovy

gvm install [componente] [número da versão]

Aonde componente pode ser:

  • groovy
  • grails
  • griffon
  • gradle
  • groovyserv
  • lazybones
  • vertx
  • crash
  • glide
  • gaiden
  • jbake
  • springboot
  • asciidoctorj

E para definir qual a versão padrão do componente, qual comando?

gvm use [componente] [número da versão]

Dica no final do post: ConsoleZ

consolez

Tenho usado bastante uma ferramenta chamada ConsoleZ: ele me permite ter várias instâncias do Prompt de Comando organizadas em abas e possuí algumas funcionalidades adicionais bastante interessantes (especialmente relacionadas ao uso da área de transferência).

É possível customizar cores, cursores e fontes de uma forma muito parecida com a qual estamos acostumados a trabalhar no Linux e Mac OS X.

Mais detalhes sobre o projeto neste link: https://github.com/cbucher/console

Nota importante caso você enfrente problemas com Grails – adicionada depois

Se a sua pasta de usuário (home) do Windows possuí o caractere de espaço em seu nome você pode ter alguns problemas ao executar o Grails. Irá aparecer uma mensagem similar a esta:

"Error opening jar file (bla bla bla) manifest (bla bla bla)"

Resolver este problema é fácil: basta que você altere os dados de perfil do seu PowerShell.

Siga este procedimento para verificar se você possuí um arquivo de perfil.

Execute este comando:

Test-Path $profile

Se retornar false, execute o comando a seguir:

New-Item -path $profile -type file –force

Lhe será mostrada um caminho para o arquivo de perfil. Abra este arquivo e adicione a linha abaixo:

$Global:PGVM_DIR = "c:\gvm"

A variável de ambiente Global:PGVM_DIR deverá apontar para o diretório no qual todas as instalações gerenciadas pelo GVM serão baixadas.

Prontinho: pode usar e abusar do GVM agora. :)

semana_groovy_logo

Semana Groovy 32!

Mais uma edição da Semana Groovy com alguns links e notícias que chamaram minha atenção nos últimos dias.

Neste dia 8 de agosto começam as aulas da primeira turma de Grails no projeto Formação itexto! E que tal uma notícia ainda melhor? Estamos preparando o material para um novo treinamento que deverá ser lançado mês que vêm. Acredito que vocês irão gostar, pois é um assunto que muitos pedem maiores detalhes a respeito (manterei o mistério por enquanto). Você pode acompanhar o que estamos fazendo emhttp://formacao.itexto.com.br

Observem algo interessante nesta edição da Semana Groovy: a maior parte dos links está em português!

Links da semana

No blog do Emílio há três posts muito bons ensinando a configurar o Grails com uma infraestrutura que envolve o Sonar, Jenkins e Artifactory. São ferramentas essenciais para todo desenvolvedor (Grails ou não). Seguem os links!

Parte 1 – http://emilio2hd.com.br/artifactory-jenkins-grails-sonar-parte-1/

Parte 2 – http://emilio2hd.com.br/artifactory-jenkins-grails-sonar-parte-2/

Parte 3 – http://emilio2hd.com.br/artifactory-jenkins-grails-sonar-parte-3/

Configurando o Spring Security em uma aplicação Java EE com JPA – Post bem prático do blog Domine o Spring – https://domineospring.wordpress.com/2015/07/27/spring-security-spring-jpa-e-o-javaee/

Problemas com o recarregamento dinâmico de classes no Grails? Talvez o problema esteja relacionado com o nome do diretório no qual seu projeto se encontre (caracteres de espaço podem ser a causa). Link interessante que apareceu no Grails Brasil e que recomendo a leitura: http://peedeebeesblog.blogspot.com.br/2015/07/grails-auto-class-reloading-broken-but.html

Container-less: usar ou não um servidor de aplicação? – post interessante publicado no site O Tapioca. Dado que o Grails 3 nos oferece este recurso, assim como o Spring Boot, é uma leitura bastante interessante para se levantar a discussão -http://www.otapioca.com.br/2015/07/container-less-usar-ou-nao-um-servidor-de-aplicacao/

Lançamentos

Grails 3.0.4 – https://github.com/grails/grails-core/releases/tag/v3.0.4

Grails 2.5.1 – https://github.com/grails/grails-core/releases/tag/v2.5.1  (ainda a versão que recomendo a meus clientes)

Dica: documentando seus projetos Grails!

Um recurso que vejo poucas pessoas usando no Grails são os recursos oferecidos pelo framework na geração de documentação. Sabia disto? Se não, recomendo que você leia esta seção da documentação (repetição inevitável!) do framework:http://grails.github.io/grails-doc/2.5.1/guide/conf.html#docengine

semana_groovy_logo

Semana Groovy 31!

Última semana para se inscrever na primeira turma aberta de Grails da itexto!

Está sendo muito boa a procura pela nossa primeira turma aberta de Grails! O treinamento será iniciado no dia 3 de agosto e as inscrições poderão ser feitas até o dia 31 de julho.

Mais detalhes sobre o curso neste link: http://formacao.itexto.com.br

Links da semana

Criando uma aplicação Android com Groovy – http://www.tothenew.com/blog/creating-android-application-with-groovy/

Lidando com stored procedures usando o plugin Migration – http://www.tothenew.com/blog/migrating-stored-procedures-with-grails-database-migration-plugin/

Lições aprendidas na escrita da segunda edição do livro “Groovy in Action” – http://www.jworks.nl/2015/07/13/learnings-of-writing-groovy-in-action-second-edition/

Como externalizar e recarregar as configurações do Log4J em aplicações Grails – http://www.tothenew.com/blog/externalize-and-reload-grails-log4j-configuration/

Indo do Rails ao Grails: diferenças e similaridades - http://www.redwindsw.com/blog/2014-01-15-moving-from-rails-to-grails-differences-and-similarities

Dica de livro muito interessante sobre sistemas legados

Muito provavelmente você precisa lidar com algum tipo de sistema legado. Esta semana terminei a leitura de um livro excelente (e gratuito) sobre o assunto. Se chama“Object-Oriented Reengineering Patterns”, publicado sob a licença Creative Commons.

É uma excelente leitura: vai muito além do simples refatorar código. Apresenta alguns padrões de projeto formidáveis para se lidar com a equipe envolvida em um projeto deste tipo também.

Você pode baixar o PDF neste link: http://scg.unibe.ch/download/oorp/OORP.pdf

Contribua com a nossa newsletter

Viu algum texto legal que gostaria de compartilhar? Vai ministrar algum treinamento? Alguma notícia interessante? Nos envie usando este formulário.