terça-feira, 16 de dezembro de 2008

Análise: G1 com Android

(matéria publica no globo.com.br, http://oglobo.globo.com/blogs/telefonia/#147341)
Primeiras impressões do G1 com Android





Estou desde sexta-feira com o G1, modelo do Google/HTC/T-Mobile que roda sistema operacional de código aberto Android. Confesso que as primeiras impressões foram boas - o sistema parece muito estável, tem interface simples e qualquer usuário pode lidar com o modelo mesmo não sendo um expert (me incluo neste caso, apesar de conhecer muitos aparelhos e de já ter testado uns 50). Mas sempre tento enxergar os modelos do ponto de vista do usuário comum, aquele que leva para casa o aparelho e tenta fazer amizade com o equipamento.

Quanto ao corpinho, o G1 é grandalhão e é muito semelhante a modelos já disponíveis no mercado, como o TYTN II (HTC), o N97 (Nokia) e o X1 Xperia (Sony Ericsson), deslizando a parte superior e descortinando o teclado QWERTY completo. Mas o fato de rodar Android e ter ícones dedicados ao mundo Google dá um charme especial. Desta forma, o YouTube, o Gmail, a busca do Google e o Google Maps ganharam um ícone na área de trabalho, facilitando o trabalho.

Pena que ainda não consegui configurar conexão alguma. Explico: em geral, quando um usuário tenta se conectar à internet usando um aparelho não adquirido em loja própria da operadora, esta reconhece a tentativa e envia uma mensagem de configuração, que abre as portas do aparelho para os aplicativos que necessitem da rede para funcionar. Até agora não recebi a mensagem da Oi e vou ter de correr atrás disso - pedindo à Oi ou me rendendo ao manual, que no caso do G1 que recebi da Plug Informática para testes, está em inglês.

Acho que o problema da configuração pode residir no fato de este modelo estar todinho configurado para a T-Mobile. Mas como ele veio desbloqueado, é só uma questão de buscar estas configurações (pelo menos espero que seja).

Sem conexão, ainda não pude testar o acesso à internet, assim como a função Google Maps, o Gmail, o YouTube, os programas de IM (Instant Messaging) como o Yahoo! Messenger, o Windows Live Messenger e o GTalk, além do Market, ícone que abre as portas para o universo de aplicativos já disponíveis para o G1. Ou seja, o G1 sem internet perde 90% da graça. Nem podia ser diferente num aparelho da família Google.

Universo de aplicativos que, diga-se de passagem, se expande a cada dia, uma vez que o sistema aberto permite essa interação. Está aqui a grande sacada do G1 e foi o lançamento deste modelo que motivou outros fabricantes a incluirem, em seus novos modelos, a possibilidade de abrir os aparelhos para a inserção de programetos criados por terceiros.

A câmera (de 3.15Mpx) foi uma decepção. Pouco estável, não permite fotos em movimento, apenas imagens paradas. Vou tentar refinar as configurações tentando acabar com essa deficiência, mas a princípio não gostei.

O teclado QWERTY é uma delícia, assim como o joystick em formato de bolinha que, junto com a tela sensível ao toque, facilita um bocado a navegação entre as funções.

A área de trabalho é uma graça (dá pra ver na foto) e é possível retrair e expandir o "desktop" arrastando a abinha de funções. Neste ponto, o G1 lembra muito o Omnia, da Samsung. O botão de Menu, instalado no centro do aparelho, é o retorno certo para a página principal. Outra tecla interessante é a de retornar (na parte da frente do aparelho), uma vez que dentro das funções, assim como o iPhone, não há uma opção de retorno.

Mesmo sem ter conseguido conexão, fiquei encantada com a possibilidade de abrir várias janelas de navegador ao mesmo tempo. Assim que me conectar, vou testar quantas posso abrir sem congelar a máquina, o que nos fará testar a capacidade de processamento do aparelho.

Por fim, as funções de entretenimento (MP3 player e galeria de fotos) são muito simpáticas e intuitivas. No Music Player dá para configurar álbuns e playlists de forma muito simples.

Vamos falar bastante do aparelho esta semana, ok?
Elis Monteiro - 15/12/2008

domingo, 30 de novembro de 2008

Gmail Video Chat: Webcam no Gmail

O Google acaba de liberar o Gmail Video Chat, que permitirá aos usuários do Talk, através da instalação de um plug-in e uso do Gmail, usarem Webcam para conversar com seus amigos através da tecnologia Vidyo.
O recurso, disponível para usuários de Windows XP ou posterior e MacOS, já está disponível na página do Gmail Vídeo Chat e deve ser divulgado gradativamente a todos os usuários do Gmail.
Depois de instalar o Plug-in e reiniciar seu navegador, basta acessar a lista de contatos do Talk e, caso seu amigo também tenha o Plug-in instalado, clicar no link “Video & more“.



quinta-feira, 20 de novembro de 2008

World of Warcraft sem pagar nada durante 10 dias

Com essa Account Trial você poderá jogar por 10 dias sem pagar absolutamente nada e ainda vai ter acesso a tudo no jogo.
Para jogar World of Warcraft você precisa ter uma conta para acessar o game, você pode fazer uma conta pelo site oficial, você tambem pode fazer uma Account Free Trial. Com essa Account Trial você poderá jogar 10 dias sem pagar absolutamente nada e ainda vai ter acesso a tudo no jogo.

Após escolher o servidor no qual você quer jogar, será necessário criar seu personagem. Você deverá escolher qual dos lados irá defender durante a batalha: a Alliance ou a Horde.

acesse:
http://www.worldofwarcraft.com/burningcrusade/trial/index.html

Alone in the Dark para PS3

A distribuidora Tech Dealer divulgou que lançará o game "Alone in the Dark: Inferno", para PlayStation 3, no Brasil. O título está previsto para chegar na primeira quinzena de dezembro, com preço sugerido de R$ 289,00. Por conta da violência, o jogo não é recomendado para menores de 18 anos.

"Inferno" é uma versão revisada das versões para PC, Xbox 360, Wii e PlayStation 2 de "Alone in the Dark". Agora é possível controlar a câmera em 360 graus, a visão em terceira pessoa é mais próxima e o sistema de organização de itens é mais amigável. O controle dos veículos também foi melhorado.





Desenvolvido pela Eden Studios, a mesma de "Test Drive Unlimited", o novo "Alone in the Dark", o quinto da série, traz o detetive Edward Carnby como protagonista, que investiga estranhos acontecimentos no Central Park e o aparecimento de criaturas horripilantes. A exploração é mais livre que os antecessores, e a mecânica de jogo se beneficia da simulação de física.

A série "Alone in the Dark" nasceu em 1992 e foi um dos primeiros jogos a trazer os fundamentos do estilo que é tratado como "horror de sobrevivência", quatro anos antes de "Resident Evil" popularizar o estilo. Já estavam lá os quebra-cabeças, os ambientes 3D e as criaturas horrendas que caracterizam o estilo. Pela escassez de armas, evitar os monstros era fundamental e a sensação de ter a vida ameaçada trazia um clima de tensão.

Call of Duty 5- sucesso de inicio

De acordo com dados da GfK Chart-Track, empresa que apura as vendas de jogos no Reino Unido, "Call of Duty: World at War" vendeu o dobro de "Call of Duty 4", comparando-se o desempenho de cada um deles em sua primeira semana de lançamento.





Assim, "World at War", lançado para PC, Xbox 360, PlayStation 3, PlayStation 2, Wii e Nintendo DS, ficou em primeiro lugar no ranking de vendas na terra da Rainha.

O título de tiro superou "Wrath of the Lich King", expansão para "World of Warcraft" que se tornou o game para PC que mais rápido vendeu no Reino Unido. A listra segue com "Football Manager 2009", "Gears of War 2" e "FIFA 09", mostrando a paixão dos ingleses pelo futebol (e "Pro Ecolution Soccer 2009" aparece em nono). "Guitar Hero: World Tour" estreou em sexto lugar.

Veja a lista dos 40 jogos mais vendidos no Reino Unido na semana entre 9 e 15 de novembro:

1. (PC, X360, PS3, PS2, Wii, DS) Call of Duty: World at War
2. (PC) World of Warcraft: Wrath of the Lich King
3. (PC, PSP) Football Manager 2009
4. (X360) Gears of War 2
5. (PC, X360, PS3, PS2, PSP, Wii, DS) FIFA 09
6. (X360, PS3, PS2, Wii) Guitar Hero: World Tour
7. (DS) Professor Layton and the Curious Village
8. (Wii) Mario Kart Wii
9. (PC, X360, PS3) Pro Evolution Soccer 2009
10. (X360, PS3, Wii, PSP, DS, PS2) WWE SmackDown vs. Raw 2009
11. (Wii) Wii Play
12. (Wii) Wii Fit
13. (DS) Dr Kawashima's Brain Training
14. (PC, X360, PS3) Fallout 3
15. (Wii, DS) Mario & Sonic at the Olympic Games
16. (Wii) Wii Music
17. (PC, X360, PS3, PS2, PSP, Wii, DS) LEGO Batman
18. (PC, X360, PS3, PS2, Wii, DS) Quantum of Solace
19. (PS3) LittleBigPlanet
20. (PC, X360, PS3) Mirror's Edge
21. (PC, X360, PS3, PS2, PSP, Wii, DS) LEGO Indiana Jones
22. (Wii) Carnival: Funfair Games
23. (Wii) Big Brain Academy: Wii Degree
24. (PC, X360, PS3, PS2, Wii, DS) Kung Fu Panda
25. (X360, PS3) Midnight Club: Los Angeles
26. (PC, X360, PS3) Far Cry 2
27. (X360) Fable II
28. (DS) More Brain Training
29. (Wii, DS, PS2, PSP) Ben 10: Protector of Earth
30. (Wii, DS) MySims Kingdom
31. (Wii, PS2) Disney's High School Musical 3: Senior Year DANCE!
32. (PC) Command & Conquer: Red Alert 3
33. (DS) More Touchmaster
34. (Wii) More Game Party
35. (PS3) MotorStorm: Pacific Rift
36. (PC, X360, PS3, PS2, PSP, Wii, DS) WALL-E
37. (X360) Viva Piñata
38. (DS) High School Musical 3: Senior Year
39. (PS3, X360) Tom Clancy's EndWar
40. (DS) Mario Kart DS

Xbox Live dá desconto

Em vez dos tradicionais lançamentos da semana para o Xbox Live Arcade, a Microsoft decidiu oferecer um desconto de 50% para três jogos já disponíveis no canal de distribuição digital. A decisão pode ter sido afetada pela grande quantidade de lançamentos no varejo para o Xbox 360 durante esta semana.

Os três jogos com 50% de desconto são "Feeding Frenzy", "Worms" e "Ultimate Mortal Kombat 3", cada um custando 400 Microsoft Points (US$5)

Javascript-Convertendo para Double (Float)

Mais uma de javascript.
Caso queira converter algum valor para real,aí vai (em js não existe parseDouble e sim parseFloat):


<.input type="text" name="valor" id="valor" />


agora o js.

var val = document.getElementById("valor").value;

if (parseFloat(val) > 20.00){
alert('valor maior que 20.00')
}

Javascript -Convertendo para inteiro -ParseInt

Vamos falar um pouco sobre javascript.
Em determinadas situações é preciso converter o valor de uma variável para inteiro.
Um exemplo é o seguinte, quero verificar se o que o usuário digitou é maior que 18.

//campo texto com o id=idade


<.input id="idade" name="idade" type="text">


código js:
//resgatando valor do campo idade através do ID(utilizei o getElementById)
var campo = document.getElementById('idade').value;

//verificação já convertendo para inteiro o valor digitado no campo idade.
if (parseInt(campo) >18 ){
alert('Idade maior que 18);
}


espero que tenha sido útil.até a próxima...

Melhores precos de tv LCD



Veja preços de TV LCD

TV Scarlet LG 80 polegadas



Desde o lançamento da linha Scarlet de TVs, a LG se prontificou a entregar os mais variados tamanhos ao mercado, e o último, porém mais esperado, era o de 80 polegadas que acaba de entrar com toda força na europa.

A TV LG Scarlet LG80 veio pra marcar presença com suas 80? e qualidade de som e imagem. Não tem como ser comparada com sistemas específicos para “Cinema em Casa” claro, mas é uma boa opção.

Com o sistema de som de 3.1 canais e surround virtual, tem caixas de som integradas de 50 w, maiores que os normais de 20 a 30 w. No total são 4 caixas de som, um de cada lado (esquerdo e direito), um central com sistema ClearVoice dedicado a voz, e outro para graves localizado na parte de trás do televisor Scarlet.

Modernidade, estilo e design é que não faltam. O acabamento é delicado, ao mesmo tempo que impressiona com sua cor bordô.

A TV LG Scarlet LG80 é ainda Full HD e tem contraste de 30.000:1, portas USB 2.0 e HDMI 1.3. Qualidade e opções é o que não falta. Veja mais no site da LG http://www.lge.com/

Demo Fifa 2009



Fifa 2009 O jogo ganhou cerca de 250 melhorias para tentar desbancar seu maior rival, o Pro Evolution Soccer. Uma delas é o modo para 20 jogadores online numa mesma partida, que representa uma das principais evoluções em um game de futebol.

O game foi lançado para as plataformas Xbox 360, PlayStation 3, Wii, PC, PlayStation 2, PSP e DS, cada uma com características próprias para melhor tirar proveito do sistema que representa. No Wii, por exemplo, o game será chamado Fifa 09 All-Play, e trará os modos “Footii Match”, com partidas compostas por dois times de oito jogadores, e “Wii Manager”, modalidade de estratégia que coloca o jogador no papel de dirigente.

O game contará com mais de 500 times, sendo 40 nacionais, divididas em até 30 ligas. Para PC estão previstos ainda um modo de torneio com 61 campeonatos - destes, 42 licenciados oficialmente - e a possibilidade de criação de partidas personalizadas.


Download Arquivo: FIFA 09 Demo Download

Tamanho: 750 MB



Veja o video do jogo:


quinta-feira, 6 de novembro de 2008

Agite suas vendas nesse Natal com o Google

É com o lema: “Agite suas vendas nesse Natal” que o Google lançou recentemente uma página para os interessados em faturar uma graninha extra nesse Natal utilizando seus produtos.

especial natal google

No site temático http://www.natalgoogle.com.br/ há uma série de opções convenientes para utilização do buscador como auxilio online no incremento das vendas de final de ano, entre eles há o Google Adwords para iniciantes. Ao clicar nessa opção o usuário é direcionado para uma página que fala exatamente tudo sobre a ferramenta.

Além disso, há uma parte bem bacana com alguns estudos de casos de clientes, em formato de vídeo, dados bem interessantes do mercado e a diferença da rede de pesquisa e conteúdo.

No site, por exemplo, você obtém informações sobre anúncios no Youtube, onde uma diária pode sair por até R$27.500,00, com 4,5 milhões de impressões.

Interessou? Então dá uma passadinha lá no site, vale a pena para conferir a beleza e objetividade da página, agitar o bonequinho de neve e para saber mais sobre os produtos Google. Boa iniciativa para incentivar os que atuais e futuros clientes a botar a mão na massa no próximo mês!


Como funciona Google Optimizer

O que é e como funciona Google Optimizer


Basicamente, a ferramenta permite que você experimente diferentes layouts em sua página da Web para ver qual deles funciona melhor. Quer ver qual bloco de anúncio é mais provável que as pessoas a cliquem? Qual ícone RSS tem a maior probabilidade de levar as pessoas a inscrever-se em seu feed? O Google Website Optimizer deixa você criar uma página de teste e monitorar os resultados.
Na interface do google optimizer, ele solicita a url da pagina original, a url da página que você quer fazer o teste, e a url da página de destino.
Logo apóes informar as urls, o google disponibiliza a tag para ser colada no seu html.

www.google.com/websiteoptimizer

Extensão Juice para firefox

Chamada de Juice, o "plugin" faz uma busca em alguns sites como a Wikipedia, o Google News e o YouTube e as exibe na barra que fica posicionada ai lado da página. O funcionamento é o mais simples possível, bastando que o usuário arraste o texto selecionado para a barra. Porém, um dos detalhes mais interessante do Juice é a possibilidade de arrastramos um vídeo ou imagem até a extensão, para que eles fiquem armazenados e possamos vê-los depois.



Juice's rocking webcast from Linkool Labs on Vimeo.

terça-feira, 4 de novembro de 2008

String para um Date JAVA

Segue exemplo de como converter uma String para um objeto Date

  1. DateFormat formatter = new SimpleDateFormat("MM/dd/yy");
  2. Date date = (Date)formatter.parse("01/29/02");

Spring Framework Java

O objetivo deste artigo é discutir e apresentar uma aplicação desenvolvida em Java adotando o framework Spring. Inicialmente, serão abordados alguns detalhes técnicos, principalmente sobre as tecnologias e padrões adotados pelo Spring. Posteriormente, então, uma aplicação será desenvolvida, visando apresentar, na prática, a adoção deste framework.

Introdução

Para obter um entendimento completo sobre as características do Spring, faz-se necessário compreender, inicialmente, o padrão Inversion of Control (Inversão de Controle), e sua variação denominada Dependency Injection (Inclusão de Dependência). Martin Fowler, em seu artigo entitulado Inversion of Control, leva a um entendimento mais aprofundado sobre este padrão, entretanto, é importante abordar aqui alguns detalhes.

A inversão de dependência é o que torna uma simples biblioteca de classes diferente de um framework. Uma biblioteca consiste em um conjunto de classes que um usuário instancia e utiliza seus métodos. Após a chamada ao método, o controle do fluxo da aplicação retorna para o usuário. Entretanto, em um framework este fluxo é diferente. Para utilizar um framework, código próprio da aplicação deve ser criado e mantido acessível ao framework, podendo ser através de classes que estendem classes do próprio framework. O framework, então, realiza a chamada deste código da aplicação. Após a utilização do código da aplicação, o fluxo retorna para ele.

Martin Fowler exemplifica este conceito através de interfaces de interação com o usuário (GUI). Em Swing, por exemplo, você define os tratadores de eventos para os vários campos da tela, enquanto o framework (Swing) contém o loop principal da aplicação.

Finalizando, temos ainda o padrão Dependency Injection, idealizado por Martin Fowler, que trata-se de uma especialização do padrão Inversion of Control. Aplicações como Spring e PicoContainer, denominados de lightweight containers, adotam a inversão de controle, entretanto, todo framework utiliza-se de inversão de controle. A pergunta é, então, que tipo de inversão de controle o Spring, por exemplo, realiza? Afirmar que o Spring é um bom framework porque aplica a inversão de controle é um erro, já que qualquer framework deve aplicar este padrão. Para compreender melhor o padrão dependency injection, partiremos para exemplos mais práticos.

A Figura 01 apresenta um modelo, no qual pode-se entender melhor este padrão. Observe a interface MovieFinder, responsável em definir o comportamento padrão para classes que desejam gerenciar um cadastro de filmes. Logo abaixo encontra-se a classe MovieFinderImpl, que define uma implementação concreta da interface MovieFinder. Nesta classe encontram-se as implementações para cada método definido na interface MovieFinder. Têm-se, ainda, a classe MovieLister, que utiliza uma implementação da interface MovieFinder para realizar a busca de filmes para apresentar em um tocador(player) de vídeo. Observa-se, neste exemplo, a dependência existente entre MovieLister e MovieFinder. Esta dependência é resolvida pela classe Assembler, a qual gerencia a “injeção” de uma implementação de MovieFinder, neste exemplo a classe MovieFinderImpl, em um objeto MovieLister. Portanto, este padrão trata da inversão sobre como eles procuram por uma implementação de uma interface para resolver a dependência entre os objetos.

Caso a classe MovieLister instancie diretamente (através da chamada de new MovieFinderImpl) um objeto do tipo MovieFinder, perderemos a capacidade de tornar MovieFinder “plugável”. A interface MovieFinder é, portanto, um contrato ou um padrão a ser seguido por quem deseja criar “Buscadores” de filmes, de forma que um módulo separado, o Assembler, possa injetar esta implementação em MovieLister. Podemos, desta forma, criar programas no qual as partes que o compõem são plugins gerenciados pelo Assembler.

Text Box:    Figura 1 - Exemplo de Dependency Injection

Basicamente, existem dois tipos de injeção de dependência: Constructor Injection e Setter Injection. No primeiro tipo, Constructor Injection, a dependência é resolvida através de um construtor do objeto a receber o objeto dependente.

public class MovieLister {
public MovieLister(MovieFinder finder) {
this.finder = finder;
}

}

Listagem 01

A Listagem 01 apresenta este tipo de injeção de dependência, na qual a classe MovieLister define como parâmetro do seu construtor padrão um objeto do tipo MovieFinder. Neste contexto, o objeto Assembler resolverá a dependência entre os dois objetos passando para MovieLister uma implementação concreta de MovieFinder através do seu construtor.

class MovieLister {
private MovieFinder finder;

public void setFinder(MovieFinder finder) {
this.finder = finder;
}

}

Listagem 02

A Listagem 02, por sua vez, apresenta o tipo Setter Injection, no qual a dependência entre os objetos é resolvida pelo Assembler através de um método Setter no objeto MovieFinder.

Concluindo, a adoção destes dois padrões visa permitir ao desenvolvedor focalizar-se na implementação das características específicas da aplicação, delegando para um framework, como o Spring, a tarefa de especificar a dependência entre alguns objetos.

Spring Framework

Entendido os conceitos de Inversão de Controle e Injeção de Dependência, as características e formas de uso do Spring tornam-se mais simples. A Figura 2 apresenta a estrutura do Spring.

Text Box:    Figura 2 - Estrutura do Spring.

O módulo Spring Core representa as principais funcionalidades do Spring, no qual o principal elemento é o BeanFactory. Trata-se de uma implementação do padrão Factory, responsável em remover a programação de Singletons e permitindo o baixo acoplamento entre a configuração e a especificação de dependências, de sua lógica de programação.

O módulo Spring DAO provê uma camada de abstração para JDBC, eliminando grande parte da codificação necessária para interagir com um banco de dados. O módulo ORM, entretanto, provê integração do Spring com outros frameworks para persistência de objetos, como Hibernate e iBatis. Para prover uma implementação de Orientação a Aspectos que permite a definição de pointcuts e methods interceptors, existe o módulo Spring AOP.

Para prover funcionalidades específicas para projetos Web, tem-se o módulo Spring Web. São funcionalidades como componentes para upload de arquivos e suporte para utilização de Inversão de Controle neste tipo de aplicação. O módulo Spring MVC, entretanto, fornece uma implementação de framework Web, similar ao Struts.

Container de Inversão de Controle (IoC)

Inicialmente, é preciso entender o conceito, adotado pelo Spring, de beans. Para este framework, qualquer objeto que forma sua aplicação e que está sob controle do Spring, é considerado um bean. Enfim, um bean trata-se apenas de um objeto de sua aplicação e nada mais. O Container IoC é o responsável pelo gerenciamento destes beans.

Estes beans, entretanto, muitíssimo provavelmente possuem dependências entre si. Estas dependências são definidas através de metadados. O Container IoC obtém essas configurações e, partindo destas configurações, gerencia a dependência entre os beans. Neste contexto, a interface org.springframework.beans.factory.BeanFactory representa o Container IoC do Spring. Conforme explicitado anteriormente, uma implementação desta interface é responsável em realizar o trabalho do Assembler, apresentado na Figura 01. Existem diversas implementações de BeanFactory, sendo a XmlBeanFactory a implementação mais comum. Nesta, toda configuração de dependência entre os objetos é definida em um arquivo XML.

Aplicação de Exemplo

Para este exemplo será utilizada a versão 1.5 da JDK da Sun e a IDE Eclipse, em sua versão 3.2. A versão do Spring a ser adotada será a 2.0 Release Candidate 2. Trata-se de uma aplicação simples, na qual será possível cadastrar e listar clientes de uma empresa fictícia. Inicialmente, não adotaremos nenhuma interface web. Pretendemos, entretanto, apresentar uma solução mais completa, adotando outros frameworks, como o Struts, nos próximos artigos.

Text Box:    Figura 3 - Diagrama de Classes.

O diagrama de classes da Figura 03 apresenta as interfaces e classes que compõem esta aplicação. As interfaces ClienteDao e Sistema delimitam o comportamento de objetos que implementam a persistência de objetos Cliente e o acesso ao sistema, respectivamente. Neste contexto, temos ainda a classe ClienteHibernateDao, que implementa a interface ClienteDao, permitindo a persistência de objetos do tipo Cliente através do framework Hibernate (www.hibernate.org), e SistemaImpl que fornece uma implementação concreta para a interface Sistema.

Text Box:    Figura 4 - Estrutura de Pacotes.

O projeto estará conforme a estrutura de pacotes ilustrada na Figura 4. O pacote padrão da aplicação é br.com.imasters.spring. O pacote br.com.imasters.spring.beans contém as classes de negócio, neste caso, a classe Cliente. Finalizando o pacote br.com.imasters.spring.dao e br.com.imasters.spring.dao.hibernate sustentam as classes responsáveis pela persistência do sistema.

Clique na imagem para ampliar.


O Spring pode ser obtido no endereço http://www.springframework.org/, no link Downloads. A Figura 05 apresenta o projeto no Eclipse configurado com as classes do Spring. As outras bibliotecas que acompanham o pacote de distribuição do Spring são necessárias apenas caso algumas funcionalidades extras sejam utilizadas. Entretanto, observar a necessidade de ter as bibliotecas commons-logging.jar e log4j.jar no classpath.

public class Cliente {
private int id ;
private String nome ;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

}

Listagem 03

A Listagem 03 apresenta a classe Cliente, contendo apenas dois campos: id e nome. A Listagem 04 demonstra os métodos existentes na interface ClienteDao(Listagem 4), e que são implementados na classe ClienteDaoHibernate. Vamos manter o conteúdo desta classe simples, pois o objetivo deste artigo não é apresentar o Hibernate, e sim o funcionamento do Spring. Portanto, a listagem 08 apresenta esta classe apenas enviando mensagens ao console, através da chamada a System.out.println.

public interface ClienteDao {
Collection getClientes() ;
void incluirCliente ( Cliente cliente ) ;
}

Listagem 04

A interface Sistema, e sua implementação SistemaImpl são apresentadas nas Listagens 5 e 6, respectivamente. Pode-se observar, neste exemplo, que a classe SistemaImpl apenas repassa as chamadas de seus métodos para métodos semelhantes da interface ClienteDao.

public interface Sistema {

Collection getClientes() ;
void incluirCliente ( Cliente cliente ) ;

}

Listagem 05

É possível observar que a classe SistemaImpl funciona conforme o padrão Facade, fornecendo um único caminho de entrada para o sistema, evitando que o usuário perca-se na complexidade inerente de todo sistema.

public class SistemaImpl implements Sistema {
private ClienteDao daoCliente ;

public Collection getClientes() {
return this.daoCliente.getClientes() ;
}

public void incluirCliente(Cliente cliente) {
this.daoCliente.incluirCliente(cliente);
}

public ClienteDao getDaoCliente() {
return daoCliente;
}

public void setDaoCliente(ClienteDao daoCliente) {
this.daoCliente = daoCliente;
}

}

Listagem 06

Falta, ainda, definir a configuração de dependência entre os objetos desta aplicação. Para isto, criamos um arquivo chamado applicationContext.xml, e o colocamos no classpath da aplicação. A Listagem 07 apresenta o conteúdo deste arquivo. Neste arquivo, definimos o bean ClienteDao, como sendo do tipo br.com.imasters.spring.dao.hibernate.ClienteHibernateDao.







Listagem 07

Definimos também o bean Sistema, do tipo br.com.imasters.spring.SistemaImpl e que possui uma propriedade clienteDao que deve ser injetada com um objeto definido no bean ClienteDao.

public class ClienteHibernateDao implements ClienteDao {

public Collection getClientes() {
System.out.println ( "Listagem" ) ;
Collection list = new ArrayList() ;
Cliente c = new Cliente() ;
Cliente c2 = new Cliente() ;
Cliente c3 = new Cliente() ;
list.add(c);
list.add(c2);
list.add(c3);
return list;
}

public void incluirCliente(Cliente cliente) {
System.out.println ( "Cliente Incluído" ) ;
}

}

Listagem 08

Finalmente, precisamos ativar o container IoC, de forma que as dependências entre os objetos possam ser resolvidas. A Listagem 09 encarrega-se de apresentar a classe Aplicacao.java, responsável por invocar o framework.

public class Aplicacao {

public static void main ( String[] args ) {
XmlBeanFactory factory = new XmlBeanFactory ( new FileSystemResource ( "applicationContext.xml" ) ) ;
Sistema sistema = (Sistema) factory.getBean ( "Sistema" ) ;
sistema.incluirCliente ( new Cliente() ) ;
}

}

Listagem 09

Conclusão

O principal objetivo deste artigo foi apresentar o framework Spring, o qual acredito ter sido cumprido. Muitos questionam a real necessidade de utilizar o Spring, já que padrões como Abstract Factory fornecem um nível de abstração próximo ao que o Spring fornece. Entretanto, o Spring permite que sua aplicação seja extremamente “plugável”, em runtime. A inserção de uma nova biblioteca e a alteração do arquivo applicationContext.xml é o suficiente para alterar uma estratégia de persistência, por exemplo. Com padrões como AbstractFactory, para conquistar este mesmo feito é necessário, pelo menos, realizar a recompilação de todo o código fonte.

fonte:http://imasters.uol.com.br/artigo/4497/spring_framework_introducao

Java Persistence API – JPA

O JPA é um framework utilizado na camada de persistência (ver Figura 01) para o desenvolvedor ter uma maior produtividade, com impacto principal num modo para controlarmos a persistência dentro de Java. Pela primeira vez, nós, desenvolvedores temos um modo "padrão" para mapear nossos objetos para os do Banco de Dados. Persistência é uma abstração de alto-nível sobre JDBC.

wmijpafig01.JPG
Figura 01.

O Java Persistence API - JPA define um caminho para mapear Plain Old Java Objects POJOs para um banco de dados, estes POJOs são chamados de beans de entidade. Beans de Entidades são como qualquer outra classe Java, exceto que este tem que ser mapeado usando Java Persistence Metadata, para um banco de dados.

A nova Java Persistence Specitication define mapeamento entre o objeto Java e o banco de dados utilizando ORM, de forma que Beans de entidade podem ser portados facilmente entre um fabricante a outro.

O que é ORM?

Em resumo, mapeamento objeto/relacional é automatizado (e transparente) persistência de objetos em aplicações Java para tabelas em um banco de dados relacional, usando metadata que descreve o mapeamento entre os objetos e o banco de dados.

Para uma simples comparação, vamos dá uma olhada em dois códigos para demostrar como JPA é muitissímo utíl para uma aplicação Java. Primeiro irei criar um exemplo utilizando JDBC, e um outro utilizando JPA.

Segue a estrutura da tabela:

CREATE TABLE bug (

id_bug int(11) NOT NULL auto_increment,

titulo varchar(60) NOT NULL,

data date default NULL,

texto text NOT NULL,

PRIMARY KEY (id_bug)

);

Na utilização do JPA é necessário o os dois jar’s do TopLink:

toplink-essentials.jar e o toplink-essentials-agent.jar

Link para download:

http://www.oracle.com/technology/products/ias/toplink/jpa/download.html

Adicione esses dois jar’s no ClassPath do seu projeto, e adicione também o Driver JDBC do seu Banco ;-)

Vamos dá uma olhada no código utilizando JDBC.

Listagem 01. JDBCCode.java.

package jdbc;

import java.sql.*;

/**

*

* @author adm

*/

public class JDBCCode {

private static Connection con = null;

/** Creates a new instance of JDBCCode */

public JDBCCode() {

}

public static Connection open(){

String user = "root";

String pass = "123456";

String url = "jdbc:mysql://localhost/bug";

try{

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection(url,user,pass);

}catch( Exception e ){

e.printStackTrace();

}

return con;

}

public static void main( String args[] ) throws Exception{

String sql = "SELECT * FROM bug";

con = open();

try {

Statement st= con.createStatement();

ResultSet rs= st.executeQuery(sql);

while( rs.next() ){

System.out.println("Titulo: "+ rs.getString("titulo"));

}

} catch (SQLException ex) {

ex.printStackTrace();

}finally{

con.close();

}

}

}

Uma classe bem simples, que lista os titulos dos bugs, mas são muitas linhas para escrever.... agora vamos dá uma olhada no código para selecionar um determinado registro utilizando JPA.

Listagem 02. Sniped code.

public Object findByPk( int pKey ) {

EntityManager em = getEntityManager();

return em.find(Bug.class, pKey);

}

Pronto!!! Mas isso é só para você comparar como nós ganhamos produtividade na camada de persistência, e portanto tendo mais tempo para os objetos da lógica negócio.

Agora vamos ao exemplo real, segue o objeto Bug ou o Entity Bean Bug:

Nossa classe deve implementar Serializable e ter um campo ID. Os arrobas em cima dos atributos, são as anotações para mapear o seu objeto para a tabela Bug.

A Figura 02 mostra o mapeamento entre o objeto Java e a tabela no banco de dados.

wmijpafig02.JPG
Figura 02.

Listagem 03. Bug.java.

/*

* Bug.java

*

*/

package exemplo;

import javax.persistence.*;

/**

*

* @author Wendell Miranda

*/

@Entity

@Table(name="bug")

public class Bug implements java.io.Serializable {

private Integer id_bug;

private String titulo;

private java.util.Date data;

private String texto;

/** Creates a new instance of Bug */

public Bug() {

}

/*

A notação @GeneratedValue(strategy=GenerationType.SEQUENCE) informa que o id será gerado automaticamente pelo DB.

*/

@Id

@GeneratedValue(strategy=GenerationType.SEQUENCE)

@Column(name="id_bug")

public Integer getId_bug() {

return id_bug;

}

public void setId_bug(Integer id_bug) {

this.id_bug = id_bug;

}

@Column(name="titulo")

public String getTitulo() {

return titulo;

}

public void setTitulo(String titulo) {

this.titulo = titulo;

}

@Temporal(TemporalType.DATE)

@Column(name="data")

public java.util.Date getData() {

return data;

}

public void setData(java.util.Date data) {

this.data = data;

}

@Column(name="texto")

public String getTexto() {

return texto;

}

public void setTexto(String texto) {

this.texto = texto;

}

@Override

public String toString(){

return "ID: "+this.id_bug;

}

}

Conclusões

Utilizar Java Persistence API facilita muito o trabalho do desenvolvedor Java, principalmente quando lidamos com muitas tabelas. Este artigo foi apenas para quem nunca utilizou JPA e gostaria de saber um pouco sobre a tecnologia, no próximo artigo irei demonstrar um exemplo persistindo, atualizando, excluindo e listando os Bugs

fonte:http://www.devmedia.com.br/articles/viewcomp.asp?comp=4590

Laser TV

A Mitsubishi deverá lançar nas próximas semanas a sua linha LaserVue de TVs que exibem a imagem na tela através de raios laser. Segundo especialistas, esses aparelhos serão capazes de mostrar uma diversidade maior de cores, com mais brilho e uma melhor profundidade de campo, isso sem falar em um contraste muito maior. A televisão virá com um processador Real-D 3D, o que permitirá que, com aqueles óculos especiais, o espectador desfrute da tecnologia 3D em sua plenitude. Além disso, a expectativa é que elas consumam menos energia que as atuais. Segundo a fabricante, o aparelho “mais simples” terá 65” e seu preço será equivalente ao de uma TV FullHD com o mesmo tamanho.

Intel Core i7

Seguindo à risca seu plano de mudar a arquitetura a cada dois anos, a Intel lançou hoje os chips Core i7, como serão conhecidos os "Nehalem".200px-Corei7

A ausência do FSB ("Front Side Bus"), paralelo, substituido pelo "Quick Path Interconnect", serial, é uma das principais novidades. Aproximando-se ainda mais da "visão AMD do mundo", a Intel também integrou o controlador de memória ao chip, suportando o padrão DDR3. O "HT" (Hyper Threading) voltou, o que significa que, para o sistema operacional, aparecerão 8 núcleos.

O chip de quatro núcleos "reais" tem menos transistores que seu antecessor, da família Core 2: são 731 milhões contra 820 milhões, mas a área do "dye" aumentou: são 263 mm². Além disso, todos os núcleos agora estão no mesmo "pedaço" de silício e não são mais "chips separados, encapsulados juntos".

Infelizmente, a Intel não libera "samples" de engenharia para nós, mas até o final-de-semana teremos um "especial Nehalem", com todas as novidades.

terça-feira, 28 de outubro de 2008

Melhores jogos para ps3

1-The Elder Scrolls Oblivion
2-COD4
3-Warwank
4-Resistance Fall of Man
5-Assasin's Creed
6-Guitar Hero 3
7-Uncharted Drake's Fortune
8-Ratchet and Clank Future
9-Eye of the Judgement
10-Pain
11- Motorstorm
12-Uncharted Drake's Fortune
13-Resistance Fall of Man
14-The Elder Scrolls Oblivion
15-Eye of the Judgement
16-Need For speed pro street
18-Assasin's Creed
19-StrangeHold
20-Kane e Lynch
21- Resistance : Fall Of Man (ONLINE)
22 - Motorstorm (ONLINE)
23 - The Elder Scrolls IV : Oblivion
24 - Assassin's Creed
25 - Uncharted : Drake's Fortune
26 - Eye Of Judgement (ONLINE)
27 - Warhawk (EXCLUSIVAMENTE ONLINE)
28 - Heavenly Sword
29 - Call Of Duty 4 (ONLINE)
30 - The Darkness (ONLINE
31 -turok

Microsoft Office online

Após mais de um ano de especulações, a versão online do pacote Office da Microsoft, que promete concorrer com o Google Docs, será revelada nesta terça-feira (28/10) a desenvolvedores no evento Professional Developers Conference, em Los Angeles, nos Estados Unidos.

A Microsoft demonstrará uma versão hospedada mais leve do Office, chamada Web Applications for Office, que inclui versões web dos programas Word, Excel, PowerPoint e OneNote, disse Janice Kapner, diretora sênior do grupo Information Worker da Microsoft.

O Office é uma das principais fontes de receita da Microsoft e sua mais popular oferta em software, o que pode explicar a razão pela qual a companhia esperou tanto tempo para lançar uma versão hospedada do pacote.

Uma prévia técnica do Office online será distribuída no final deste ano, mas a Microsoft não revela informações específicas sobre preço ou data de lançamento. De acordo com Kapner, a prévia será oferecida eventualmente por meio de acordos de licenças de volume e por meio do conjunto de aplicações hospedadas para pequenas empresas do Office Live.

Por enquanto, a Microsoft não deve liberar algumas características do Office para desktop na versão para web. Kapner afirmou que o conjunto de aplicações da versão online dependerá da demanda dos consumidores.

Guitarra Guitar Hero

guitarra guitar hero


Para você que gosta de guitar hero, veja os preços da guitarra no Buscapé.
Clique aqui e veja as Guitarras

Guitar Hero online

Guitar Hero é um jogo de estilo musical desenvolvido pela Harmonix Music Systems e publicado pela RedOctane para o console Playstation 2. Tem um controle no formato de guitarra (semelhante à Gibson SG) que dá a sensação de estar tocando uma verdadeira guitarra. Guitar Hero foi lançado em 8 de Novembro de 2005 na América do Norte e 7 de Abril de na Europa. Guitar Hero já ganhou vários prêmios de autoridades em videogames e tal sucesso gerou uma seqüência, Guitar Hero II para Playstation 2 e Xbox 360.



O título Guitar Hero III será desenvolvido pela Neversoft. As versões para Wii, Playstation 2, Nintendo DS, Playstation 3 e Xbox 360 tem lançamento marcado para esse ano.



Embora, nessa versão online os gráficos sejam mais simples, as músicas disponíveis são as mesmas da primeira versão do jogo, com sons como "I love rock and roll", da Joan Jett, "I Wanna Be Sedated", dos Ramones e "Iron Man", do Black Sabbath, além de várias outras clássicas que você sempre quis saber tocar.

Segue links para vc

jogar Guitar Hero online


Guitar Hero
Guitar Hero online

segunda-feira, 27 de outubro de 2008

Publicidade

domingo, 26 de outubro de 2008

naTorcida - um site para o torcedor

Uma dica de um site bem legal é o naTorcida.
É um site para quem gosta de esportes, principalmente o futebol.
Lá você pode criar bolões de futebol, criar torcidas e participar de discussões sobre o futebol.
É um excelente site.

TV LCD ou PLASMA ? qual é a melhor tecnologia ?

Como as TV's de LCD e PLASMA estão bem populares no momento, ai vai uma explicação, sobre esssas tecnologias.
TV LCD
“a principal diferença é formação da imagem e a resolução, que no LCD varia de 1024×768 a 1920×1080 pixels, associada a um baixo consumo de energia.
Em imagens muito rápidas, às vezes é possível identificar rastros na tela, o chamado efeito fantasma ou ghost. Esses rastros são instantâneos, não mancham e não queimam a tela, mas incomodam bastante e no PLASMA é mais comum.

[ Vantagens ]
1. Os monitores do tipo LCD possuem uma tela que é realmente plana, eliminando as distorções de imagem dos monitores do tipo tubo de raios catódicos, ou CRT (que têm suas telas curvas);
2. Cansam menos a vista;
3. Consomem menos energia;
4. Emitem pouquíssima radiação nociva (alguns modelos já não emitem radiação nociva alguma);
5. Contraste muito superior aos do tipo CRT;
6. Modelos recentes têm correções de distorções, deixando as imagens em estado harmônico e mais real, mesmo em movimento.

[ Desvantagens ]
1. Têm o ângulo limitado a uma visão perpendicular (90º), sofrendo com o problema do black light e white light, embora isso aconteça apenas em modelos mais antigos. Atualmente, a maioria dos monitores de LCD chegam a 178º de visão.
2. A persistência do estado lógico dos pixels LCD pode levar a efeitos de "arrasto" na exibição de imagens com movimento.
3. A resolução não é constante, com perdas de 50% em imagens em movimento.
4. Não tem boa definição com fontes SDTV: TV aberta e cabo analogica, DVD, SKY SD (480i).

~~ [ - PLASMA - ] ~~
foi aprimorada na última década tendo em vista o mercado da televisão de alta definição (HDTV). Displays de plasma são totalmente planos, possuem alta resolução, com excepcional reprodução de cores e são normalmente fabricados em proporções de tela diferentes das encontradas em CRTs, geralmente 16:9 (widescreen), proporção esta de imagem definida como padrão para HDTV.

[ Vantagens: ]
– cores mais vibrantes
– ângulo de visão mais amplo
– contraste aprimorado, melhor do que telas LCD
– tamanhos de tela a partir de 42 polegadas, modelos de até 103 polegadas
– ideal para DVDs e sinal digital em widescreen 16:9

[ Desvantagens ]
– alto consumo de energia
– ao ficar muito próximo da tela, é gerado um efeito flicker que cansa a vista mais rápido
– imagens estáticas e tarjas pretas nas laterais queimam a tela
– para ser usado como monitor no PC, é inferior ao LCD por conta da resolução em pixels.
– possui mais reflexo do que o LCD, deixando a tela “espelhada” se houver incidência de luz direta (janela aberta, por exemplo), fenômeno também conhecido em monitores CRT

~~ [ - SUGESTÕES - ]~~
estas são interessantes para analisar, por seus diferenciais.
Vale lembrar que a melhor vai depender do seu gosto.

replace javascript

O método replace do javascript é usado para substituir alguns caractres por outros que você deseja em uma String.

sua sintaxe é assim:
stringObject.replace(findstring,newstring)

na prática usamos dessa maneira:



Plugins JQuery

Segue lista de alguns plugins do jquery


1. Interface ~ opções para movimentar divs, mudar tamanhos, criar slideshows, auto-completar, criar carrinho de compras e outras coisas.


2. jQuery Flash Plugin ~ “simples, mas poderoso” ~ detecta se o Flash está instalado, pede para instalar, é acessível e não obstrusivo! Possui códigos legais feitos com ele como inserir um mp3 player em Flash e vídeos do YouTube.



3. TableSorter ~ permite que o usuário edite a ordem dos dados de tabelas sem precisar recarregar a página.


4. jQMinMax ~ adiciona suporte a min-width, max-width, min-height e max-height onde eles não são suportados.


5. QuickSearch ~ plugin não-obstrusivo que busca textos e possui várias opções.

sexta-feira, 24 de outubro de 2008

Games para celular gratis

Sites que oferecem jogos para Iphone
Iphonegold
e celulares em geral
http://www.hovr.com/site/index.asp
http://sg.mosh.nokia.mobi/

Servidores para jogar CS

segue lista de servidores para você jogar CS

chamas.no-ip.org202.98.246.130
201.74.206.110
209.51.148.26
csdark.servegame.com
potterteam.servegame.com
200.68.95.202
209.51.137.139:27017
189.6.65.97
underlinegames.servegame.com
tlkclan.servegame.com
209.51.148.27
201.67.236.226
craustdf.servegame.com
200.37.130.32
209.51.137.140:27017
serverkikedsdm.servegame.com
200.223.102.22
189.1.172.185:10000
209.51.137.141:27025
tuliocamboriu.servegame.com
209.51.148.29:27017
83.222.183.126
tsy-team.servegame.com
faracs.servegame.com
189.1.172.185:27003
mitosjoga.servegame.com
209.51.148.28:27020
gygabyte.servegame.com
foxbyte.com.br
clanconhasv.servegame.com
209.51.137.142:27017
probr.no-ip.biz:27016
arenapenha.no-ip.biz
servertico.no-ip.info
83.99.150.195
cnx-team.servegame.com
201.0.163.201
cskteam.servegame.com
201.18.139.194
ctserve.ddns.com.br
clanlm.servegame.com
189.1.172.185:28000
heroesserver.servegame.com
201.87.95.154:16624
209.51.148.30
209.51.148.28
201.11.36.5
187.10.255.159:27016
hdroo.servegame.com
tribogames.servegame.com
raptores.servegame.com
nto.servegame.com
209.51.148.28:27019
209.51.137.141:27030
209.51.137.142:27019
200.220.200.98
niceteam.no-ip.biz:27016
209.51.137.141:27019
ferasdanet.ddns.com.br
mfteam.servegame.com

Counter-Strike - CS

Um pouco sobre o game CS:
Counter-Strike (também abreviado por CS) é um popular jogo de computador, mais especificamente um "mod" de Half-Life para jogos online. É um jogo de tiro em primeira pessoa baseado em rodadas no qual equipas de contra-terroristas e terroristas combatem-se até a vitória. Requer muita estratégia, trabalho de equipa, e habilidade para ser um vencedor. É acessível através do Steam. O jogo inicialmente era para ser um mod para o Unreal Tournament, mas a Valve viu uma oportunidade no jogo e compro-o. Em 2005/2006 saiu Counter Strike source, source porque utiliza o motor source,dando ao jogo uma física e uns gráficos excelentes.

O Counter-Strike foi um dos responsáveis pela massificação dos jogos por rede no início do século, sendo considerado o grande responsável pela popularização das LAN houses no mundo. O jogo é considerado um "desporto eletrónico". Muitas pessoas levam-no a sério e recebem ordenados fixos, existem mesmo clans profissionais, e que são patrocinados por grandes empresas como a Intel e a NVIDIA.

Pelo mundo existem ligas profissionais onde o Counter-Strike está presente, como o caso da CPL, ESWC, ESL, WCG e WEG. No caso da ESWC funciona da seguinte forma: cada país tem as suas qualificações no qual qualquer clan pode ir a uma qualificação em uma lan house em qualquer parte do mesmo país, passando depois às melhores equipes, as melhores equipes de cada país encontram-se depois no complexo da ESWC, localizado em Paris, para disputar o lugar da melhor equipe do mundo de Counter-Strike.

Com a chegada da seqüência de Half-Life, Half-Life 2, o Counter-Strike ganhou uma versão com gráficos mais actualizados chamada de Counter-Strike: Source, também acessível pelo Steam. Apesar de contar com gráficos mais bem elaborados e correção de erros, essa versão não é oficialmente utilizada nas maiores ligas competitivas principalmente devido a menor divulgação dessa versão e de inúmeras inovações negativas com relação ao ritmo de jogo, que nessa nova versão é sensivelmente mais lento do que nas antecedentes.