Lançado a versão final do NetBeans 6.0

terça-feira, 4 de dezembro de 2007

Com quase um mês de atraso foi lançado oficialmente no dia 03/12/2007 a versão final do NetBeans 6.0, com várias melhorias, para aqueles que serem falaram mal do editor e da performance um recado.. Seus problemas acabaram !!
As mudanças mais significativas foram no editor de texto do IDE, onde podemos destacar.
* Code Completion Inteligente
* Coloração Semântica
* Refactoração Instantânea
* Preview com antes - depois de alteração
* Geração de código como sobrescrita de construtores, equals e hashCode
* Suporte a várias linguagens como Java, Ruby, C/C++, XML, HTML, RHTML, JavaScript, e JSP.

São muitas as novidades no novo IDE, não teria como destacar todas as novas funcs neste post, proponho a você desenvolvedor efetuar o download no site netbeans.org, que agora vem disponível em várias opções de download (figura abaixo).


e explore os tutoriais disponiveis no próprio site em tutoriais.

Ainda falando de NetBeans 6, a última edição da revista mundo java nº 26, foi publicada um artigo meu sobre as novas funcionalidades do NetBeans 6 com enfânse nas mudanças do editor e no desenvolvimento de aplicações Swing com as JSRs 295 e 296 (Beans Binding e Swing Application Framework) a revista ainda possui diversas máterias interessantes com foco em SOA.. sem dúvida uma ótima pedida..

Android - E o império Google contra ataca !!!

segunda-feira, 19 de novembro de 2007

A Google lançou recentemente um sistema operacional OPEN SOURCE para concorrer com symbian, palm os, etc.. no ramo de dispositivos móveis, ele utiliza como kernel o Linux e como linguagem o Java

Arquitetura


Funcionalidades

  • Application framework enabling reuse and replacement of components
  • Dalvik virtual machine optimized for mobile devices
  • Integrated browser based on the open source WebKit engine
  • Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  • SQLite for structured data storage
  • Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony (hardware dependent)
  • Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • Camera, GPS, compass, and accelerometer (hardware dependent)
  • Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

Abaixo esta um demo de um engenheiro da Google que desenvolve uma aplicação em cima do Eclipse :-/,



Para quem quiser se aprofundar visite o canal exclusivo para desenvolvedores do Android no Youtube http://www.youtube.com/AndroidDevelopers, com vários tutoriais em video, uma atenção especial ao vídeo de apresentação do so com Sergey Brin dando uma introdução e um de seus engenheiros (Steve) fazendo uma demo de várias funcs...




Posso estar enganado mas estas funcionalidades me fazem lembrar algo ?? Será o iphone ..

Para efetuar o download do SDK clique aqui.

Esta disponível também um plugin para o Eclipse.

Diversão garantida !!!

Montando Wiki com JSPWiki

sábado, 17 de novembro de 2007

Muito se tem falado de wiki, que podemos utilizar em diversos cenários ... mas o que é Wiki ?

• O termo wiki (pronunciado "viquie" ou "uikie" no Alfabeto fonético internacional) e WikiWiki são utilizados para identificar um tipo específico de coleção de documentos em hipertexto ou o software colaborativo usado para criá-lo. Wiki significa "super-rápido" no idioma havaiano. Já em maori Wiki significa "fim-de-semana". É também a forma diminutiva de Wikitoria, versão Maori do popular nome cristão Victoria
Podemos dizer que Wiki é uma coleção de muitas páginas interligadas e cada uma delas pode ser visitada e editada por qualquer pessoa. O que torna bastante prático, a reedição e futuras visitas.
Wiki é •WEB 2.0
Um exemplo clássico de wiki é site wikipedia que é um dos pioneiros neste segmento.


Wikis são verdadeiras mídias hipertextuais, com estrutura de navegação não-linear. Cada página geralmente contém um grande número de ligações para outras páginas. Páginas com navegação hierárquica são freqüentemente usadas em grandes wikis, mas não devem ser usadas. As ligações são criadas usando-se uma sintaxe específica, o chamado "padrão link".
Existem no mercado diversas implementações de wiki open source (php, java, etc...) , veja tabela abaixo, para as opções disponíveis em java, podemos destacar o JSPWiki, que é o mais consolidado no momento dos open source, inclusive é a base do Wiki que vem junto como o JBoss Seam..

