Marcos Sousa’s Blog

Blog sobre desenvolvimento de software
  • rss
  • Home
  • Sobre

TechDays UaiJUG Uberlândia

Marcos Sousa | December 7, 2011

Este ano tivemos grande eventos de tecnologia no Brasil. Vou deixar público os meus parabéns ao Christiano Milfont pelo pioneirismo em montar um grande evento em Fortaleza sobre JavaScript, o BrazilJS. Além do BrazilJS (Maio), também sediou o AgileBrazil (Junho) em Fortaleza, TDC (junho em São Paulo, agosto em Florianópolis e outubro Goiânia), Qconsp (Setembro em São Paulo), RubyConf (Novembro em São Paulo) Ixdsa11 (Dezembro em Belo Horizonte) e JavaOne (Dezembro em São Paulo) e vários outros.

Uberlândia, em especial, será palco de dois grandes eventos:  sediou a 10ª edição do Maré de Agilidade, em agosto e agora fecha o ano com o TechDays. O maré, primeira edição fora de uma capital, contou com mais de 100 participantes em 3 dias. Houveram várias palestras sobre agilidade, testes e empreendedorismo. O André Fonseca e eu falamos sobre boas práticas de desenvolvimento. Diante do convite feito pelo Rogério Fontes, estou a caminho de Uberlândia pela décima vez este ano (isso mesmo, minha 10ª viagem para lá) para falar sobre desenvolvimento com Ruby on Rails. Particularmente estou muito animado para o evento, que contará com presença internacional de dois grande nomes da comunidade Java Terrence Barr e Roger Brinkley. Sem contar com o HackDay durante a madrugada que será animal, algumas idéias já começaram a surgir para codificar :)

Estes dois eventos mostram a força do desenvolvimento de software fora de grandes centros, sem mencionar que o mercado em franco crescimento nesta região. Durante as várias vezes que estive em Uberlândia, entre um café e outro ou um bate-papo na estrada, pude notar a ascensão da comunidade e o surgimento de várias empresas e a expansão das já existentes.

Portanto, corra e garanta já sua vaga, pois o evento será demais, uberlandenses e cidades vizinhas (Araguari, Uberaba, Patos de Minas). Aos não mineiros venham também trocar experiências de desenvolvimento de software e saborear dos famosos pratos culinária mineira :)

Comments
No Comments »
Categories
Java, TDD
Tags
Conferências, Java, Rails, RubyOnRails, TechDays
Comments rss Comments rss
Trackback Trackback

Venha para o Café Ágil Belo Horizonte, 13 de Novembro

Marcos Sousa | October 31, 2010

“A maré passou mas ainda há tempo para um cafezinho.”

Venha participar do primeiro Café Ágil em Belo Horizonte!

É com muito prazer que anuncio o Café Ágil Belo Horizonte, um evento para desenvolvedores e apaixonados por desenvolvimento de software. A programação é bem leve, ao contrário do que aconteceu no Maré de Agilidade, e a idéia é apresentar e colocar praticar boas técnicas desenvolvimento de software.

1 – Programação

Café da manhã: 8:30am – 9am
Palestra 1: 9am – 10am
Palestra 2: 10am – 11am
Palestra 3: 11am – 12pm
Coding Dojo : 12pm – 1pm

Palestra 1
Título:
Formei, mas não sei NADA!!!
Descrição: Por que várias pessoas tem essa sensação? Se você formou ou está para formar e tem a impressão que não sabe nada, não se sinta tão mal, você não é o único. Mas porque isso ocorre? Nessa palestra abordaremos esse assunto e mostraremos as principais causas deste sentimento e as principais formas de mitigá-lo.
Palestrante: Edgard Davidson
@edgarddavidson é profissional especialista em engenharia de software e desenvolvimento de sistemas, professor universitário, coordenador do curso de pós graduação em Engenharia de Software Centrada em Métodos Ágeis ofertado pela UNA. Mestrando em Engenharia Elétrica com ênfase em Engenharia de Software, Especialista em Engenharia de Software e Graduado em Sistemas de Informação. Para mais detalhes sobre meu currículo acadêmico acesse o link do lattes: http://lattes.cnpq.br/6311230153303498. ou no meu blog http://edgarddavidson.com

Palestra 2
Título: Pilotando codigo JavaScript
Descrição: Em 1995, quando JavaScript apareceu pela primeira vez nas telas dos pioneiros da Web, não se falava muito em aumentar a qualidade do software produzido através da criação de testes automatizados. Desde então, muita coisa aconteceu nas duas áreas: computadores e navegadores ficaram mais poderosos, a internet de banda larga se popularizou e aplicações começaram a demandar soluções cada vez mais criativas para problemas de interação entre homem e máquina, ao mesmo tempo em que desenvolvedores precisavam de soluções criativas e inovadoras para gerenciar esta explosão em complexidade. Nesta palestra, Carlos e Filipe vão demonstrar alguns dos problemas que comumente assolam aplicações web hoje em dia e as soluções que encontraram para torná-los triviais de se resolver.
Filipe Sabella
Empresário e desenvolvedor, principalmente para web, há sete anos. Viciado em JavaScript e web em geral, passou um ano desenvolvendo interfaces ricas com Flex. Após alguns anos como instrutor na Caelum, atualmente trabalha como consultor na ThoughtWorks Brasil.
Carlos Villela
Carlos é consultor-líder pela ThoughtWorks há 6 anos e, além de ser um dos primeiros proponentes da linguagem Ruby e do Ruby on Rails na renomada consultoria, também tem feito diversos projetos relacionados com a migração e evolução de aplicações legadas utilizando testes automatizados de alto nível. Participou ativamente das idéias que deram origem ao BDD (Behaviour-Driven Development) e de diversos projetos open-source, como a ferramenta de testes WebDriver e a linguagem Ioke. Acompanhe Carlos através do Twitter em http://twitter.com/cv

