devall

/dev/All completa uma semana (versão 1.0)

Se você me segue pelo Twitter ou Facebook já deve ter percebido que semana passada só tive um assunto: /dev/All. E não é pra menos: faz muito tempo que não me envolvo (e me divirto) tanto assim com um projeto profissional.

Apenas para lembrar: /dev/All é um agregador de blogs sobre TI/desenvolvimento de software/arquitetura/coisas tech e também um podcast cujas gravações começam a partir de amanhã (mais sobre o aspecto “podcast” semana que vêm).

A ideia original

Eu queria muito algo que pudesse ler no caminho para o trabalho. Como a esmagadora maioria do que leio envolve TI, e não há bons agregadores de blogs nacionais, por que não criar um? Primeira surpresa: descobri que pouquíssimas pessoas usam /dev/All em seus celulares, ou seja, poucos o vêem assim:

devall_mobile

A primeira versão (0.1) era focada apenas em dispositivos móveis, por isto era tão ruim no desktop (naquele momento eu realmente acreditava que as pessoas só o usariam como eu o faço (indo para o trabalho).

Mas aí percebi que podia ir além:  semana passada ficamos (eu, Pedro Campos ( estagiário da itexto) e Nanna) em cima do projeto: nisto saíram 15 releases, muitas vezes dois, três, quatro, cinco por dia. Neste post vou contar o que fizemos e o que mudou agora com o release 1.0. :)

As maiores dificuldades

Leitura de feeds

Se você é um usuário mais antigo do Grails Brasil talvez se lembre de uma antiga seção do site chamada “Blogs”. Foi o primeiro agregador de blogs que escrevi: mas como não haviam tantos blogs sobre o assunto na época, acabou perdendo o estimulo e matei o site.

Engraçado como me esqueci do quão complicado pode ser a escrita de um bot que leia feeds. Parece fácil em um primeiro momento: você irá apenas escrever um crawler que lerá documentos nos formatos XML (RSS e Atom), certo? Errado: a coisa é muito mais complicada do que aparenta.

Eu diria que uns 80% do nosso tempo foi melhorando o crawler. Por mais incrível que pareça há feeds que misturam RSS com Atom, alguns não implementam 100% do padrão, outros estabelecem seu próprio (Medium mesmo é um dos mais chatos).

Então implementamos uma biblioteca Java apenas para ler feeds – que devemos inclusive liberar o código no GitHub da itexto em breve pois acredito que muita gente deve sofrer com os problemas que enfrentamos (ROME não nos atendeu por ser muito mais complexo do que precisávamos).

Outro ponto importante: ter o extrator de posts como um processo independente do site principal. Isto nos permite corrigir e aprimorar o crawler sem precisarmos prejudicar a experiência final do usuário. Por esta razão criamos um projeto independente chamado “Feed Hunter”, que é quem alimenta o /dev/All hoje (falaremos mais sobre a arquitetura dele no futuro).

Ouvir os usuários

Não bastava apenas ter um agregador de blogs na rede: tem de ter conteúdo. Por esta razão Pedro entrou em contato com inúmeros autores durante a semana e o resultado foi positivo: todo dia você encontra bons posts no /dev/All, e o número de autores não para de crescer (temos 57 até a escrita deste post, e até o final da semana que vêm com certeza teremos mais de 100).

Então durante a semana acabamos aprendendo um pouco mais a respeito do que realmente estávamos fazendo. Foi uma experiência extremamente enriquecedora.

Ser mobile first é fácil: mobile e desktop, não

Apesar de termos alguns designers para os quais terceirizamos nossas demandas, decidimos usar esta experiência para treinarmos o que sabemos (ou achamos que sabemos) sobre design responsivo.

Confesso que ainda não estou 100% satisfeito com o nosso comportamento no desktop: ainda há um vácuo a ser preenchido pelo conteúdo do podcast que me incomoda. Mas isto deve ser resolvido nesta semana.

O que há de novo na versão 1.0

Novo crawler

Nesta semana você deve ter notado que diversos posts exibiam em seus sumários tags HTML e, em outros casos, simplesmente não mostravam nada. Isto se deu por causa dos motivos que citei acima. Sendo assim trabalhamos bastante em um novo crawler para resolver estes problemas.

