semana_groovy

Semana Groovy #8

Links da semana

Como cai no Groovy e mergulhei no Grails: descrevo o início da minha trajetória com Groovy e a origem do Grails Brasil – http://www.itexto.net/devkico/?p=1907

10 tecnologias que empolgam desenvolvedores. Groovy e Gradle no topo! –  http://zeroturnaround.com/rebellabs/10-kick-ass-technologies-modern-developers-love/

Introdução ao Spring XD (Extreme Data), que tem como base Spring e Grails – http://www.infoq.com/articles/introducing-spring-xd

Groovy Weekly #31 – http://glaforge.appspot.com/article/groovy-weekly-31

Apresentações

Usando Groovy para escrever aplicações Android! A famosa apresentação que foi mencionada na primeira edição da semana Groovy agora está disponível! – https://www.youtube.com/watch?v=AebkFsfcuDg

Teste funcionalmente seus projetos Grails com GEB –  https://www.youtube.com/watch?v=McFoNTKD8Q0

CRaSH the shell for the Java Virtual Machine – um projeto interessantíssimo para aqueles que desejam um melhor monitoramento de seus projetos é o CRaSH. Basicamente ele nos fornece um shell no estilo SSH que nos possibilita inspecionar remotamente o funcionamento dos nossos sistemas e ainda executar algumas tarefas. Esta apresentação é um verdadeiro chamado para que todos nós passemos a usar esta tecnologia. :) – https://www.youtube.com/watch?v=ZRQwZfP2uIc

Entrevista com Juergen Hoeller sobre Spring 4, Java 8 e Spring XD – Juergen Hoeller foi um dos fundadores do projeto Spring. Interessante ouvir se você se interessa pelo futuro destas tecnologias – http://www.infoq.com/interviews/Juergen-Hoeller-QConNY-2014-Interview

Lançamentos

