Tuesday, November 14, 2006

Ágil por MF

UML Essencial:

"São processos voltados às pessoas. As estratégias ágeis presumem que o fator mais importante no sucesso de um projeto é qualidade das pessoas que estão envolvidas nele e o quão bem elas trabalham juntas, em termos humanos. Os processos e ferramentas que utilizam são estritamente efeitos de segunda ordem."

Monday, November 06, 2006

JSF and JS

Apesar de ser conhecer bem pouco de javascript, ñ posso negar que esse negócio faz coisas incriveis com informações no browser. Ultimamente tenho pesquisado um pouco sobre criação de telas mais "ricas" na web, e tenho visto coisas fantasticas com o bendito do javascript! Uma delas é o dojo, um framework bem legal de javascript, permitindo fazer verdadeiras macumbas de uma forma mais simples. Senão me engano parece que é a galera do google que manda neste negócio.
Achei mais legal ainda o esquema do Tomahawk ,conjunto de componentes e utilitários do JSF que a especificação ñ cobre, agora tem um componente que permite a carga das libs do dojo na page, facilitando bastante a vida. Se já ñ existe, é bem provavel novos componentes tomahawk utilizem na sua renderização o dojo, para facilitar a vida e trazer novos recursos visuais com html.

Saturday, October 21, 2006

JSF: Stateful

O protocolo HTTP de certa forma é limitado, e uma dessas limitações é justamente ser stateless não mantém o estado com o cliente, ou seja, não possível somente com o protocolo reconhecer um determinado cliente além de um processo de requisição (request).

Em muitos sistemas web devemos driblar esta limitação, e usar alternativas do ambiente. Bom mas o que importa para este post, é que o faces trabalha mantendo o estado da view de um cliente, ou seja, é stateful. Justamente para efetuar todo o trabalho com Conversores + Validadores + Event / Action Listener. O faces tem 2 abordagens para stateful:
  1. server-side: usando o HttpSession para manter os dados.
  2. client-side: campos hidden para guardar as informações. Esta abordagem é menos segura que a outra.
Por default o my-faces usa a primeira opção, mas é permitido trocar a abordagem informando um parametro ao Faces Servlet, no web.xml.

Sunday, October 15, 2006

JSF - Request Lifecycle

Continuando na "brincadeira" com faces, resolvi postar algo interessante do frame, o ciclo de vida da request, que é quem permite que várias features do frame tenham funcionalidade. Um detalhe importante, é que todo o esquema descrito abaixo, é possível pq o faces é stateful com seus componetes.

No geral, o ciclo de vida é executado de 2 formas:
a) Primeira requisição da página (View), o faces executa 2 fases:
  • Restore View: verifica que ainda não existe árvore de componentes UI para a View, portanto cria todos os componentes UI (javabean) e passa para a fase de renderização.
  • Render Response: baseado na estado (dados) dos componentes na tree monta a renderização no formato esperado pelo cliente.
b) Segunda requisição da mesma página, aonde a árvore existe e o fluxo de execução muda, é executado em 6 fases:
  • Restore View: retorna a árvore vinculada a View, passa para próxima fase.
  • Apply Request Values: captura os dados de input do cliente (param na request) e seta nas devidas properties dos componentes UI. Passa para a próxima fase.
  • Process Validations: cada componente UI poderá ser validado, portanto nessa fase a árvore de componentes da view e percorrida, componente a componente, verificando se o componente UI tem validador, caso tenha o mesmo é executado. Se algo estiver errado pula para a fase de renderização, senão para a próxima.
  • Update Model Values: os componentes UI já possuem as properties atualizadas, mas os "dados de modelo", ou seja, atributos dos managed bean ainda não! É importante relembrar que todos os param da request são String, e as properties dos compoentes UI tbém. Nessa fase serão aplicados os conversores, qdo existirem, na mesma forma que os validadores. Se algo estiver errado pula para a fase de renderização, senão para a próxima.
  • Invoke Application: nesta fase são executados os actions listener registrados para os componentes Command (botões, links, ...) , e depois as actions normais (managed bean). Executada a fase de renderização.
  • Render Response: a mesma política, renderiza o conteúdo para o cliente.

Thursday, September 21, 2006

Loucura total...

Tem gente que fala que nesse mundo Java temos várias siglas formando uma saborosa sopa de letrinhas. Bom e o pior é que realmente a coisa é feia! Estou fazendo uma pesquisa sobre o que adotar em novo projeto no trampo?