Para minimizar o tempo de downtime do site quando precisamos atualizar este componente, hoje ele é executado como um processo completamente independente. Além disto, também vamos liberar o código fonte para que outras pessoas possam tirar proveito das coisas que aprendemos (e estamos aprendendo) neste trabalho.

Um dashboard para os blogueiros

Havia uma ausência (adorei esta frase) notória no /dev/All: você podia se cadastrar mas não podia alterar seus dados ou do seu blog. Notou isto? Este não é mais o problema: neste release estamos liberando um dashboard para todos os blogueiros que lhes permitem acompanhar a popularidade do que escrevem, tal como pode ser visto na imagem abaixo:

devall_dashboard

Hoje você pode ver quantos cliques por dia seu blog recebe, mas até o final da semana uma série de outras estatísticas estarão disponíveis como, por exemplo, que horas as pessoas acessam seu blog.

De onde veio esta ideia? Por que queremos te incentivar a escrever e também por que acompanhando os acessos do /dev/All vimos que as pessoas estavam clicando (e muito!) nos links que expomos! Então, por que não fornecer estas informações aos blogueiros.

Visando garantir sua privacidade, o usuário só possuí acesso aos blogs que possuí.

Ferramenta de busca

busca_devall

Esta foi outra coisa que muitos usuários pediram (e que era uma falta absurda), sendo assim, a incluímos no site. Agora você pode executar consultas no site.

O próximo passo é a categorização dos posts através do próprio crawler: algo no qual já estamos trabalhando. Ele será capaz de descobrir qual o assunto do post através da análise do texto (isto também vai pro GitHub).

E o futuro?

O próximo passo será a publicação do podcast e as melhorias subsequentes em nosso crawler. Claro: novas seções poderão surgir no site, mas neste momento o objetivo é fornecer ferramentas gratuitas para blogueiros e bons posts para que possamos ler.

Haverá também um RSS do /dev/All em breve, provavelmente esta semana. E agora volto a escrever a Semana Groovy :)

Qualquer dúvida ou sugestão, basta entrar em contato conosco! Espero que vocês curtam tanto o /dev/All quanto nós estamos amando construí-lo.

devall

/dev/All – agregador de blogs de desenvolvedores (e também um podcast)!

Hoje estou lançando um projeto no qual venho trabalhando já faz algum tempo. Se chama /dev/All, está em um estágio “pré-beta” mas acredito que já esteja 50% usável. Bom, ele supre dois objetivos meus:

Agregador de blogs voltados a desenvolvimento de software

Sempre senti muita falta de um agregador de blogs voltados para a minha área em português. Já vi algumas iniciativas mas todas não satisfaziam algumas necessidades básicas minhas:

  • Serem fáceis de se usar em trânsito (especialmente no ônibus)
  • Permitirem que os autores cadastrem facilmente seus blogs
  • Terem como foco exclusivamente TI e desenvolvimento de software
  • Que ofereça ferramentas para que os autores acompanhem a popularidade de seus posts e também lhes ajude a divulgar seu trabalho.

O funcionamento do /dev/All é bastante simples. Se você tiver um blog, basta se cadastrar neste link fornecendo o seu endereço. Se você não tiver um blog, bem: basta acessar a página principal para ver os últimos links que nosso crawler encontrou.

Ainda estamos trabalhando na parte envolvendo as ferramentas, mas com certeza deve sair algo nesta semana ou na próxima.

O sonho do podcast próprio!

Este é um projeto de anos: inicialmente se chamaria “/dev/Kico Podcast”, mas dado que as pessoas ligam muito este blog a Groovy e Grails, e eu lido com um range muito maior de tecnologias, primeiro pensei em uma generalização do site. Por que não “/dev/Tudo”? Por que me lembra “X-Tudo”. Então acabei chegando em “/dev/All” que soa bem melhor.

Neste podcast pretendo falar sobre alguns dos links mais interessantes que aparecerem no nosso feed e principalmente sobre as tecnologias que não aparecem nas convenções. Já estou montando nossa primeira ementa inclusive. Espero que gostem.

E o endereço do site?

http://www.devall.com.br

Quer nos ajudar?

Como disse no início deste post, ainda estamos em um estado bastante embrionário, sendo assim bugs surgirão. Caso apareçam, basta entrar em contato comigo por e-mail: kico@itexto.com.br