Groovy 2.3.5 – Diversas correções de bugs. Uma novidade desta versão é que se preocuparam com compatibilidade com versões futuras, pois incluiram um artefato chamado groovy-backports-compat23 (leia o post no blog do Guillaume Laforge a respeito: http://glaforge.appspot.com/article/groovy-2-3-5-out-with-upward-compatibility ). Vale à pena ler o release notes aqui: https://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10242&version=20491. Em seguida, faça o download em http://www.groovy-lang.org/download.html

Spring 4.1 RC – Uma novidade interessante é o fato de que agora o Spring MVC vai ter suporte nativo a templates Groovy!  - http://spring.io/blog/2014/07/21/spring-framework-4-1-release-candidate-available

Projeto da semana

GR8 CRM – O objetivo do projeto é fornecer funcionalidades de CRM (Customer Relationship Management) para aplicações Grails. Consiste em um amontoado de plugins. Estes irão trazer funcionalidades como gestão de contatos, gerência de tarefas e de projetos, notas, etc. Sem sombra de dúvidas é bastante interessante e vale à pena navegar pelos plugins: http://gr8crm.github.io/

Posts clássicos

Guia itexto: o container de injeção de dependências do Spring – Por baixo do Grails há o Spring Framework. É muito importante que o desenvolvedor entenda os conceitos por trás do Spring para tirar máximo proveito do Grails. Neste artigo (que acabou dando origem ao meu livro sobre o mesmo assunto) todos estes conceitos são explicados em detalhe – http://www.itexto.net/devkico/?p=859

GORM por trás dos panos. GORM é o framework de persistência do Grails. Já faz algum tempo que passou a ser uma API independente também. O melhor lugar para entender seu funcionamento por trás dos panos é o guia para desenvolvedores do framework,que pode ser acessado neste link: http://projects.spring.io/grails-data-mapping/manual/index.html

Assine nossa newsletter!

Quer receber esta newsletter por e-mail no momento em que for publicada? Basta se inscrever preenchendo este formulário!

Como cai no Groovy e mergulhei no Grails

groovylogoHoje passeando por antigos códigos meus percebi uma coisa: faz DEZ anos que programo em Groovy, e seis que criei o Grails Brasil. Uou! Tenho muitas lembranças legais deste período no qual trabalhei com aquela que, hoje posso dizer com  segurança, é minha linguagem favorita. Neste post conto o início desta história.

Culpa da classe java.math.BigDecimal!

Era 2004 e tudo começou por que sou um fervoroso inimigo da classe java.math.BigDecimal do Java. Se não a conhece, é a classe que usamos para lidar com números de alta precisão. Qual o problema com ela? Simples: imagine que eu precise implementar a fórmula de Bhaskara:


BigDecimal bhaskara(BigDecimal a, BigDecimal b, BigDecimal C) {
BigDecimal delta = b.multiply(b).subtract(new BigDecimal(4).multiply(a).multiply(c));
return b.multiply(new BigDecimal(-1)).subtract(Math.sqrt(delta)).divide(new BigDecimal(4).multiply(a).multiply(c));

}

Acho que este é o Bhaskara mesmo

Acho que este é o Bhaskara mesmo

Tirei parte da fórmula (e deve ter erro tá?) só para expor meu ponto. Eu queria usar a JVM, sabia do quão poderosa esta era e é. E eu tinha também uma imensa quantidade de código fonte Java que não queria jogar fora. Foi quando vi que existia uma linguagem chamada Groovy na qual eu podia escrever algo como no exemplo a seguir:


def bhaskara(a, b, c) {
-b + Math.sqrt( (b*b) - (4*a*c))
}

Me ganhou na hora. De repente eu podia escrever minhas aplicações matemáticas sem a maldita classe BigDecimal. E sabem o que era mais legal? Aquela função em Groovy me retornava um objeto do tipo… BigDecimal! Yeap: sentimento “troll master” me dominou.

Percebo que eu possuía… scripts!

Por um bom tempo Groovy era apenas a linguagem que eu usava para escrever minhas fórmulas: um motor matemático no máximo. Eu salvava as fórmulas em arquivos ou no banco de dados, meu sistema Java as carregava, passava alguns parâmetros para aquele código e na outra ponta vinha o resultado. Sabe aquele momento na vida em que você percebe que teve ouro o tempo inteiro diante de si e o ignorava? Foi o estalo.

script

Juro: não havia me passado pela cabeça que aquelas funções na realidade eram scripts! De repente acordei para o fato de que meus scripts podiam acessar meu código Java nativo, e meu código Java podia executar aqueles scripts e coisas boas poderiam surgir dali.

Se meu script acessa meu código Java dentro do meu projeto… por que não permitir que meus usuários possam estender meus sistemas? Assim eu trabalharia  menos pois fornecia apenas o framework básico e eles o “recheio” na forma dos scripts.

Percebo que meus scripts poderiam ser usados para criar minhas próprias… linguagens!

A possibilidade dos meus usuários fornecerem seus próprios scripts parecia maravilhosa, mas na prática eu acabava trabalhando muito mais, pois quem escrevia os scripts era… EU! Os usuários simplesmente não sabiam programar.

C++? K++ !

C++? Humpf!

Mas aí eu percebi que na linguagem havia alguns construtores que me permitiam criar algo que era quase como minha própria linguagem de programação. Anos depois fiquei sabendo que aquelas “quase linguagens de programação” tinham um nome técnico: Domain Specific Languages, as linguagens específicas de contexto (Martin Fowler tem inclusive um livro bem bacana sobre o assunto cuja leitura recomendo).

De repente meu sonho de ter meu próprio “K++” estava próximo de se tornar realidade. E sabem o que é mais legal? Aquelas DSLs que eu criava funcionavam: os usuários conseguiam digitar suas próprias fórmulas no sistema sem me chamar! Eu estava trabalhando… milímetros a menos.

Percebo que escrever aplicações web em Java era… um porre!

Meu framework web favorito por um tempo foi o JSF 1.2. Apesar de ter sido um projeto que fracassou em diversos aspectos (escrever componentes era horrível, desenvolvimento fora da web para PDAs e desktop nunca se realizou, as IDEs que nos permitiram programar apenas arrastando e soltando nunca funcionaram e mais alguns que não me lembro agora) eu gostava muito dele. Me sentia produtivo e diria que até mesmo mais inteligente que as outras pessoas.

Foi quando vi uma apresentação de um sujeito chamado “David Heineieneimengen Hanso” ou coisa similar fazendo uma demonstração de uma coisa chamada “Ruby on Rails”. O vídeo ainda está disponível no YouTube e sugiro que você o assista pois aquele foi um momento histórico. Aqui o link: https://www.youtube.com/watch?v=Gzj723LkRJY

É David Heinemeier Hansson o nome, mas eu sempre vou dizer DHH por que é mais fácil!

É David Heinemeier Hansson o nome, mas eu sempre vou dizer DHH 

Era um vídeo cheio de “Ops”, “Uopa” e uma série de pequenos erros. Soavam engraçados em um primerio momento, mas sabem o que era chocante? De repente aquela minha sensação de que eu trabalhava de uma forma extremamente inteligente se transformou em vergonha. Eu trabalhava de uma forma muito, muito tosca perto do que aquele sujeito estrangeiro cujo nome eu mal conseguia pronunciar estava me mostrando.

Foi o melhor tapa na cara que levei na vida!

E aí eu tentei o Ruby on Rails e era muito lindo e… meu passado veio me importunar!

E puxa vida, o tal do Ruby on Rails era muito lindo! Eu estava criando aqueles projetos com uma velocidade incrível: pegava meu banco de dados, criava algumas classes, iniciava o scaffolding e boom: lá estavam minhas páginas!

Me lembro também de ter comprado um livro excelente, de um sujeito chamado Fábio Akita, o “Repensando a web com Rails”. Foi uma experiência muito bacana porque eu lia o livro, experimentava no meu PC, ia progredindo, as aplicações crescendo e de repente eu achava Java um porre e o JSF a coisa mais entediante do universo. (ah… a arrogância…)

capa_repensando_mini

Foi quando na empresa em que trabalhava desenvolvi um projeto no qual precisava usar uma boa quantidade de código que eu já tinha implementado e funcionava perfeitamente bem em… Java.  Virei para os meus colegas e disse: “ah, basta que a gente reescreva tudo em Ruby que é uma linguagem super massa!”.

Ainda me lembro da assustadora sensação de voar sobre minha casa graças ao “amistoso impulso” dado pelos meus colegas de trabalho, aqueles “preguiçosos que não queriam reescrever todo o seu código em uma linguagem mais massa que a deles”. :)

