A Sun Microsystems promove um evento sobre o uso de Java na plataforma de TV digital no próximo dia 14 de maio, quinta-feira. Chamado de Java@TV Digital, o encontro é dedicado aos desenvolvedores que desejam se aproximar das pessoas, empresas e tecnologias que farão parte do ecossistema no desenvolvimento de aplicações interativas para o Sistema Brasileiro de TV Digital.
Fonte: http://info.abril.com.br/professional/desenvolvimento/sun-realiza-evento-javatv-digital-para-desenvolvedores.shtml
Technology (Programming, Development, Innovation, .NET, Azure) - Enjoyment (Travel, Wines, , Tips)
Mostrando postagens com marcador Java. Mostrar todas as postagens
Mostrando postagens com marcador Java. Mostrar todas as postagens
quarta-feira, 13 de maio de 2009
sexta-feira, 20 de março de 2009
Adobe Flex + Java EE + Hibernate JPA + BlazeDS
Quer juntar essas tecnologias de forma fácil e viável? Simples! Leia o artigo de Maik Schumacher, consultor da Adobe. O artigo mostra passo-a-passo como montar seu ambiente e sua arquitetura de software para projetos em JavaEE + AdobeFlex + Hibernate JPA. Excelente! Recomendo. Acesse através do link http://www.adobe.com/devnet/flex/articles/flex_hibernate.html.
Blu-ray versus DVD
Blu-ray, também conhecido como BD (de Blu-ray Disc) é um formato de disco óptico da nova geração de 12 cm de diâmetro (igual ao CD e ao DVD) para vídeo de alta definição e armazenamento de dados de alta densidade. É o sucessor do DVD e capaz de armazenar filmes até 1080p Full HD de até 4 horas sem perdas. Requer obviamente uma TV de alta definição (Plasma ou LCD) para exibir todo seu potencial e justificar a troca do DVD. A principal diferença entre os formatos é a capacidade de armazenamento, com vantagem para o Blu-ray, que armazena 25 GB em discos de uma camada (50 GB em duas camadas), contra 15 GB do HD-DVD de uma camada (30 GB em duas camadas).
Na feira JavaOne de 2005, foi anunciado que o software ambiente multi-plataforma Java da Sun Microsystems seria incluído em todos os "tocadores" Blu-ray como uma parte obrigatória do padrão. Java é usada para aplicar menus interativos em discos Blu-ray, em oposição ao método usado em DVD de vídeo, que utiliza segmentos MPEG pré prestados e imagens de legenda selecionáveis, que é consideravelmente mais primitivo e menos perfeito.
Blu-ray obteve o seu nome a partir da cor azul do raio laser ("blue ray" em inglês significa "raio azul"). A letra "e" da palavra original "blue" foi eliminada porque, em alguns países, não se pode registrar, para um nome comercial, uma palavra comum. O HD-DVD tem como empresa líder a Toshiba, com suporte da Microsoft, Sanyo, NEC e estúdios de Hollywood como New Line e Universal. O Blu-ray, da Sony, tem parcerias com Apple, Panasonic, Philips, Samsung, Sharp e outros estúdios de cinema.
Fontes:
http://pt.wikipedia.org/wiki/Disco_Blu-ray
http://tecnologia.uol.com.br/ultnot/2007/03/02/ult4213u43.jhtm
Na feira JavaOne de 2005, foi anunciado que o software ambiente multi-plataforma Java da Sun Microsystems seria incluído em todos os "tocadores" Blu-ray como uma parte obrigatória do padrão. Java é usada para aplicar menus interativos em discos Blu-ray, em oposição ao método usado em DVD de vídeo, que utiliza segmentos MPEG pré prestados e imagens de legenda selecionáveis, que é consideravelmente mais primitivo e menos perfeito.
Blu-ray obteve o seu nome a partir da cor azul do raio laser ("blue ray" em inglês significa "raio azul"). A letra "e" da palavra original "blue" foi eliminada porque, em alguns países, não se pode registrar, para um nome comercial, uma palavra comum. O HD-DVD tem como empresa líder a Toshiba, com suporte da Microsoft, Sanyo, NEC e estúdios de Hollywood como New Line e Universal. O Blu-ray, da Sony, tem parcerias com Apple, Panasonic, Philips, Samsung, Sharp e outros estúdios de cinema.
Fontes:
http://pt.wikipedia.org/wiki/Disco_Blu-ray
http://tecnologia.uol.com.br/ultnot/2007/03/02/ult4213u43.jhtm
Floggy: Framework brasileiro para persistência em JME
Enfim! A salvação! Agora você não mais precisa escrever milhares para implementar persistência em JME. Floggy é um framework de persistência de objetos para aplicações JME/MIDP. O objetivo principal do framework é abstrair os detalhes de persistência, reduzindo o esforço de desenvolvimento e manutenção. Quem já desenvolveu aplicações em JME, sabe o que estou falando. O Floggy é licenciado sob a "Apache License, version 2.0". O que significa que você pode usar o framework em projetos open-source e em projetos comerciais. Ah! Dado interessante: o projeto é 100% brasileiro, cujo time é composto por três pessoas.
Mais informações: http://floggy.org.
Mais informações: http://floggy.org.
Framework para desenvolvimento de aplicações em Java com Bluetooth
Marge é um framework que ajuda desenvolvedores a criar de forma mais fácil aplicações em Java usando Bluetooth. As aplicações podem ser tanto em JME quanto em JSE. A idéia principal deste projeto é facilitar o uso da JSR 82 (API Java para Bluetooth), pois esta API é relativamente complexa em termos de uso. Mais informações: https://marge.dev.java.net/.
quarta-feira, 29 de outubro de 2008
TV Digital: Sun cumpre o prazo de entrega da especificação Java
O presidente do Fórum do Sistema Brasileiro de TV Digital, Roberto Franco, confirma que a Sun e o Fórum finalizam, até 30 de outubro, a primeira fase do roadmap para o desenvolvimento do Java de código aberto a ser incorporado ao Ginga-J. "A especificação validada pela Sun será encaminhada ao módulo técnico do Fórum, que a transformará em norma para validação pela ABNT", explica Franco.
O Fórum pretende aproveitar a vinda de um alto executivo da Sun ao Brasil para realizar uma cerimônia em São Paulo, celebrando o feito. Tudo dependerá de agendas."Não posso te dar uma data para a finalização do trabalho. Só a consulta pública da ABNT é um processo que leva de 30 a 60 dias", explica. "Só posso te dizer que os trabalhos estão andando bem rápido e dentro dos cronogramas assumidos", acrescentou o executivo.
Fonte: http://www.convergenciadigital.com.br/cgi/cgilua.exe/sys/start.htm?infoid=16507&sid=80
O Fórum pretende aproveitar a vinda de um alto executivo da Sun ao Brasil para realizar uma cerimônia em São Paulo, celebrando o feito. Tudo dependerá de agendas."Não posso te dar uma data para a finalização do trabalho. Só a consulta pública da ABNT é um processo que leva de 30 a 60 dias", explica. "Só posso te dizer que os trabalhos estão andando bem rápido e dentro dos cronogramas assumidos", acrescentou o executivo.
Fonte: http://www.convergenciadigital.com.br/cgi/cgilua.exe/sys/start.htm?infoid=16507&sid=80
domingo, 21 de setembro de 2008
Java lidera ranking das linguagens de programação
Java continua tendo a preferência dos desenvolvedores, segundo a pesquisa Tiobe Programming Community, que indica a popularidade das linguagens de programação. Apesar de ter apresentado ligeira queda nos últimos doze meses, o Java mantém boa liderança sobre a segunda colocada C. O (Visual)Basic está em terceiro lugar, seguido da C++, PHP e Python. Todas estas linguagens permaneceram na mesma posição em que estavam há um ano. As maiores subidas de ranking foram dadas pela Pascal, que saltou da posição 24 para a 16, e da PowerShell, que não constava na lista em agosto de 2007 e agora ocupa a 15ª posição. Destaque negativo para a linguagem COBOL, que despencou três posições para a 19ª colocação. O ranking feito pela Tiobe, empresa especializada em análise de qualidade de software, é baseado em pesquisas feitas nos principais buscadores de Internet. A lista é atualizada mensalmente. Abaixo, segue o link e um trecho da pesquisa. Para mais informações visite o site http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html.
Fonte: http://computerworld.uol.com.br/mercado/2008/08/07/java-lidera-ranking-das-linguagens-de-programacao-mais-populares/
Fonte: http://computerworld.uol.com.br/mercado/2008/08/07/java-lidera-ranking-das-linguagens-de-programacao-mais-populares/
quinta-feira, 4 de setembro de 2008
Fat Jat Eclipse Plug-In - Tudo em apenas um JAR
O Fat Jat Eclipse Plug-In é uma pequena ferramenta que junta a aplicação Java e seus JARs externos, em um só JAR. Basta executar este JAR e pronto. Baixe o plug-in em http://one-jar.sourceforge.net e coloque os arquivos na pasta "plugin" do seu Eclipse.
quarta-feira, 20 de agosto de 2008
LWUIT: Evolução das interfaces gráficas Java ME
A biblioteca LWUIT (Lightweight User Interface Tools) é uma API que tem o objetivo de melhorar a interface gráfica e o processo de desenvolvimento de aplicações JME. Foi desenvolvida pela própria Sun e possui uma licença que permite sua utilização mesmo em aplicações fechadas e/ou comerciais. A biblioteca traz alguns recursos que não são nativos no Java ME, mas melhoram muito a usabilidade e a qualidade da interface gráfica. Dentre seus recursos, destaco: telas com abas que podem ser posicionadas nos quatro cantos da tela; separação de ComboBox, CheckBox e RadioButton; uso de layouts e contêiners; e tratamento de eventos em botões inseridos no corpo da tela da aplicação. Acredito que é um salto interessante na evolução das interfaces gráficas de aplicações JME. Para mais informações: http://lwuit.dev.java.net .
domingo, 11 de dezembro de 2005
Dica Java - Casting de tipos primitivos
Casting, no que diz respeito às linguagens de programação, tem o sentido moldar um objeto ou tipo primitivo em um outro molde. Normalmente chamamos de conversão. Este artigo focará os tipos primitivos usando no Java. Apresentemos os tipos primitivos do Java:
O diagrama abaixo representa a "hierarquia" de conversão.

