sexta-feira, 2 de dezembro de 2016

Tagged under: , , ,

Qual a função de um JUG Leader?


Não tem um, não tem dois, não tem três e sim quatro JUGs Leaders (Popote, Eu, Jefferson e Ivan) a frente da comunidade Java Bahia. A foto acima foi em um evento que participamos onde praticamente fechamos a universidade e essa galera ficou com a gente até o final mesmo na falta de ônibus.

Ultimamente tenho notado algumas pessoas demonstrando curiosidade a respeito do cargo em que ocupo na comunidade e quando elas conversam comigo parecem não acreditar, me dão a impressão de que talvez eu não mereça o cargo ou que eu esteja usando ele pra me vangloriar. Andei pensando muito nisso ultimamente, será que essas pessoas realmente sabem qual a função de um JUG Leader?

A verdade é que não existe uma definição universal para o cargo, então todo mundo imagina que um JUG Leader é o ser mais provido de conhecimento Java em todo o universo, definição meio exagerada e por isso resolvi escrever esse texto para mostrar o meu ponto de vista.

Antes de qualquer coisa quero que você entenda que um JUG Leader é alguém apaixonado por Java, resposta simples, meia boca e que não serve para tirar as suas dúvidas, todavia é a mais pura verdade.

Em sua maioria acredito que somos sim os melhores desenvolvedores de nossas comunidades, mas nem só de conhecimento técnico vive um JUG por isso as verdadeiras habilidades de um JUG Leader está no poder da comunicação, colaboração e na organização da comunidade. Necessariamente não preciso ser o mais fodastico especialista do grupo, desde que eu consiga identificar membros capazes de compartilhar o seu conhecimento e apresentá-los à comunidade (esse ano buscamos mostrar que a comunidade está viva, que ela respira e ano que vem queremos ir atrás dessa galera, então fique a vontade para entrar em contato, a gente não morde).

Pra mim um JUG Leader deve agir como um facilitador conhecendo pessoas e apresentado pessoas porque na maioria das vezes que alguém fala a respeito de algum problema/dúvida/interesse nós conhecemos uma pessoa na comunidade ou de outra comunidade que pode ter uma resposta ou fornecer uma orientação.

O Fabio Velloso e o Otávio Santana (dois JUG Leaders e meus mentores) me mostraram que devemos ser eternamente “novatos”, apaixonados, pacientes (paciente isso pra mim é um pouco complicado, sou um cara um pouquinho ansioso) e incentivadores.

Pois é, não parece, mas o meu cargo tem mais a ver com mostrar as maravilhas do mundo Java do que ser um fodão especialista capaz de resolver problemas mirabolantes. Esses são apenas alguns dos meus pensamentos sobre o que é ser um líder JUG Leader, ou pelo menos o que aspiro ser. Se quiser ficar por dentro do que vem por aí não deixe de se inscrever no nosso meetup, na nossa lista de e-mail no blog e seguir a gente no twitter!

quinta-feira, 24 de novembro de 2016

Tagged under: , , ,

Por que Desenvolvedores/Programadores usam Twitter?


