Sobre JSConf Brazil e BrazilJS

TL;DR

Não existe concorrência entre JSConfbr e BrazilJS, inclusive eu recomendo a voce ir aos dois porque são complementares e duas propostas totalmente diferentes.

Boatos

Está rolando algum boato aonde existe um “racha” na comunidade, comunidade dividida ou algo assim, nada disso é verdade. Eu vou para o BrazilJS e o Felipe e Jaydson vem para o JSConfbr, nós não estamos brigados, portanto já pode falar para o colega ao lado que isso não existe.

Jaydson publicou recentemente que os dois eventos não competem, agora vou ter que explicar também para não deixar boatos crescerem.

Como BrazilJS nasceu

Eu sempre tive o interesse de fazer uma conferência sobre Javascript, é uma tecnologia que gosto há mais de uma década. Tentei de forma muito inoportuna realizar o JSConf aqui por volta de 2010, o Chris Willians muito gentilmente sugeriu que eu tomasse vergonha na cara e provasse antes que poderia ter capacidade disso, pincei um trecho do email dele para voce ver que o nome BrazilJS foi justamente sugestão:

Here’s our proposal: for the first conference, find a different name, say BrazilJS or BRJS or JSBR (or any other) and then come and attend either JSConf.us or JSConf.eu (or both and then we can talk in person, over (many) beers how to make JSConfBr. In return, we’ll help you out with any promotion you might need.

Pouco tempo depois eu conheci o Jaydson e Felipe provavelmente em alguma lista de discussões e resolvemos juntar forças para realizar esse evento – agora denominado BrazilJS – aqui no Brasil. Vale lembrar que ainda fazia parte da coordenação desse primeiro evento o Francisco Barroso e o Henrique Soares.

Ano passado por motivos pessoais e profissionais eu não poderia sequer ir ao BrazilJS, para não prejudicar a organização eu comuniquei ao  meninos do sul essa decisão. O evento foi um sucesso contínuo, em 2011 tínhamos colocado mais de 500 pessoas em um teatro aqui em Fortaleza e ano passado encheram um teatro em Porto Alegre com cerca de 900 participantes.

A temática do BrazilJS é dar oportunidade a brasileiros palestrarem em uma conferência junto a nomes famosos internacionalmente no formato auditório lotado de gente, até não caber mais. Até que provem o contrário temos a marca de maior conferência JS do mundo.

Como JSConfbr nasceu

Na edição 2011 do BrazilJS o Douglas Campos palestrou sobre um assunto Phoda impressionando os gringos que vieram, ele foi indicado a palestrar no JSConfEU e também foi bastante aplaudido por lá. Pois bem, observe no email do Chris que uma das regras não escritas sobre ter a chancela da realização de uma edição do JSConf é justamente ir a uma e tomar umas cervas com os caras.

Douglas conseguiu um contato e relacionamento muito próximo da cúria do JSConf e obteve essa autorização, me contactou e eu resolvi topar assumindo vários riscos devido ao pouco tempo.

Tínhamos a data pela disponibilidade de alguns palestrantes, era realizar ou deixar para o próximo ano.

No dia 22 de junho você terá a oportunidade de participar no Brazil de uma edição desse que é o melhor evento sobre Javascript no mundo em um formato muito inovador para nós brasileiros, estilo cocktail [inclusive se prepare para surpresas] e de forma muito agradável com a possibilidade de conversar com seus ídolos durante as apresentações.

Se não conhece o formato, acompanhe nas fotos das edições passadas, principalmente a européia.

Ouça o Grokpodcast sobre o evento aonde o Douglas falou um pouco sobre o JSConfbr.

Além de tudo isso o nosso Call for Papers ainda está disponível.

Deixe-me saber o que voce precisa para vir ao evento, agora corra porque as inscrições estão se esgotando.

ExtJS e programação funcional – 2

[disclaimer]
Os códigos desse post estão no Gist do Github, se não aparece no seu leitor de Feeds vai ter que entrar no site ou ir direto para o github
[/disclaimer]

Continuando a falar sobre programação funcional com o Framework ExtJS, vou avançar sobre a API que fornece funções úteis para trabalhar sob esse paradigma e quando a abordagem complica a leitura, principalmente para quem não tem tanta intimidade com essa forma de pensar.

Imagine o seguinte Widget abaixo que tem a responsabilidade de plugar uma função para observar o evento busca de outro componente.

Se voce observar atentamente, o mapeamento é feito um-para-um com uma função que já existe no componente final, inclusive com a mesma quantidade de parâmetros, vimos no artigo passado que bastaria plugar a função diretamente e controlar o escopo this dessa função.

Agora imagine que o componente Sorteio tem mais uma responsabilidade no momento que o botão de outro componente for acionado, ele precisaria limpar a área de um terceiro componente, teríamos que voltar o código do primeiro exemplo e fazer aquele mapeamento em um método do próprio componente Sorteio:

Bem, com as funções encontradas no objeto Ext.Function podemos mapear diretamente os métodos dos responsáveis principais sem a necessidade de uma terceira função no objeto Sorteio numa abordagem mais FP aproveitando funções úteis que encadeam execuções e retornam outra funções com a sequência desejada.

A assinatura de colocar um listener escutando um determinado evento é:

this.sorteioform.on("busca", fn, escopo);

Desejamos executar duas funções de objetos distintos em uma sequência lógica, mas só podemos plugar uma única função por vez. Existe um método createSequence que fornece esse comportamento desejado, observe:

var fn = Ext.Function.createSequence(fn1, fn2, escopo);

Esse método gerará uma terceira função com o this dentro dela referente ao escopo passado no terceiro argumento e executará as duas funções – fn1 e fn2 – na sequência indicada.

Poderíamos simplesmente encadear as duas funções dos dois objetos na assinatura

var fn = Ext.Function.createSequence(this.concorrentes.listar, this.ganhadores.update, this.concorrentes);

Mas tem somente um problema, a função this.ganhadores.update precisa receber um parâmetro – no mínimo uma string vazia “” – para ter o comportamento adequado.

Existe uma outra função chamada pass que gera uma outra função com essa característica, voce pode definir uma função com valores previamente definidos caso não haja passagem de parâmetros.

var fn2 = Ext.Function.pass(this.ganhadores.update, "");

Dessa forma basta substituir agora a segunda função da sequência por uma gerada com valores predefinidos.


var fn2 = Ext.Function.pass(this.ganhadores.update, "");
var fn = Ext.Function.createSequence(this.concorrentes.listar, fn2, this.concorrentes);

Para garantir que o update executará no escopo de ganhadores, teríamos que definir o terceiro argumento para ganhadores

var fn = Ext.Function.createSequence(this.concorrentes.listar, fn2, this.ganhadores);

E para garantir que o this no listener execute cada função da sequência nos seus contextos corretos voce define o escopo do on para concorrentes
this.sorteioform.on("busca", fn, this.concorrentes);

O resultado final seria um encadeamento das chamadas como podemos ver logo em seguida:

Se voce comparar com uma abordagem mais tradicional verá que nem sempre é mais fácil de ler, portanto é salutar dosar o uso desse tipo de solução.

Retrospectiva JavaCE 2012

Esse ano foi de grandes realizações na nossa comunidade, fizemos nossa primeira grande conferência, o primeiro Hackathon com prêmios no ceará, continuamos as ações filantrópicas, eventos menores, mantivemos a cordialidade nas regras da lista e organização de caravanas com descontos para os principais eventos nacionais.

Palestrantes da JavaCE Conference

Agora a força de uma comunidade é medida pelas ações de seus membros, pedimos à própria comunidade para analisar o ano com uma retrospectiva no formulário enviado ao grupo. Destaquei algumas respostas dentre as que recebemos:

Quais os pontos positivos na nossa comunidade em 2012?

“Integração com a rede de desenvolvedores, troca de conhecimento que é extremamente importante.”

“Ponto positivo o sucesso na organização da javace conference, um evento de altissimo nivel a preço acessivel e muito bem organizado. As açoes filantropicas tambem é um ponto positivo principalmente quando são ministrados mini cursos a preços irrisorios como uma lata de leite em pó.”

“Amizade”

“Compartilhamento de informações relevantes à comunidade.”

“Achei excelente  a iniciativa do evento JavaCE Community Conference.”

“Caravana QCON JAVA CE”

“Partilha de conteúdo, sempre ajudando quem tah com dúvidas. Caravanas e participação em eventos a nível nacional”

“Lista bem movimentada e com boa participação.”

“Troca de infomações, possibilitando assim o crescimento homogeneo d comunidade”

Quais os pontos negativos?

“bom se todos os eventos fossem em fins de semana…”

“o ponto negativo não se enquadra aos organizadores mas sim aos amantes de tecnologia do ceará que ainda não despertaram para importancia que certos eventos tem, deixando a desejar em presença nos mesmos”

“Ainda precisa de mais organização”

“Como sempre, as pessoas, quando chegam a um determinado patamar de conhecimento, acho que elas perdem um pouco a humildade, ou pelo menos esquecem que não nasceram sabendo, e quando uma dúvida, por mais simples que seja é postada, o pessoal fica diminuindo, menosprezando, caçoando e até mesmo humilhando os detentores pouco conhecimento. Creio que isso seja um mal do ser humano, pois vejo isso em outros lugares. Consequência disso, algumas pessoas se sentem inibidas quanto a perguntar, como nas salas de aula, que alguém perguntava alguma coisa e os outros “mangavam”! Contudo, creio que esse comportamento, pode ser modificado, poderia ser feito uma campanha mostrando e pedindo humildade na passagem de conhecimento, por mais simples que seja a dúvida. ”

“Gostaria de mais eventos pago de alto porte. Adoraria a organização de dojos de algumas linguagens.”

“Sucessivas discussões acerca de assuntos de sindicato. Não dá em nada e geram threads gigantescas.”

“Poderia haver mais discussões técnicas na lista. Nos últimos tempos só vejo gente tirando dúvida sobre frameworks ou dúvidas que não vão além do feijão com arroz que usa pra trabalhar com Java. Poderia haver discussões sobre arquitetura de sistemas, boas práticas de programação, uso de metodologias ágeis, técnicas de teste de software e por aí vai. Não sei se isso fugiria aos objetivos da lista, mas eu creio que não.”

“Discussões boas que as vezes se arrastam com colegas perdendo a noção de quando o assunto já deu o que tinha que dar.”

“As threads as vezes tem muita discussão desnecessária.”

“Algumas postagens na lista sao meio com a intenção de propaganda, mas acho que isso é normal e não compromete.”

Deveríamos repetir o evento JavaCE Community em 2013?

Todos em uníssono escreveram: SIM

Sua impressão sobre o evento JavaCE Community realizado em agosto

“Muito bom, palestras de alto nivel tecnico e muito bem organizado.”

“Muito bom o evento! divertido e aproveitador…”

“Ótima organização, ótimos palestrantes e boa pontualidade. Exemplo a ser seguido.”

“Muito bom. Quero mais.”

“O evento tem tudo para crescer mais a cada edição.”

“Evento bem organizado com a presença de grandes nomes do desenvolvimento de software no Brasil. Palestras bem diversificadas e com temas bem selecionados.”

“Boa organização e bom conteúdo.”

“Evento muito bom, excelente. Nível dos palestrantes altíssimo. Só achei um pouco longo, quase todo mundo saiu antes do evento terminar.”

Extra

“Uma sugestão poderia se fazer workshops/mini-cursos no javaCe.”

“Parabéns aos que dedicam seu tempo à comunidade”

Considerações

Vamos analisar as respostas e planejar todas as ações do grupo tendo em mente a melhoria contínua sobre as opiniões dos próprios membros dessa comunidade vibrante.

Guilherme Silveira

Guilherme Silveira

Temas destaques para 2013

Deixo minha impressão sobre alguns temas que abocanharão as discussões e relevâncias nos principais eventos agora em 2013 pelos “ventos que nos assopram”:

HTML 5, FP (Programação funcional) entrando no Mainstream, Mobile – tudo indica que aparentemente Android terá um destaque maior, Rails 4 e ecossistema em volta do Java 7 (inclusive reforçando programação funcional).

Minha grande dúvida é: Java retoma dando uma freada em Scala na JVM como principal destaque na plataforma?

Investigaremos esses tópicos e muito mais em eventos ao longo do ano, até lá!