14 julho 2008

Técnicas para Diminuir o Consumo de Energia nos telefones celulares

Que os celulares de hoje têm maior poder computacional talvez não seja novidade para muitos, pois os aparelhos dispõem de mais processamento, mais memória e mais espaço para armazenamento de dados, quando comparados aos telefones de 5 anos atrás. Por outro lado, em relação as fontes de energia dos celulares - as baterias, temos outra realidade.

Encontrei um artigo muito interessante que recomendo a leitura, principalmente para desenvolvedores de software de celular. Trata-se de um mini curso visto no XXXVIII Congresso da SBC (Sociedade Brasileira de Computação), na Jornada de Atualização em Informática. O artido pode ser lido na integra através do link.

Técnicas para Diminuir o Consumo de Energia em Sistemas Embarcados
Autores: Edward David Moreno e Raimundo da Silva Barreto

"Resumo: O incremento na demanda dos usuários de dispositivos móveis e embarcados requer um incremento equivalente no desempenho do processador, o qual, por outro lado, causa um incremento no consumo de energia desses dispositivos. Assim, este trabalho visa apresentar a importância do consumo de energia e potência, enfatizando e mostrando quais são os componentes críticos em um dispositivo móvel. Depois, foca nas principais técnicas, estratégias e o impacto na diminuição do consumo de energia. As técnicas são apresentadas e discutidas em seis níveis, isto é, circuito, arquitetura, sistema operacional, compilador, comunicação e aplicação. Finalmente, apresenta-se um estudo de caso e uma discussão sobre os desafios futuros nesta área de pesquisa."

Artigo completo: http://www.prodepa.gov.br/sbc2008/anais/pdf/arq0060.pdf

Modelo apresenta o carregador ao lado de um vidro de glicose, que gera energia. (fonte: G1)

Existem projetos alternativos para geração de energia, até a Sony tá se envolvendo. Realmente existe uma grande demanda por bateriais otimizadas e de tamanho reduzido.

Um dos problemas observados: celulares com maior poder computacional aumentam a demanda por consumo de energia. Isso requer tecnologias que não são muito baratas e muita pesquisa na indústria, encarecendo o preço final. Por enquanto, podemos otimizar o uso da bateria seguindo boas práticas.

07 julho 2008

Curso de Segurança em Java: a importância da qualificação

Que o mercado de desenvolvimento de software está em alta não é nenhuma novidade. O problema, segundo especialistas, vai faltar profissionais qualificados nos próximos anos aqui no Brasil. Bom, isso pra mim não é novidade porque tem muita gente que acha que se aprende sem fazer na prática. Isso eu acho difícil, e quando chegam nas entrevistas, não tem nada para comprovar que já mexeu em alguma coisa de verdade.

Por outro lado fica a questão: já que este mercado é tão exigente COMO eu posso me qualificar para ser mais competitivo? Seja mais desenrolado. Ou seja, crie oportunidades e pretextos para estudar e fazer coisas na prática de programação.

Um curso gratuito e bem interessante para fazer coisas são os módulos do JEDI (Java Education and Development Initiative), no qual já falei aqui em post anterior. Pois é um treinamento para programadores. É claro, o sucesso deste curso dependerá de você realmente se dedicar.

Uma dica que costumo dizer em sala de aula é: se estiver estudando alguma teoria nova, seja lá qual for a sua área, coloque em prática o que está estudando. Se não for possível aplicar, então você deveria se questionar o porquê está estudando isso. Se conseguir, o aprendizado "será para sempre". Pelo menos no requisito de experiência.

Olha ai o plano de curso do novo módulo de SEGURANÇA do JEDI.

Lição 1 - Introdução a Segurança
* Conhecer sobre os principais aspectos de segurança
* Aprender boas práticas de segurança
* Observar as práticas de segurança aplicadas à linguagem Java