Nos últimos 4 meses a comunidade Java Bahia me fez andar por varias universidades/faculdades e em todas elas perguntei durante as palestras quem tinha costume de usar o Twitter. Infelizmente não tive o insight de fazer uma estatística disso, mas deu para notar que poucos desenvolvedores/programadores possuem o costume de frequentar a rede social.
Muito provavelmente essa galera passou pela mesma experiência que eu tive nas minhas duas primeiras tentativas. Acredito que você assim como eu, criou uma conta no Twitter seguindo o tutorial padrão que lá no finalzinho te faz aquela pergunta marota pedindo autorização para que ele possa selecionar pessoas que você vai acabar seguindo com base na sua lista de e-mail.
Se você tá começando na área ou tem pouco contato com desenvolvedores por meio da internet, será mesmo que você conhece pessoas interessantes na área que vão lhe trazer novidades no lugar daquelas piadinhas que conseguimos visualizar internet a fora?
Essa é uma pergunta que você tem que si responder. Mas pela experiência e conversas que tive acredito que não, aí chegamos na segunda resposta mais falada nesses 4 meses — “Já tentei usar o Twitter, não consegui ver coisa útil nele e larguei de mão”.
Infelizmente muita gente está por fora dos benefícios que conseguimos em nossas carreiras por simplesmente usar um pouco do Twitter no nosso dia a dia. E com esse post espero conseguir te guiar a dar os primeiros passos.
Por que Desenvolvedores/Programadores usam Twitter?
Essa é uma pergunta que na minha visão tem uma resposta muito simples. Usamos o Twitter para nos conectar com gente que até nunca vimos na vida e que possuem conhecimento de alguma tecnologia que gostamos, assim passamos a trocar feedbacks de projetos e ficamos por dentro do que está valendo a pena olhar no momento. Só de seguir as pessoas que possuem influência na sua área de estudo isso já lhe faz poupar um tempo absurdo pulando assuntos irrelevantes.
Mas a parte mais legal do Twitter é que você consegue se sentir dentro de um grupo quando aquele brodinho que parece inalcançável te responde uma dúvida, que muitas vezes na sua cabeça é tão boba, daí você não quer perguntar e fica impedido de ir adiante porque você não fez a maldita pergunta. Mas de uma maneira você vai lá e faz a pergunta, passa um tempo a pessoa te responde de um jeito que você consegue entender e se não entender, não precisa ficar acanhado basta perguntar de novo!
Muitas vezes lanço perguntas sem uma direção específica somente com algumas #hashtags e quando menos espero BOOM! alguém me responde. Imediatamente começo a trocar algumas ideias e questionamentos com essa pessoa, pronto criei mais um network com alguém que sei lá… está no Japão.
Tenho usado o Twitter desde 2013 e agora mais do que nunca estou buscando criar conexões com as pessoas para saber como elas “codam”, que tipo de projetos elas curtem e com o que elas andam mexendo. Para que assim eu possa ter ideias e vislumbrar novidades para me atualizar.
Mas e aí… Quem eu posso começar seguindo?
Tenho muitas indicações para dar e infelizmente não tenho como falar um pouco sobre cada um, tenham um pouco de curiosidade e visitem os perfis dessas pessoas e analisam o que elas publicam. Lembrando que a ordem aqui não significa nada, eu só tinha que começar de alguma maneira
Povão do Front-end:
Maria Clara — @olarclara
Beto Muniz — @obetomuniz
Wilson Mendes — @willmendesneto
Felipe Fialho — @LFeh
Joselito Junior — @joselitojunior1
Willian Justen — @Willian_justen
Felipe Nascimento — @felipenmoura
Elvis Detona — @elvisdetona
Diego Eis — @diegoeis
Povão do Android:
Marcello Galhardo — @MarcelloGalhard
Paula Rosa — @_paulacr
Juliana Chahoud — @jchahoud
Nelson Glauber — @nglauber
Walmyr Carvalho — @walmyrcarvalho
Marcelo Quinta — @mrquinta
Rodrigo Sicarelli — @rsicarelli
Ubiratan Soares — @ubiratanfsoares
Eduardo Cucharro — @eduardocucharro
Lucio Maciel — @luciofm
Neto Marin — @netomarin
Povão do Java:
Daniel Cunha — @dvlc_
Eder Ignatowicz — @ederign
Otávio Santana — @otaviojava
Leonardo Rocha Lima — @leomrlima
Java — @java
Vinicius Senger — @vsenger
Fabio Velloso — @fabiovelloso
Michael Nascimento — @mr__m
Michel Graciano — @mgraciano
Edson Yanaga — @yanaga
Marcelo de Castro — @mcastroinfo
Yara M H Senger — @yarasenger
Mauricio Leal — @maltron
Loiane Groner — @loiane
Bruno Souza — @brjavaman
Bruno Borges — @brunoborges
Rafael Ponte — @rponte
Então até pra escrever esse post fui solicitando ajuda no Twitter e aí nasceu essa lista bem recheada para vocês. E como dica final tentem criar lista no Twitter para organizar melhor os assuntos (vou montar um outro texto explicando como tirar proveito disso) e também uma ferramenta muito bacana chamada Tweetdeck que tem me ajudado bastante.

quarta-feira, 16 de novembro de 2016

Tagged under: , , ,

Feedback - II Semana de Ciências, Tecnologia e Sustentabilidade


Fala Javeiros,