O conceito de web 2.0 é bem interessante, e cada dia que passa fico de boca mais aberta com as soluções em web que aparecem por ae...
Bom mas o que eu queria dizer mesmo era que estou pesquisando vaaaaaarias dessas siglas bontinhas:

JSF + AJAX + XHTML + AOP + Facelets + GWT + Ajax4jsf + DWR + JBoss SEAM...

Qdo chegar a alguma definição concreta posto algo mais detalhado sobre aonde vou adotar alguma, se é que vou adotar, dessas letrinhas.

Thursday, August 31, 2006

Frase do Dia

"Qualquer tolo escreve código que o computador enteda. Bons programadores escrevem códigos que humanos possam entender."
Martim Fowler

Sunday, August 20, 2006

Pq Java ?

Muitas vezes vejo pessoas comentando, que o desenvolvimento java é muito complicado. Ñ só a respeito das linhas de código, e sintaxe da linguagem, mas também em outros assuntos como Orientação à Objetos, Design Patterns, UML, Framework, Arquitetura, Camadas, etc...

Normalmente as pessoas que fazem esses comentários vivam um paradigma bem diferente de desenvolvimento de software, aonde as coisas eram um pouco mais simples, ñ existia uma preocupação com processo de desenvolvimento, reutilização, componentização, flexibilidade.
O mundo evolui, TI evolui... As pessoas precisam evoluir!

Comentários como: em php, ou até delphi, era muito mais fácil de fazer, me deixam um pouco incomodado. Concordo em que alguns cenários, a utilização do php poderia ser bem mais simples do que o Java com JSP e Servlets. O problema, na realidade, é saber reconhecer o cenário, a situação, e tentar aplicar a melhor solução.

Um faz de contas:
Construção de um sistema, permitindo que o cliente faça pedidos a uma lanchonete na web. O sistema é bem simples, existem algumas restrições, o cliente deve possuir o cadastro na lanchonete com um código pessoal para poder efetuar o pedido, código esse que deverá ser informado na conclusão do pedido.

Para este cenário o uso do php, seria perfeito. Ñ precisaria de java (jsp e servlets), e muito menos do uso de J2EE (EJB ...), talvez não necessite nem me preocupar com uma definição de domain model, oo, uml, o sistema é tão básico...
Mas e se essa lanchonete, após alguns anos viesse a se tornar um McDonald's? Essa abordagem simplista (ao extremo) atenderia?

Esse é um tema complexo para apenas um post, mas de qualquer forma o importante é ressaltar que as pessoas precisam evoluir, tentar acompanhar o que está acontecendo no mundo, e ñ apenas no seu dia-a-dia!

Wednesday, August 16, 2006

Converter Domain Model em JSF

Aqui

Monday, August 14, 2006

Setando var's de ambiente no Ubuntu

Pra quem teve problema com o apt-get do ubuntu e ñ conseguiu atualizar a versão do java, assim como eu, aqui vai a dica pra fazer na "unha" :

O arquivo aonde informamos as var's de ambiente é o /etc/bash.bashrc, portanto entre via terminal e digite: sudo gedit /etc/bash.bashrc

No fim do arquivo informe as var's de ambiente (mais ou menos assim):
JAVA_HOME="caminho" CLASSPATH="$JAVA_HOME:JAVA_HOME/lib:$."
PATH="$JAVA_HOME/bin:$PATH" export JAVA_HOME CLASSPATH PATH

Saturday, August 12, 2006

An Architect's Perspective on Application Quality: Part 2

Continuação, o artigo enfatiza a questão do "processo". Gerenciar as exigências (funcionais e ñ funcionais) que o projeto deve satisfazer, é uma questão fundamental e deve ser avaliada com muita atenção. Conversar com o cliente sobre a estratégia na busca por qualidade, justificando a questões envolvendo custo, estar bem preparado para avisar sobre os riscos e eventuais problemas caso o cliente ñ concorde em pagar por qualidade. Um outro ponto tocado (novamente), foi a questão de comunicação entre o time!

Saturday, August 05, 2006

Faces no JBoss

Algum tempo atrás encontrei alguns problemas ao rodar faces no JBoss, sofri um pouco com este problema. A versão do JBoss era 4.0.2, e desenvolvimento faces com myfaces. Mesmo empacotando o aplicativo com todas as lib's necessárias, ao rodar ñ funcionava. O problema é que para rodar faces no JBoss (Tomcat) é necessário a pasta instance..\deploy\jbossweb-tomcat55.sar\jsf-libs com os jars da implementação faces que vc estiver rodando, no meu caso myfaces. Senão me engano a partir da versão 4.0.4 do JBoss, esta estrutura é default, mas com os jars do myfaces.