Vemos neste diagrama que somente os tipos byte, short e char podem ser convertidos para o tipo int. Vemos também que todos os tipos podem ser convertidos para o double. O diagrama torna-se agora compreensível para os demais tipos. Tanta definição, tanto "decoreba"... mas como converter? Existe a possibilidade de ocorrerem erros? Vejamos um exemplo:
Quando fazemos (short)b , estamos convertendo a variável b em short. Caso não existe a obediência da hierarquia mostrada neste artigo, haverá perda de dados (inconsistência de dados). Um detalhe interessante em casting de tipos primitivos é a conversão utilizando o tipo CHAR, é utilizado o seu código ASCII no processo.
Existe a possibilidade de convertermos objetos. Neste caso, poderíamos tratar não simplesmente de uma conversão e sim de um novo molde ao objeto convertido. É como se pudéssemos moldar um objeto CachorroDeGuarda para um objeto CachorroJaTreinado. Existe a necessidade de haver semelhança entre essas classes (objetos).
|
O diagrama abaixo representa a "hierarquia" de conversão.
Vemos neste diagrama que somente os tipos byte, short e char podem ser convertidos para o tipo int. Vemos também que todos os tipos podem ser convertidos para o double. O diagrama torna-se agora compreensível para os demais tipos. Tanta definição, tanto "decoreba"... mas como converter? Existe a possibilidade de ocorrerem erros? Vejamos um exemplo:
Início do arquivo casting.java
|
public class casting {
public static void main(String[] args) {
char c;
byte b;
short s;
int i;
// Conversão de Short para Byte
s = 200;
b = (byte)s; // ocorrerá perda de dados
System.out.println(b);
// Conversão de Byte para Short
b = 100;
s = (short)b;
System.out.println(s);
// Conversão de Char para Int
c = 'a'; // código ASCII = 97
i = (int)c; // utilizará o código ASCII
System.out.println(i);
}
}
|
Fim do arquivo casting.java
|
Quando fazemos (short)b , estamos convertendo a variável b em short. Caso não existe a obediência da hierarquia mostrada neste artigo, haverá perda de dados (inconsistência de dados). Um detalhe interessante em casting de tipos primitivos é a conversão utilizando o tipo CHAR, é utilizado o seu código ASCII no processo.
Existe a possibilidade de convertermos objetos. Neste caso, poderíamos tratar não simplesmente de uma conversão e sim de um novo molde ao objeto convertido. É como se pudéssemos moldar um objeto CachorroDeGuarda para um objeto CachorroJaTreinado. Existe a necessidade de haver semelhança entre essas classes (objetos).
Dica Java: Manipulando datas no J2SE e J2ME
1. Formatando um objeto Date (J2SE)
// Este será o objeto que fará a formatação
SimpleDateFormat formatadorData;
// String auxiliar que receberá a data formatada
String minhaDataFormatada = null;
// Data atual. Instanciando uma Data (a data e hora são atualizado
// apenas quando re-instanciamos o objeto, usando o operado "new").
Date minhaData = new Date();
formatadorData = new SimpleDateFormat("dd/MM/yyyy");
minhaDataFormatada = formatadorData.format(minhaData);
System.out.println(minhaDataFormatada);
formatadorData = new SimpleDateFormat("MM/dd/yy");
minhaDataFormatada = formatadorData.format(minhaData);
System.out.println(minhaDataFormatada);
formatadorData = new SimpleDateFormat("dd/MM/yy hh:mm:ss");
minhaDataFormatada = formatadorData.format(minhaData);
System.out.println(minhaDataFormatada);
2. Validando uma String e convertendo para Date (J2SE)
public static boolean dataValida(String data) {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date minhaDataConvertida = null;
df.setLenient(false);
try {
minhaDataConvertida = df.parse(data);
} catch (ParseException pex) {
return false;
}
return true;
}
3. Personalizando um objeto Date (J2SE/J2ME)
// Instanciando um objeto do tipo Date. Neste caso ele está
// utilizando a data atual, mas poderia ser qualquer objeto do
// tipo Date.
Date minhaData = new Date();
// Inicializando o "Calendar". Iremos utilizá-lo para pegar
// o dado desejado do objeto "Date".
Calendar meuCalendario = Calendar.getInstance();
// "Setando" os milisegundos do objeto "Date" para o "Calendar".
// Poderia ser qualquer objeto do tipo Date. Exemplo: Quando em J2ME,
// trabalhamos com DateField e queremos manipular, utilizamos
// o método getDate() para retornar um objeto do tipo "Date".
meuCalendario.setTime(minhaData);
// Escrevendo as inforações
System.out.println("Dia: " + meuCalendario.get(Calendar.DATE));
System.out.println("Mês: " + (meuCalendario.get(Calendar.DAY_OF_MONTH) + 1));
System.out.println("Ano: " + meuCalendario.get(Calendar.YEAR));
System.out.println("Dia da semana: " + meuCalendario.get(Calendar.DAY_OF_WEEK));
System.out.println("Horas: " + meuCalendario.get(Calendar.HOUR ));
System.out.println("Minutos: " + meuCalendario.get(Calendar.MINUTE ));
System.out.println("Segundos: " + meuCalendario.get(Calendar.SECOND ));
System.out.println("Milisegundos: " + meuCalendario.get(Calendar.MILLISECOND ));
4. Pegando a data atual J2ME
Calendar meuCalendario = Calendar.getInstance();
System.out.println("Dia: " + meuCalendario.get(Calendar.DATE));
System.out.println("Mês: " + (meuCalendario.get(Calendar.DAY_OF_MONTH) + 1) );
System.out.println("Ano: " + meuCalendario.get(Calendar.YEAR));
Dica Java: lendo e escrevendo strings em arquivos, linha a linha
1. Escrevendo
try {
// Strings a serem inseridas no arquivo.
String[] meusLinks = new String[] {
"http://java.sun.com",
"http://www.linux.org",
"http://msdn.microsoft.com/netframework"};
// Instanciando um objeto que irá escrever no arquivo "C:\MeusLinks.txt".
// O segundo argumento informado no construtor, quando "true", siginifica
// que os bytes serão escritos no fim do arquivo.
FileOutputStream meuArquivo =
new FileOutputStream("C:\\MeusLinks.txt",
true);
for (int i=0 ; i<meusLinks.length ; i++) {
// Convertendo a String para "Array" de "char"
char[] caracteres = meusLinks[i].toCharArray();
for (int j=0 ; j<caracteres.length ; j++) {
meuArquivo.write( (byte)(caracteres[j]) );
}
// Escrevendo o byte que pula a linha
char pulaLinha = 13;
meuArquivo.write( (byte)(pulaLinha) );
pulaLinha = 10;
meuArquivo.write( (byte)(pulaLinha) );
}
meuArquivo.close(); // Fechando o arquivo
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
2. Lendo
String linhaAtual = new String();
try {
// Objeto leitor do arquivo "C:\MeusLinks.txt"
FileReader fileReader = new FileReader("C:\\MeusLinks.txt");
// Objeto que manipula o incremento/leitura das linhas do arquivo
LineNumberReader lineNumber = new LineNumberReader(fileReader);
// Lendo as linhas do arquivo
while ((linhaAtual = lineNumber.readLine() ) != null ){
System.out.println(linhaAtual);
}
lineNumber.close();
fileReader.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
sexta-feira, 30 de julho de 2004
Dica Java - Conexão JDBC
Este código-fonte é clássico. Tem a estrutura fundamental de uma conexão JDBC. As linhas 11 e 12 (sqlserver.java/mysql.java), praticamente determinam qual banco usaremos. Na linha 11 (sqlserver.java/mysql.java), declaramos a biblioteca de estamos utilizando. Já na linha 12, utilizamos informações de conexão com o banco de dados. Evidentemente, devemos possuir para cada conexão, uma biblioteca anexada ao nosso projeto. Quando utilizamos alguma IDE, adicionar uma biblioteca ao projeto torna a compilação e e a execução transparentes no que diz respeito a utilização dessas bibliotecas de conexão JDBC, pois em alguns cliques, informamos ao projeto o caminho da biblioteca e pronto. Basta executar. Porém, quando compilamos/executamos o projeto Java utilizando a linha de comando manualmente ("na munheca"), você deve estar ciente que essas bibliotecas devem estar na lista do classpath. Bom, mas hoje em dia, temos aí o Eclipse, JCreator, Gel, JBuilder, ... que são nossos companheiros não apenas por facilidade, mas como também por necessidade e profissionalismo. Neste artigo, mostrarei dois exemplos de conexões JDBC utilizando os seguintes bancos: MySQL e SQL Server.
Que biblitecas são essas? Geralmente são arquivos .jar, que baixamos na Internet, seja no site original ou não. Eu mesmo baixei as bibliotecas JDBC do HSQLDB e do MySQL por aí pela Internet. Eu estava ciente de que estava baixando os oficiais, mas isso não queria dizer que estava baixando do site oficial. Já o do SQL Server/MSDE, eu baixei no site da Microsoft. O site da Sun, divulga estas listas, porém percebo que são bibliotecas de terceiros, que estão aptas a trabalhar com vários bancos. Gosto dos originais, portanto não vou atrás dessas bibliotecas de terceiros, apesar de possuírem qualidade. Já que utilizaremos os bancos MySQL e SQL Server neste artigo, vou disponibilizar as bibliotecas que utilizei nesses dois códigos-fonte.
Biblioteca do MySQL: mysql-connector-java-3.0.11-stable-bin.jar
Biblioteca do SQL Server: msbase.jar, mssqlserver.jar, msutil.jar
Que biblitecas são essas? Geralmente são arquivos .jar, que baixamos na Internet, seja no site original ou não. Eu mesmo baixei as bibliotecas JDBC do HSQLDB e do MySQL por aí pela Internet. Eu estava ciente de que estava baixando os oficiais, mas isso não queria dizer que estava baixando do site oficial. Já o do SQL Server/MSDE, eu baixei no site da Microsoft. O site da Sun, divulga estas listas, porém percebo que são bibliotecas de terceiros, que estão aptas a trabalhar com vários bancos. Gosto dos originais, portanto não vou atrás dessas bibliotecas de terceiros, apesar de possuírem qualidade. Já que utilizaremos os bancos MySQL e SQL Server neste artigo, vou disponibilizar as bibliotecas que utilizei nesses dois códigos-fonte.
Biblioteca do MySQL: mysql-connector-java-3.0.11-stable-bin.jar
Biblioteca do SQL Server: msbase.jar, mssqlserver.jar, msutil.jar
Início do arquivo sqlserver.java
| |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
public class main {
public static void main(String[] args) {
java.sql.Connection conConexao = null;
java.sql.Statement stmInstrucao = null;
java.sql.ResultSet rsQuery = null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conConexao = java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://LEONARDO","sa","");
stmInstrucao = conConexao.createStatement();
rsQuery = stmInstrucao.executeQuery("SELECT name FROM sysobjects WHERE type='U'");
//Imprime na tela o conteúdo do campo "name" da query
while (rsQuery.next()) {
System.out.println(rsQuery.getString("name"));
}
stmInstrucao.close();
conConexao.close();
} catch (java.sql.SQLException exc1) {
//Este tratamento de exceção é obrigatório (throws)
System.out.println("SQLException: " + exc1.getMessage());
} catch (java.lang.ClassNotFoundException exc2) {
//Este tratamento de exceção é obrigatório (throws)
System.out.println("ClassNotFoundException: " + exc2.getMessage());
}
}
}
|
Fim do arquivo sqlserver.java
|
Início do arquivo mysql.java
| |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
public class main {
public static void main(String[] args) {
java.sql.Connection conConexao = null;
java.sql.Statement stmInstrucao = null;
java.sql.ResultSet rsQuery = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conConexao = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/bancoteste","root","leo");
stmInstrucao = conConexao.createStatement();
rsQuery = stmInstrucao.executeQuery("SELECT * FROM tabelausuarios");
//Imprimindo na tela o conteúdo dos campos "nome" e "email"
while (rsQuery.next()) {
System.out.println(rsQuery.getString("nome") + " - " + rsQuery.getString("email"));
}
stmInstrucao.close();
conConexao.close();
} catch (java.sql.SQLException exc1) {
//Este tratamento de exceção é obrigatório (throws)
System.out.println("SQLException: " + exc1.getMessage());
} catch (java.lang.ClassNotFoundException exc2) {
//Este tratamento de exceção é obrigatório (throws)
System.out.println("ClassNotFoundException: " + exc2.getMessage());
}
}
}
|
Fim do arquivo mysql.java
|
Assinar:
Postagens (Atom)
Afinal, quais benefícios são obtidos com o SOLID?
Não se trata de um padrão. É um fundamento da orientação a objetos. Os princípios SOLID devem ser aplicados para se obter os benefícios da ...
-
Dica de ouro: Devemos evitar a herança como forma de economizar código, pois pode produzir um alto acoplamento desnecessário. Em geral, na o...
-
Numa estratégia de marketing, de nada adianda estar nas mídias sociais sem ao menos fazer um monitoramento nelas. O ato de monitorar sua m...
-
HSBS Informática, empresa do Grupo Nagem, celebra, neste mês de dezembro, 25 anos de atuação. Mira agora o mercado internacional. De acordo ...