Tem um tal de Groovy on Rails que parece massa…

Voltar para o JSF 1.2 foi muito triste. Era como se em um dia eu estivesse no paraíso e no seguinte estivesse… escrevendo componentes em JSF 1.2. Até me inspirou a escrever um texto sobre o assunto um tempo depois, só que não sobre o JSF, mas sim sobre “cavernas”. :)

Mas eu ouvia falar de algo chamado Groovy on Rails que ainda não tinha atingido a versão 1.0 mas que me possibilitava ter o mesmo estilo de desenvolvimento que o pessoal do Ruby on Rails tinha. E com uma vantagem: eu podia reaproveitar todo o meu código Java nativo e ainda ter uma performance muito superior, pois estava usando a JVM e todos aqueles servidores de aplicação que me pareciam tão fantásticos na época!

Os primeiros projetos foram sucesso absoluto e nós pudemos usar todo aquele nosso código legado. O passado deixou de ser um problema e se tornou um aliado. E ainda melhor: eu não estava programando apenas em Java, mas em Groovy e tinha todos aqueles tesouros que havia descoberto com o tempo. Foi lindo.

Mas só eu usava aquele negócio e aquela solidão me incomodava muito… e se eu buscasse por gente que também usasse aquilo?

Só nossa equipe usava Groovy e Grails. Na realidade, na nossa equipe só eu usava Grails, pois os outros tinham medo de chegar perto daquela “coisa que ninguém usava”. E no GUJ não via o pessoal falar a respeito.

grails_brasil

Primeiro logo do Grails Brasil

E eu ganhava extremamente mal,  mas na Hostnet tinha um plano de PHP que custava na época algo em torno de R$ 24,90 por mês no qual havia alguns assistentes que permitiam aos clientes instalar sistemas PHP de forma muito simples e rápida. Um destes assistentes era para o phpBB, que é um excelente motor de fórum feito em… PHP.

Na época eu conhecia bem PHP:  juntei a fome com a vontade de comer e, naquele dia 15 de fevereiro de 2008, no intervalo do almoço (terminei o dia com fome), assinei o plano, executei o assistente, customizei o phpBB, registrei o domínio grailsbrasil.com e tempos depois o grailsbrasil.com.br. Tudo em 40 minutos. Nascia ali o Grails Brasil pois eu queria conhecer mais pessoas que também usassem Grails e falassem português.

Na primeira semana havia 20 membros, no primeiro mês 50. Foi um choque para mim. Não esperava que o Grails Brasil iria durar mais que seis meses (na realidade, eu nem sabia se teria dinheiro para pagar as coisas depois daquele período).

E hoje, bem…

A maior parte das pessoas me conhecem por causa do Grails. Publiquei um monte de artigos sobre, criei este blog, Grails Brasil saiu do phpBB e hoje é 100% escrito em Grails (uso a versão 1.3.9 até hoje!), publiquei um livro sobre Spring e estou lutando para terminar o meu livro sobre Grails (cuja idéia para escrevê-lo surgiu lá pelos idos de 2009, 2010) e cujo resultado final, espero, vai alegar muita gente nos próximos meses (eu sei que estou atrasadíssimo).

Grails Brasil tá chegando perto dos 2000 membros e eu continuo usando estas tecnologias diariamente. As vi evoluir, Groovy deixou de ser uma lesma e hoje tem performance próxima à do Java, mais e mais pessoas programam em Groovy e Grails aqui no Brasil , uma porrada de empregos foi criada graças a estas tecnologias, muita gente veio para o Java graças ao Groovy e outra penca para o Java EE graças ao Grails.

Acho esta uma história bacana, e ainda ocultei aqui diversos detalhes que dariam um livro. Conheci muitas pessoas interessantes e fiz excelentes amizades. E sinceramente? Pra uns vai soar estranho, mas me vejo programando em Groovy daqui a dez anos: talvez não como linguagem principal (sei lá o que vai surgir), mas com certeza como aquela que me quebra diversos galhos diários.

Aviso: momento cafona a seguir

Não é exagero dizer que Groovy e Grails fazem parte da minha família.

PS:

E eu ainda nem cheguei no primeiro quarto da história. Coisas boas virão neste ano e no próximo. :)

semana_groovy

A Semana Groovy #7

Case interessante nacional de Grails

Leva eu – Uma aplicação bastante interessante que auxilia as pessoas a organizarem excursões turísticas. Vale à pena conhecer! – http://grailsbrasil.com.br/caso/show/34