No dia 11/11 participamos do II Semana de Ciências, Tecnologia e Sustentabilidade da Unime e foi um evento muito interessante por causa da quantidade de comunidades presentes no local. Infelizmente não conseguimos acompanhar nenhuma das outras apresentações, mas acredito que quem foi pro evento curtiu bastante.
Esse foi um evento interessante pra gente do Java Bahia porque foi a primeira vez que estivamos dividindo um espaço com outras comunidades espero que a gente possa ta fazendo isso mais vezes no futuro. A organização desse evento ta de parabéns. 
Nesse evento falamos sobre comunidade Java, a especificação da JPA, Carreira do desenvolvedor e Spring Data. No dia 15/12 estaremos na UCSAL para falar sobre Carreiras e Spring Data.

Para ver mais fotos do evento clique aqui
Agradecemos a todos pela presença, por não terem dormido e vamos aos próximos!

quarta-feira, 9 de novembro de 2016

Tagged under: , , ,

Feedback - Ucsal Talks 04 em 08/11 no campus de Pituaçu



Fala Javeiros,

Ontem participamos do Ucsal Talks que é promovido pela Universidade Católica de Salvador. Fomos muito bem recebidos pelo coordenador Osvaldo Requião que mostrou aos presentes no evento como a UCSAL está trabalhando para recepcionar futuros eventos. Javeiros são muitos eventos!
O evento contou com aproximadamente metade dos inscritos presentes, o que já era esperado acontecer visto os eventos passados. Mas fiquei muito feliz com o interesse das pessoas presentes nos assuntos abordados.

Nesse evento falamos sobre comunidade Java e a especificação da JPA. No dia 15/12 estaremos novamente na UCSAL para falar sobre Carreiras e Spring Data.

Para ver mais fotos do evento clique aqui

Agradecemos a todos pela presença, por não terem dormido e vamos aos próximos!

sábado, 5 de novembro de 2016

Tagged under: , ,

II Semana de Ciências, Tecnologia e Sustentabilidade da Unime - 11/11 (Unime - Lauro de Freitas)

Boa tarde pessoal,

seguindo o planejamento de visitar as universidades baianas, o grupo Java Bahia divulga sua agenda de encontros para o mês de novembro. Nessa mesma semana (terça-feira, 08/11) estaremos no evento Ucsal Talks 04 e na semana de Ciências, Tecnologia e Sustentabilidade organizada pela Unime (campus de Lauro de freitas) no dia 11/11 (sexta-feira).


Diferente dos outros eventos, por decisão da organização do evento, as inscrições não serão feitas via Meetup. 

Mais eventos estão sendo organizados e até o final do ano definiremos o novo formato de ciclo de palestras do Java Bahia.
  • Evento: 
  • Inscrições:
    • No link
    • Evento aberto ao público, com certificado de participação. Para se inscrever a organização pede para levar 1kg de alimento não perecível.
  • Descrição: 
    • Nossa participação no evento acontece na Unime em 11/11/16 (sexta-feira).  
  • Endereço: 
    • Unime - Campus de Lauro de Freitas (Av. Luís Tarquínio, 600 - Centro, Lauro de Freitas - BA, 42700-000)
  • Palestras:
    • JUGs: Java User Group: O que é um JUG e como eu posso participar? 
      • Palestrante: Jefferson Moreira (Analista de sistemas formado pela Unijorge, atualmente lidera times na Petroreconcavo)
      • Data: 11/11/2016 - 19:00 às 19:45
      • Local: SALA E-201
    • JPA de A à Z: Porque conhecer a JPA? 
      • Palestrante: Mateus Malaquias (Bacharel em Sistema de Informação, desenvolvedor Web com tecnologias Java e JUG Leader do JavaBahia. Entusiasta por novas tecnologias, tendências, front-end e software livre)
      • Data: 11/11/2016 - 19:45 às 20:30
      • Local: SALA E-201
    • Carreira do desenvolvedor Java: O que eu preciso saber? 
      • Palestrante: Antônio Lázaro – Bacharel em Informática, especialista em Engenharia de Software, Líder de equipes, desenvolvedor web e Java a mais de 10 anos
      • Data: 11/11/2016 - 20:30 às 21:15
      • Local: SALA E-201
    • Spring Data 
      • Palestrante: Ivan Frederico Bomfim Cruz de Queiroz – Bacharel em Sistemas de Informação pela Estácio de Sá / FIB; Trabalhando em sistemas ligados as áreas de atendimento ao cliente (CRM), vendas e júridica
      • Data: 11/11/2016 - 21:15 às 22:00
      • Local: SALA E-201
  • Mais informações:
    • https://pt-br.facebook.com/javabahia
    • https://twitter.com/javabahia

