wpjr2’s Weblog

Artigos e tutoriais úteis

Archive for abril \29\UTC 2008

JVM em Javascript

Posted by wpjr2 em abril 29, 2008

Um projeto bastante interessante sendo desenvolvido em Tókio é o Orto, que apresenta uma implementação completa da JVM (máquina virtual Java) em Javascript. Isto possibilita, por exemplo, embutirmos a JVM inteira em uma página HTML e executar bytecodes direto no browser sem a necessidade da JVM estar instalada localmente.

Segue abaixo o link da notícia e uma imagem mostrando um demo sendo executado sobre esta implementação:

Link

Posted in Curso de Programação Java | Etiquetado: , | Leave a Comment »

Ferramentas: Lançamento do Netbeans 6.1

Posted by wpjr2 em abril 29, 2008

The NetBeans IDE is a modular, standards-based, integrated development environment (IDE) written in the Java programming language. The NetBeans project consists of an open source IDE and an application platform, which can be used as a generic framework to build any kind of application.

Release Overview

The NetBeans IDE 6.1 release provides several new features and enhancements, such as rich JavaScript editing features, support for using the Spring web framework, tighter MySQL integration, and an improved way of sharing libraries among dependent projects. The acclaimed support for Ruby/JRuby has been enhanced with new editor quick fixes, a Ruby platform manager, fast debug support for JRuby, and many other new features and fixes.

By popular demand, the bean pattern and JSF CRUD generation features that were missing in the 6.0 release have returned. In addition, early versions of new modules, such as ClearCase support, are available as plugins.

This release also provides improved performance, especially faster startup (up to 40%), lower memory consumption and improved responsiveness while working with large projects. See below for a list of features in this release.

Get the NetBeans IDE 6.1

Download NetBeans IDE 6.1

Documentation

Use the following documents to get started with NetBeans IDE 6.1.

Feature Highlights

  • JavaScript Support
    • Semantic Highlighting
    • Code Completion and Type Analysis
    • Quick Fixes and Semantic Checks
    • Refactoring
JavaScript Code Completion, Click to enlarge
  • Performance Enhancements
    • Up to 40% faster startup
    • Smarter parsing so that code completion is faster
    • Less memory consumption
Progress Bar
  • Spring Framework Support
    • Bundled Spring Framework 2.5 library
    • Wizards for XML configuration files and Spring Web MVC controllers
    • Code completion of bean names and Java classes and properties
    • Spring Web MVC framework support in web project
    • Learn More…
Spring Code Completion, Click to enlarge
  • New MySQL Support in Database Explorer
    • Register MySQL servers
    • View, create, and delete databases
    • Easy launch of the administration tool for MySQL
MySQL  Node, Click to enlarge
  • Java Beans Support
    • Bean Patterns in Navigator
    • Generate Bean Property
    • BeanInfo Editor
Java Bean Navigator
  • JSF CRUD Generator
    • Generate a JavaServer Faces CRUD application from entity classes
    • Supports all relationship types, generated and non-generated primary keys, and composite primary keys.
JSF , Click to enlarge
  • Ruby/JRuby Support
    • Editor enhancements, including new hints and fixes
    • Support for JRuby fast debugging
    • Platform Manager
    • Server and database integration improvements in Rails projects
Ruby editor, Click to enlarge
  • Javadoc Code Completion
    • Supports standard tags: @param, etc.
    • Code completion for parameters, exceptions, etc.
Javadoc, Click to enlarge
  • Support for Popular Web APIs
    • Create mashup applications easily
    • Drag and drop operations into a POJO, Servlet, JSP and RESTful web services and the NetBeans IDE generates all the code to access services
    • Supports web APIs such as Google, Facebook, Yahoo, and YouTube
Web APIs, Click to enlarge
  • RESTful Web Service Support
    • Build JSR311-compliant RESTful Web services using Jersey
    • Test your apps with the new REST Test Client
    • Use wizards to create REST services from JPA entity classes and generate JavaScript client stubs from WADL
REST Support, Click to enlarge
  • Sharing Projects (AKA Sharable Libraries)
    • Specify library dependencies using relative library paths (for default Java, Web, and all Java EE project types)
    • More easily share projects with other members of your team, for instance when using version control systems
    • Enable unattended builds for your projects