Ainda mais importante: se você tem um blog, por favor, se cadastre! Vai ser muito legal ver seus posts na nossa página inicial! Basta preencher este formulário!

Todo feedback é super bem vindo!

 

Ah, e o link né? http://www.devall.com.br

groovy_grails_na_itexto

Início das turmas de Groovy e Grails para desenvolvedores independentes na itexto!

Estou preparando na itexto um novo tipo de treinamento de Groovy e Grails voltado para desenvolvedores independentes. Até então nosso foco tem sido empresas, mas acredito que agora seja o momento ideal para o início destas novas turmas.

A idéia é criar uma experiência que vá além das aulas: estou falando de trocar experiências entre alunos e instrutor (eu) gerando como resultado algo como uma mini consultoria na qual apresentamos nossos problemas e compartilhamos as soluções durante o curso.

No site da itexto você pode saber mais a respeito da estrutura que estamos montando para estas turmas (incluindo os benefícios) clicando neste link.

Nesta semana e na próxima o foco é a coleta de feedback. O que você gostaria de ver em nossos treinamentos para desenvolvedores independentes? Quais as suas dificuldades? Caso esteja interessado em nos ajudar, basta preencher este formulário (link).

No mesmo formulário perguntamos se você teria interesse em participar destes treinamentos. Em caso afirmativo (torço para que sim!), entraremos em contato com você assim que tivermos tudo 100% organizado e fechado.

Vai ser massa!

Semana Groovy 29!

Notícias e eventos

Treinamento com José Yoshiriro de Groovy e Grails dias 9 e 10 de maio

Nos dias 9 e 10 de maio ocorrerá no Centro de Treinamentos da Novatec um workshop com José Yoshiriro. Mias detalhes neste link: http://ctnovatec.com.br/cursos/trilha-java/curso-groovygrails/ 

itexto pede seu feedback sobre suas turmas abertas online de Groovy e Grails

Queremos construir uma experiência única de aprendizado para desenvolvedores interessados em aprender (ou se aprofundar) em Groovy e Grails.  Sendo assim, estamos finalizando o planejamento para nossa primeira turma e precisamos da sua opinião. Mais detalhes neste link: http://www.itexto.com.br/site/?p=693

Grails Brasil 4.0.2

Acho que poucos repararam, mas nesta semana colocamos no ar a versão 4.0.2 do Grails Brasil. Pouco a pouco estamos caminhando para torná-lo cada vez melhor! :)

Nova newsletter: Groovy Dev

Esta semana por acaso descobri uma nova newsletter sobre Groovy (está em sua terceira edição). Se chama Groovy Dev. Segue o link: http://groovydevweekly.com/ .

Posts

Contribuição da comunidade

A partir desta edição da Semana Groovy vamos publicar os links que nos foram fornecidos por membros da comunidade Groovy e Grails. Você também pode nos fornecer seus links, para tal, basta preencher este formulário: http://goo.gl/forms/ZsH5UqklbL 

IntelliJ terá suporte ao Grails 3.0 a partir de julho - Fernando nos mandou um link pertencente ao fórum da JetBrains no qual um usuário pergunta quando será incluído suporte a Grails 3 na IDE. A resposta da equipe foi rápida: a partir de julho! Interessados podem acompanhar a discussão neste link: https://youtrack.jetbrains.com/issue/IDEA-136970

Especial Gradle

Dado que o Grails 3 é baseado neste motor de construção, nada melhor do que alguns links para que vocês possam já ir se acostumando com a ferramenta. :)

Using Gradle and Bower to manage JS/CSS dependencies – Tenho visto cada vez mais projetos nos quais todo o frontend é implementado de forma independente do Grails usando Bower e Grunt. Este post vai direto ao ponto. – https://objectpartners.com/2015/04/29/using-gradle-and-bower-to-manage-jscss-dependencies/

Gradle Goodness: Handling Copying Duplicate Files – O nome já diz tudo: como lidar com arquivos duplicados usando o Gradle – http://mrhaki.blogspot.com.br/2015/04/gradle-goodness-handle-copying.html

E-book gratuito da O’Reilly: Building and Testing with Gradle – nada melhor que um livro pra te guiar nos seus primeiros passos com a ferramenta! – http://www2.gradle.org/l/68052/2015-01-13/6dm