Palestra 3
Título:
TDD e BDD em Ruby – garantia de código saudável
Descrição: Manter sistemas com ciclos de vida longos é uma tarefa crítica. Entenda como Test Driven Development e Behavior Driven Development são cruciais para a criação de uma boa arquitetura e consequentemente um software de qualidade.
Palestrante: Daniel Lopez
Daniel Lopez
Trabalha com TI a mais de 8 anos, é técnico e bacharel em sistemas de informação além de ser o responsável por ministrar desenvolvimento web na pós graduação em Eng. de Software Centrada em Métodos Ágeis da UNA-BH. Trabalha tempo integral com Ruby desde o início de 2007 Fundador da Area, empresa especializada em soluções web e design de UI que utiliza Ruby como principal tecnologia inclusive para em seus próprios produtos como o Cifras. Já treinou mais de 440 alunos pela EGenial, atualmente sendo responsável pelos cursos de Rails do Básico ao Avançado e Ruby Imersão. É Membro ativo do RailsMG além de já ter tido o prazer de palestrar sobre temas relacionados ao Ruby mais de 10 vezes. Escreve semanalmente no blog.areacriacoes.com.br.

Coding Dojo
Coding Dojo com as principais comunidades de software mineiras RailsMG, MGJug e #dotnetarchitects. Venha codificar, trocar experiências e aplicar TDD na sua linguagem de programação preferida. A sessão de DOJO acontecerá em 3 salas: Java, Ruby e .NET.

Se você tem alguma idéia interessante para o DOJO, traga-a ou mande para meu e-mail falecomigo at marcossousa dot com. Vamos aproveitar este momento para aprender ainda mais!

As inscrições estão sendo realizadas pelo site do evento http://www.thoughtworks.com/cafe-agil-em-belo-horizonte e a entrada é 1KG de alimento não perecível.

O Café Ágil Belo Horizonte é uma realização da ThoughtWorks em parceria com a UNA e o curso de Pós-Graduação em Engenharia de Software Centrada em Métodos Ágeis. 

E se você tem interesse de trabalhar na empresa que é uma das maiores referências em Agile conhecida no mundo? Trabalhar com um time rockstar apaixonado pelo que faz? Fique atento, a ThoughtWorks realizará no dia 14 de Novembro (Domingo) um evento para contratação. Então não perca tempo e confirme já sua presença http://bit.ly/ab6WJt

Comments
No Comments »
Categories
.net, Agile, Eventos, Java
Tags
.net, Agile, CafeAgilBH, dotnetarchitect, Java, mgjug, railsmg, Ruby, RubyOnRails, Scrum, TDD, XP
Comments rss Comments rss
Trackback Trackback

FacesContext em Seam Remoting calls

Marcos Sousa | June 27, 2009

Faz um tempinho que não escrevo nada por aqui. Além de projetos críticos que estou participando, estava muito envolvido na leitura de dois livros relacionados a Agile, que os comentarei em breve, e também estou escrevendo uma série de artigos para a revista Java Magazine, o primeiro sai na edição 72. A partir de agora devo publicar pelo menos uns 2 post mensais. ;)

O Seam Remoting oferece uma forma conveniente de acessar componentes backing beans via AJAX. Com uma simples anotação é possível chamar ações, intanciar objeto e etc. Porém este recurso é uma maneira limitada de acessar o contexto dos componentes e requer uma certa atenção de nós desenvolvedores. Pessoalmente, pude presenciar soluções fantásticas usando remoting e mas algumas implementações desastrosas. Fica a dica: use o remoting apenas quando os componentes AJAX existentes não solucionam um dado problema.

Por padrão, uma requisição AJAX via Seam Remoting não possui controle de transações e o contexto JSF não é criado. Para ambos os casos é possível habilitá-los. O controle de transações é mais simples, basta adicionar a anotação @Transactional com o tipo REQUIRED. Veja o exemplo:

@WebRemote @Transactional(TransactionPropagationType.REQUIRED)
public void updateUserProfile(Profile profile) {
entityManager.merge(profile);
}

Criar o contexto JSF exige algo um pouco mais avançado. Antes de iniciar a execução das ações, o contexto JSF deve ser criado, e para a sua criação é preciso o HttpServletRequest e o HttpServletResponse. Uma forma seria criando um filtro, mas acredito que não é uma boa solução. O Seam possui um recurso de ExecutionHandler que permite executar determinadas operações em requisições Remoting antes executar a ação. Este recurso usa o padrão Observer, onde o primeiro passo é criar o observer, ele precisa de implementar a interface ExecutionHandler:

public class RemotingFacesContextHandler extends ExecutionHandler {

private ServletContext servletContext;

protected FacesContext getFacesContext(HttpServletRequest request,
HttpServletResponse response) {

FacesContext facesContext = FacesContext.getCurrentInstance();

if (facesContext == null) {
FacesContextFactory contextFactory = (FacesContextFactory) FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
LifecycleFactory lifecycleFactory = (LifecycleFactory) FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
Lifecycle lifecycle = lifecycleFactory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
facesContext = contextFactory.getFacesContext(servletContext,request, response, lifecycle);
}

return facesContext;
}
@Override
public void handle(HttpServletRequest request, HttpServletResponse response)
throws Exception {
getFacesContext(request, response);
super.handle(request, response);
}
@Override
public void setServletContext(ServletContext ctx) {
this.servletContext = ctx;
super.setServletContext(ctx);
}
}

O método handle chama o método getFacesContext que é responsável por iniciar o contexto. A inicialização do FacesContext é feita por meio do método getFacesContext da classe FacesContextFactory. Além do contexto servlet, do request e do response, é necessário informar o ciclo de vida JSF.O Ciclo de vida é criado por meio da classe LifecycleFactory.

Uma vez criado o observer, basta registrá-lo. Uma das várias alternativas é registrá-lo após a inicialização usando a anotação @Observe:

@Name("registerHandler")
public class RegisterFacesContextHandler {
private static final String REQUEST_PATH_EXECUTE = "/execute";

@Observer("org.jboss.seam.postInitialization")
public void initHandler() {
RequestHandlerFactory.getInstance().registerHandler(REQUEST_PATH_EXECUTE, new RemotingFacesContextHandler());

}

}

Após inicializado o Seam (org.jboss.seam.postInitialization) o observer é registrado. Com isto você pode chamar FacesContext.getCurrentInstance() que não receberá aquele NullPointerException indesejado. ;)

Comments
1 Comment »
Categories
Java, Java EE, Java Server Faces, Jboss Seam
Tags
FacesContext, Java, Jboss Seam, JSF, Seam Framework, Seam Remoting, Transactions
Comments rss Comments rss
Trackback Trackback

« Previous Entries

Núvens de tags

Agile Eventos Facelets GET Hibernate incompatiblidades Itext Java Java EE Java Magazine Java Server Faces JavaServer Faces Java Vídeo Magazine Jboss jboss-seam-itext Jboss Developer Studio Jboss Seam JDBC type: 7 JPA JSF linux mare marébh maré de agilidade Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload RichFaces Rich Faces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Variable Resolver Vídeo Aula XP

Meus últimos tweets

  • Aos participantes do Bhjs que gostariam de vir para a Globo.com, segue as outras vagas http://t.co/KjBinf4x #bhjs #beagajs 1 week ago
  • Se você precisa buscar dado no disco, prefira assíncrona @luciano #bhjs #beagajs http://t.co/5gCHp7P8 2 weeks ago
  • @DouglasAguiar @HerberthAmaral Porque na copa? 2 weeks ago
  • Slides da palestra 'Indo além com jQuery' #bhjs #beagajs http://t.co/wHbhaI75 2 weeks ago
  • @araujolucas na parte da frente a temperatura está melhor 2 weeks ago
  • Começando a palestra do @cmilfont no #bhjs #beagajs http://t.co/9DZt7MQj 2 weeks ago
  • @isaias_barroso @DeivissonBruno @cmilfont gula ao extremo:) 2 weeks ago
  • Palestra com insights do desenvolvimento do paparazzo #gcom #bhjs #beagajs http://t.co/7igVbtmS 2 weeks ago
  • @flavio1110 energético? 2 weeks ago
  • Alguém indo do Aeroporto de Confins para centro/guitierrez por voltar de 12:00 #bhjs #beagajs 2 weeks ago

Anúcios

Categorias

  • .net
  • Agile
  • Agile Conference 2009
  • Artigos
  • Atualidades
  • c++
  • cinema
  • Django
  • DRY
  • Eventos
  • Flex
  • Formula 1
  • Hibernate
  • IDE
  • Inutilidades
  • Java
  • Java EE
  • Java Server Faces
  • Jboss Seam
  • linux
  • Mac OS
  • Microsoft
  • Open-source
  • Palestras
  • Python
  • RAD
  • RIA
  • RichFaces
  • Scrum
  • Software Livre
  • Spring
  • Spring Annotations
  • TDD
  • Testes
  • Uncategorized
  • Vídeo Aulas

Links recomendados

  • AJ Soluções
  • Ary Júnior
  • Erko Bridee
  • Fragmental
  • Fragmental TW
  • Guilherme Chapiewski
  • Handerson Frota
  • Jeveaux
  • Juliano Carniel
  • Onipresente
  • Passes de Letra
  • PortalJava.com
  • Rafael Carneiro
  • Rafael Pontes

DevMedia Post’s

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox