quarta-feira, 23 de setembro de 2009

Aniversário CEJUG 2009

Sucesso total o aniversário do CEJUG 2009, palestras de alto nível e muita gente participando. Nesse ano tivemos assuntos variados:
O caminho da produtividade para desenvolvedores web
Como fazer uma aplicação JEE/JME para rodar nos 4 cantos do mundo
O mito dos times ágeis
Os 10 maus hábitos dos desenvolvedores JSF
Turbinando sua aplicação com Lucene: conheça Solr e Hibernate Search
O que matou o RUP pode matar o Agile
Desmistificando o TDD na prática

Mais informações...





Mais fotos...

terça-feira, 8 de setembro de 2009

XPCE



Hoje me tornei coordenador da XPCE Ceará Extreme Programming Group - Lista de Extreme Programming para praticantes, evangelistas, amantes e XPtards dessa metodologia que leva o desenvolvimento de software ao extremo da qualidade.

Aniversário do CEJUG




19/09/2009: 7 anos do Cejug
O Cejug realiza mais um Café com Tapioca dia 19 de setembro. Grandes nomes do Ceará e do Brasil vêm compartilhar suas experiências com a comunidade java cearense.

terça-feira, 1 de setembro de 2009

Nomes feios que seria bonito todo software conhecer

· Acurácia: capacidade de fornecer o resultado com o grau de precisão desejado.
· Adequação: capacidade de fornecer um conjunto apropriado de funções para tarefas específicas e objetivos do usuário.
· Interoperabilidade: capacidade de interagir com um ou mais sistemas.
· Segurança de Acesso: capacidade de proteger dados e informações de pessoas ou sistemas não autorizados.
· Conformidade: capacidade de aderir a padrões, convenções, leis e prescrições similares relativas a funcionalidade.

· Maturidade: capacidade de evitar defeitos no software.
· Tolerância a Falhas: capacidade de manter um nível de desempenho estabelecido em caso de defeito no software.
· Recuperabilidade: capacidade de recuperar dados diretamente afetados no caso de falhas.
· Conformidade: capacidade de aderir a padrões, convenções, leis e prescrições similares relativas a confiabilidade.

· Inteligibilidade: capacidade do produto de fazer o usuário entender se o software é adequado, e como ele pode ser usado para tarefas particulares.
· Aprendibilidade: capacidade que o produto deve ter de fazer o usuário entendê-lo.
· Operacionalidade: capacidade que o produto deve ter para que o usuário possa aprendê-lo e controlá-lo.
· Atratividade: capacidade do produto em ser atraente para o usuário.
· Conformidade: capacidade de aderir a padrões, convenções, leis e prescrições similares relativas a usabilidade.

· Comportamento em Relação ao Tempo: capacidade de fornecer tempos de resposta e processamento adequados, bem como taxas de transferência.
· Comportamento em Relação aos Recursos: capacidade de usar quantidade e tipos de recursos adequados.
· Conformidade: capacidade de aderir a padrões e convenções relativas a eficiência.

· Analisabilidade: capacidade em diagnosticar deficiências e causas de defeitos.
· Modificabilidade: capacidade que o produto tem de receber modificações.
· Estabilidade: capacidade de evitar efeitos inesperados a partir de modificações.
· Testabilidade: capacidade de validar as modificações efetuadas no produto.
· Conformidade: capacidade de aderir a padrões e convenções relativas a manutenibilidade.

· Adaptabilidade: capacidade de ser adaptado em diferentes ambientes sem intervenção.
· Capacidade de Instalação: capacidade de ser instalado em um ambiente específico.
· Coexistência: capacidade que o produto tem de coexistir com outro software independente em um ambiente comum, compartilhando recursos comuns.
· Capacidade de Substituição: capacidade que o produto de software deve ter de ser usado no lugar de outro produto de software com o mesmo propósito no mesmo ambiente.
· Conformidade: capacidade de aderir a padrões e convenções relativas a portabilidade.

terça-feira, 11 de agosto de 2009

Maré de Agilidade sucesso total


O evento Maré de Agilidade foi um sucesso, parabéns aos organizadores e palestrantes e muito obrigado a todos os participantes. Espero mais eventos desse nível em Fortaleza.



quarta-feira, 1 de julho de 2009

convite mare de agilidade fortaleza

Convite para o Maré de Agilidade Fortaleza


Maré de Agilidade - 3a edição - Swell Fortaleza - 06 a 08/08/2009

O grupo XPCE(eXtreme Programming Ceará) junto com a Fortes Treinamentos trazem a Fortaleza a terceira edição do evento Maré de Agilidade, com a organização da SEA Tecnologia, Revista Visão Ágil, Java Bahia e apoio da FA7(Faculdade 7 de Setembro). A primeira edição desse evento ocorreu em setembro de 2008 em Brasília e a segunda em março de 2009 em Salvador.

O evento visa promover dois dias de mini-cursos e um dia de palestras e discussões sobre as novas tendências em gerência de projetos e técnicas de desenvolvimento de software que constituem atualmente o grande diferencial de empresas como Apple, Google, Microsoft, Yahoo e Globo.com”.

Mini-cursos:
06/08 - Gerenciamento Ágil de Projetos com Scrum, eXtreme Programming (XP) na prática e Desenvolvimento web ágil com RubyOnRails
07/08 - Gestão Ágil de Requisitos, eXtreme Programming (XP) na prática e Teste de aplicações Rails

Palestras:
08/08 - Manifesto 2.0, Gestão Lean para desenvolvimento de Software, A Agilidade está no ar, Governança no desenvolvimento ágil, Onde mora a produtividade do Ruby on Rails?, Painel com todos os palestrantes: Agile na Real - Interoperabilidade, Mix e Adaptações

Local:
Mini-cursos: Fortes Treinamentos
Palestras: Faculdade 7 de Setembro

Inscrições:
- Com desconto até 15/07 - Preços promocionais para estudantes e membros do XPCE.

quinta-feira, 25 de junho de 2009

ireport passando collection para subrelatorio pelo parâmetro

Esse é o modo mais fácil de passar uma coleção (Collection) para um sub-relatório. Crie um parâmetro na sua classe e coloque a coleção que será passada para o sub-relatório:

Collection pessoas = new ArrayList();
parametro.put(“COLECAO”, pessoas);

No ireport crie um parâmetro “COLECAO” do tipo Collection e passe para o sub-relatório tipando o como JRBeanCollectionDataSource.
(REPORT_DATA_SOURCE -> new JRBeanCollectionDataSource($P{COLECAO}))
como mostra a imagem:



O sub-relatório vai iteragir na coleção pelo REPORT_DATA_SOURCE (é um parâmetro padrão do relatório) na banda DETAILS.

quarta-feira, 13 de maio de 2009

Maré de Agilidade Fortaleza



Após Brasília e Salvador está chegando a Fortaleza o Maré de agilidade. O evento esta sendo promovido aqui pelo grupo XPCE(eXtreme Programming Ceará) e contará com a presença de grandes nomes locais e nacionais.

O evento será de 6 a 8 de agosto com dois dias de mini-cursos na Fortes Treinamentos e um dia inteiro de palestras no sábado na Faculdade 7 de Setembro.

Estaremos divulgando em breve mais detalhes do evento como promoções, condições de pagamento e palestrantes. Adianto que quem estiver cadastrado na lista de discussão do XPCE até 16 de maio terá um bom desconto para os mini-cursos e palestras. Inscreva-se já na lista e divulgue para seus amigos.

sexta-feira, 1 de maio de 2009

Novos Tempos no Desenvolvimento de Software

O desenvolvedor de hoje tem que entender que muitas coisas mudaram, antigamente para saber programar era preciso conhecer as regras da linguagem e fazer o que era pedido pelo analista e as vezes discutir se aquilo era para ser feito daquela forma... Não se preocupava se o código estava bem escrito, se tinha como refatorar, se a manutenção daquele código seria fácil depois de dois anos. Então a galera acordou e viu que tinha algo errado com aqueles codificadores, não era aquela forma correta para se desenvolver um software de qualidade que pode ser mantido por anos e anos com uma certa facilidade. Hoje o desenvolvedor, analista, gerente... tem que entender que não basta só ter um bom conhecimento técnico, para conseguir um software de qualidade é preciso um time unido, boas práticas de desenvolvimento, conhecimento técnico é preciso que todo o time entenda que desenvolver é uma arte, o pensamento tem que estar alinhado e focado em um objetivo comum: desenvolver software com qualidade, desenvolver com perfeição mesmo que essa perfeição amanhã seja superada.
Existem muitos desenvolvedores que se gabam, eu sei TDD, uso XP, conheço DDD... a sopa de letrinhas que ele julga saber e usa só aumenta, mas na prática ele não sabe aplicar ou não se lembra de aplicar. É a mesma coisa se uma pessoa estudar todos os fundamentos do futebol, ler tutoriais na internet, livros e nunca jogar uma partida, com certeza essa teoria toda vai ajudar, mais no seu primeiro jogo ele não vai conseguir fazer aqueles lances bonitos que nós gostamos de ver.

quinta-feira, 26 de março de 2009

Atributos de um bom software

Assim como os serviços que ele fornece, os produtos de software possuem outros atributos associados que demonstram a qualidade. Esses atributos não estão relacionados diretamente com que o software faz. Em vez disso, refletem o comportamento do software, enquanto este está em execução, e a estrutura e a organização do programa fonte.
Facilidade de manutenção:
O software deve ser escrito de modo que possa evoluir para atender às necessidades de mudança dos clientes. É um atributo fundamental, pois a mudança de software é uma consequência inevitável de um ambiente de negócios em constante mutação.
Facilidade de reparos:
As falhas de sistemas são inevitáveis, mas a interrupção causada por falhas pode ser minimizada se o sistema puder ser reparado rapidamente. Para que isso aconteça, deve ser possível diagnosticar o problema, acessar o componente que falhou e fazer as alterações para consertá-lo. A facilidade de reparos de software é aprimorada quando a organização que usa o sistema tem acesso ao código-fonte e há pessoas com habilidade para fazer as alterações. Infelizmente, isso tem se tornado cada vez menos comum à medida que avançamos em direção ao desenvolvimento de sistemas por meio de componentes de terceiros do tipo caixa-preta.
Confiança:
O nível de confiança do software tem uma série de características, incluindo confiabilidade, proteção e segurança. Um software confiável não deve causar danos físicos ou econômicos no caso de falha no sistema.
Eficiência:
O software não deve desperdiçar os recursos do sistema, como memória e ciclos do processador. Portanto, a eficiência inclui tempo de resposta, tempo de processamento, utilização de memória etc.
Usabilidade:
O software deve ser usável, sem esforço excessivo, pelo tipo de usuário para o qual ele foi projetado.(Fonte: Engenharia de software 8º Edição Ian Sommerville)

quarta-feira, 18 de março de 2009

CEJUG

Conheça o CEJUG...Grupo de Usuários Java do Ceará, nosso grupo pretende agregar pessoas dos mais variados segmentos (empresas, universidades, associações, desenvolvedores independentes), sejam eles conhecedores ou não da tecnologia Java, mas que estejam dispostos a promover, divulgar e se qualificar nesta linguagem que dia-a-dia está crescendo no mercado mundial e fornecendo soluções de alto desempenho, escalabilidade e flexibilidade.

Novidade no CEJUG, prepare os fones de ouvido... esta no ar mais um CEJUG Podcast.

segunda-feira, 16 de fevereiro de 2009

Melhoria continua

Estava eu no trânsito, sinal vermelho...logo em seguida para uma moto muito barulhenta(brummmmm, brummmmmm) e em seguida para um moto taxista(cara experiente, muitos anos de
trânsito) e logo ele percebe que a moto barulhenta estava acelerada:
-Hei cara tua moto ta acelerada, gasta muita gasolina!
-(dono da barulhenta) ta não, é assim mesmo.
-Cara presta atenção no barulho da minha moto...
-Não, eu já comprei ela assim é normal.
...
O cara da moto barulhenta estava acostumado e não tinha um parâmetro(um padrão) para comparar o barulho
da sua moto. Esse tipo de situação acontece muito com desenvolvedores de software, muitas vezes o desenvolvedor se acostuma com seu própio código e não percebe que esta fazendo
besteira, usa um framework desatualizado...
É preciso ficar atento com esse tipo de coisa, manter uma busca contínua de informações e novidades. Um bom programador tem que aprender a procurar caminhos alternativos mesmo quando a coisa parece esta indo bem. Temos que aprender a quebrar o trabalho automático, aquele que o cara fala isso é fácil, faço de olho fechado...de olho fechado não vai perceber quando um novo caminho está prestes a ser descoberto.

quarta-feira, 11 de fevereiro de 2009

tratamento de exception do DWR no js

Temos duas maneiras de tratar a exceção criada no DWR.(este exemplo foi feito com DWR 1.1)
mais informações em http://directwebremoting.org/dwr/other/errors

function verficaColaborador(tabelaId, colaboradorId)
{
ReajusteDWR.verificaColaboradorTabela(tabelaId, colaboradorId,
{
//function teste
callback:function(data){
alert(data);
},
//funcion error
errorHandler:function(msg, exception){
alert(msg);
}
});
}

Prefiro tratar assim:

function verficaColaborador(tabelaId, colaboradorId)
{
DWREngine.setErrorHandler(error);
ReajusteDWR.verificaColaboradorTabela(teste, tabelaId, colaboradorId);
}

function teste(data)
{
alert(data);
}

function error(msg)
{
alert(msg);
}

segunda-feira, 2 de fevereiro de 2009

Repositórios Maven

Maven é uma ferramenta de gerenciamento e automação de projetos em Java que tem como finalidade ajudar na padronização dos projetos, mantendo todas as suas informações em um arquivo chamado pom.xml(Project Object Model).
Neste arquivo podemos encontrar informações do projeto, dependências de bibliotecas externas,plugins do próprio Maven que são utilizados para facilitar a vida dos desenvolvedores.
Repositórios:
http://repository.jboss.org/maven2
http://repo1.maven.org/maven2/
http://snapshots.repository.codehaus.org/
http://people.apache.org/repo/m2-snapshot-repository
http://mirrors.ibiblio.org/pub/mirrors/maven2

quinta-feira, 29 de janeiro de 2009

Target runtime Apache Tomcat v5.5 is not defined

Erro ao importa um projeto do eclipse, que já tenha uma configuração do Tomcat: Target runtime Apache Tomcat v5.5 is not defined
1. Se no eclipse ainda não estiver nenhum servidor configurado (Window > Preferences > Server > Installed Runtimes). No projeto, Run As > Run on Server.
2. Se o erro continuar: projeto botão direito > Properties > Targeted Runtimes, e selecionar a checkbox do servidor Tomcat.

quinta-feira, 8 de janeiro de 2009

grafico com cewolf e jfreechart



Aqui vai um exemplo muito fácil para implementar um gráfico em java.
Baixe o exemplo Grafico.rar com todas as bibliotecas, basta descompactar e importar no eclipse, é um projeto tomcat, no formato servlet e jsp.
A classe GraficoExemplo cria os dados do gráfico e o teste.jsp exibe o mesmo.
As tags do cewolf são bem fáceis de usar:

http://cewolf.sourceforge.net/new/taglib.html