Atualmente estou desenvolvendo com somente com o WTP do Eclipse 3.2, e até o momento esta atendendo perfeitamente ao esperado.

Thursday, August 03, 2006

Trabalho em equipe

Depois de ler este post no blog do Helder, sobre a Catedral de Colônia, fiquei impressionado com o processo de construção desse monumento. As obras foram iniciadas em 1248 e concluídas em 1880! Mais de 600 anos envolvendo este processo... muita coisa aconteceu, muito tempo se passou, mas mesmo assim o projeto foi concluído, com pequenas mudanças (acredito que não tão significativas) no projeto inicial.
Fantástico, isso muda o meu conceito de trabalho em equipe, organização, fé e vontade na conclusão de algo que se considera importante. Se Deus quiser, algum dia caminharei sobre estes lugares.

Wednesday, August 02, 2006

2 instâncias de jboss...

Rodar o JBOSS mais de uma instância na mesma máquina, simulando 2 ambientes, em um cenário distribuído ou não, não é tão complicado.
Normalmente as 2 estruturas server's estarão abaixo de um mesmo %JBOSS_home%\server. A grande sacada é adicionar mais um endereço IP para a máquina, além do atual. Imagine que já exista o IP 10.0.0.1, no windows xp, vc iria até Conexões Rede -> Conexão Local -> Propriedades -> (selecione) Protocolo TCP/IP -> Avançado ! Pronto, agora vc adiciona um novo IP, por exemplo 10.0.0.2.

Depois disso é só informar em cada uma das instâncias (server) qual IP ela vai estar atuado, por exemplo:
>%JBOSS_home%\bin\run -c instancia1 --host=10.0.0.1
>%JBOSS_home%\bin\run -c instancia2 --host=10.0.0.2

Bem melhor do que ter de mudar cada porta dos serviços do jboss, para subir em um mesmo ip...

Wednesday, July 26, 2006

Modelo de Domínio ...

Um breve resumo:

"Um modelo de domínio é uma representação de classes conceituais do mundo real, não de componentes de Software."
Essa é a idéia-chave, aonde o modelo é um dicionário visual de abstrações que representem o negócio, sem detalhes voltados a implementação, em nível de software.

Qdo falamos de negócio, ñ falamos de "Telas", ñ falamos de "Tabelas no Banco de Dados", esses são artefatos de software, ñ deveria ser uma preocupação inicial, ñ construímos um software para atender uma tela bonita e ou para efetuar SQL's eficientes, a intenção é (ou deveria ser) atender a uma necessidade de negócio. Parece um assunto estranho, pois todo munda acha que pensa certo. Mas na prática ñ é bem assim! O Modelo de Domínio mantem o foco no modelo de representação do negócio.

O modelo contém:
- classes de conceito
- associações entre as classes
- atributos das classes

Métodos normalmente ñ são expostos a esse modelo, a ñ ser que seja bem específico ao negócio, como uma pessoa realizando algum comportamento que seja importante ao negócio.

No geral existem 2 formas para identificar as classes conceituais:
1ª - Usar lista de categoria. (como lugares, transações, eventos, ...)
2ª - Identificar substantivos ou frases que substituem substantivos. (abordagem menos segura)

É comum colocar "coisas" a menos em uma primeira representação do modelo, mas com o tempo ele pode ser reajustado tentando evoluir a representação do sistema. Deve ser considerada boa prática incrementar com objetos à mais do que o necessário, partindo do princípio que é melhor ter um modelo rico que pode ser diluído do que um modelo pobre.


Bom por enquanto é isso...

Friday, July 21, 2006

An Architect's Perspective on Application Quality

Interessante alguns aspectos levantados no artigo. Citando alguns pontos chave, sobre a espectativa e o significado de "qualidade". Comunicação entre o time, testes, monitorição são abordados como conjunto de pontos chaves para ter qualidade.

"Quality begins in the team - not the application. " Leia mais...

Monday, July 10, 2006

Head Rush Ajax

Terminei a leitura hoje, depois de quase um mês (vagabundo...) . Head Rush Ajax é muito bom, assim como os outros da série Head First, além do ótimo conteúdo abordando o uso de Ajax de uma forma simples e prática, possui uma ótima didática.
Vale muita a pena, afinal não é caro, veja.

Friday, July 07, 2006