Shared Libraries, Click to enlarge
AXIS wizard, Click to enlarge
  • Java Mobility
    • Mpowerplayer MIDP emulator for MIDP applications on MacOS X (available from the plugin center)
    • SVG Composer for SVG Custom Components
    • Improved documentation and stability
mpowerPlayer for mac OS, Click to enlarge
  • Previews of Post-6.1 Features
    • Editor Support for PHP: Code completion, syntax highlighting, navigation, debugging, and much more
    • JavaScript debugger

For more details, visit the NetBeans IDE 6.1 New & Noteworthy page.

Posted in Aplicativos, Curso de Programação Java | Etiquetado: , | Leave a Comment »

Aplicativos portáteis no pendrive

Posted by wpjr2 em abril 28, 2008

Graças ao crescimento do tamanho e à preços mais acessíveis, os pendrives estão ficando com capacidade maiores e preços menores. Graças a isto, diversos aplicativos estão sendo disponibilizados para a execução direto do pendrive, possibilitando assim a execução destes de qualquer PC conectado ao pendrive.

As aplicações variam de simples editores de texto a pacotes completos (OpenOffice, concorrente do MS Office) e de sistemas operacionais inteiros (Linux em pendrive, Mac OS, Windows Vista, etc.).

Segue abaixo alguns links úteis sobre estes aplicativos:

Inclusive é possivel instalar um ambiente Java completo em um pendrive (JDK + Eclipse/NetBeans + Tomcat) e utilizá-lo em qualquer máquina.

Uma das grandes vantagens dos aplicativos Java em geral é que estes não requerem instalação na máquina destino, já que se pode executá-los em forma de JAR (JAR executável).

Posted in Aplicativos | Etiquetado: , | 2 Comments »

Obtendo as propriedades do sistema operacional

Posted by wpjr2 em abril 28, 2008

Além das propriedades de sistema da máquina virtual, é possível obtermos propriedades específicas de sistema operacional (Windows, Linux, Solaris, Mac OS, etc.).

Exemplo de uma classe que obtëm as propriedades de ambiente:

import java.util.Map;
import java.util.Set;
public class GetEnvExemplo {
  public static void main(String[] args) {
    // obtendo o mapa de propriedades do ambiente (SO)
    Map<String, String> mapa = System.getenv();

    // obtendo as chaves
    Set<String> chaves = mapa.keySet();

    // iterando sobre as chaves
    for (String s : chaves){
      System.out.println(s + " : " + System.getenv(s));
    }
  }
}

Listagem das propriedades:

PROCESSOR_ARCHITECTURE : x86
LOGONSERVER : \\HERMES
HOMEDRIVE : Z:
TNS_ADMIN : C:\Local\Oracle10g\network\ADMIN
NUT_SUFFIXED_SEARCHING : 1
USERDNSDOMAIN : ACER
SESSIONNAME : Console
HOMEPATH : \
DB2INSTANCE : DB2
TMP : C:\DOCUME~1\wpjr\LOCALS~1\Temp
windir : C:\WINDOWS
CLASSPATH : C:\PROGRA~1\IBM\SQLLIB\java\db2java.zip;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc.jar;C:\PROGRA~1\IBM\SQLLIB\java\sqlj.zip;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc_license_cu.jar;C:\PROGRA~1\IBM\SQLLIB\bin;C:\PROGRA~1\IBM\SQLLIB\java\common.jar
PROCESSOR_IDENTIFIER : x86 Family 6 Model 15 Stepping 11, GenuineIntel
TISDIR : C:\Program Files\Rational\common
HOME : Z:\
SystemDrive : C:
USERPROFILE : C:\Documents and Settings\wpjr
RATL_RTHOME : C:\Program Files\Rational\Rational Test
PATHEXT : .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
CommonProgramFiles : C:\Program Files\Common Files
NUMBER_OF_PROCESSORS : 2
ComSpec : C:\WINDOWS\system32\cmd.exe
COMPUTERNAME : FERRARI
OS : Windows_NT
PERL5LIB : C:\Local\Oracle10g\perl\5.8.3\lib\MSWin32-x86;C:\Local\Oracle10g\perl\5.8.3\lib;C:\Local\Oracle10g\perl\5.8.3\lib\MSWin32-x86;C:\Local\Oracle10g\perl\site\5.8.3;C:\Local\Oracle10g\perl\site\5.8.3\lib;C:\Local\Oracle10g\sysman\admin\scripts;
USERNAME : wpjr
CLIENTNAME : Console
INCLUDE : C:\PROGRA~1\IBM\SQLLIB\INCLUDE;C:\PROGRA~1\IBM\SQLLIB\LIB
IBMLDAP_ALTHOME : C:\Program Files\Rational\common\codeset
TEMP : C:\DOCUME~1\wpjr\LOCALS~1\Temp
USERDOMAIN : LAB_01
ALLUSERSPROFILE : C:\Documents and Settings\All Users
TMPDIR : C:\DOCUME~1\wpjr\LOCALS~1\Temp
PROCESSOR_LEVEL : 6
LIB : ;C:\PROGRA~1\IBM\SQLLIB\LIB
SystemRoot : C:\WINDOWS
APPDATA : C:\Documents and Settings\wpjr\Application Data
NUTSUFFIX : 1
Path : C:\Program Files\Java\jdk1.5.0_09\bin\..\jre\bin\client;C:\Program Files\Java\jdk1.5.0_09\bin\..\jre\bin;C:\Program Files\Java\jdk1.5.0_09\bin;C:\Local\Oracle10g\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PROGRA~1\IBM\SQLLIB\BIN;C:\PROGRA~1\IBM\SQLLIB\FUNCTION;C:\PROGRA~1\IBM\SQLLIB\SAMPLES\REPL;C:\Program Files\Rational\common;C:\Program Files\Rational\ClearCase\bin
JAVA_HOME : C:\Program Files\Java\jdk1.5.0_09
FP_NO_HOST_CHECK : NO
PROCESSOR_REVISION : 0f0b
HOMESHARE : \\wagner\home\Wpjr
ProgramFiles : C:\Program Files

Posted in Curso de Programação Java | Etiquetado: , , , | Leave a Comment »

Obtendo as propriedades do ambiente de execução

Posted by wpjr2 em abril 28, 2008

No último sábado, estudamos as principais classes da API padrão do JavaSE 6.0, contidas no pacote java.lang. Uma destas classes foi a System, que possui diversos métodos utilitários de sistema para aplicações Java. Um destes métodos, o getProperties(), provê diversas propriedades do ambiente de execução Java em um dado sistema.

Exemplo de como obter as propriedades de sistema da máquina virtual Java:

// obtedo as propriedades da JVM
Properties propriedades = System.getProperties();
// obtêem a lista de chaves
Set chaves = propriedades.keySet();
// obtêem cada chave
for (String chave:chaves){
  System.out.println(chave + " : " +
  propriedades.get(chave));
}

Listagem das propriedades:

java.runtime.name : Java(TM) 2 Runtime Environment, Standard Edition
sun.boot.library.path : C:\Program Files\Java\jdk1.5.0_09\jre\bin
java.vm.version : 1.5.0_09-b01
java.vm.vendor : Sun Microsystems Inc.
java.vendor.url : http://java.sun.com/
path.separator : ;
java.vm.name : Java HotSpot(TM) Client VM
file.encoding.pkg : sun.io
user.country : BR
sun.os.patch.level : Service Pack 2
java.vm.specification.name : Java Virtual Machine Specification
user.dir : M:\wpjr\workspace\CursoJavaOO
java.runtime.version : 1.5.0_09-b01
java.awt.graphicsenv : sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs : C:\Program Files\Java\jdk1.5.0_09\jre\lib\endorsed
os.arch : x86
java.io.tmpdir : C:\DOCUME~1\wpjr\LOCALS~1\Temp\
line.separator :