(tem alguma experiência bacana com Groovy e Grails? Cadastre-a no site do Grails Brasil (http://www.grailsbrasil.com.br) ou entre em contato direto comigo para que seja divulgado em nossa newsletter!)

Curso online de Grails com Cleórbete Santos – vagas limitadas!

Cleórbete Santos vai estar ministrando um curso online de desenvolvimento com Grails. É uma oportunidade interessante para aqueles que desejam aprender o framework com alguém experiente no assunto ao vivo!

http://cleorbete.com/2014/07/19/curso-completo-de-desenvolvimento-web-em-online/

Vamos nos conhecer pessoalmente?

Sei que já foi mencionado na edição anterior da Semana Groovy mas não custa repetir: estamos iniciando um meetup de desenvolvedores Groovy. É uma excelente oportunidade de conhecer mais gente que use este ferramental, trocar experiências, aumentar seu network e, quem sabe, até mesmo gerar alguns negócios com isto, não é mesmo? Você pode se inscrever neste link: http://www.meetup.com/groovybr/

Uma forma interessante de aprender Groovy

O projeto se chama Groovy Koans. Consiste em um apanhado de testes unitários, cada um representando um desafio Groovy. Seu trabalho é ir arrumando o código até resolver cada um destes pequenos problemas e com isto ir se tornando um desenvolvedor Groovy melhor! – http://groovykoans.org/

Apresentações que merecem (e devem) ser assistidas

Seguem abaixo duas apresentações postadas esta semana no canal da GR8Conf que merecem a nossa atenção.

Cut your Grails application to pieces – Excelente para que você entenda como funciona o mecanismo de plugins do Grails e com isto aumentar exponencialmente seu reaproveitamento de código. Talvez este seja o recurso mais poderoso do framework mas infelizmente não é tão bem aproveitado por nós quanto devia. https://www.youtube.com/watch?v=LZQ-1f9RGqg

Building Micro Services using Groovy, Spring Boot and Friends – Focado em Groovy, esta apresentação é também uma excelente introdução ao Spring Boot e o conceito de micro serviços. Se você é desenvolvedor Grails, preste muito atenção em tudo o que envolva o Spring Boot, pois o Grails 3.0 será baseado nele (e isto é muito bom!) – https://www.youtube.com/watch?v=4LLQeMcFUpY

Links da semana

Uma prova de conceito de Groovy executando no IOS – https://github.com/mvniekerk/GradleGroovyRobot – É baseado em um projeto bastante interessante chamado RoboVM, que nos permite desenvolver aplicações nativas para iOS em Java – http://www.robovm.org/

Kunal Dabir publicou no GitHub um apanhado de diversos projetos baseados em Groovy. Se você é “grooveiro”, tem aí uma lista interessantíssima de ferramentas que poderá incluir em seus projetos! –  https://github.com/kdabir/awesome-groovy

Groovy Weekly 30 – http://glaforge.appspot.com/article/groovy-weekly-30

Posts clássicos

Inspirado na menção que fiz ao Spring Boot, aqui seguem alguns posts sobre o conceito de micro serviços. Este é um conceito importante que passará (e já está) a fazer parte do nosso vocabulário nos próximos meses.

Microservices - James Lewis e Martin Fowler – um artigo que acabou virando um clássico sobre o assunto. Muito bom para entender o assunto. http://martinfowler.com/articles/microservices.html

Confesso que o conceito de micro serviços me incomodou bastante. Sendo assim tenho dois textos em meu blog sobre o assunto:

O que é arquitetura baseada em micro serviços? – Uma introdução conceitual que faço do tema: http://www.itexto.net/devkico/?p=1755

Repensando micro serviços – Minhas críticas ao conceito – http://www.itexto.net/devkico/?p=1768

Assine nossa newsletter!

Quer receber esta newsletter por e-mail no momento em que for publicada? Basta se inscrever preenchendo este formulário!

piratas

Eu e algumas justificativas para piratear livros

Acho que foi segunda feira que vi meu nome sendo citado no Facebook em uma frase mais ou menos assim: “é uma sacanagem o que você está fazendo com o Henrique Lobo Weissmann (…)”. Cliquei no link para ver do que se tratava e isto deu início a uma experiência deprimente.

Um post em um grupo bastante conhecido de desenvolvedores web no Facebook em que um sujeito postava um link para o site mega.com. Acessando o site estavam presentes diversos livros (incluindo o meu). Primeiro li os comentários, diversas pessoas agradecendo o sujeito pelo seu feito (frases como “CARA, EU TE AMO!”) e o sujeito respondendo a quem o criticava ironicamente dizendo que “só queria ajudar :)”. Até aí nada de surpreendente: tolos e suas tolices.

O surpreendente (ao menos pra mim) veio na sequência quando resolvi baixar o meu próprio livro daquela lista. No rodapé de cada página é impresso o nome de quem o comprou. Não estava lá. Na mesma lista vi outros livros que possuo cópia legal. A mesma coisa. Da trabalho fazer isto: alguém gastou seu tempo removendo as marcas d’água daqueles documentos para em seguida disponibilizá-los na Internet. Trabalho de programador: colega de profissão ferrando colega de profissão. E provavelmente o tempo que o sujeito gastou fazendo isto saiu mais caro que o preço do livro: o meu custa R$ 29,00. Chamo isto de vandalismo.

Este fato sozinho já é suficientemente deprimente. O que veio depois é ainda pior: resolvi postar no mesmo grupo um texto mais ou menos assim: “Seguinte pessoal, vi aqui meu livro, junto com outros, ser pirateado. Sei que é algo que parece normal para muitos de vocês, mas aqui está minha opinião sobre o assunto. Leiam este texto que escrevi (link)”. De início vieram as pessoas se solidarizar e tal (o que se espera). Logo em seguida veio uma série de argumentos pró-pirataria. Não satisfeitos, alguns inclusive vieram com ataques a mim por Facebook, etc.

Até aquele momento pra mim parecia óbvio que piratear livro digital é errado (e pela nossa constituição é inclusive crime). Hoje vejo que não é. Sendo assim, neste post vou responder a uma série de argumentos que li.

Por que vou fazer isto

Eu poderia simplesmente me calar (como a maior parte das pessoas), mas acredito que no caso acima, mais que um crime, é uma questão de respeito. Assim como o Fernando Vieria muito bem disse em seu blog, quando pirateiam um trabalho meu, não é “apenas um livro”: aquele trabalho sou eu.

Se é estipulado o modo como o acesso aquele trabalho é feito (por pior que pareça), e este é transgredido, estão invadindo meu espaço sem autorização, ou seja, estão me desrespeitando. E mais ainda e acima de tudo: como já disse antes, isto apenas ferra o nosso país e nossa profissão.

E o papo de que “não adianta fazer nada” é falso. Sim, eu posso: se falo a respeito, ajudo a mudar esta cultura. E ei: um dos tolos que me pirateou (espalhando para outros grupos) talvez tenha sido até mesmo honesto ao me mandar esta mensagem:

Da coceira pra liberar o nome deste aqui.

Da coceira pra liberar o nome deste aqui.

Minha linha argumentativa

Vou usar o princípio da Navalha de Occam. Resumindo, é o seguinte: se começou a enrolar ou dar voltas demais é por que tá errado de alguma maneira. Se consegue ser descrito de forma sucinta é por que a probabilidade de estar correto é enorme.

Se foi estipulada uma forma de se obter meu trabalho, esta se encontra de acordo com a lei vigente em meu país (Brasil), não causa dano a ninguém e esta foi burlada de alguma forma, então a lei foi quebrada e o desrespeito afirmado à minha pessoa e a dos envolvidos na produção daquele trabalho.

O argumento da hipocrisia

“Quem é o autor para nos dizer que não podemos pirateá-lo? Afinal de contas, aposto que ele também já pirateou alguma coisa na vida!”

Contra argumentação

Um erro não justifica outro e um alheio não justifica os meus.

Consequências do argumento da hipocrisia

O objeto está a venda, se você o obtém por meios ilícitos, sim: está cometendo um crime. Levando este argumento ao extremo, um ladrão jamais poderia dizer que roubar é errado. Pior ainda: todos os crimes passam a ser válidos, uma vez que sempre há alguém que os comete e consegue sair impune. Segundo este argumento eu também posso roubar por que tenho direito à minha parcela de impunidade. Não faz sentido.

O argumento dos melhores modelos de comercialização ou obtenção de ganhos

“Você poderia alugar ou dar de graça ou (imagine sua opção aqui) e obter ganhos de formas muito melhores do que cobrando pelo seu trabalho. Veja a empresa épsilon, por exemplo, é um caso fascinante que funciona e gera lucro para seus participantes.”

Contra argumento

Ninguém tem o direito de me impor outro modelo de atuação gerando danos a mim ou ao meu trabalho.

Consequências do argumento dos melhores modelos de comercialização

Sempre haverá modelos alternativos, no entanto é inegável que o modelo de venda simples também funciona. Há o problema da pirataria? Com certeza. Quer uma prova interessante de que funciona? Meu primeiro livro caminha para as 2000 cópias vendidas: destas, bem mais de 90% são digitais e não físicas.

E sabe aquele papo de que caminhamos para uma “economia das coisas gratuitas”? Ainda não aconteceu. Pode até ter indícios, mas as pessoas ainda querem ser pagas pelo seu trabalho.

O argumento da editora exploradora

“Pirateio mesmo pois sei que a maior parte dos lucros vai para a editora e não para o autor!”

Contra argumentos

A maior parte do dinheiro precisa ir para a editora pois esta cuida de uma série de fatores como logística, diagramação, editoração, revisão, gestão, apoio ao escritor, salário dos funcionários e diversos outros custos que o autor não tem.

O autor antes de começar a escrita do livro para a editora recebe uma proposta sob a forma de contrato: este é lido e o autor assina se concordar. Ninguém o obriga a escrever coisa alguma.

Pessoalmente: não preciso ou quero deste tipo de defensor para o meu trabalho. Se eu quiser dar 100% do valor para a editora dou e absolutamente ninguém tem coisa alguma a ver com isto.

Consequências do argumento da editora exploradora

Quem diz este tipo de coisa provavelmente nunca precisou pagar uma conta na vida ou gerir um negócio.  Que fique claro: sem editoras não há mercado editorial. Hoje é possível escrever livros de forma completamente independente (vide LeanPub ou Amazon), mas os benefícios obtidos pelo simples fato de haver uma editora por trás são inegáveis. No caso de livros técnicos, o principal ganho é que uma entidade externa a mim está dizendo que tenho competência para falar sobre aquele assunto e não eu mesmo.

Mais que isto: alguém mais competente está cuidando de assuntos que desconheço como vendas, divulgação, etc. Com isto meu foco fica apenas no que sei fazer: escrever e falar sobre aquele assunto.

O “argumento” da relatividade

“Você não pode dizer que pirataria de livros é um crime, dado que o conceito de crime varia de acordo com o tempo. Algum tempo atrás homossexualidade, por exemplo, era crime, hoje não é mais. Com os novos meios de produção, nada impede que a pirataria também deixe de ser crime.”

Contra argumento

Neste tempo, neste país, pirataria de livros é crime.

Consequências do argumento da relatividade

Eu ri. Agora, falando mais sério: relativizar qualquer discussão é desonestidade intelectual, pois a partir do momento em que as coisas se relativizam, pode-se dizer qualquer absurdo, pois “tudo é relativo”. Usem isto para detectar o “intelectual” desonesto.

O argumento de que “todo conhecimento deve ser livre”

“Sou da opinião de que todo argumento deve ser livre. Sendo assim não acho errado piratear seu livro pois tenho direito aquele conhecimento”

Contra argumento

Conhecimento é uma coisa e trabalho alheio outra.

Consequências do “todo conhecimento deve ser livre”

Quando você compra um livro está na realidade pagando pelo trabalho que o autor teve de compilar aquelas informações. Aquele sujeito ficou dias, meses, anos trabalhando para que o texto chegasse naquele ponto que pudesse ser comercializado.

Ele poderia muito bem ter disponibilizado gratuitamente, é verdade, mas também pode achar que merece ser remunerado por isto através da venda dos seus exemplares, e não há absolutamente nada de errado com isto.

O conhecimento está aí, basta que você faça como o autor: ponha a bunda na cadeira e comece a pesquisar por conta própria. Você está pagando é pelo trabalho da pessoa, não pelo conhecimento. Aliás, é interessante observar que quem faz este tipo de afirmação não consegue dizer o que vêm a ser o tal do “conhecimento” cuja liberdade prega tanto.

Pirateando você está desestimulando a produção comercial. Menos produção comercial é menos “conhecimento” sendo vendido e, convenhamos: R$ 29,00 não é acessível???

Argumento da falta de recursos financeiros

“Fiz cópia pirata por que não tenho dinheiro para comprar”

Contra argumento

Se um produto só é acessível a partir da compra, e você o obtém por meios ilícitos, você está roubando.

Consequências da “falta de recursos financeiros”

Simples assim: é roubo. E cá entre nós: no caso que citei o produto custa R$ 29,00. Mesmo se fosse caro, continuaria um argumento inválido. Esta é a essência por trás de qualquer furto.

Pergunte-se: como você justifica o valor de algo como caro? Te dou uma definição: caro é quando algo lhe fornece um benefício inferior ao que você pagou. E sabe de uma coisa? Se é caro, você não precisa roubar, é só agir como uma pessoa correta e ignorar o produto.

Argumento da fama

“Ah, mas o autor escreve um livro para ficar conhecido como o expert naquele assunto. Ele fará dinheiro com palestras, eventos, cursos, etc. Não será uma pirataria boba que o irá lesar. Eu me sentiria honrado em saber que estão pirateando meu trabalho!”

Contra argumentos

A questão não é escolher a forma que lesa menos o autor, mas sim não causar a lesão.

Se o livro está a venda é por que um dos objetivos do autor é fazer dinheiro com aquele trabalho.

Consequências do argumento da fama.

A esmagadora maioria dos autores que conheço diretamente não vivem de palestrar e dar cursos sobre os assuntos tratados. Muitos (e me incluo) publicam seus livros por editoras com o objetivo de, além de ter o reconhecimento citado, também obter um lucro extra com o seu trabalho. Mesmo que lotássemos a agenda do autor com palestras e cursos, acredite: não cobriria o esforço gasto na confecção do livro.

O reconhecimento de um profissional não é obtido apenas a partir de um livro: ele é a menor parte na realidade. Entra aí participação em eventos, artigos publicados, trabalhos reais produzidos, experiência com colegas e diversas outras atividades.

Pra finalizar (e não irá finalizar)

Sei que pirataria é um problema cultural e que jamais será resolvido, mas isto não quer dizer que eu deva ser omisso. Infelizmente sou um dos poucos autores que falam abertamente sobre o assunto. Todos os autores publicados que contactei e foram pirateados concordam com o que disse acima. Sim: também se acharam desrespeitados. Curte o cara? Comece respeitando o trabalho dele.

Tadinho: tão inocente!

Tadinho: tão inocente!

Mas se você for me lesar, saiba que não ligo se me acha uma pessoa simpática ou não. Você leu este texto, leu o anterior sobre o assunto e sabe que considero isto desrespeito a minha pessoa. Te considero meu agressor.

Respeito é algo que primeiro espero. No momento seguinte, eu peço por ele. Se não o obtiver, o exijo.

PS: e você, autor?

Você sabe o trabalho que é publicar um livro e, se está a venda, também sabe que o fez para receber pelo seu esforço. Não se cale: não tenha medo de soar antipático perante esse povo que vêm com esta argumentação. Escreva a respeito para conscientizar o público.

Eu quero mais “Casas do Códigos, “DevMedias”, “Ciências Modernas” e muitas outras editoras pipocando por aí gerando livros que façam a diferença em nosso mercado. Ajudem nossa classe a progredir lutando contra o comportamento que exponho neste post.

Lembre-se: quem abaixa demais mostra a bunda.

semana_groovy

Semana Groovy #6

Que tal um novo Grails Brasil?

Iniciei o desenovlvimento do novo Grails Brasil. Se você faz parte da comunidade, saiba que sua opinião é extremamente importante. Por favor, diga-nos o que gosta (e especialmente o que nao gosta) no Grails Brasil atual e como podemos melhorá-lo. Claro, haverá um novo layout com uma série de melhorias de usabilidade (especialmente visando o mercado móvel). Outra grande novidade será um foco maior em outros projetos que fazem parte do ecossistema Groovy: a idéia é irmos além do Grails agora (mas mantendo as origens sempre).

Opine no Grails Brasil! http://grailsbrasil.com.br/post/show/2691

Site novo… que tal alguns encontros também?

Estamos iniciando a criação de meetups para futuros encontros de desenvolvedores Groovy e Grails. Gostaria de conhecer outros desenvolvedores que usam estas tecnologias para trocar experiências, assistir apresentações, aprender técnicas novas ou apenas para se divertir? Comece inscrevendo-se em nosso meetup. A idéia é iniciarmos encontros por todo o país – http://www.meetup.com/groovybr/

Grails Rio

Existe uma comunidade Grails no Rio de Janeiro bastante interessante. Mora na região ou simplesmente quer conhecer mais gente que usa o framework? Inscreva-se no grupo e troque idéia com este pessoal! https://groups.google.com/forum/#!forum/grailsrio

Saiu o beta de groovy-lang.org!

Você pode conferir o beta em http://beta.groovy-lang.org/. Como podem ver, está BEM melhor. E também é possível contribuir com o desenvolvimento do mesmo. O código fonte é aberto e você pode fazer um fork local, alterá-lo ou mesmo submeter sugestões de melhorias (como eu fiz): https://github.com/groovy/groovy-website

Links da semana

Groovy weekly #29 – http://glaforge.appspot.com/article/groovy-weekly-29

Roadmap do Gradle para 2014: podemos esperar várias coisas boas ainda para este ano. Confesso estar cada vez mais tentado a adotar o Gradle :) – http://forums.gradle.org/gradle/topics/revolutionary_new_gradle_features_on_the_2014_roadmap