Visão...

Um breve momento de reflexão...

“Um engenheiro, um físico e um matemático estão viajando de trem pela Escócia quanto vêem uma ovelha negra passar lá fora.

‘Interessante!’ diz o engenheiro. ‘As ovelhas escocesas eram negras.’

‘Você quer dizer que algumas ovelhas escocesas são negras, não?’ replica o físico.

‘Não’, responde o matemático. ‘Tudo o que sabemos é que há pelo menos uma ovelha na Escócia e que pelo menos um lado dessa ovelha referida é preto.’”

Wednesday, July 05, 2006

Eclipse 3.2 + Callisto

Já estou usando o Eclipse 3.2 com Callisto. Muito bom, o Callisto é uma mão na roda, já agrupando alguns dos principais plugins (open) para desenvolvimento web. A instalação foi bem rápida, nem se compara com os primórdios, aonde era uma treta encontrar compatibilidade dos plugins em novas versões do eclipse.

O Urubatan blogou um passo a passo bem legal de como resolver possíveis problemas com a instalação.

Tuesday, July 04, 2006

Comunidade Ruby

Foi criado o RubyOnBr, uma comunidade Ruby made in Brasil!!! Preciso deixar de ser preguiçoso e começar a brincar com a criança.
Muito bom...

Sunday, June 25, 2006

JBoss Seam

Entrei no no JDJ, e encontrei um artigo interessante sobre o JBoss Seam, esse aqui. Muito legal o autor da um exemplo interessante do uso desse framework, com a utilidade de unificar outras soluções como Faces e EJB 3.0 de uma maneira bem prática. Muito bom!!!

Sunday, June 18, 2006

Caso de Uso

É um assunto que muito já ouvi falar, mas ultimamente tem se tornado mais necessário sua utilização no meu dia-a-dia. Confesso que acho a construção de casos de uso muito chato, descrever os atores e as funcionalidades que software provê, de uma maneira prática e direta, nem sempre é fácil. Devido ao cenário ao qual atuamos, algumas vezes descrever algo uma maneira simples, é complicado! Nos últimos dias, como sempre, tenho buscado literatura sobre o assunto, cheguei a conclusão de 2 guias, um é especificamente para Casos de Uso, o Writting Effective Use Cases (Cockburn) e o segundo: Applying UML and Design Patterns (Larman).

Atualmente estou lendo o segundo, que traz uma visão geral do desenvolvimento (R)UP, da fase de concepção a elaboração (com iterações). Muito bom o conteúdo do livro, no desenrolar dos assuntos são apontadas várias idéias de outros autores, como o próprio tio "Fowler". Vai aqui uma definição interessante de caso de uso (do livro):
Casos de uso são um mecanismo para que visa tornar simples a maneira dos usuários (Clientes finais) enxergarem "seus" objetivos no sistema. A essência é descobrir e registrar requisitos funcionais do sistema, satisfazendo os objetivos dos interessados. Requisitos funcionais indicam o que o sistema fará, em um ponto de vista de negócio.

Friday, June 09, 2006

SOA

Nos últimos dias muito tem se falado sobre SOA, é um + uma sigla do mundo TI - Service Oriented Architecture. A itenção é resolver um "grande tabu" (pelo menos na minha visão) de desenvolvimento modularizado.

A idéia é muito interessante, vc deixa de pensar em software como um todo, e começa a pensar em serviços. O software é "quebrado" em serviços (módulos) com fraco acoplamento, ou seja, os módulos ñ tem dependência estrutural um entre o outro.

Um exemplo (idéia...) seria um sistema Contábil, com serviços de Contas a Pagar, Contas a Receber, Emissão de Faturas, e outros. Tendo um outro software gerenciando esses serviços, para agregar vinculo entre esses módulos.

Uma técnologia que prove isso, é Web Services. No cenário acima poderiamos ter cada módulo implementado com uma Linguagem, ou seja, Contas a Pagar e Receber em Java e Emissão de Faturas em C++, e o "gerenciador" tbém em Java.

Web Service, é muito interessante, mas seu uso deve ser estudado com cautela! Em um cenário aonde serviços pertencentes a empresa, feitos em uma mesma tecnologia, como Java, talvez ñ seja interessante a integração com Web Services. O custo de parsing de XML em Web Services é alto, e deve ser considerado! Talvez a adoção do puro RMI, com EJB (principalmente o 3) seja interessante.

Tuesday, May 30, 2006

Dicas de Performance Java 5