quinta-feira, 3 de novembro de 2016

Tagged under: , , ,

Vamos nos Tornar Invencíveis?


Sábado passado pela manhã desci com a Iane, minha caçula de 4 anos, prum banho de piscina.

Os meninos tinham ido com a mãe pro Shopping, festinha na Game Station.

Mal nos aproximamos da piscina infantil,  uma menininha do mesmo top avista Iane e vem na direção dela:

- Como é seu nome?

Iane mal teve tempo de responder. E ela:

- Quer brincar comigo?

3 minutos depois as duas pareciam que se conheceram no berçário, de tão íntimas.

Como as coisas são tão simples para as crianças, né?

A gente é que cresce e vai complicando tudo.

Fiquei de fora, só observando as duas que a essa altura já estavam com uma Barbie na mão.

De repente, a amiguinha fala:

Amiga, vamos nos tornar invencíveis?

Eu confesso que nem escutei a resposta.

Fiquei com essa frase na cabeça, lembrando dos meus amigos em várias fases da vida...

... e pensando: "é verdade. Nos tornamos invencíveis quando temos grandes amigos".

E desde o sábado eu fiquei com essa historinha na cabeça, querendo escreve-la, compartilha-la...

... como forma de agradecer e homenagear o grandes amigos que me tornaram tantas vezes invenvível.

E também pra fazer você, que está lendo esse texto, pensar sobre os seus amigos. E também dizer a eles o quanto vocês juntos são invencíveis.

E era pra meu texto acabar aqui, mas infelizmente tem uma parte triste.

Ontem, antes de dormir, eu soube do falecimento de Daniel deOliveira, fundador do DFJUG. Um GRANDE amigo que fiz na comunidade Java.

Ele estava morando na Inglaterra, estudando, realizando seus sonhos juntos com Lu Campos sua esposa e idealizadora do DFJUG, o grupo de usuários Java do Distrito Federal.

Qualquer coisa que eu venha a dizer sobre a importancia de Daniel para nossa comunidade é ínfimo perante ao real impacto do que ele e todos os que já passaram pelo DFJUG fizeram e fazem.

Então eu quero ê lembrar da primeira vez que ele teve em minha casa em 2008, veio palestrar no I Simpósio Java do Sertão, evento que organizamos junto com outros parceiros em Feira de Santana.

Serge, Daniel deOliveira, o fundador do SertãoJUG Aécio Júnior e Bruno JavaMan agachado. Grandes amigos! 

Ficamos até de madrugada, minha esposa grávida do nosso 2 filho Bruno, batendo um papo delicioso onde, dentre outras coisas, Daniel compartilhou duas experiencias quando teve a Índia.

E lá pras tantas, aquele "homão" enorme... uma enciclopédia de conhecimentos e experiencias, com toda humildade do universo foi dormir feliz da vida se encolhendo na cama de Andrei, que ele conheceu ainda pequeno, com apenas 3 anos.

Eu e Larissa nunca esquecemos essa história, que é apenas um exemplo de toda a grandeza de Daniel.
A partir desse dia a nossa amizade se solidificou. Ele muitas vezes me ajudou com conselhos, conseguiu por duas vezes meu ingresso pro JavaOne em San Francisco como Imprensa.

Foi por cauda dele que criei às pressas este blog do JavaBahia em 2008. Se eu iria como imprensa, precisava de um blog!

Graças a Daniel, eu voltaria ao JavaOne em 2009, mais uma vez com um ingresso da imprensa.

E assim os anos foram passando, nas minhas ida a Brasília eu sempre dava um jeito de visita-lo. E aí também tive o prazer de conhecer sua esposa Lu, provar da sua deliciosa comida e hospitalidade.

E assim fui um dos primeiros a saber que ele iria morar um tempo na Inglaterra. Havia conseguido uma bolsa e podia se dedicar a estudar o comportamento dos grupos de usuários Java, juntando inclusive os seus conhecimentos de pedagogo nesse caldeirão.

Em Brasília, depois de um dos maravilhosos jantares em sua casa.

Meu amigo Daniel, a sua partida deixa um vazio enorme não só em todos os que tiveram a honra de conhecer você pessoalmente; mas em todos que foram tocados de alguma forma pelo efeito das suas ações.