Griffon: what’s new and what’s comming – Apresentação do Andres Almiray sobre as novidades do Griffon. Não conhece o Griffon? Pense num “Grails para desktop” – https://www.youtube.com/watch?v=hrM_AtD5eCw

Bootstrapping your projects with Lazybones – projeto interessantíssimo no ecossistema Groovy que nos permite criar projetos de uma forma bastante rápida. Esta apresentação é uma excelente introdução ao projeto – https://www.youtube.com/watch?v=pzZARB7SxdA

Usando Scala e Clojure em seus projetos Grails – mais uma excelente apresentação publicada no canal da GR8Conf esta semana em que é exposto como tirar proveito destas linguagens em um projeto Grails – https://www.youtube.com/watch?v=L-sH9Bn9y_c

Lançamentos

Groovy 2.3.4 – http://glaforge.appspot.com/article/groovy-2-3-4-is-out – E você já pode baixar no novo site! – http://beta.groovy-lang.org/download.html (Release notes: https://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10242&version=20432)

Spring Batch 3.0.1 – http://spring.io/blog/2014/07/10/spring-batch-releases-and-a-new-repository

Spring Boot 1.1.4 – https://spring.io/blog/2014/07/08/spring-boot-1-1-4-released

Spring Tool Suite e GGTS 3.6.0.  Baseados no Eclipse Luna (4.4) –  Suporte a Grails 2.4 e Groovy 2.3. E outra novidade: acabaram com os instaladores nativos, agora vêm apenas como arquivo zip que você descompacta aonde quiser. http://spring.io/blog/2014/07/11/spring-tool-suite-and-groovy-grails-tool-suite-3-6-0-released