Grails

Saving application PID in file – A partir do Grails 3 você pode empacotar sua aplicação como um JAR. Um dos problemas é justamente identificar o processo que você iniciou, o que é feito através do identificador do processo (PID). Mr Haki nos mostra de uma maneira bem fácil como fazer isto neste link: http://mrhaki.blogspot.com.br/2015/04/grails-goodness-save-application-pid-in.html

Incluindo informações de inicialização no seu log – Mais uma vez Mr Haki nos dá uma dica valiosa – especialmente para administradores de sistema – nos ensinando como incluir informações de inicialização em nosso projeto Grails. Link: http://mrhaki.blogspot.com.br/2015/04/grails-goodness-log-startup-info.html

semana_groovy

Semana Groovy 28!

Acabei falhando com vocês na publicação da Semana Groovy 28 hein? Está uma semana atrasada mas, como vários de vocês já devem saber, foi por graças a dois bons motivos que falarei aqui nesta newsletter a respeito hoje.

Publicado “Falando de Grails”

Após tanto trabalho finalmente foi publicado meu livro sobre Groovy e Grails: “Falando de Grails” pela editora Casa do Código. Foi um longo trabalho mas, acredito, valeu bastante à pena. Nele trato das duas últimas versões do Grails: 2.5 e 3.0, espero que gostem.

Quando fiz o anúncio em /dev/Kico não havia muito para falar pois estava exausto, mas provavelmente nesta semana devo escrever mais a seu respeito.

Falando de Grails

Grails Brasil 4.0

Este foi o segundo motivo: consegui lançar a release 4.0 do Grails Brasil (que agora está na versão 4.0.1 e nos próximos dias a 4.0.2 graças ao feedback de vocês). Em um post em /dev/Kico falei a respeito dos nossos planos em abrir seu código fonte em breve (release 5).

Novamente, o feedback de vocês é muito importante. Por favor, nos apontem os problemas que encontrarem neste link. Alguns usuários nos deram sugestões muito importantes, em especial o Cristofer Sousa em questões de layout. Obrigado a todos vocês!

Curso de Grails em São Paulo nos dias 9 e 10 de maio

No Centro de Treinamento da Novatec ocorrerá um treinamento de Grails ministrado pelo José Yoshiriro, membro ativo do Grails Brasil e pessoa extremamente competente.

Vale à pena dar uma conferida. Segue o link.

Turmas abertas da itexto de Groovy e Grails a partir de maio

logo_freehand

A itexto vai iniciar turmas abertas de Groovy e Grails a partir de maio. Serão treinamentos presenciais e online usando nossa nova plataforma. Mais novidades na semana que vêm. :)

Posts interessantes

Running Geb Spock Tests with Maven – Como executar seus testes funcionais escritos usando Geb e Spock com Maven. Extremamente útil para ambientes de integração e implantação contínua! – http://blog.jdriven.com/2015/04/geb-gems-running-geb-spock-tests-maven/

Criando classes de domínio não persistentes com Grails – Esta foi novidade para mim! Até então achava que toda classe presente no diretório grails-app/domain era automaticamente persistente. Há como evitar este comportamento tal como descrito neste post: http://www.intelligrape.com/blog/making-a-domain-non-persistent/

Cédric Champeau foi para a Gradleware! – Um dos membros mais ativos da equipe de desenvolvimento do Groovy agora está trabalhando na Gradleware. Esta é uma excelente notícia. Mais detalhes neste link: https://gradle.org/welcoming-lari-hotari-and-cedric-champeau-to-gradle-team/

Projeto interessante: Grain

Esta semana estudei um projeto muito interessante baseado em Groovy: trata-se do Grain, que usa Groovy para gerar sites estáticos. É muito interessante para blogs ou mesmo sites como os oficiais dos projetos Groovy e Grails.

Link do projeto: http://sysgears.com/grain/

Colabore com a Semana Groovy!

Encontrou algum material legal que gostaria de compartilhar com a nossa comunidade? Vai ministrar algum treinamento ou organizar um evento? Enfim, quer compartilhar qualquer coisa relacionado a Groovy, Grails, Spring, etc? Basta preencher este formulário!