java.vm.specification.vendor : Sun Microsystems Inc.
user.variant :
os.name : Windows XP
sun.jnu.encoding : Cp1252
java.library.path : C:\Program Files\Java\jdk1.5.0_09\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jdk1.5.0_09\bin\..\jre\bin\client;C:\Program Files\Java\jdk1.5.0_09\bin\..\jre\bin;C:\Program Files\Java\jdk1.5.0_09\bin;C:\Local\Oracle10g\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PROGRA~1\IBM\SQLLIB\BIN;C:\PROGRA~1\IBM\SQLLIB\FUNCTION;C:\PROGRA~1\IBM\SQLLIB\SAMPLES\REPL;C:\Program Files\Rational\common;C:\Program Files\Rational\ClearCase\bin
java.specification.name : Java Platform API Specification
java.class.version : 49.0
sun.management.compiler : HotSpot Client Compiler
os.version : 5.1
user.home : C:\Documents and Settings\wpjr
user.timezone :
java.awt.printerjob : sun.awt.windows.WPrinterJob
file.encoding : Cp1252
java.specification.version : 1.5
java.class.path : M:\wpjr\workspace\CursoJavaOO\bin
user.name : wpjr
java.vm.specification.version : 1.0
java.home : C:\Program Files\Java\jdk1.5.0_09\jre
sun.arch.data.model : 32
user.language : pt
java.specification.vendor : Sun Microsystems Inc.
awt.toolkit : sun.awt.windows.WToolkit
java.vm.info : mixed mode
java.version : 1.5.0_09
java.ext.dirs : C:\Program Files\Java\jdk1.5.0_09\jre\lib\ext
sun.boot.class.path : C:\Program Files\Java\jdk1.5.0_09\jre\lib\rt.jar;C:\Program Files\Java\jdk1.5.0_09\jre\lib\i18n.jar;C:\Program Files\Java\jdk1.5.0_09\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.5.0_09\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.5.0_09\jre\lib\jce.jar;C:\Program Files\Java\jdk1.5.0_09\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.5.0_09\jre\classes
java.vendor : Sun Microsystems Inc.
file.separator : \
java.vendor.url.bug : http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding : UnicodeLittle
sun.cpu.endian : little
sun.desktop : windows
sun.cpu.isalist : pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86

Posted in Curso de Programação Java | Etiquetado: , , | Leave a Comment »

Redirecionamento do System.out e System.in

Posted by wpjr2 em abril 28, 2008

É possivel que, para algumas aplicações, os fluxos de entrada, de saída e de erro padrões precisam ser redirecionadas, por exemplo para arquivo (saída), teclado (entrada), etc. Por default, o fluxo de entrada aponta para o teclado, euquanto os fluxos de saída e de erro apontam para a tela ou console.

O redirecionamento do System.out e System.in pode ser feito de duas maneiras:
a) redefinindo o fluxo de saída de dados de ambos canais (out e err)
b) redefinindo na linha de comando a saída em arquivo

a) Redefinindo o fluxo

// cria os novos fluxos de saida para arquivo
FileOutputStream fosErr = new FileOutputStream("errors.txt");
FileOutputStream fosOut = new FileOutputStream("log.txt");
// define a impressão sobre os fluxos acima
PrintStream psErr = new PrintStream(fosErr);
PrintStream psOut = new PrintStream(fosOut);
// redefine os fluxos na classe System
System.setErr(psErr);
System.setOut(psOut);

Agora é só utilizar o System.out.println() e o System.err.println()
para escrever os dados de saída para os arquivos definidos acima.

b) Definindo na linha de comando

No momento da execução de uma classe Java, pode-se definir o arquivo
de saída através do caractere “>”. No exemplo abaixo, o System.out
está sendo definido para o arquivo output.log e a saída de erro
(System.err) para o arquivo error.log.

java MyClass >output.log 2>error.log

Posso tb especificar que não estarei utilizando a saída de erros
definida na classe System. Desta forma, posso passar o valor “/null”
para o parâmetro “2>”, conforme abaixo:

Java MyClass 2> /null

Segue abaixo o slide adicional sobre o tópico:

Posted in Curso de Programação Java | Etiquetado: , , , | Leave a Comment »

Curso Prog. Java: Projeto Banco Java em PDF

Posted by wpjr2 em abril 28, 2008

Acabei de fazer o upload de um arquivo PDF referente às apresentações do projeto de curso que estamos atualmente desenvolvendo no curso de programação Java da ETEG. Só lembrando que este arquivo é a útima versão do projeto de curso.

Nome do arquivo: ExerciciosProjetoBanco.zip

URL para o grupo no Google: http://groups.google.com/group/cursojavaoo

Posted in Curso de Programação Java | Etiquetado: , , | Leave a Comment »

Skype para JavaME

Posted by wpjr2 em abril 28, 2008