HornetQ e ActiveMQ se unindo?

O lider do projeto HornetQ (Cleber Suconic) enviou uma mensagem para o grupo de desenvolvimento do ActiveMQ propondo a união dos dois projetos. Se você trabalha com qualquer um dos dois, esta seria uma excelente notícia! Vocês podem ler a proposta (e o feedback da equipe do ActiveMQ) neste link: http://activemq.2283324.n4.nabble.com/Possible-HornetQ-donation-to-ActiveMQ-td4682971.html

Posts clássicos

Playlist “/dev/Kico – Groovy e Grails” – minha lista de vídeos ensinando a programar em Groovy e Grails, análise de ferramentas e muito mais. Novos vídeos em breve! – https://www.youtube.com/playlist?list=PLc2foeLQlP8_QIlQ9sv_savAKGTGHJ5xd

The Cost of Data – Este artigo de Chris Suver publicado em 2005 no site ACM Queue é uma pérola. Bem antes de começar o hype das bases de dados NoSQL Chris Suver já se fazia uma pergunta fundamental: quanto custa manter uma base de dados fortemente estruturada, tal como fazemos no modelo relacional? Leitura obrigatória! – http://queue.acm.org/detail.cfm?id=1103843

 

semana_groovy

A Semana Groovy #5

As tags Ajax do Grails a partir da versão 2.4 do framework passaram foram marcadas como obsoletas (deprecated). E agora, como fica?