Ensinar programação para surdos, encabeçar o projeto JEDI de ensino gratuito de Java em países de língua portuguesa, incentivar a inclusão digital, compartilhar conhecimento, servir de exemplo por 18 anos de DFJUG....
... você FEZ A DIFERENÇA NO MUNDO.

Que Deus te receba de braços abertos meu grande e INVENCÍVEL amigo.

sexta-feira, 28 de outubro de 2016

Tagged under: ,

JPA Hibernate – Como funciona a anotação @version?


Recentemente um colega de trabalho me perguntou qual era função da anotação @version presente nas entidades aqui do projeto. Achei interessante essa pergunta.
Para responder essa de pergunta temos que lembrar que todo banco de dados possui um controle de concorrência entre transações (se necessário solicitem nos comentários que faço um post explicando a fundo sobre isso). Para esse post só precisamos conhecer o método de controle Optimistic concurrency control (controle de concorrência otimista).
Optimistic concurrency control (OCC)
Optimistic concurrency control ou controle de concorrência otimista é um método aplicado nas transações de bancos de dados relacionais. Nesse método se acredita que a probabilidade de que duas transações utilizarem o mesmo objeto é minima, logo nada é verificado enquanto a transação está sendo executada e isso faz com que o custo dela diminua.
Normalmente essa técnica funciona bem em Frameworks ORM porque eles conseguem escalonar as transações para que ocorra pouca ou nenhuma interferência. Mas no caso de ocorrer uma interferência o que acontece? Simples, alguma transação escolhida pelo Hibernate vai ser abortada e terá que ser recomeçada pelo cliente.
A anotação @version
Agora que sabemos superficialmente o que é um controle de concorrência e o método OCC fica mais fácil compreender a importância do @version em nossas entidades. Tenha em mente que ao adicionar um atributo com essa anotação não precisamos nos preocupar em alterar seu valor porque o Hibernate fica encarregado dessa função.
Para usarmos o método de concorrência otimista só precisamos declarar um atributo com o nome version em nossa entidade. Normalmente ele é do tipo numérico e também pode ser do tipo data, mas não recomendo essa pratica e vou explicar o motivo no final deste post, abaixo temos um exemplo da classe Consulta.
  1. @Entity
  2. @Table(name = "CONSULTAS", schema = "tableless")
  3. public class Consultas{
  4. @Id
  5. @GeneratedValue(strategy = GenerationType.AUTO)
  6. @Column(name = "ID_CONSULTA")
  7. private Integer numero;
  8.  
  9. @Temporal(TemporalType.TIMESTAMP)
  10. @Column(name = "DATA_CONSULTA")
  11. private Date dataConsulta;
  12.  
  13. @ManyToOne(fetch = FetchType.LAZY)
  14. @JoinColumn(name = "PACIENTE_CODIGO")
  15. private Pacientes paciente;
  16.  
  17. @Version
  18. private Integer version;
  19.  
  20. //getter e setter
  21. }
Com esse mapeamento o Hibernate vai usar automaticamente o número da versão para verificar se o objeto utilizado na transição foi atualizado desde a ultima vez em que ele foi requisitado. Pelo código SQL a baixo podemos ver a presença do atributo version tanto no trecho do SET como na cláusula WHERE isso acontece porque o Hibernate vai buscar o objeto no banco de dados usando também o número da versão e vai incrementar esse número ao mesmo tempo.
  1. UPDATE CONSULTAS
  2. SET DATA_CONSULTA = ?, PACIENTE_CODIGO = ?, version = ?
  3. WHERE ID_CONSULTA = ?
  4. AND version = ?
@version com Data
Usar um tipo data no atributo version é uma prática que não recomendo porque no banco de dados a coluna será do tipo TIMESTAMP e isso pode acabar permitindo que duas ou mais transações possam ser executadas com o mesmo objeto ao mesmo tempo dependendo da precisão do fuso horário configurada no banco de dados, caso essa situação acabe acontecendo vamos acabar tendo uma violação de normalização. Algumas pessoas preferem utilizar o tipo data para conseguirem visualizar “quando” aquele objeto foi alterado pela ultima vez, caso essa seja sua necessidade recomendo que crie um novo atributo em sua classe ao invés de utilizar a anotação @version como data.
Por fim espero que esse post te ajude a trabalhar com controle de concorrência no Hibernate. Dúvidas, sugestões, correções, elogios nos comentários ou no meu twitter.