Aqui vai algumas dicas para performance, mais especificamente no Java 5:

Fazer comparação ignorando maiúsculas e minúsculas...
ao invés de Code:
s1.toUpperCase().equals(s2);
usamos Code:
s1.equalsIgnoreCase(s2);
nesta versão não é necessário criar uma nova string (toUpperCase) disperdiçando CPU.


A mesma regra vale para:
ao invés de Code:
new Integer(s).intValue();
usamos Code:
Integer.parseInt(s);
(isso vale para os outros wrappers de primitivos)


Adicionando conteúdo a uma StringBuilder
ao invés de Code:
stringBuilder.append(s.substring(x,y));
usamos Code:
stringBuilder.append(s,x,y);
além de mais bonito, ecomiza recursos passando a responsabilidade da separação de conteúdo para o StringBuilder, que por si só já é bem otimizado.


Imagine uma situação aonde temos uma lista já pronta e carregada, e queremos torna-la imutável.
ao invés de de criarmos uma implementação de collection (no caso arrayList) e tratarmos os métodos lançando excessão...
usamos Code:
Collections.unmodifiableList(minhaLista);
dessa forma colocamos uma wrapper sobre nosso objeto, evitando criação de "mutretas" e código complexo. Essa técnica de Wrapper é muito interessante, e pode ser usada em várias situações, como para código thread-safe por exemplo.

É sempre importante a leitura do JavaDoc. As dicas de performance são sempre bem definidas.

Thursday, May 25, 2006

Strategy Pattern

Mais um padrão comportamental, em relação ao Business, assim como o Visitor.

Muito interessante: a idéia é usar Composição ao invés de Herança, ou seja, ao invés de ser é melhor ter.

Quando você tem um representação (objeto de domínio) que possui um comportamento muito váriavel, ao invés de hierarquia de herança para resolver o problema com a variação, seria mais interessante passar essa responsabilidade para um outro objeto (objeto terceiro), deixando sua estrutura mais simples e focada no negócio.

Em alguns casos, ter é melhor do que ser!

Friday, May 19, 2006

SESINFO - IMS

Fazia tempo que não postava nada... Tava na correria com o Evento na Mêto, o 3º SESTINFO, no qual participei dando curso e palestra.

Foi muito legal, descobri um lado interessante e que gostei muito. Quem sabe não começoa a levar a idéia de dar aula à sério???

Muito legal, coloquei as fotos no meu flickr.

Tuesday, May 02, 2006

Dica: StringBuilder

A partir do java 5 temos a classe StringBuilder . A utilização é bem similar a da já conhecida StringBuffer. Com a vantagem de ñ ser thread-safe, trazendo uma melhor performance. Na maioria dos cenários, é possível essa substituição !

Aqui vai um simples implementação teste:

import static java.lang.System.out;

import java.io.IOException;

public class TesteStringBuffer {

public static void main(String[] args) throws IOException {
final Appendable buf = new StringBuilder();
for (int i=0; i<1024; i++) {
buf.append(Integer.toString(i));
}
out.print(buf);
}

}

As 2 classes implementam Appendable, CharSequence.

Friday, April 28, 2006

Pattern - Business Interface (for EJB)

O pessoal reclama que EJB é um "saco", mas eu particulamente acredito em que alguns casos ainda é possível justificar seu uso (Session Bean).

Vou postar, sobre um pattern bem simples que resolve um dos problemas chatos de lidar com EJB. No caso o Business Interface !

Que na realidade é apenas uma Interface intermediária qual o desenvolvedor implementa na classe Bean, e extende na Interface Component (Remote/Local). Veja um exemplo de utilização:

//Business Interface: define metodos de negocio, expondo um cenario remoto
public interface NegocioDef extends Remote {
public String excutaAlgo() throws NegocioException, RemoteException;
}

//Interface Component: implementação que o cliente utiliza, herdando de NegocioDef
public interface Negocio extends NegocioDef, EJBObject {}

//Bean: o que o provider vai definir
public class NegocioBean implements NegocioDef, SessionBean {
//metodos de ciclo de vida - outro saco...

public String executaAlgo() throws NegocioException {
return "algo";
}
}

Bem simples, dessa forma o bean provider consegue fazer uma amarração de métodos em tempo de compilação, sem precisar se extressar com o "PAU NO DEPLOY".

Wednesday, April 26, 2006

+ 1 pra conta

Ontém consegui minha 3ª certificação, a SCBCD. Legal, agora é começar a me preparar para a certificação de arquiteto, tão aguardada !!!