Lendo a documentação oficial da versão 2.4 do Grails na seção “Upgrading from 2.3” (http://grails.org/doc/2.4.0/guide/upgradingFrom23.html) é dito que as tags Ajax são agora consideradas obsoletas (deprecated). É hora então de começarmos o nosso planejamento de upgrade pós Grails 2.4.0 caso esteja usando este recurso.

Perguntei à equipe de desenvolvimento do Grails o que ocorreria com estas tags. Elas simplesmente desapareceriam ou seriam movidas para um plugin? A boa notícia é que não irão desaparecer por completo: irão fazer parte de um plugin.

A razão pela qual foram marcadas como obsoletas é simples: estas inserem código JavaScript em nossas páginas, o que não é uma boa prática e dificulta o trabalho de plugins como o pipeline.

Vocês podem acompanhar minha conversa com Graeme Rocher (responsável pelo projeto Grails na Pivotal) no grupo de discussão do projeto a este respeito. Basta acessar este link: https://groups.google.com/forum/#!topic/grails-dev-discuss/4yesijtFSB4

Se você usa as tags Ajax do Grails então este deve ser o caminho a seguir: o branch 2.4 do framework é o último da família 2.x, então elas sempre estarão presentes neste. Caso deseje atualizar seus projetos para a versão 3.x, basta usar o plugin contendo estas tags que, ao menos em teoria, estas deverão funcionar sem problema algum. :)