Lição 2 - Sandbox
* Identificar o modelo de segurança padrão empregado – Sandbox
* Conhecer os componentes da Sandbox
* Realizar as configurações dos componentes da Sandbox
* Definir os domínios de proteção de sua aplicação
* Aplicar a política de segurança, por intermédio das permissões
* Entender como as classes podem ser assinadas (certificação digital)

Lição 3 - Gerenciadores de Segurança
* Compreender a arquitetura dos Gerenciadores de Segurança
* Conhecer os métodos dos Gerenciadores de Segurança
* Construir um Gerenciador de Segurança customizado

Lição 4 - Segurança em Java
* Descriminar o que é Segurança
* Compreender o modelo de Segurança implementado em Java
* Obter mais dados sobre a Sandbox

Lição 5 - Classes de Segurança em Java
* Conhecer as regras e permissões de segurança
* Entender as classes de regras, de permissão e de acesso
* Aprender detalhes sobre exceções associadas a segurança
* Construir uma classe de permissão

Lição 6 - JAAS
* Trabalhar com a tecnologia JAAS
* Identificar as políticas de segurança de JAAS e seus arquivos de configuração
* Conhecer as classes de autenticação e autorização da tecnologia JAAS
* Programar e administrar através da tecnologia JAAS

Lição 7 - Criptografia
* Debater sobre os tipos de algoritmos criptográficos
* Conhecer as classes da arquitetura de criptografia Java

Lição 8 - Class Loaders
* Ter uma visão geral de funcionamento do Class Loader
* Compreender as considerações de segurança sobre o Class Loader
* Entender as classes do Class Loader

Lição 9 - Message Digest
* Conhecer os principais algoritmos de Message Digest
* Identificar os principais usos da utilização de Message Digest
* Empregar a classe MessageDigest em um aplicativo

Lição 10 - Listas de Controle de Acesso
* Conhecer as características da ACL
* Obter maiores informações sobre Java e as Listas de Controle de Acesso


Em resumo, pratique o que estuda, caso contrário, não vai aprender direito.

02 julho 2008

Motorola atualiza IDE Motodev Studio for Java ME e lança IDE para plataforma UIQ / Symbian

Motorola anuncia atualização da IDE Motodev Studio for JavaME bem como divulgou o lançamento da IDE para plataforma UIQ (Motodev Studio for UIQ Beta).


Essas IDEs são na verdade um conjunto de ferramentas baseadas na arquitetura Eclipse para o desenvolvimento de software em plataformas específicas, como Java ME, UIQ (Symbian), Linux for Java, etc. A tecnologia tem em comum uma plataforma base, ou seja, um CORE padrão para todas as IDEs. Isso permite padronização das features para cada plataforma específica, facilitando a personalização e a integração das diferentes ferramentas de cada tecnologia, sendo acoplada numa única IDE padrão do Eclipse, distribuidas de forma diferentes. Ex. Motodev para Java, Motodev para UIQ, ...

O Motodev Studio for UIQ Beta é uma IDE baseada em Eclipse para desenvolvimento de software em plataforma UIQ devices (rodando em SO Symbian). Suporta ambos UIQ 3.1 e UIQ 3.3 beta SDKs, oferece ferramentas para debugging, wizard para criação de pacotes, exemplos de aplicações entre outras funcionalidades.

Os telefones suportados são:
Já a IDE Motodev Studio for JavaME foi atualizada para versão 1.4. Incorpora todas as atualizações anteriores, com ênfase ao suporte para a JSR 248 full (Mobile Service Architecture) e JSR-180 (SIP API for J2ME), bem como provê suporte a novos telefones.

Uma feature interessante é o suporte ao On-Device Debugging, ou seja, pode-se rodar aplicações MIDlets diretamente no dispositivo alvo em tempo real. Essa feature é essencial para testar aplicações, pois permite testar no ambiente prático e não simulado (no caso do uso do emulador). No entanto, atualmente só tem suporte para sistemas operacionais baseados em Motorola OS (P2K). Próximas plataformas suportadas serão Linux for Java. Mais informações pode-se ler o release notes.

Os telefones suportados:

Handsets

Wireless Modules