{ Segunda-feira, Dezembro 30 }
Feliz 2003!!!
Estou aqui escrevendo meu último post do ano para desejar a todos um maravilhoso 2003.
Espero que todos tenham um ano com muita paz e harmonia, que a comunidade Java torne-se cada vez mais forte, que as APIs tornem-se melhores, que os projetos OpenSource e a Sun tenham muito sucesso, e que o Java continue na frente na batalha contra o .NET.
Este foi meu primeiro ano programando Java, e para mim foi como "encontrar o sentido da vida". Para todos, que estão começando agora ou já programam há algum tempo, deixo este recado: lembrem-se sempre de ter muita perseverança, paciência, pró-atividade e criatividade, pois assim serão programadores cada vez melhores. Programar pode ser visto como uma arte, mas como já dizia o ditado, é 10% de inspiração e 90% de transpiração. Estude e pratique sempre!
Java e o Duke são marcas registradas da Sun. Este applet foi descaradamente roubado daqui. Crianças, não façam isso em casa, pois a Sun fica muito brava!
{ Terça-feira, Dezembro 24 }
PortalJava
O Portal Java comemora o milésimo usuário, novos projetos e o Natal.
Confiram!.
O SouJava deseja um Feliz Natal e um 2003 cheio de Paz!
Neste e-mail enviado pelo JavaMan, ele nos conta um pouco sobre os eventos previstos pelo SouJava para 2003 e deixa seus votos de Feliz Natal:
Depois de um ano cheio de realizações, finalizamos 2002 com uma comunidade Java nacional forte e ativa. Essa é uma conquista de todos nós, e uma vitória que traz benefícios diretos a todos e também a nossas empresas.
Para 2003, estamos programando atividades que fortaleçam ainda mais essa comunidade, e você está desde já convidado a fazer parte de toda nossa programação.
No calendário para o próximo ano, além de nossas reuniões mensais, uma novidade: faremos encontros periódicos aos sábados, para facilitar o acesso de quem tem dificuldades de participar durante a semana. Aos sábados, haverá um espaço especial para os iniciantes nas diversas tecnologias Java, e já estão marcados pelo menos 5 encontros desses.
Além das reuniões, o SouJava estará realizando ainda no primeiro semestre de 2003 o JustJava, evento que foi um sucesso absoluto na sua primeira edicao, e objetiva mostrar a força de Java no Brasil, com palestras e estudos de casos brasileiros.
Novamente faremos parte do JavaOne 2003 (junho), e esse ano, mais de 40 palestras brasileiras foram submetidas ao evento. E na volta do JavaOne, em setembro, já está marcado o evento Abaporu, que vai mais uma vez trazer o melhor do JavaOne para o Brasil.
E tem mais! O SouJava irá participar do Objetos 6009 (julho), que na sua quarta edição é o mais importante encontro de orientação a objetos do nosso mercado. Também estaremos ajudando a organizar o Comdex (agosto), maior congresso de informática da américa latina.
Para ficar informado, ser notificado com antecedência das inscrições e não ficar de fora desses importantes eventos, não deixe de fazer parte da nossa lista de notícias. Para se inscrever, mande um e-mail para:
O SouJava termina o ano agradecendo a todos que ajudaram a fazer desse um ano excepcional. Desejamos a todos um Feliz Natal, que o Menino Jesus abençoe nossas famílias. E que o próximo ano seja um ano de realizações e de muitas alegrias.
São os votos de todos nós da Organizacao da Sociedade de Usuarios Java.
Obrigado!
A Organizacao
Sociedade de Usuarios Java - SouJava
http://www.soujava.org.br
Model Driven Architecture
No texto
MDA from a Developer's Perspective, Stefan Tilkov tenta convencer desenvolvedores sobre seus benefícios. À primeira vista, o artigo pode parecer uma sopa de letrinhas de siglas de três letras, porém o autor é bem claro (e convincente) em suas idéias. Leia, e utilize os conceitos em seu projeto.
{ Domingo, Dezembro 22 }
Interfaces
Na
Java Technology Fundamentals Newsletter desta semana foi apresentando um ótimo artigo sobre interfaces.
Ele explica que elas devem ser utilizadas como uma maneira de encapsular comportamento. As interfaces provêem uma forma de esconder que classe realiza uma determinada tarefa, especificando o comportamento que a classe deve suportar.
Aprendendo a trabalhar com um objeto apenas através de sua interface, torna-se possível mudar a implementação após o design alterando apenas a declaração do objeto.
Um exemplo em que as interfaces são particularmente úteis é na
framework de collections.
{ Quarta-feira, Dezembro 18 }
MIDP para PalmOS
Com a chegada dos celulares GSM no Brasil, muito tem se falando sobre o J2ME. Porém, não é necessário comprar um aparelho de mais de mil reais para poder vê-lo mais de perto. Qualquer pessoa que possui um handheld que rode PalmOS (versão 3.5 ou superior) e tenha memória suficiente pode rodar seus MIDlets.
O MIDP para PalmOS é um JRE que permite que aplicações disponíveis para outros aparelhos compatíveis com MIDP (como celulares) rodem no Palm, tendo até uma aparência de aplicações normais dele.
Saiba mais a respeito e faça o download visitando o
site oficial do Java.
Também é interessante entender um pouco melhor onde se encaixa o MIDP dentro da estrutura do J2ME:
MIDP does not replace the K Virtual Machine (KVM), because MIDP is not a virtual machine. MIDP is a JavaTM 2 Platform, Micro Edition (J2METM) Profile that sits on top of the Connected Limited Device Configuration (CLDC). CLDC includes KVM. MIDP, along with CLDC and KVM, provides a portable, small-footprint, standardized environment to run Java applications (MIDlets).
O pacote do MIDP para Palm inclui o JRE, MIDlets de exemplo e um conversor de MIDlets para PRC. A instalação é muito simples, basta sincronizar os arquivos PRC com seu Palm.
J2EE vs .NET - Diferenças
O Dalton disponibilizou no
Portal Java uma ótima apresentação que mostra as diferenças entre J2EE e .NET.
Diferentemente da maioria dos artigos a respeito, este PowerPoint mostra de maneira clara e concisa as semelhanças e particularidades de cada uma em diversos aspectos, ressaltando vantagens e desvantagens.
Vale a pena
conferir, mesmo porque no final nota-se uma leve tendência a favor do J2EE ;)
{ Terça-feira, Dezembro 17 }
Busca no Além do Java
Sabendo que a maioria das pessoas vem parar neste humilde blog procurando em sites de busca assuntos específicos relacionados ao Java , estou adicionando ao lado um sistema interno de busca.
Espero que assim torne-se mais fácil encontrar o que você está procurando.
Porém, este sistema de busca é originário de meu outro blog e inclui também outras páginas que escrevi, portanto se aparecer alguma coisa meio estranha no meio dos links, ignore!
{ Sábado, Dezembro 14 }
Java Magazine - 3ª ed.
Já está nas bancas a edição de dezembro da Java Magazine!
Confira seu conteúdo no
site.
Assim que chegar a minha vou falar um pouco mais a respeito...
Grupo de estudos para certificação
O
grupo de estudos para certificação do Portal Java está a todo vapor! Já temos textos sobre passagem por valor/referência, arrays, if/else, switch (com várias dicas interessantes), etc.
Confiram!
{ Quarta-feira, Dezembro 11 }
Separando valores de uma String
Uma necessidade muito comum entre desenvolvedores é a separação de valores contidos em uma String, delimitados por um certo caracter.
Um exemplo seria passar uma String com vários IDs através do parâmetro de uma URL, que seria recebida em um servlet e processada como uma array de ints.
A partir do Java 1.4 existe uma forma bem prática de converter um String em uma array de Strings. Basta utilizar o método
split, que aceita uma expressão regular e um limite como parâmetros. Na verdade, o que este método faz é chamar o método split da classe
Pattern, como pode ser visto no código-fonte:
public String[] split(String regex, int limit) {
return Pattern.compile(regex).split(this, limit);
}
Caso você ainda não tenha a oportunidade de usar o Java 1.4, a solução é utilizar a classe
StringTokenizer.
Para converter uma String em uma array de ints, como no exemplo, seria utilizado o seguinte código:
String idString = "10,20,30,40,50";
StringTokenizer st = new StringTokenizer(idString,",");
int idInt[] = new idInt[st.countTokens()];
int p = 0;
while (st.hasMoreTokens()) {
idInt[p] = Integer.parseInt(st.nextToken());
p++;
}
{ Terça-feira, Dezembro 10 }
Container-Managed Relationships
O assunto desta última J2EE Tech Tips é
Container-Managed Relationships.
Leia o artigo para aprender o que é, seus diversos tipos, quando utilizar cada um, e especialmente como implementar este tipo de relacionamento nos seus EJBs.
{ Segunda-feira, Dezembro 9 }
IBM compra Rational
E o assunto mais comentado no momento é...
A IBM está comprando a Rational, empresa que provê diversas soluções para desenvolvimento, com destaque para seu produto Rational Rose, para UML.
Saiba mais a respeito desta negociação no
site da Rational.
{ Domingo, Dezembro 8 }
Reunião SouJava - 3ª feira
A próxima reunião SouJava será nesta terça-feira, 10/12.
Confirme sua presença.
Boas práticas de encapsulamento
Um bom encapsulamento é muito importante para manter a integridade do código, especialmente em projetos maiores em que há muitos desenvolvedores trabalhando.
O encapsulamento vai além da utilização de getters e setters. Também é necessário checar a imutabilidade dos valores de retorno, especialmente no caso de objetos e collections.
Você pode ler algumas dicas a respeito no artigo
Avoid these simple Java encapsulation gotchas.
Generics
Uma das várias novidades previstas para o Java 1.5 é o suporte a Generics, que evitam alguns erros de casting em tempo de execução através de uma checagem ainda na compilação do tipo de objeto que está em uma lista.
É possível já começar a utilizar genéricos através de uma implementação protótipo do compilador Java, que está disponível no site da Sun. Veja como
neste artigo da Sun.
{ Sábado, Dezembro 7 }
Programação e criatividade
Em uma época em que cada vez mais a programação é vista como uma atividade de menor importância, que requer apenas a aplicação de "fórmulas", é interessante resgatar um pouco seus valores.
Nesta semana saiu no site da Sun a entrevista
The Poetry of Programming, em que Richard Gabriel, um engenheiro da Sun, discute o aspecto artístico da programação.
Segundo ele, o processo de desenvolvimento de um software assemelha-se ao da criação de uma poesia. Para fazer um bom programa, não existe uma receita de bolo a ser seguida. É necessário usar a criatividade e refletir sobre como as diversas partes se encaixam para atingir um objetivo. Outro aspecto ressaltado é que só a prática e o tempo transformam uma pessoa em um bom programador. Ele lembra também que a computação é algo recente, com aproximadamente 50 anos, e portanto ainda estamos a todo momento criando algo novo para aperfeiçoá-la. E finaliza discutindo a relação entre orientação a objetos e reusabilidade de código.
Vale a pena ler o texto na íntegra em
http://java.sun.com/features/2002/11/gabriel_qa.html.
{ Sexta-feira, Dezembro 6 }
Java MeetUp
O
MeetUp é um site que tem como objetivo promover encontros de pessoas da Internet que tem um interesse em comum. Aqui no Brasil o mais conhecido é o Blog MeetUp, com 21 pessoas inscritas em São Paulo e 77 no Rio de Janeiro, onde inclusive já participei de alguns encontros.
Existe também o
Java MeetUp, com uma presença brasileira ainda pouco significativa. Então, que tal se cadastrar lá para participar de futuros encontros?
Novidades no Portal Java
O
Portal Java está repleto de novidades. Há algumas semanas a equipe está incluindo novos módulos e melhorando os antigos. E falando em equipe, ela aumentou! Agora também conta com o Evandro, que trabalha comigo, e o Kenobi, o defensor do MacOS X que mencionei na
review sobre a casual class de XML.
Uma das grandes melhorias do portal é o sistema de
fórum, que foi aperfeiçoado e agora você pode ver os envios mais novos direto na página principal, à direita.
Também foi adicionado um módulo de
Calendário de Eventos, que eu estarei atualizando com todas as palestras, cursos, reuniões, etc que acontecem na comunidade Java.
Já o
Oportunidades foi feito para auxiliar a busca de emprego relacionado a Java. As empresas cadastram suas vagas e as pessoas seus currículos.
E por fim foi inaugurado um grupo de estudos para certificação, em que você poderá estudar com a gente para a prova de programador Java da Sun.
{ Domingo, Dezembro 1 }
Divagações sobre a Sun
Antes de começar já vou avisando que isto não é um post sobre Java. Este é um blog, o
meu blog, e por isso tenho todo direito de divagar um pouco por aqui de vez em quando. Se você veio aqui para ler especificamente sobre Java, pule as próximas linhas.
Hoje estarei escrevendo sobre a Sun, a empresa que criou o Java, e minha empresa preferida antes mesmo de eu começar a gostar desta tecnologia.
Sempre achei interessante a história da Sun, com suas idéias inovadoras e incentivo à pesquisa de hardware e software. Até nos pequenos detalhes a Sun conquistou minha simpatia: no nome da empresa, que apesar de ser apenas uma sigla também representa o sol, em seu logotipo inteligente e até na escolha do fundo lilás (tons pastéis são meus preferidos). Seus produtos também sempre têm nomes peculiares e logotipos bonitos, como "Solaris", "Java", JINI"... Até mesmo em suas aquisições a Sun tem bom gosto, como na compra do StarOffice e sua linda borboleta (mas isso já é assunto de
outro blog).
Além disso, a Sun é uma empresa de portas abertas para seus parceiros. Cheguei até a presenciar uma ocasião em uma empresa estava em reforma e portanto meio sem espaço, então a Sun cedeu o auditório dela para que a Vignette pudesse apresentar seu produto para esta empresa, e olha que eles estavam utilizando M$ PowerPoint para a apresentação em plena sala da Sun! A Sun também possui um tipo de centro de testes com suas poderosíssimas máquinas para ajudar a testar aplicativos, patrocina eventos sobre Java, dá brindes, etc. Até mesmo a funcionária encarregada da lojinha é super simpática, pedindo desculpas pelos preços altos devido a alta do dólar e revirando a empresa para procurar as últimas unidades de um prendedor de crachá (muito bom por sinal)!
Porém, nem tudo é perfeito, e várias coisinhas têm me deixado indignada ultimamente. A começar pelas licenças de uso dos logotipos. Quer dizer, a falta delas! Em relação ao software a Sun sempre foi bem concisa e sensata, e eu até defendo a proteção de seus logotipos, mas considero o processo de autorização para usar o Duke, mascote do Java, simplesmente ridículo! Não sei como ela espera divulgar seus produtos sendo que é difícil até mencioná-los sem estar infringindo alguma de suas licenças! E depois ainda reclama que a Microsoft tem mais verba de marketing... Outro aspecto que eu acho um absurdo é a falta de cuidado em relação à página de venda de hardware para o Brasil. Atualmente melhorou um pouco, mas há alguns meses atrás notava-se uma grande falta de cuidado em relação à tradução das especificações dos produtos. Até os distribuidores oficiais da Sun não prestam um bom serviço, mandando uma cotação de produto sem as especificações do produto cotado (afinal, não adianta saber o modelo se ele está disponível em várias configurações)! Atualmente a Sun também tem tido algumas atitudes que vão contra seu bom relacionamento com desenvolvedores. Ficar dizendo em entrevistas que a comunidade OpenSource, especialmente o JBoss, prejudica a captação de receitas para investimentos futuros é simplesmente muito feio! E agora sua mais nova mania é ficar cobrando 30 dólares por seus produtos
beta, como o Solaris para x86 em versão "early access" e o assumidamente beta Sun ONE Developer Platform. Até mesmo a Microsoft dá de graça seus produtos beta!
Era isso que eu tinha para falar sobre a Sun... adoro a empresa, ela pode contar sempre com meu apoio, mas acho que umas críticas construtivas também são bem-vindas de vez em quando.
Agora, de volta ao Java!
Todas as marcas registradas da Sun são... marcas registradas da Sun!
Java, the Java Coffee Cup logo, and all Java based brand designations are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.