Nome
Site
Tecnologia
Valor
Tiddlywiki
JavaScript
Free
Very Quick Wiki
JAVA
Free
JAMWiki
JAVA
Free
Snipsnap
?
Free
JSPWiki
JAVA
Free
Confluence
JAVA
US$8000
Chiki Wiki
JAVA
Free
Usemodj Wiki
JAVA
Free
yawiki
PHP
Free
XWiki
JAVA
Free
Clearspace
JAVA
U$29950

JSPWiki é uma implementação open source de wiki, é totalmente desenvolvido em Java e possui várias funcionalidades,
•
É possível integra-lo com Single Sign On, JDBC para validação em banco, LDAP, e o default que é o armazenamento das informações em arquivos XML..

Edição
Na versão atual possui até um editor de texto para os usuários mais leigos com diversas funções para facilitar a edição do texto. Similar a editores de texto como Word.

Criação de Páginas
•Para criar uma nova página basta criar um link apontando para uma página que não existe. Clicar no link, que neste momento deve aparecer uma interrogação (?), que ao ser clicado será direcionado para um editor de novas páginas.

•Outras funcionalidades interessantes.
  • –Possibilidade de extensão da Wiki com a Inclusão de plugins.
  • –Possível incluir variáveis. Ex: [{$pagename}]
  • –Enriquecer a página utilizando arquivos CSS.
Segurança
Overview
JSPWiki 2.4 contém um conjunto rico e flexível de funcionalidades. O que torna JSPWiki totalmente prático para deployments em partes ou como uma intranet corporativa. Entretanto, o sistema de segurança dos subsistemas do JSPWiki é altamente customizável, geralmente a configuração padrão é o suficiente para iniciar o desenvolvimento. Entre as funcionalidades principais podemos destacar.