Para pensar: IDEs nas nuvens

Já pensou em usar uma IDE totalmente baseada em tecnologias web? Nesta entrevista com Martin Lippert da Pivotal podemos conhecer melhor o projeto Eclipse Flux, cujo objetivo é, a grosso modo, levar o Eclipse para a web. Entrevista fascinante, especialmente na parte em que falam do uso de mensageria na arquitetura do projeto: http://www.se-radio.net/2014/06/episode-205-martin-lippert-on-eclipse-flux/

Revisitando o ecossistema Groovy

Uma excelente apresentação sobre o ecossistema Groovy feita por Andres Almiray (o responsável pelo projeto Griffon): não apenas os projetos mais conhecidos como Grails, Griffon, mas muito mais! Sabe aquela pessoa que te pergunta aonde Groovy é usado? Manda este vídeo pra ela! – https://www.youtube.com/watch?v=2NGeaIwmnC8

E os slides você pode ver aqui: http://www.slideshare.net/aalmiray/gr8conf-groovy-ecosystem

E por falar em apresentações, já viu o canal da GR8Conf?

GR8Conf é a maior conferência sobre o ecossistema Groovy. E eles agora tem um canal no YouTube no qual vão postar o conteúdo das palestras. Ótimo, não? Então inscreva-se no canal deles para ser notificado de todos os novos vídeos! – https://www.youtube.com/channel/UCJXNOMywewNmau4hzAy4LjA

Links da semana

Nove ferramentas para lhe ajudar a tunar a performance do seu projeto Java (Groovy, JVM)  - http://blog.idrsolutions.com/2014/06/java-performance-tuning-tools/

Groovy Weekly 28 – http://glaforge.appspot.com/article/groovy-weekly-28

Getting Started with Griffon and JavaFX – Griffon é um dos projetos mais interessantes dentro do ecossistema Groovy. Com ele podemos ter o mesmo estilo de desenvolvimento que temos com Grails, só que com desktop. Neste post você terá uma noção de como usar JavaFX com este framework – (Parte 1 – http://www.jroller.com/aalmiray/entry/getting_started_with_griffon_and) (Parte 2 – http://www.jroller.com/aalmiray/entry/getting_started_with_griffon_and1)

Lançamentos

Gradle 2.0 – o sistema de build que mais tem crescido entre desenvolvedores Groovy –  https://c.getsatisfaction.com/gradle/topics/gradle_2_0_released

Griffon 2.0.0-BETA3 – http://docs.codehaus.org/display/GRIFFON/2014/07/03/Griffon+2.0.0.BETA3+Released

Ratpack 0.9.6 – para aqueles que não conhecem o Ratpack, é uma alternativa bastante atraente para aqueles que desejam escrever micro serviços com Groovy (ou Java)) – https://github.com/ratpack/ratpack/releases/tag/v0.9.6

Spring IO Platform 1.0.0 – https://spring.io/blog/2014/06/26/spring-io-platform-1-0-0-released

Plugins Grails interessantes

Grails Database Reverse Engineering Plugin – muitas vezes o desenvolvimento de uma aplicação começa a partir do banco de dados. Este é o plugin que está sendo recomendado pela Pivotal para substituir o antigo GRAG (https://grails.org/grag) – http://grails.org/plugin/db-reverse-engineer

Export Plugin – permite gerar arquivos no formato PDF, XLS, ODF, CSV e XML a partir de páginas GSP. Extremamente útil na confecção de relatórios! – http://grails.org/plugin/export

Posts clássicos

Limitations of Record-Based Information Models (William Kent) – um texto clássico que deve é leitura obrigatória para quem se interessa por bases de dados não relacionais. Neste post William Kent expõe as principais limitações do registro (sim, leu certo: do registro) – http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.86.4262&rep=rep1&type=pdf

Groovy and Grails Intro – apresentação em duas partes de 2007 feita do Scott Davis que me inspirou bastante na época a querer usar Groovy na web. É ultrapassado? Com certeza, mas mostra muito bem os principais valores que Grails ainda tem. Parte 1 – https://www.youtube.com/watch?v=RqHwwAWXcbE, Parte 2 – https://www.youtube.com/watch?v=gkaaOXGomzg

Assine nossa newsletter!

É possível receber esta newsletter por e-mail no momento em que é publicada, sabia? Basta se inscrever preenchendo este formulário!