Tuesday, April 25, 2006

Chega logo !!!

Puts, ñ tô aguentando de saudades da minha mulher... A distância (alemanha) realmente é algo que me consome de tristeza :C
Mas fazer o que, o único problema é que tá demorando d+ pro sabadão chegar !!!

Wednesday, April 19, 2006

Cade minha prova ?

Brincadeira, a quase um mês atrás marquei minha prova para SCBCD no site da prometric para o dia 21/04. Tah, eu sei que é feriado, mas existia opção para este dia no centro que escolhi, e para mim não teria problema algum.
A estava na maior espectativa, e hoje me liga uma pessoal, do centro escolhido (ñ vou dizer qual !) me informando que infelizmente houve uma falha no cadastro de datas no site da prometric, e que no dia 21, ñ seria possível a realização da prova.
Palhaçada, nos 45 do segundo tempo eles desmarcam ! Acho um absurdo, tiveram um mês, pois provavelmente, o centro deve receber um email da prometric informando assim que a escolha é efetuada, e deixam para a última hora. Mas isso é bem comum na nossa cultura.
No fim das contas, minha prova foi remarcada para dia 25. No mais é aproveitar esses dias a mais para revisar a especifição e as referências.

Friday, April 14, 2006

Sun Tech Days 2006

Este ano, só pra variar, estive no Sun Tech Days. No geral algumas palestras interessantes, outras nem tanto, nada fora do comum. Algo que me deixou completamente descontente (e alguns colegas), foi a fraca estrutura do evento !

Neste ponto a Sun tem muito de aprender com a Microsoft.

Monday, March 20, 2006

Cry Wolf

Sabadão fui ao cinema, com a esposa. Nem sabiamos qual filmer assistir, na hora decidimos, ou melhor (ahn ahn) eu decidi, assistir a Cry Wolf. Velha mania de ir apenas pelo cartaz !
Não gostei muito, o começo parecia ser legal, mas no decorrer o filme ficou até meio chato. O final eu diria que foi "legalzinho".
Bom, sei lá, acho que vale a pena Anjos da Noite - A Evolução.

Wednesday, March 15, 2006

GregorianCalendar no Java 5 #$!?*

Ontem, no trabalho, encontramos um bug na GregorianCalendar do java 5 que causou um certo descontentamento.

Um certo método no ejb (Session) estava lançando uma NullPointerException, foi verificado que o erro ocorria na execução do método add de um objeto GregorianCalendar. Este objeto era enviado de uma outra camada. A única mudanaça foi a atualização para java 5 na máquina.

Voltamos a máquina de ejb para java 1.4, e tudo voltou a funcionar... Resolvemos dar uma olhada nos fontes da versão 1.4 e 5 !

Triste mas na versão 5 existe um atributo 'calsys' que é transient (hummm). Este atributo é utilizado por um método interno que é acionado dentro de add, que em determinado momento válida se é null, mas em outro não !

Bom, infelizmente um sistema é um pouco grande, e neste momento não é interessante modificar as referencias de
GregorianCalendar para Date por exemplo, mas o ideal para representar data é o utilizar o simples e prático Date, deixe o GregorianCalendar para situações mais específicas a instantes.

Já existe um relatório indicando o bug, é só esperar pelo Mustang.

Friday, March 10, 2006

Enterprise

Até o momento esta sendo bem interessante o conteúdo do Academia do Enterprise, na globalcode. Agora vamos iniciar a leitura de Building Java Enterprise Applications Vol.1: Architecture.

Thursday, March 02, 2006

Acabou !

Ainda bem, chegamos ao fim de mais um "carnaval". Agora é voltar para a realidade, já estava com saudades do trabalho, enfim do dia-a-dia.

Monday, February 27, 2006

Carnaval

Não gosto! Mas não deixa de ser uma ótima oportunidade para estudar. Vou aproveitar esses dias para ler um pouco mais sobre desenvolvimento de componentes, com o foco na prova de SCBCD.

Como base de estudos estou utilizando o Head First EJB e Mastering Enterprise Java Beans. Bons livros, com ótimo conteúdo.

Friday, February 24, 2006

O início...

Bem, vamos lá !

Entrando na "onda" dos blog's, acredito que vai ser interessante.
Espero ter algo para publicar com alguma frequencia, por enquanto esta é apenas uma mensagem de boas vindas.
Estare abordando temas como desenvolvimento, arquitetura e projeto de software, e assuntos de Tecnologia.

Até lá.