Já existe uma versão beta do Skype disponível para telefones celulares com a tecnologia JavaME. O Skype permite que ligações telefônicas entre pessoas seja realizado via VoIP (Voz sobre IP), além de outras funcionalidades como Chat, SMS, etc. Extendendo a sua popularidade em PCs, uma versão oficial para celulares está prestes a ser lançada.

Atualmente existem versões somente para 4 fabricantes: Nokia, Sony-Ericsson, Motorola e Samsung.

A Notícia: Link

Site de download da versão beta: Link

Posted in JavaME | Etiquetado: , | Leave a Comment »

Internacionalização e Localização em Software (Parte 1)

Posted by wpjr2 em abril 28, 2008

Extraído da Wikipedia (http://pt.wikipedia.org/wiki/Internacionaliza%C3%A7%C3%A3o_%28software%29)

Internacionalização e localização, em software, são processos de desenvolvimento e/ou adaptação de um produto, em geral softwares de computadores, para uma língua e cultura de um país. A internacionalização de um produto não fabrica o produto novamente, somente adapta as mensagens do sistema à língua e à cultura locais. Isto é importante porque permite que o desenvolvedor de software respeite as particularidades de cada língua e cultura de cada país.

Internacionalização também é escrita acronimamente como i18n, vindo da palavra inglesa internacionalization, onde se tomam a primeira e a última letra e o número de letras que contém a palavra; o mesmo é feito com localization escrito como L10n.

Os pontos fundamentais para internacionalização e localização incluem:

1. A língua, contendo a codificação do texto em diferentes sistemas de escrita (Alfabetos), diferentes sistemas numerais, scripts da esquerda-para-direita e scripts da direita-para-esquerda (por exemplo, para língua hebraica). Os sistemas atuais utilizam Unicode para solucionar problemas de codificação de caracteres. Contendo também a representação gráfica do texto, o áudio e os sub-títulos para vídeos.
2. O formato de data e tempo, incluindo diferentes calendários.
3. As diferentes formatações de números.
4. O fuso horário (UTC) de cada país para coincidir com a língua a ser internacionalizada.
5. Os números pré-definidos governamentalmente como: passaportes, RG, CPF.
6. Os padrões de números de telefones, endereço e códigos postais internacionais.
7. Os pesos e medidas de cada país.
8. O tamanho de papéis.
9. A moeda local.
10. Nomes e títulos locais.

Internacionalização vs. Localização

A diferença entre internacionalização e localização é somente fundamental. A internacionalização é uma adaptação de um produto para melhoramento e a localização é uma adição de características específicas de uma região. Os dois são evidentemente complementares.

Alguns dos elementos específicos da localização são: tradução lingüística, suporte a várias línguas, suporte a caracteres das línguas da Ásia oriental, símbolos, métodos de ordenação de listas, valores culturais e contexto social.

No desenvolvimento de software, depois de internacionalizado um produto, o termo localização se refere ao processo necessário para o produto internacionalizado esteja também pronto para mercados específicos.

Por esta razão pode-se falar que um produto internacionalizado satisfaz a comunidade internacional, mas não para um mercado específico. A preparação para um mercado específico é chamado de localização.

A Localização de Software

A localização de software é um processo de traduzir as mensagens que os usuários finais irão visualizar e de adaptá-las a fim de que sirvam uma cultura estrangeira. Este processo é um trabalho intensivo e requer frequentemente esforços significativos das equipes de desenvolvimento. Há ferramentas que podem simplificar o processo de localização. Vários projetos de software comerciais e de software livre começam sem a implementação da localização, ou para cortar custos ou para reduzir esforços já que para se fazer a internacionalização de um software é necessário que o tradutor ou localizador conheça e utilize o software e também, que domine a língua e conheça detalhes do país originário da língua a traduzir.

A localização de softwares também pode adaptar o software de uma cultura a outra. Durante a localização, algumas referências a história ou à cultura são substituídas à uma referência nativamente equivalente, que idealmente não mude o sentido da indicação.

Listagem de Locais (LOCALE) definidos (ISO 639 e ISO 639-2)

Posted in Curso de Programação Java | Etiquetado: , , | Leave a Comment »

Revistas nas Bancas

Posted by wpjr2 em abril 25, 2008

Segue abaixo os lançamentos das novas revistas para este/próximo mês:






Posted in Curso de Programação Java | Etiquetado: , , | Leave a Comment »