Funcionalidade
Descrição
Anonimato e Confiabilidade
Usuário pode ser anônimo, autenticado parcialmente e autenticado.
Gerenciamento de identidade
Usuários podem se cadastrar na Wiki, criando um profile com password. Após logar o usuários podem gerenciar seus profiles. Permite armazenar / validar os seus dados (user, pass) em banco de dados, servidores LDAP, etc...
Grupos
Possibilidade de criar grupos de usuários com um wizard simples.Podendo ser adicionados para ACLs para restringir acesso á páginas particulares.
Roles
Usuários podem possuir roles especiais (ex: “Admin” que são associados aos seus usuários.
Integração Corporativa
Política de segurança seguem o padrão J2SE (file sintax), o local dos arquivos pode ser customizado por administradores. Gerenciado pelo JAAS, Wiki pode utilizar validações condicionais fornecidor pelo web conteiner Java EE, gerenciamento de autenticação pelo conteiner para conexão nos componentes de segurança como LDAP, Single Sign ON, PAM, Kerberos e Activity Directory.

Templates

Outra opção interessante é a criação de novos templates, no site do JSPWiki, existem uma série de templates disponíveis para download e a ferramenta tem total suporte para a criação de novos templates.


Mecanismo de busca

O mecanismo de busca é baseado no Apache Lucene.

Linguagem Própria

Wiki possui uma linguagem própria, quando criamos ou salvamos uma página wiki, na verdade estamos criando uma página .txt que ao acessarmos pelo wiki, a engine da ferramenta converte essa linguagem própria para uma página .html com as devidas tags.

---- = make a horizontal ruler. Extra '-' is ignored.
\\ = force a line break

[link] = create a hyperlink to an internal WikiPage called 'Link'.
[this is also a link] = create a hyperlink to an internal WikiPage called
'ThisIsAlsoALink' but show the link as typed with spaces.
[a sample|link] = create a hyperlink to an internal WikiPage called
'Link', but display the text 'a sample' to the
user instead of 'Link'.
~NoLink = disable link creation for the word in CamelCase.
[1] = make a reference to a footnote numbered 1.
[#1] = mark the footnote number 1.
[link] = create text '[link]'.

!heading = small heading with text 'heading'
!!heading = medium heading with text 'heading'
!!!heading = large heading with text 'heading'

''text'' = print 'text' in italic.
__text__ = print 'text' in bold.
{{text}} = print 'text' in monospaced font.
[text|] = print 'text' underscored (dummy hyperlink)
* text = make a bulleted list item with 'text'
# text = make a numbered list item with 'text'

;term:ex = make a definition for 'term' with the explanation 'ex'

Plugins

Essa é a minha opção preferida, a de adicionar novos plugin, o JSPWiki vem com suporte para a criação de novos plugin e no próprio site esta disponivel diversos plugins para download, basta baixar e instalar..

Existem plugins para visualização de pdf, excel, flash,, opção para rodar applets, cvs, google maps entre outros,...

Quem se interessou eu recomendo visitar o site www.jspwiki.org, baixar o código fonte, ver os tutoriais ... diversão garantida !!!!

Conexão Java 2007

sexta-feira, 2 de novembro de 2007

Nos dias 9 e 10 de Novembro será realizado o evento Conexão Java, com uma programação bem diversificada, um dos destaques é o keynotes com Carlos Villela, o cara trabalha na ThoughtWorks de Londres, a conceituada consultoria que tem como seu chief scientist ninguém mais que Martin Fowler. Villela vem falar um pouco sobre as velhas e as novas arquiteturas, os grandes mitos e metodologias ágeis.

Haverá dois auditórios nos dias do evento, um para as palestras técnicas e outro para os hands-on,
Os preços para quem irá participar apenas das paletras esta R$ 45,00 e o hands on sai por R$ 149,00.

Para maiores informações acesse http://www.temporealeventos.com.br/?area=5

Tutorial de Java - Inglês

terça-feira, 2 de outubro de 2007

Segue abaixo um curso interessante de Java que encontrei no Youtube,, espero que seja util..

Java Video Tutorial 1: Installing the Java Development Kit



Java Video Tutorial 2: Hello World!



Java Video Tutorial 3: Variables and Arithmatic (Part1)



Java Video Tutorial 3: Variables and Arithmatic (Part2)



Java Video Tutorial 4: If Statements



Java Video Tutorial 5: Object Oriented Programming



Java Video Tutorial 6: Loops



Java Video Tutorial 7: Switch Statements



Java Video Tutorial 8: Arrays



Java Video Tutorial 9: Exceptions

CodeGen - hashCode() e equals(Object) no Netbeans 5.5.1

quarta-feira, 26 de setembro de 2007

Só agora que na nova versão do NetBeans 6.0 é que é possível na IDE criar os métodos equals() e hashCode(Object), o que na verdade é uma mão na roda para muitos desenvolvedores, encontrei alguns desenvolvedores como Vinicius Senger da Globalcode e Jefferson Prestes do time de tradução que me disserem que abriam o eclipse apenas para utilizar o recurso de criação destes métodos....
Pensando nisso, como fazia um tempo que não mexia na plataforma netBeans, decidi criar um plugin para a comunidade e de quebra relembrar as APIs da plataforma.
E o plugin faz justamente isto, gera os métodos equals e hashCode baseados nos campos da classe que esta em foco no editor, o método criar os métodos respeitando o contrato de implementação.

Onde o contrato nos diz que para implementar uma relação equivalente em referencias de objetos não nulo o método:

  • É reflexivo: para qualquer valor de referencia not null para x, x.equals(x) deve retornar true.
  • É simétrico: para qualquer valor de referencia not null para x e y, x.equals(y) deve retornar true se e somente se y.equals(x) retornar true.
  • É transitivo: para qualquer valor de referencia not null para x, y, e z, se x.equals(y) retornar true e y.equals(z) retornar true, então x.equals(z) deve retornar true.
  • É consistente: para qualquer valor de referencia not null para x e y, multiplas invocações de x.equals(y) consistentemente retornarão true ou consistentemente retornarão false.
  • Para qualquer valor de referencia not null para x, x.equals(null) deve retonar false.

Como não poderia deixar de ser, temos que seguir um contrato para seguir hashCode que é:
  • Sempre que for invocado no mesmo objeto mais de uma vez durante a execução de uma aplicação Java, o método hashCode deve sempre retornar o mesmo integer.
  • Se dois objetos são iguais de acordo com a execução do método equals(Object), então chamar o método hashCode em cada um dos dois objetos deve produzir o mesmo resultado inteiro.
  • Não é obrigado que se dois objetos são diferentes de acordo com a execução do método equals(Object) que chamando o método hashCode em cada um dos dois objetos deve produzir resultados inteiros distintos. Entretanto, o programador deve ter cautela, pois produzir resultados inteiros distintos para objetos diferentes podeve causar problemas de performance ao utilizar hashtables.
Essas são as regras para se implementar equals(Object) e hashCode(), além de seguir estas regras o plugin segue a espeficação de Joshua Bloch para a implementação destes métodos no livro Effective Java. Portanto talvez você pode achar a implementação bem similar a forma do eclipse produzir estes métodos.
Segue abaixo alguns screenshots do plugin. O plugin esta internacionalizado, disponivel para inglês e português.
Para instalar o plugin efetue o download do arquivo nbm no portal de plugin do netbeans clicando aqui.
Após instalar o nbm espere enquanto o netBeans faz um "hot deploy", após a instalação, para utilizar o plugin, no editor de um arquivo java basta acessar o menu Refatorar > Implementar hashCode() e equals(Object) ou clicando com o botão direito do mouse e acessando o menu pop up Refatorar > Implementar hashCode() e equals(Object).

Após pressionar o botão será apresentado uma JDialog disponibilizando as fields que você deseja implementar nos métodos.



Após pressionar ok, pronto o código esta pronto =) ,, fácil não.. Eclipse para que ? hehe

E ele até que é esperto, se você tentar criar os métodos em uma classe que já possui os métodos, o plugin dá mensagem.


Se sua classe tiver só a classe equals e quiser só o hashCode por exemplo, ele é bem compreensivo..

Bom é isso, esse é um plugin bem simples, mas que ajuda muito no dia a dia.. peço aos meus queridos amigos que baixem este plugin e testem, se tiver dúvidas ou sugestões, é só avisar.

The Developers Conference - Parte 2

terça-feira, 18 de setembro de 2007



Sábado foi o segundo dia do evento, logo de manhã já se via a correria do Leandro e a galera da Global para preparar o palco para a primeira palestra do dia "Usando JavaFX para aplicações Java EE", o palestrante Jorge (instrutor da Globalcode) começou um pouco nervoso, mas depois que começou, ficou mais calmo, talvez por ser a primeira palestra do dia e ser sábado, percebia-se que a galera estava um pouco com sono mas depois da palestra veio o coffee break e a galera começou a ficar mais animada.
Para a segunda palestra do dia foi uma grande surpresa, pois no lugar da palestra "JavaServer Faces: utilitários e componentes" ninguém mais que Ed Burns voltou para um segundo Key Notes, agora mais técnico, onde pode se aprofundar no JSF, expondo as falhas da atual versão e propondo várias idéias, ponto para Vinicius Senger, que ao montar um esquema de segurança baseado em Anotations conseguiu uma vaga no Expert Group da especificação do JSF 2.0, é o Brasil sendo muito bem representado..
Logo após o Key Notes, Melissa Villela juntamente com a Yara apresentou a paletra "Ajax com JavaServer Faces e Struts" com a dificil tarefa de pegar uma galera pós Ed Burns, a palestra foi muito boa, com ótimas dicas ao frameworks JBoss Seam e Ajax4JSF com exemplos de Drag and Drop e outros componentes.
Todos dispensados para o almoçar no florido Shopping "Frei Boneca", a galera voltou pronta para assistir a próxima palestra com o tema "SOA na prática: integrando .NET com Java EE" apresentado por Renato Bellia e Vinicius, mostrando na prática a integração de uma aplicação .NET e Java EE por Web Services,,,
Nem terminou a palestra de SOA, entrou a equipe de instrutores (Eliane e Ricardo) para apresentar a palestra de "Segurança em aplicativos Web com Java EE", com ótimas exemplos de criptografia e segurança da informação com algoritmos hash..
No final foi reservado para um Painel do Futuro: Java EE 6 - Java SE 6 - Java SE 7 - Web 3.0,, infelizmente não pude assistir este painel apresentado por Bruno Souza, Mauricio Leal, FabioVelloso, Ed Burns e Vinicius Senger..
O que posso dizer é que o evento foi altamente técnico, teve muito a agregar principalmente para os desenvolvedores mais experientes e deixou um gostinho de quero mais, a equipe toda da Globalcode esta de parabéns, só vamos torcer que o ano que vem ocorra mais uma vez ..

The Developers Conference - Parte 1

sexta-feira, 14 de setembro de 2007

Hoje foi o primeiro dia do evento The Developers Conference, um evento patrocinado pela Globalcode, e posso dizer que o resultado foi muito agradável, as 09:00 horas que durou o evento deu a impressão de ter passado muito rápido e deixou um gostinho de quero mais.
Foram vários temas abordados, todos relacionados a Java EE, com uma atenção especial para a participação do engenheiro da Sun Ed Burns, vulgo "Mr. JSF.", o cara para quem não sabe é apenas o spec leader da JSR 314 da especificação do JSF 2.0 .
Como cheguei um pouco atrasado não dá para falar do credenciamento, mas cheguei bem no inicio da 1º apresentação "UML aplicada na plataforma Java EE", apresentado pela Yara e pela Eliana, muito bom por sinal, a Eliana falou sobre os primórdios da diagramação de processos até chegar na Unified Process, depois a Yara passou a régua explicando os tipos de diagrama existentes na UML mas utilizados em projetos Java EE, e terminou falando de gerenciamento de projeto com o auxilio de Wiki.
Depois foi a hora que todos amam, que é a hora do "Coffee-break", com diversos salgadinhos e uns docinhos show de bola..
Depois de todos satifisfeitos, foi a hora do esperado "Key note com Ed Burns", o cara falou de várias tendencias para o futuro, mostrou um quadro sobre a curva do aprendizado de tecnologias web, para o futuro da web podemos esperar interoperabilidade, uma web semântica, e claro tratando de JavaServer Faces, de interfaces muito mais ricas e menos camadas de uma aplicação UI, e deixou claro que podemos esperar logo mais por um grande BOOOM no desenvolvimento mobile, a hora é agora.
Depois foi a vez do Vinicius Senger, que para quem não sabe além de diretor educacional da Globalcode, o cara recentemente entrou para o Expert Group do JavaServer Faces 2.0 (JSR 314) e membro do Dream Team de desenvolvimento do NetBeans, fraco o garoto !!! A sua primeira apresentação foi sobre "Design Patterns para aplicativos Java EE", que em tempo hábil conseguiu explicar com exemplos práticos todos os patterns do GoF, Core JavaEE e alguns Blue Prints..
Depois foi a vez da palestra mais polêmica do dia (para mim), "Eclipse vs NetBeans vs JDeveloper", essa palestra foi apresentada pela equipe Globalcode cada um representando um IDE, o Dr. Spock defendendo o NetBeans, a Melissa defendendo o Eclipse, a Yara "tentando" defender o JDeveloper e o Vinicius fazendo o meio de campo, foi a apresentação mais animada, pois rendeu várias risadas.. não posso deixar de dizer que o melhor no momento é o NetBeans , clap clap clap ... =D, pelas suas novas funcionalidades, o ótimo suporte a Java EE, editor de código,.. e tal, me desculpe Renato ;) ...
Depois foi a vez do Renato Bellia na palestra "Técnicas, patterns e dicas de JPA & Hibernate", um workshop muito valioso, com várias dicas do Renato e exemplos com código fonte, e no final a Eliane complementou com algumas propostas de implementação com 4 técnicas diferentes...
E por fim, foi apresentado pelo Vinicius e pelo Renato, o workshop sobre "Enterprise JavaBeans 3.0" para fechar com chave de ouro, com uma explanada sobre Sessions e Message Driven Beans .
Estava presente também o sempre presente Bruno "Javaman" Souza e Mauricio Leal o que rendeu um bom papo no final...
O que posso dizer que o evento foi altamente produtivo, técnico e com certeza foi muito bem vindo !!!