Sociable

CRBluetooth: Projeto Open-Source de controle do PC via Bluetooth

Gostaria de divulgar um projeto muito interessante desenvolvido pelo colega Elio Eduardo chamado de CRBluetooth. O projeto consiste na construção de um aplicativo para dispositivos móveis que permita o controle de um computador através da conexão sem fio bluetooth.

Os aplicativos foram desenvolvidos em JavaME (aplicação cliente mobile) e JavaSE (Aplicação servidor desktop). O projeto foi desenvolvido como projeto de conclusão de curso do Élio e ele me pediu para que eu pudesse divulgar no blog esse projeto que é open-source e disponível para donwnload, tanto os executáveis como o código-fonte.

A idéia do Élio é permitir que outros desenvolvedores contribuam com o projeto dando sugestões, adicionando novas funcionalidades e até como fonte de estudos para outros que estão querendo desenvolver aplicativos com conexão sem fio bluetooth.

Sumarizando o que o aplicativo pode fazer, seria:

"O celular permite a execução de eventos de teclado e mouse, que são enviados para o servidor através de uma conexão SPP. Estes eventos são enviados para o Sistema Operacional através de um objeto da classe awt.Robot.

O aplicativo também permite a configuração da velocidade de deslocamento do mouse e dos eventos de teclado associados as 4 teclas de ação da Game API. As preferências do usuário são armazenadas através da Preferences API."

Um comentário adicional é que o aplicativo para fazer a conexão remota com o servidor, utiliza a biblioteca open-source bluecove que funciona como intermediário de comunicação entre o adaptador bluetooth e sua aplicação. Desenvolvida em Java! Para download ou mais informações, ver o site oficial do projeto bluecove.

O Aplicativo servidor funciona tanto no linux como no windows. Cool! =]


Segue o link do projeto.


Os fontes já estão la e nos downloads estão os arquivos de distribuição.


Quaisquer informações, procurar o Elio.

E meus parabéns, pelo bom trabalho realizado!


PyS60 1.9 foi lançado com novas features e suporte ao Python 2.5!


Fiquei surpreso com o presente que o ForumNokia lançou para os desenvolvedores Python! Já está disponível para download o PyS60 versão 1.9.0.

Este post sumariza algumas novas funcionalidades do PyS60 1.9.0. (Baseado no post do blog Croozeus ).


  • Talvez a principal novidade é que o pyS60 está baseado no novo core do Python 2.5.1. Isso inclui grande parte dos módulos existentes na biblioteca padrão, como o parser Expat XML, ftplib,smtplib,urllib2,xmlrpclib, HttpServer, cPickle, asyncore e maior compatibilidade com sockets. Garbage Collection está também incluso, então não há mais necessidades de desfazer manualmente as referências.
  • Gerar aplicativos executáveis (.SIS) agora está muito mais fácil (Tinha uma idéia engatilhada sobre isso). A ferramenta Ensymble com uma nova interface de usuário é agora a ferramenta oficial para geração dos arquivos .SIS.
  • Os aplicativos .SIS estão agora mais robustos. Se o runtime do Python está ausente e você tenta executar o aplicativo, uma mensagem de erro mais amigável é exibida em vez de um erro fatal incompreensível como era antes.
  • Se o aplicativo lançar uma exceção no ínicio de sua execução, a pilha de execução (logs de chamadas de onde a exceção foi lançada) é impressa na tela em vez de o aplicativo sair subitamente sem nenhuma informação.
  • Os aplicativos tem um console de texto padrão do mesmo jeito que tem no ambiente de desenvolvimento de scripts. Isso significa que usar os comandos print funcionam do mesmo jeito em aplicativos SIS empacotados quanto em modo script (.py).
  • Em dispositivos S60 3rd FP2, o acesso ao GPS funciona de imediato sem a necessidade de assinar o aplicativo (signing). Desde a versão Symbian S60 FP2 que a funcionalidade de localização já é ativada por padrão, agilizando o processo de testes.
  • A compatibilidade com o Python 1.4.x ainda continua. Então quase todas as bibliotecas APIs ainda continuam na versão 1.9. O resto vai sendo adicionado durante o lançamento de novas versões.
  • A inicialização do intepretador é mais lenta em comparação com as versões anteriores. Ainda está em fase de otimização.
  • O tamanho do arquivo de instalação do interpretador desta nova versão está muito maior que as versões anteriores. Isso faz sentido visto ao aumento de funcionalidades e bibliotecad dispostas na versão 2.5. Porém, há um trabalho intenstivo pela comunidade dos desenvolvedores do PyS60 para obter o arquivo de instalação com tamanho menos de 1 MB.
  • Há uma dependência maior em relação às bibliotecas OpenC, que devem ser intaladas para que o intepretador PyS60 funcione.
  • Os aparelhos S60 2 Ed. não são mais suportados a partir desta nova versão em diante. Isso se deve pelo fato que as bibliotecas OpenC (o qual o interpretador é fortemente dependente) não estão disponíveis no S60 2 Ed.
  • Esta versão inicial é voltada para os desenvolvimento de scripts e não há suporte ainda para desenvolvimento de extensões, já que o plugin para o C++ SDK não está incluso. Em breve estará disponível.
  • Compatibilidade entre as versões 1.9.x não são garantidas até a versão 2.0. É uma versão oficial porém acho que mais uma release para testes para a comunidade python.

Resumindo, pode-se concluir que:

Pros:

  • Suporte ao Python 2.5.1. Mais módulos disponíeis aos desenvolvedores. Isso significa mais estabilidade e mais funcionalidades ao alcance dos desenvolvedores.
  • Empacotamento de arquivos SIS. Pode-se considerar como a principal feature desta nova versão. A ferramenta Ensymble foi melhorada com a incrementação de uma nova interface GUI para facilitar o uso.
  • Tratamento de erros melhorado . Se o aplicativo lançar uma exceção no ínicio de sua execução, uma mensagem de erro é impressa na tela com informações de onde foi lançado a exceção.

Contras:

  • Instalação e inicialização mais demorada. Realmente a instalação e a inicialização foi muito mais lenta em comparação às versões anteriores. Isso já está sendo corrigido.
  • Sem suporte ao Symbian S60 2 End.. Devido à forte dependência do interpretador ao Open C, esta versão e as próximas não terão mais suporte ao aparelhos Symbian S60 2 End.

Notas:

  • Esta nova versão já funciona no S60 5th Edition, embora não tenha nada comentado à respeito a suporte de eventos touchscreen.
  • Aparentemente o PyS60 mudou seu site de hospedagem para: https://garage.maemo.org/projects/pys60/
  • A documentação agora não vem mais como um arquivo PDF (pelo menos nessa versão). Agora vem em formato HTML separados em vários documentos.

Embora esta versão não seja ainda completamente estável, acreido que seja uma prévia das várias versões 1.9 para o lançamento do PyS60 2.0!

Seria mais legal ainda, se um dia o PyS60 pudesse vir previamente instalado nos aparelhos Symbian. Será que isso será com o PyS60 2.0 ?

Recomendo o download!


To-do-list em Python S60

Achei esse programa bem legal desenvolvido em Python para celulares Symbian S60. Ele se chama IdeaList. Ele é um To-Do-list que permite você organizar suas tarefas e compromissos direto pelo celular.
Vejam o vídeo de demonstração:



IdeaList - feature demo from ranza on Vimeo.



Sim, o programa é open-source pela licença GPL v3.

Para acessar o site do projeto, clique aqui.

Fonte: Croozeus

Apresentação: Mobile Developer's Dilemma - What Should I build ?

Achei essa apresentação no blog Mobile Phone com o seguinte tópico: 'Mobile Developer's Dilemma- What Should i Build ?'

Essa apresentação foi realizada por Paul Golding (um dos especialistas da área de mobile) e traz diversas informações como:

  • A experiência do usuário
  • Contexto em ação
  • Negócios
  • Parcerias
  • Oportunidades atuais
  • Tendências em 2009


pgoldingbusiness.gif

Gostei das dicas, especialmente pelas novas tendências: Application Stores, Aplicativos envolvendo redes sociais e aplicativos web.

Recomendo a leitura!

Fonte: Mobile Phone Development
Olá pessoal,


Achei uma coletânea de posts com várias dicas para melhorar suas apresentações e palestras em público. Dicas que abrangem desde o comportamento até a estrutura da sua apresentação no powerpoint. Agradecimentos ao blog ciberg nético (colega Anderson Berg) pelas dicas apresentadas.

Post 1: Dicas - Prepare-se e organize-se para suas palestras

Post 2: Dicas - Faça sucesso com suas apresentações no powerpoint

Post 3: Dicas - Acabe com os marcadores (Comunicação eficaz)





Ps: Nada mais justo do que colocar a foto de um maiores apresentadores e palestrantes: Steve Jobs. O cara que quando vai apresentar nos principais eventos da Apple, faz as ações da Apple subirem antes da apresentação.
Achei esse conjunto de artigos publicados esse mês pelo Symbian Developer Network.

1) A Arquitetura de aplicativos que combinam várias linguagens, inclusive com os pontos fracos e fortes.

2) Como integrar o Python S60 com o Flash Lite e C++ (Flyer Framework e Extensões com Symbian C++)

3) Como integrar o flash lite com o C++ ou Java (KuneriLite ou Jarpa)

4) Como extender WRT Widgets

Quero destacar os artigo 2 e 3 que teve o apoio do colega Felipe Andrade (I2 Tecnologia) que escreveu sobre o Flyer e o Jarpa!

Muito bom o material, recomendo para estudo!

Vídeo sobre costumes dos japoneses em relação aos celulares

Vocês sempre quiseram saber os hábitos e costumes dos japoneses em relação ao uso dos celulares? E que tecnologias já estão por lá no Japão e que ainda aqui no Brasil está ainda longe de acontecer?

Vejam essa reportagem veiculada pelo Jornal Globo sobre os costumes dos japoneses em relação ao celular.

Veja o vídeo aqui.


Fonte: MobilePedia
Para os interessados em metodologias ágeis e que aplicam o SCRUM em seus projetos. Recomendo a leitura do livro: Scrum e XP direto das trincheiras escrito pelo autor Henrik Kniberg.

De acordo com o site INFOQ em parceria autor,

O livro oferece um ponto de início, através de um conto detalhado sobre como uma empresa sueca implementou Scrum e XP com um time de aproximadamente 40 pessoas e como ele continuamente melhoraram seu processo ao longo de 1 ano.

Este livro inclui:

  • Dicas práticas e truques para a maioria das práticas de Scrum e XP
  • Armadilhas típicas e como eleas devem ser trabalhadas
  • Diagramas e fotos ilustrando o dia-a-dia
  • Testes e test-driven development
  • Escalar e coordenar multiplos times
  • Lidar com resistência de dentro ou de fora do time
  • Técnicas de planejamento e estimativa
  • Prefácios por Jeff Sutherland e Mike Cohn

Scrum e XP nas Trincheiras


O mais legal é que o livro é gratuito e está disponível para download no site do InfoQ mediante um simples cadastro.
microsoftpatternsandpractices.gifPara os desenvolvedores .NET especialmente para a plataforma Windows Mobile, a Microsoft publicou um guia de 144 páginas: Mobile Application Architecture Guide. Esse guia provê uma visão geral e procedimentos para desenvolvimento de aplicativos na plataforma .NET. Embora seja focado especialmente em .NET, o seu conteúdo pode ser re-utilizado (padrões e práticas) em outros projetos mobile com outras tecnologias.

O público-alvo desse guia é desenvolvedores e arquitetos.

Os tópicos cobertos de acordo com o site, são:
  • Mobile Application Architecture
  • Design Considerations
  • Rich client vs thin Web client
  • Device types
  • UI
  • Authentication
  • Authorization
  • Caching
  • Communication
  • Configuration
  • Management
  • Data Access
  • Debugging
  • Logging
  • Porting
  • Deployment

Fonte: Mobile Development

Descobri pelo blog do Rodrigo Toledo que uma empresa chamada Ei Movil desenvolveu um pequeno programa que permitirá que os funcionários possam controlar seus pontos remotamente através do aparelho celular. O aplicativo foi desenvolvida em JavaME, e o controle do ponto para a empresa é enviada por meio de um SMS.

Eu me pergunto se esse programa realmente funciona ou se ajudaria os funcionários dormirem mais um pouco para iniciar a trabalhar... hehe =D


Mas é uma bela idéia, é!

Fonte: RodrigoSToledo.com

Um vídeo interessante que eu encontrei no blog Portabilidade BR falando sobre o MobileSocket. Simplesmente um programa no seu celular que permite você controlar o seu PC remotamente.

Vejam o vídeo do aplicativo em execução!



Mobile2Socket :: Teaser from Colmeia on Vimeo.
Seu sonho sempre foi querer que seu celular que pudesse controlar o seu carro de controle-remoto ? Pois é, isso é possível e com o seu Iphone!

Com o NerdKit é possível construir em um fim de semana todo o aparato necessário para controlar seu carro de controle remoto pelo celular. A idéia é que o mesmo sirva como um elo entre o PC e o carro. Além de ser um ótimo exemplo de entendimento e como os micro-controladores e sistemas complexos trabalham em conjunto, podendo ser desenvolvido em apenas um fim de semana em casa.
O kit que pode ser obtido no próprio site, por 79 dólares com desconto para estudantes. Achei bem legal todo o kit disponível e pela aparência do site as instruções não são tão difíceis de se realizar.

Recomendo a visita.

Vejam o vídeo-demonstração do carro controlado remotamente pelo celular:

[Artigo] : Redes Neurais - Perceptron de Uma camada

Olá a todos,

Gostaria de informar que irei escrever alguns posts em parceria com meu colega Luis Soares sobre idéias, tutoriais, artigos e notícias na área de inteligência artificial em geral. Claro que o tema mobile estará sempre envolvido, que é o foco desse blog.


Nesse primeiro artigo, estarei escrevendo sobre as Redes Neurais e algumas implementações simples desenvolvidas em Python. A minha idéia é montar um pequeno simulador que sairei portando implementações simples de conceitos relacionados à inteligência artificial para o celular Symbian S60. A escolha dessa plataforma é pelo fato de a mesma oferecer maior liberdade ao desenvolvedor com uma variade de plataformas de desenvolvimento. E também pelo fato que esse sistema operacional está presente em celulares inteligentes (smartphones), caracterizados pelo seu poder de processamento e memória acima dos celulares comuns.

Apresentando as Redes Neurais

O que são? - “São sistemas de processamento de sinais ou de informações, compostos por um grande número de processadores elementares chamados neurônios artificiais, operando de forma paralela e distribuída, de modo a resolver um determinado problema físico/computacional.”

Esquema! - (X1, X2, …, Xn) * (W1, W2, …, Wn) — F(x) — Y

Isso significa que uma Rede Neural, de um neurônio apenas, é um combinador linear que passa por uma função de ativação e dá um resultado Y, o mais interessante é que podemos programá-la para que ela dê o resultado que você deseje!

Com isso podemos fazer, dentre outras coisas, aproximadores de funções, associadores, classificação de padrões, predição futura, controle de sistemas, filtragem de sinais, compressão de dados, datamining, etc.

Redes Neurais podem ser de vários tipos, nesta parte básica vamos ver as mais simples, as Redes Neurais supervisionadas, que são treinadas (ou programadas) usando um conjunto de exemplos conhecidos, com atributos e respostas, e desta forma a Rede Neural “se acostuma” em dar os resultados desejados e passa a responder de acordo.

Programar uma Rede Neural é ajustar os valores do vetor W, de todos os neurônios, para que determinada entrada X, quando processada, resulte num valor Y desejado.

Eu irei começar com a mais simples redes neurais de todas, a Perceptron com apenas uma camada de neurônios e trabalhar sobre as diferentes arquiteturas e técnicas de aprendizado que eventualmente irão convergir para redes que podem prever tendências dos preços das ações de uma bolsa de valores, reconhecimento de padrões, processamento de linguagem natural, etc.

Todos os códigos serão escritos em python, e podem ser executados através do seu celular Symbian S60. No próximo post apresentarei a plataforma Python para celulares Symbian S60.

O Perceptron é o ancião de todas as redes neurais. Ela foi criada em 1957 nos laboratórios das forças militares por Frank Rosenblatt. O Perceptron é o mais simples tipo de rede neural diretas (Feedfoward) , conhecido como classificador linear. Isto significa que os tipos de problemas solucionados por esta rede neural devem ser linearmente separáveis. O que significa isso ? O gráfico abaixo ilustra facilmente o que ser um problema linearmente/não-linearmente separáveis em duas dimensões.

linearly separable linearly non-separable

Lineamente Separável.

Não linearmente separável.



A linha verde representa a separação entre duas classes de dados que uma rede está tentando classificar. Em três dimensões, isto seria representado por um plano, e em 4 dimensões ou mais por um hiper-plano. Há outros tipos de redes de neurais que pdoem solucionar problemas linearmente e não linearmente separáveis, que serão discutidas em futuros posts.

Para tentar resolver este problema, nós precisamos de uma rede representada pela figura abaixo.

single layer perceptron


Como vocês podem observar, cada nó de entrada (input) está diretamente conectado ao nó de saída (output). Ajustando os valores dos pesos (weight) que conectam tais nós , a rede é capaz de aprender.

Em uma simples demonstração, irei usar o conjunto de dados plotados no primeiro gráfico aqui apresentado como os dados de treinamento (conjunto de dados para treinamento). O conjunto de dados de treinamento será usado repetidamente como entrada para os nós de entrada (input) da rede neural, fazendo com que os pesos se ajustem até a rede neural atinja o desempenho e objetivo desejado, que é classificar um conjunto de dados linearmente separáveis.

Uma vez que a rede neural foi treinada, a aplicação irá acessar uma base de dados (diferente dos dados de treinamento) e irá provar que a rede neural aprendeu corretamente e tem a capacidade de generalização; ela pode encontrar respostas corretas mesmos quandos os dados de entrada estão incompletos ou quando a relação entre a entrada e a saída não é concreta.

O código abaixo mostra como isso foi realizado.

Um algoritmo simples

Este descreve apenas o funcionamento de um neurônio.



##################################################
# #
# Copyright 2008 Marcel Pinheiro Caraciolo #
# #
# #
# -- Perceptron Neural Net snippet code #
# -- Version: 0.1 - 12/12/2008 #
##################################################

#Snippet Neuron

from random import random

class Neuron:

def __init__(self,data,learningRate = 0.1):
self._learning_rate = learningRate
self._input,self._output = data
#Randomise weights.
self._weight = map(lambda x: x*random(), [1] * len(self._input))
#print self._weight
self._y = None
self._global_error = 0.0


def train(self,data):
self._input,self._output = data
#Calculate output.
self._y = self._sign(self._sum())
#Calculate error.
if self._error() != 0:
#Update weights.
self._adjustWeight()
#Convert error to absolute value.
self._global_error += abs(self._error())

def execute(self,input):
self._input = input
#Calculate output.
self._y = self._sign(self._sum())
return self._y


def _sum(self):
return sum(map(lambda x,y: x*y, self._input,self._weight))

def _sign(self,output):
if output < 0:
y = -1
else:
y = 1
return y

def _error(self):
return self._output - self._y

def _adjustWeight(self):
self._weight = map(lambda x,y: x + (y*self._learning_rate*self._error()),self._weight,self._input)

def getGlobalError(self):
return self._global_error

def resetGlobalError(self):
self._global_error = 0



E para executar o perceptron, que é o que irá apresentar os exemplos ao neurônio, temos:



##################################################
# #
# Copyright 2008 -Marcel Pinheiro Caraciolo- #
# #
# #
# -- Perceptron Neural Net snippet code #
# -- Version: 0.1 - 12/12/2008 #
##################################################


#Snippet Perceptron

from Neuron import *


class Perceptron:

def __init__(self,inputs,iterations=100):
self._inputs = inputs
self._refresh_inputs = list(inputs)
self._iterations = iterations
self._iteration = 0
self._neuron = Neuron(self._getRandInput())
self._train()


def _train(self):
while self._iteration <= self._iterations:
self._neuron.resetGlobalError()
self._refresh_inputs = list(self._inputs)
for i in range(len(self._refresh_inputs)):
self._neuron.train(self._getRandInput())
print "Iteration %d Error: %f" % (self._iteration, self._neuron.getGlobalError())
self._iteration += 1
if(self._neuron.getGlobalError() == 0.0):
break


def _getRandInput(self):
return self._refresh_inputs.pop()


def execute(self,input):
return self._neuron.execute(input)


def arange(self,start,stop=None,step=None):
if stop is None:
stop = float(start)
start = 0.0
if step is None:
step = 1.0
cur = float(start)
while cur <= stop:
yield cur
cur+=step

Execute as classes acima usando:




#main Logic

#Load sample input patterns
inputs = [ [[0.72, 0.82], -1], [[0.91, -0.69], -1],
[[0.46, 0.80], -1], [[0.03, 0.93], -1],
[[0.12, 0.25], -1], [[0.96, 0.47], -1],
[[0.8, -0.75], -1], [[0.46, 0.98], -1],
[[0.66, 0.24], -1], [[0.72, -0.15], -1],
[[0.35, 0.01], -1], [[-0.16, 0.84], -1],
[[-0.04, 0.68], -1], [[-0.11, 0.1], 1],
[[0.31, -0.96], 1], [[0.0, -0.26], 1],
[[-0.43, -0.65], 1], [[0.57, -0.97], 1],
[[-0.47, -0.03], 1], [[-0.72, -0.64], 1],
[[-0.57, 0.15], 1], [[-0.25, -0.43], 1],
[[0.47, -0.88], 1], [[-0.12, -0.9], 1],
[[-0.58, 0.62], 1], [[-0.48, 0.05], 1],
[[-0.79, -0.92], 1], [[-0.42, -0.09], 1],
[[-0.76, 0.65], 1], [[-0.77, -0.76], 1]]


perceptron = Perceptron(inputs,1000)

#Display network generalization
print ""
print "X, Y, Output"
for i in perceptron.arange(-1,1,0.5):
for j in perceptron.arange(-1,1,0.5):
#Calculate output.
result = perceptron.execute(list((i,j)))
if result == 1:
result = "Blue"
else:
result = "Red"
print "%f %f %s" % (i,j,result)


A saída da rede após o treinamento é exibida conforme abaixo, o que prova que a generalização foi atingida. Cada par de coordenadas (x,y) quando apresentadas à rede, retorna a classificação esperada, isto é, vermelho ou azul.


(...)
X, Y, Output
-1.000000 -1.000000 Blue
-1.000000 -0.500000 Blue
-1.000000 0.000000 Blue
-1.000000 0.500000 Blue
-1.000000 1.000000 Blue
-0.500000 -1.000000 Blue
-0.500000 -0.500000 Blue
-0.500000 0.000000 Blue
-0.500000 0.500000 Blue
-0.500000 1.000000 Red
0.000000 -1.000000 Blue
0.000000 -0.500000 Blue
0.000000 0.000000 Blue
0.000000 0.500000 Red
0.000000 1.000000 Red
0.500000 -1.000000 Blue
0.500000 -0.500000 Red
0.500000 0.000000 Red
0.500000 0.500000 Red
0.500000 1.000000 Red
1.000000 -1.000000 Red
1.000000 -0.500000 Red
1.000000 0.000000 Red
1.000000 0.500000 Red
1.000000 1.000000 Red


Analise o objeto criado, seus métodos e pesos, verifique que com o método “execute” você poderá testar se as respostas estão sendo dadas corretamente.


Além de problemas triviais como este de classificação de 2 dimensões , o Perceptron pode realizar uma análise mais poderosa em mais dimensões. As regras genéricas aqui apresentadas são também aplicáveis.


No próximo post, eu falarei mais sobre a Adaline, que é outro tipo de rede neural feedfoward como o Perceptron.

Download dos códigos aqui.

O que é A-GPS ? (GPS Assistido)

Gostaria de fazer uma referência a um post do blog VivaSemFio que explica o que é e como funciona o A-GPS (Assisted Global Positioning System) - GPS assistido -, recurso esse cada vez mais presente nos telefones celulares.

Recomendo a leitura!

Computação Móvel e Computação Inteligente : Juntos!

Uma tendência na área de computação que vem crescendo nas últimas décadas é sem dúvidas, o surgimento de dispositivos cada vez mais menores e pessoais. Sistemas monolíticos, os famosos mainframes utilizados por diversos usuários estão quase que extintos dando lugar aos poderosos computadores pessoais, considerados como os primeiros marcos dessa evolução. Mas nós sabemos que os PC's não são o fim dessa linha.

Os computadores pessoais estão ficando mais portáveis e menores. Exemplos como notebooks e os famosos palmtops (PDAs) ficaram extremamente populares. Mas esse não é o fim deste processo. O próximo passo são os computadores "vestíveis" que podem ser carregados como roupas e novas interfaces que ligadas ao cerébro do ser humano, ampliam a visão da realidade pelo usuário. Isso nos faz ter uma previsão preliminar de que todo esse desenvolvimento faz conceber de que os computadores não serão apenas dispositivos encapsulados em gabinetes, mainframes ou mini-gadgets, mas tomarão forma de um ambiente computacional inserido no contidiano do usuário, seja embutido em roupas, carros, setup-boxes, microondas, ou até em garrafas de leite.

De acordo com a visão futurista dessa nova infra-estrutura computacional por muitos estudiosos desse novo campo de pesquisa, também denominado de computação ubíqua, por exemplo, seria a possibilidade de um dia as pessoas poderem ser lembradas de comprar leite quando elas estiverem no supermercado, através de uma mensagem enviada até o seu relógio, celular, ou até seu óculos pela sua geladeira que monitora automaticamente todo o seu estoque interno. Existem, é claro, outros cenários que os usuários podem receber mensagens personalizadas de acordo com a situação e contexto que o usuário estiver inserido.

Embora, a idéia de uma garrafa de leite computadorizada seja apenas uma pequena idéia de pesquisa, está mais visível que a informação de hoje está rapidamente se movendo para pequenos dispositivos hi-tech eletrônicos saíndo de rascunhos e protótipós de laboratório até as prateleiras de lojas e no nosso dia -a - dia. Celulares, PDAs, laptops, parecem convergir para uma nova geração de dispositivos inteligentes com comunicação sem fio e razoável poder computacional para uso diário. Novos protocolos de comunicação e padrões inseridos em redes sem fio de banda larga permitem o acesso à informação em quaisquer lugares. Combinado com o posicionamento através de satélites (GPS) ou através dos sinais das antenas das operadoras telefônicas utilizadas pelos aparelhos móveis, os novos serviços disponibilizarão a capacidade de localização do usuário.
Mas não só apenas um hardware poderoso com acesso a uma rede sem fio garante a usabilidade desses sistemas móveis. Alguns softwares e serviços tradicionais podem ser usados nesses dispositivos, mas outros simplesmente não serão utilizáveis ("viáveis") quando não se tiver acesso a um teclado ou até pela resolução ou tamanho da tela ser reduzido. Logo, o grande desafio para o sucesso e popularização dos sistemas móveis é o design de interfaces e softwares inteligentes que permitem o fácil acesso a informações pessoais e flexibilidade suficiente para o tratamento de mudanças de contexto de usuário ou disponibilidade de recursos.

Existem inúmeros problemas que devem ser solucionados a fim e tornar essa nova infra-estrutura viável e útil para os usuários móveis. Entre os diversos problemas , podemos destacar:

- Informações relacionadas à contexto/situação
- Informações relacionadas à localização
- Interação e usabilidade em dispositivos móveis
- Interfaces de usuário inteligentes
- Adaptação a recursos limitados
- Tolerância a falhas
- Descoberta de novos serviços, busca de informações, etc sobre contexto.
- Sistemas baseados em investigação do comportamento do usuário, etc.

Algumas aplicações de pesquisa no campo de Inteligência artificial tem investigado os problemas de desenvolver interfaces inteligentes e cooperativas por vários anos e tem explorado fortemente com a questão de disponibilidade de recursos, que em dispositivos móveis são limitados.

Portanto, técnicas inteligentes podem prover um conjunto de soluções para esses problemas. Como também ferramentas bem promissoras para desenvolvimento de sistemas móveis que utilizam recursos de localização e contexto para dar suporte ao usuários de uma forma não intrusiva.
Não só apenas técnicas de I.A. podem ser utilizadas na construção de sistemas móveis assistentes, um outro grupo bem diferente de técnicas podem ser também integradas a fim de atingir um objetivo satisfatoriamente. Por exemplo, o aprendizado, é um fator crucial para serviços adaptáveis baseados no uso do usuário. Técnicas como aprendizado simbólico de I.A até redes neurais podem prover a flexibilidade necessária para um sistema que se adapta às preferências do usuário em diversos contextos. Há questões também relacionadas à sistemas baseados em localização. Com estes métodos, eles podem ser usados em serviços adaptáveis para localização inteligente do usuário, como por exemplo tomada de decisões em sistemas de navegação ou busca contextual de informações de acordo com a localização.

É com essas idéias em minha mente que venho nesse blog também a partir das próximas semanas apresentar conceitos relacionados à inteligência articial aplicada em sistemas móveis, com discussões de tópicos introdutórios e avançados para o estudo de I.A trabalhando em conjunto com o desenvolvimento de aplicativos e serviços móveis.

Para finalizar, acho que une as duas coisas que mais me motivam a continuar mais estudando e explorando o mundo da computação: Computação Móvel e Inteligente. Porque então não unir os 2 campos ?

Este blog é o portal das oportunidades! Estejam antenados.
Olá pessoal,

Gostaria de compartilhar com vocês um achado bem interessante que o usuário "nitaibezerra" comentou no meu blog sobre aquela idéia de desenvolver um sistema de buscas de transportes coletivos. Fiquei surpreso ao ver que já tem um sistema desse em desenvolvimento e já disponível para o público (versão beta) : Omnibus. Um sistema web que permite que o usuário enconre informações sobre rotas de transporte públioco na região metropolitana do Recife.
Decidi, testar o sistema e na sua página inicial, já nos informa as suas funcionalidades:
  • Obtenha a descrição da rota com explicações passo a passo.
  • Encontre paradas de ônibus por bairro.
  • Visualize a rota de ônibus na sua região.
  • Realize buscas por pontos de referência.


C0loquei o Endereço de minha residência como ponto de origem e o do meu trabalho como ponto de chegada. Com uma interface intuitiva (lembrando ao google maps) ele exibiu todo o percusso necessário que eu necessitava fazer para chegar até o local desde a saída da minha residência até o local desejado. Informou as linhas, as paradas de ônibus, o tempo de viagem... resumindo grande parte das minhas idéias foram atendidas por esse sistema. Descobri também que o sistema é colaborativo, logo os usuários cadastrados podem cadastrar novos pontos de parada a fim de melhorar a precisão da busca do sistema. Realmente, gostei muito do aplicativo e gostaria de saber quais algoritmos de roteamento por trás estão por trás de calcular todas essas rotas. Parabéns à Inove tecnologia pelo trabalho e sem dúvidas ficou um programa fácil de usar e bem intuitivo.

Clique na figura abaixo para ampliar.



Ah! E só para não esquecer, eles também disponibilizaram uma versão mobile da página (com conteúdo todo em texto sem disponibilidade de visualização de mapa, acho que até paa reduzir os custos no trafégo de dados) . Realmente, leram todo o post do meu blog!! =D

Recomendo a visita!

Ferramenta Carbide.C++ 2.0 agora é Free!

Free Carbide


Bela Notícia aos desenvolvedores Symbian!!!

A ferramenta Carbide.C++ 2.0 foi lançada hoje e com grandes surpresas inclusive. Uma delas foi a agradável notícia que todas as versões do Carbide.c++ agora são gratuitas (sem custos)!.

Logo a versão Express não existirá mais a partir esta versão. Isso inclui ferramentas como o Carbide.UI que permite a construção de interfaces para UIQ e S60 através de componentes (drag-drop) e a depuração on device (On device debugging). Ótima notícia!

Recomendo o download!! Isso significa mais desenvolvedores desenvolvendo para Symbian e consequentemente mais aplicativos disponíveis. A Nokia e o Symbian perceberam que o mundo do "open-source" é o caminho! hehe. =]

Mais informações na pagina oficial da ferramenta.
O futuro:

"Aponte a câmera do seu celular para um objeto, e ele automaticamente te fornece informações relacionadas àquele objeto reconhecido." "Point and Find!"

Seria muito legal ter todas informações diretamente no seu celular sem a necessidade de ter quer fornecer inúmeras entradas a partir do teclado do aparelho. Já pensou, você apontar a camêra do seu celular para um poster de um filme em cartaz no cinema e o aparelho fornecer informações como o cinema mais próximo com o filme em exibição (via GPS) , críticas do filme, resenhas, sinopse, etc. Vejam o vídeo abaixo, para vocês terem uma idéia das inúmeras oportunidades que esse tipo de serviço pode oferecer.



Fonte: Symbian Blog

Monitore ambientes com o seu celular.

Interessante notícia que eu encontrei no blog Mobilidade é tudo, sobre o novo produto da motorola chamado de Motovision. Esse gadge permite monitorar ambientes pelo celular, isto é, permite enviar vídeos e imagens para até 5 celulares. Um possível uso desse sistema seria a transmissão de imagens de uma residência para o dono quando ele estivesse viajando.

Vejam o vídeo do Olhar Digital, para entender mais sobre essa plataforma.
ZonaAzulAcabei de ver uma notícia interessante no blog MobilizadoBlog, a respeito de uma nova tecnologia que está sendo implantada em São Paulo: O Zona Azul eletrônico. A CET (Companhia de trânsito) irá testar os novos modelos de cobrança de estacionamento para a zona azul. Para isso, o sistema vai contar com a ajuda dos celulares dos motoristas. Para que o usuário possa usufruir do sistema, primeiramente ele deve se cadastrar, ligando para um número específico e fornecer o CPF e o número de cartão de crédito. Logo, quando o motorista precisar estacionar é só telefonar e digitar o número da vaga indicado na placa da rua. Na hora de ir embora basta ligar de novo e desativar o serviço.

Bem interessante, esse serviço que inclusive o próprio governo com o auxílio do FINEP está financiando projetos com zona azul eletrônico. A Qualitá Informática foi uma das contempladas e seu projeto desenvolvido permitirá que o usuário estacione seu veículo numa área de Zona Azul e pague a tarifa com seu aparelho celular. O sistema calcula o valor do estacionamento e o transmite ao motorista, que pode pagá-lo na conta de telefone no final do mês ou incluir créditos exclusivos para o fim.

Há até uma reportagem do SPTV falando mais sobre o projeto do zona azul eletrônico em São Paulo. Vejam aqui o procedimento com detalhes.



Fonte: Mobilizado Blog


Qual a diferença entre arquivos .sis e .sisx ?

Uma dúvida que sempre surge entre usuários e desenvolvedores dos celulares Symbian é em relação aos arquivos de instalação de aplicativos e jogos. Geralmente, ele são fornecidos de duas formas : arquivos ".sis" ou ".six".
Qual a diferença??

Resumindo, os arquivos .sis são para versões antigas de celulares embarcados com S.O. Symbian anterior ao 8.1. No entanto, eles ainda podem funcionar em sistemas mais atuais, mas seu funcionamento não é garantido.

Já os arquivos .sisx são para celulares com Symbian 3rd Edition ( a partir do 9.1).

Outra questão que sempre surge entre os usuários de Nokia são os arquivos de instalação de aplicativos e jogos. Normalmente, eles são fornecidos pelas empresas de duas formas: arquivos “.sis” ou “.sisx”.

Basicamente os arquivos .sis são para versões antigas de celulares com o sistema operacional Symbian anterior ao 8.1. No entanto, eles ainda podem funcionar sistemas mais atuais, mas seu funcionamento não é garantido.

Se você não sabe qual é a versão do seu celular, vá até o link http://www.forum.nokia.com/devices/matrix_all_1.html que lá fornece todo o quadro de celulares e suas versões de software.

Dúvida comum e solucionada!

Fonte: Nokia Guru

Saiu a nova versão do Python para S60 (Versão 1.4.5). Entretanto, não se contentem muito que não foi nessa versão o suporte ao TouchScreen. Embora seja mais uma versão de manutenção (conserto de bugs), ele trouxe algumas novas funcionalidades:

  • Added the possibility to run Python code in threads that weren’t started by Python itself
  • Added timeout support to globalui module
  • The positioning module has been made safe to use from several threads.
  • Support for the “description” field has been added to the calendar module

A nova versão para download se encontra aqui.

Há alguns dias estava lendo em alguns blogs à respeito do Home Control Center. O que seria esse produto ? Seria um tipo de comutador, um servidor que permitiria integrar o controle de várias funcionalidades da sua residência incluindo monitoramento de energia elétrica, ativação remota de dispositivos, segurança com seu telefone celular ou computador.
Óbvio que o projeto não será algo tão "escancarado". Embora a idéia seja que desenvolvedores e parceiros terceiros possam contribuir com o servidor seja através de adição ou manutenção de novas funcionalides, a Nokia (responsável pelo produto) quer fazer os ususários possam usar adequadamente o sistema tornando o consumo de energia o menor possível. Para isso ela fez uma parceria com a provedora de energias alemã RWE que está auxiliando no desenvolvimento desse projeto. O potencial é muito grande, especialmente nessa nova área de automação residencial. Acredito que o dispositivo móvel é a interface ideal para controlar toda a " inteligência domiciliar.", especialmente quando o usuário nao está dentro de casa.

Algumas serviços interessantes seriam algo do tipo, quando você recebe uma notificação seja por SMS ou por outro aplicativo quando alguém toca sua companhia. Se você tiver um sistema de segurança de câmeras interna, você poderia receber uma foto da pessoa e até a possibilidade de você liberar remotamente a porta para ela entrar. Delírio ein?!



As principais áreas de foco do Home Center serão:

  • Segurança
  • Energia e eficiência
  • Bem-Estar
  • Construção e Design
  • Automação residencial
Nokia pretende lançar este produto na Europa em meados de 2009. Enquanto isso, você já pode dar uma olhada nas especificações do projeto que será um roteoador Wi-Fi com portas de entrada USB, ethernet, cartoes SD, e até conectividade com GPRS. Isso inclui também suporte ao celulares S60 e todos os celulares (sem ser nokia ) com browser mobile. Ah, e a Nokia vai liberar a API para que outras fabricantes possam desenvolver e integrar suporte a seus dispositivos no Home Control center. Mais informações vocês podem ouvir a apresentação do produto ( audiocast presentation) ou acessar o site nokia.com/smarthome.

Hoje durante o Nokia World em Barcelona, houve uma demonstração do Home Control Center. Vejam o vídeo abaixo de como ele funciona:








Fonte: Symbian Freak

JavaOne 2009: Submeta suas idéias/projetos!


Aproveitando o último post, também comento sobre o JavaOne 2009. Um evento realizado anualmente promovido pela SUN nos EUA para promover e divulgar inovações e novidades com a tecnologia Java. Ano que vem será em San Francisco nos dias 02/06/2008 a 05/06/2008. O mais legal é que se você tiver alguma idéia bem maneira para JavaME para ser apresentada na conferência, você pode submetê-la!

Há possibilidades de você participar também! O prazo de envio do abstract é até 19-12-2008.

Mais informações:

Do you have a cool Mobile idea for JavaOne?

Sei que está um pouco em cima, mas a informação é válida!

Para os desenvolvedores mobile em geral, a Nokia lançou o 1º Concurso Nacional de Desenvolvimento de Aplicativos para Aparelhos Nokia.
Para maiores informações visitar o link anterior ou o site Forum.Nokia.

Vejam um pequeno resumo provido pelo site da Nokia sobre o concurso:


Crie um aplicativo para um aparelho Nokia e concorra a até 10 mil reais!

Serão avaliadas a qualidade do código, a melhor interface para o usuário e a inovação. Você pode criar o aplicativo em duas plataformas: S40 e S60. Vale lembrar que o peso limite dos arquivos deverá ser de 130kb para S40 e de 500kb para S60 e que o código fonte não poderá ser fechado e nem comercial.

As inscrições são válidas até o dia 15 de dezembro e as criações serão julgadas pelo Instituto Nokia de Tecnologia - INDT. A divulgação dos vencedores será no dia 19/12/2008, no blog Sem Limites.

Encontre informações técnicas sobre o funcionamento dos aparelhos e suas tecnologias em www.forum.nokia.com. Aproveite também para testar a usabilidade da sua criação nesse site.

Além do prêmio em dinheiro, os ganhadores terão a possibilidade de ver seus aplicativos embarcados em novos produtos da Nokia, de fazerem parte da equipe de colaboradores do INDT e de até terem seus nomes divulgados pela Nokia.
Um dos meus costumes estranhos é de vez quando dormir ouvindo música. Geralmente coloco meu mp3 player ou meu celular com músicas mais sossegantes no fone de ouvido e me deito até pegar no sono. Claro, que isso tem um preço: A bateria do seu aparelho vai pelo espaço! Aí pensei, porque nao ter um aplicativo no celular que pudesse saber de alguma maneira (configuração ou falta de iteração do usuário) que eu estivesse dormindo e automaticamente desligaria o player de multimídia.
Eis que surge então o famoso Sleep Music. Um aplicativo para celulares Symbian desenvolvido em python que permite que você possa configurar um tempo pré-definido que o player ou o rádio do seu celular seja desligado. Logo, assim que o tempo se esgotar, o aplicativo fecha automaticamente, não necessitando que você tenha que desligar o aplicativo antes de dormir. Você poe até configurar para que ele desligue o telefone após algum tempo.


Sleep Music - Share on Ovi


A outra sacada do aplicativo é que vocÊ pode configurar ele para desativar o player quando o telefone estiver inativo por um determinado tempo (sem movimentaçoes, pressionamento de teclas, chamadas, etc.)

Recomendo o uso!! Posso dormir agora sem me preocupar em desligar o celular. Meu sono agradece! =D

Para instruções de download, ver esse site.

Fonte: Symbian Blog

SiSXplorer: Explorer os pacotes .SIS dos aplicativos Symbian

Para aqueles que querem ver o conteúdo dos pacotes . SIS (Não, não é possível ver o código-fonte!), há um programa bem interessante chamado SISXplorer.

Veja o que você pode fazer com ele:

Extrair todas as imagens de temas para os aparelhos Symbian terceira geração.
Inspeciona a fundo o conteúdo de cada arquivo usando o visualizador hexadecimal integrado (Integrated Hexadecimal Viewer).
Apenas abre um pacote em formato SIS para ver todo o conteúdo por meio de uma visualização em árvore, para cada arquivo selecionado será mostrado as informações detalhadas e (se avaliável) o SISXplorer irá mostrar a sua pré-visualização.

Visualiza e extrai os arquivos contidos dentro dos arquivos SIS.
Visualizador de arquivos TXT, exibindo todo o conteúdo disponível.
Visualizador E32: mostra informações detalhadas contidas dentro do cabeçalho do arquivo executável.
Visualizador RSC (em versão de testes): visualiza os recursos do aparelho celular.
Visualizador MIF (em versão de testes): visualiza e extrai arquivos de ícones SVG.
Administrador MBM integrado: visualiza e extrai imagens e ícones dos seus temas favoritos.
Visualizador Hexadecimal Integrado: inspeciona o conteúdo de cada arquivo.
Execução e extração rápida (Quick Open/Extract): usa a função “agarre e solte” para extrair rapidamente os arquivos.
Visualizador Múltipo de Arquivos: permite ao usuário abrir simultaneamente vários arquivos de uma vez e extrair os arquivos contidos com apenas um clique.
Visualizador de informações: mostra informações detalhadas sobre o arquivo e os arquivos contidos dentro dele.

Para fazer download aqui.

Fonte: NPossibilidades.


Já pensou você ter um celular que pudesse executar determinadas ações sempre que você passasse perto de algum lugar. Seria algo como, se você está passando perto de um supermercado ou um banco, ele te lembra de contas a pagar ou quando está chegando perto do trabalho, ele avisa daquela reunião marcad para aquele dia.

Seria algo como um mordomo pessoal de bolso. Você poderia definir os perfis do teu celular, acessar páginas web específicas ou até abrir programa e ativar seu bluetooth.

Existe algo assim já pronto ?!

GPS Action - Seu

Sim, existe! O Gps Action faz exatamente isso com o uso das coordenadas obtidas pelo GPS embutido pelo aparelho. E os aparelhos sem gps ? Sim, também funciona! Aí nesse caso usa a posição obtida pela antenas das operadoras de celular.

Muito interessante e até útil o aplicativo! Abre um nicho para outras idéias a partir dele.

Para mais informações, ver o site oficial do aplicativo.

Fonte: NPossibilidades


Nokia decide parar suas vendas de mobile no Japão. Como assim ?!


Estava lendo algumas notícias sobre o mundo mobile, quando eu vi essa notícia à tona: Nokia to Stop sales in Japan and concentrate on the Vertu models only. Chamou-me atenção pelo seguinte aspecto: Nokia para de vender aparelhos no Japão ?! Como assim ?! Nokia líder mundial em vendas famosa pelos seus aparelhos N95, E61, etc. Pois é, de acordo com as fontes da notícia, a Nokia decidiu investir somente em pesquisa de aparelhos e software e em vendas de um modelo específico da Nokia: Vertu. Agora, veja que a Nokia é a quarto maior país em mercado mobile, perdendo apenas para Índia, China e Estados Unidos. Porque ela perderia uma "fonte" preciosa como essa?
Fui pesquisar logo sobre esses modelos da nokia: Vertu. E descobri que é uma linha de aparelhos luxuosos da Nokia feito com materiais especiais. Ou seja, essa linha é focada em design e luxo em vez de funcionalidades como são hoje os aparelhos da Nokia.

Uma busca mais refinada, pude encontrar que no Japão, o mercado de aparelhos móveis é predominantemente formado de aparelhos de tecnologia 3G , tv digital e mobile-payments (m-payments) transações financeiras através do celular. Como todas essas plataformas dependem muito das empresas locais no Japão (bancos, operadoras telefônicas, empresas de mídia) as parcerias com fabricantes locais de celulares acaba se tornando meio que natural. Fora, que no Japão, a tecnologia lá sempre foi de ponta cheio de inovações seja na robótica, automação e eletrônica. Os hábitos dos japoneses são bem diferentes do resto do mundo, onde wi-fi, gps, acelerômetro são funcionalidades "manjadas."

Não sei o que isso vai repercutir, mas fica claro que o Japão é um mercado a parte de se estudar e de se entender comportamentos e hábitos de uma população movida por tecnologia.

Dicas de JavaME; Blog Small and Adaptive

Gostaria de recomendar um blog muito bom com dicas e tutoriais para os desenvolvedores de JavaME. O blog Small and Adaptive contêm várias dicas e pequenos "quebra-galhos" que podem ajudar nas práticas de desenvolvimento de aplicativos móveis com JavaME.

Recomendo a leitura! E parabéns pelo material ao colega Telmo! =D

Segue o link do mesmo, aqui.

WikiTude : Poder da realidade aumentada em ação no seu celular

Pense a seguinte situação:

Você é um turista e está em Recife no Recife Antigo. Esse bairro é conhecido por ter vários monumentos e lugares históricos. Geralmente você usaria um guia seja através de folders, livros ou mapas ou um profissional da área de turismo que te explicaria informações das atrações e marcos importantes relacionados sobre aquele ponto histórico.
Agora, já pensou se você tivesse um aparelho com algum dispositivo de reconhecimento de imagem integrado capaz de quando você apontar o mesmo para algum lugar ele conseguisse obter todas as informações relacionadas direto na tela ? Vamos voltar ao exemplo, se você é um turista e apontasse seu aparelho para uma estátua, ele mostraria a imagem real como se tivesse filmando a estátua e ao mesmo tempo traria informações na tela sobre a estátua. Datas, marcos, acontecimentos, etc.

É uma idéia fascinante não é ? Também achei. A idéia ficou mais legal ainda quando pensei logo no meu celular (claro que com uma tela maior ) para fazer esse tipo de reconhecimento. Um celular com uma tela razoavelmente grande (Iphone, por exemplo) seria suficiente. Eu apenas apontaria a camera do meu celular para o local e ele exibiria as informações na tela sobre o lugar focado. Esses dados seriam obtidos a partir de servidores remotos conectados por Wi-Fi, 3G ou outro tipo de conectividade sem fio.

Seria algo do tipo de realidade ampliada integrado com GPS (para obtenção da localização) e uma base dados do tipo Wiki (fonte onde coletaria as informações do local). Um aplicativo desse seria fascinante, não ?!

Fui logo buscar no google algo relacionado, e como sempre... O google não falha! E lá estava o Wikitude.

O que é esse aplicativo? Ele faz exatamente o que eu descrevi acima. O aplicativo já se encontra disponível já para download no Android Market para aparelhos com sistema Android.
Pois é, idéias inovadoras são difíceis hoje, especialmente quando você tem ferramentas como o Google para acelerar esse processo. Mas, de toda maneira fico feliz de ter tido idéias que já estão sendo produtos na realidade. Realmente, me surpreendi com o poder desse aplicativo!


Augmented reality using Wikipedia and Panoramio landmarks


Vejam o vídeo do WikiTude em ação:






Fonte: IntoMobile
Novas experiências com o uso do seu telefone para jogos:

IFun.

É possível tornar seu celular como um controle de videogame como o Wii podendo jogar na tela do seu computador ?

Vejam o vídeo abaixo:




Fonte: TechCrunch

O que é MAS ou Mobile Application Stores ?


Vocês sabem o que significa a sigla MAS ?

Pois, fiquem antenados! Que essa sigla é mais uma que está entrando no gigantesco emanharado mundo dos termos geeks! MAS ou Mobile Application stores (Lojas virtuais para venda e distribuição de aplicativos móveis) são as mais novas soluções que prometem um novo meio de obter lucro especialmente para operadoras telefônicas, fabricantes de aparelhos móveis e desenvolvedores móveis. E vocês por acaso conhecem algum MAS ou já ouviram falar de algum ? Possa ser até que você tenha já tenha ouvido ou lido sobre à respeito mas nunca tinha parado para pensar que "isso" era um MAS. Ou você já até acessou um e não sabia! Quem nunca baixou um ringtone pelo celular ? As operadoras distribuiam ringtones através de portais wap pelo celular, onde o usuário digitava o código do ringTone desejado e enviava um sms para a operadora e ela enviava o toque direto para o seu fone. Isso é um exemplo (claro, meio que arcaico) de uma MAS.
Outros exemplos mais recentes : A Claro Idéias com seu portal de distribuição de aplicativos e o Portal Tim Wap ( da TIM) são exemplos brasileiros de MAS. Você através de um serviço do seu celular acessa um portal ou por algum outro meio, seja em formato aplicativo ou web, baixa conteúdos (músicas, vídeos, aplicativos) direto para seu celular.

Embora já existam esses portais, ainda assim, eles ainda não viraram mania ou algo indispensável para um usuário que tem um celular. Outra dificuldade encontrada é fazer download de aplicativos e jogos para o celular de um só lugar. Fica difícil encontrar um portal que possa oferecer distribuição de aplicativos onde eu possa fazer buscas integradas, achar o que eu necessito, fazer o download de forma rápida sem me preocupar com versões ou compatibilidade de aparelho e poder utilizá-lo sem muitas complicações.

Daí, surgiram lojas como A Apple App Store (Itunes store) para distribuição de aplicativos para seus aparelhos Iphone/Ipod touch. Realmente acho que foi um dos marcos do início da nova era dos MAS dando mais opções e maior interatividade com o usuário. Agora recentemente, tivemos o lançamento do Android Market, (Loja para aplicativos móveis para o sistema Android da Google), e até portais clássicos como GetJar (para aplicativos em JavaME) , o Handango (para Palms e Windows Mobile) , etc.

Vejo que a tendência é ter cada vez mais portais integrados para distribuição de aplicativos a fim de unir as pontas que antes estavam soltas: Desenvolvedor + Fabricantes de aparelhos móveis + Operadoras + Clientes.

Recomendo fortemente a leitura desse post- artigo do blog VisionMobile em inglês falando sobre as lojas virtuais (MAS). Sem dúvidas, uma ótima fonte de conteúdo para quem quer entender mais sobre essa tendência.

Diagrama de funcionalidades de uma MAS

Mobile Applications Stores - features list



This image has no alt text

Vocês conhecem o Best Profiles? Pois, deviam conhecer!

O aplicativo para aparelhos móveis com sistema symbian permite que os profiles do seu celular (os perfis com configurações como tipo de toque, volume de toque, escolha do toque, temas, vibrações, etc.) possam ser selecionados automaticamente baseado nas regras definidas pelo usuário. Por exemplo, se você tem reuniões diárias em um determinado horário, o seu aplicativo com best Profiles alterna para silencioso e retorna ao normal quando termina a reunião. Outro exemplo seria você em casa gosta de seu telefone no modo mais calmo sem toques muito altos ou chamativos e na rua o inverso. Pois baseado na sua localização (através da rede GSM da sua operadora), ele pode rapidamente alternar conforme seus interesses.

Gostei muito dessas funcionalidades e gostaria de ver algo mais além! Já pensou se tivesse uma rede neural ou algum tipo de aprendizado que o telefone aprenderia meus hábitos e poderia inferir quais os melhores opcões para um dado ambiente ?! Sem a necessidade de eu estar definindo as regras? Regras ditadas por I.A. respondendo por contexto através do seu aparelho móvel ! Sei que ainda estamos anos luz de algo assim , até porque a tecnologia para isso hoje empregada em celulares ainda está limitada, mas digo que isso será possível!

Vejam mais informações sobre esse aplicativo no blog Symbian-Guru.



Boa notícia para os desenvolvedores! NetBeans IDE está na versão 6.5! Fresquinha para download! Ah, diferente das outras versões o JavaME SDK agora está incluso dentro do Netbeans ( Não existe mais o Netbeans mobility pack, como havia nas versões anteriores.)

O que os desenvolvedores JavaME vão ter de novidades?

(De acordo com o site oficial do projeto) :

  • new project wizard for adding custom components to the Visual Designer Palette
  • new SVG UI components in the enhanced SVG Composer enable rich UI design
  • new Data Binding Custom Components in the Visual Designer Palette
  • upgraded obfuscation tool to ProGuard 4.2 and test framework to JMUnit 1.1.0
Mais informações sobre as funcionalidades da nova versão do Netbeans você pode encontrar no link NetBeans IDE 6.5 New and Noteworthy page.
Um grande colega meu Felipe Andrade publicou alguns artigos interessantes em parceria com a comunidade de desenvolvedores Symbian (Symbian Developer).
Os artigos fazem uma análise das plataformas existentes para desenvolvimento suportados pelo Symbian e também sobre a possibilidade de desenvolver aplicativos com 2 ou mais linguagens ao mesmo tempo. Isso é possível ?! Sim!

Vejam os artigos na íntegra (em inglês) :

Multi-Language Programming - Part 1
Bernd Wiegmann’s paper examines the strengths and weaknesses of runtime environments.

Multi-Language Programming - Part 2
This paper is the second in a series examining how to build applications by mixing languages.

Como fazer seu aplicativo (activity) no Android não rotacionar quando o aparelho também rotaciona.

Primeiro, que você não precisa se preocupar com código fonte para tratar esse tipo de eventos.

Tudo que você precisa é adicionar a linha "android:screenOrientation = "portrait" (ou "landscape" ) no seu AndroidManifest.xml.


Mais informações podem ser encontradas, com exemplos, aqui.

Fonte: AndroidGuys

Um post publicado pelo colega Rodrigo Peixoto, fala sobre como reduzir e otimizar ao máximo a performance do seu aplicativo desenvolvido em Python. Muito bom o post! Recomendo! Especialmente para aqueles que não conhecem a linguagem de programação Python ou para aqueles que ainda acreditam que Python é muito lento! (Ele é lento em comparação à linguagens compiláveis, mas com bibliotecas terceiras e práticas de programação corretas é possível extrair o máximo do Python com o que ele tem de melhor: produtividade e liberdade!)



Leiam o post referencial "Aplicativos Python lentos. Onde está o gargalo" aqui.
Você usa muito o sms? Passa o dia digitanto com os polegares e soltando torpedos para todos os lados? Sua caixa de mensagens deve ser uma zona!

Para aqueles que usam muito o serviço de SMS do seu celular. Esse aplicativo pode ajudar muito a organizar sua caixa de mensagens. Ele organiza seus sms's por destinatário. Assim você sabe o histórico da conversa e agiliza o envio/leitura e manipulação de suas mensages. Funcional apenas para celulares symbian Nokia S60!


Precisa instalar o Nokia Contacts Services Support Package e depois o Conversation.

Fonte: SemLimites
Carbide icon

Para os desenvolvedores que utilizam a :

Fonte de referências para o Carbide C++ online:
Carbide C++ Developer Help Guide Online

TuneWiki: Aplicativo une Wiki + Media Player

Achei a idéia desse aplicativo bem interessante: O TUneWiki!

A idéia dele é integrar um player de arquivos multimídia com recursos como letras de música e redes sociais. Para que isso funcione, todo o conteúdo (letras e outros dados) são gerados pela própria comunidade, utilizando a tecnologia wiki.

Logo, você pode obter informações como posições geográficas de outros usuários escutando músicas e artistas específicos. Informações em tempo-real sobre a lista das principais músicas tocadas em um país ou estado. Ou até escutar músicas estrangeiras e ter suas letras traduzidas automaticamente para a sua lingua favorita.

A idéia é bem interessante, especialmente porque integra a essência coloborativa do Wiki com arquivos multimídia. Penso que podemos extender para outros tipos de aplicação. Informações sobre previsão de tempo, notícias, eventos, guias, etc. Até com o uso de algum localizador que poderia permitir também a sugestão de opções de artistas locais (O telefone saberia onde você está). Esses artistas iriam aparecer com biografia, discografias, sugestoes de novas faixas (Aí entraria o wiki) tudo que pudesse ampliar o leque de músicas novas baseado na posição do usuário. Algo interessante a se analisar!

O tuneWiki foi um dos aplicativos vencedores do Code Challenge for Android da Google e agora venceu GSMA's 2009 Mobile Innovation Global Award Competition (melhor aplicativo em inovação). Não é por acaso! De acordo com a empresa desenvolvedora, em breve ele estará disponível para Mobile Linux, Android, iPhone, Moblin, WinMobile, J2ME e Symbian.


Vejam um pequeno vídeo demonstrativo:






Fonte: EMediaWire
MOTODEV Challenge. Calling All Widget Developers


Pessoal,
A Motorola anunciou uma competição para desenvolvedores mobile para sua plataforma de Widgets : Widget Developer Challenge. Os vencedores podem ganhar até $25,000 dólares distribuído em diversas categorias como esportes, finanças, clima, shopping. O desafio é aberto para todos os membros registrados no MOTODEV e as submissões dos aplicativos devem ser feitas até 27 de fevereiro do próximo ano. As principais categorias a serem julgadas são: Melhor Widget, Melhor conteúdo e melhor uso das APIS.
Para quem não sabe , o novo toolkit de desenvolvimento da motorola chamado WebUi permite a construção de aplicativos rápidos utilizando a engine nativa do browser do aparelho móvel. A diversidade de APis é grande que permite o acesso à camera, calendários e contatos através da tecnologia Web 2.0 incluindo XHTML, javaScript , CSS e ajax.

Mais informações sobre o WebUi da Motorola aqui.
Encontrei um post muito interessante falando sobre o futuro da especificação MSA (JSR-249) - Mobile Service Architecture 2 - que permite tornar os aparelhos com plataforma JavaME mais robustos e consistentes , reduzindo problemas como fragmentação.


De acordo com o autor do blog, o JSR 249 já está na fase de revisão, onde agora os desenvolvedores da comunidade irão avaliar o mesmo.


MSA 2 Stack

Entre as principais diferenças do MSA 01, estão as inclusoões de algumas APIs como:
  • JSR 304: Mobile Telephony API version 2 -or- JSR 253 MTA version 1
  • JSR 266: Unified Message Box Access API (UMBA-API)
  • JSR 307: Network Mobility and Mobile Data API

Espero que o JCP possa rapidamente levar isso para uma versão final.

Mais informações sobre a especificação: http://jcp.org/en/jsr/detail?id=249.

Fonte: C.Enrique Ortiz

Olá pessoal,

Gostaria de recomendar um blog sobre tecnologia móvel, com assuntos técnicos relacionados à plataforma JavaMe. O blog é mantido pelo colega Ricardo Ogliari, mantenedor do blog Mobilidade é tudo e por Robison Cris (Escritor de diversos artigos e tutoriais sobre JavaME). O blog está começando agora, mas tende a ser uma grande promessa para os interessados sobre JavaME e derivados.

Segue o link : jmeBrasil .

Netbeans com suporte a Python

Ótima notícia para os desenvolvedores de Python!

Mais uma ferramenta que suporta a linguagem Python. O Netbeans!

Na versão 6.5, pronta para download!

Irei fazer experimentos para verificar se é válido substituí-lo pelo Pydev (Eclipse).


Fonte: Code Snakes

Vida Moderna!
Pessoal,

Achei essa série de artigos uma excelente fonte de pesquisa sobre experiências com desenvolvimento mobile. Através de gráficos, o autor demonstra quais plataformas são as mais fragmentadas, quais as mais solicitadas para desenvolvimento e quais as mais difíceis para iniciar o desenvolvimento.

Realmente não me surpreendi muito, já que saiu como esperava. JavaME como a plataforma que sofre de fragmentação (devido à diversidade de aparelhos e implementações próprias pelas fabricantes do KVM) e o Symbian (especificamente C++) a mais difícil para aprendizado (Vai fazer interface UI sem Carbide UI Designer , é fumo!).
E a mais procurada, geralmente o cliente não sabe! Acho até óbvio, o cliente quer o aplicativo rodando e quais são os requisitos dele. O desenvolvedor e arquiteto é que irão decidir baseado nos seus requisitos e plataforma-alvo qual melhor tecnologia se adequa para atender as demandas do projeto do aplicativo.


Recomendo a leitura!

Device Fragmentation Across Platforms

On Which Platforms are People Seeking to Develop ?

Platform Development Comparisons




Fonte: Mobile Phone Development
Pessoal, especialmente estudiosos da plataforma Android.

Para download:

Garage-Door-Opener for Android Phones. (Open-source).

Fonte: AndroidGuys
Não poderia deixar de comentar sobre essa notícia:

VMware MVP is a thin layer of software that is embedded on a mobile phone to decouple the applications and data from the underlying hardware. It is optimized to run efficiently on low power consuming and memory constrained mobile phones. The MVP currently supports a wide range of real-time and rich operating systems including Windows CE 5.0 and 6.0, Linux 2.6.x, Symbian 9.x, eCos, µITRON NORTi and µC/OS-II.

VMware Mobile Virtualization Platform will help handset vendors reduce development time and get mobile phones to market faster. In addition, end users will benefit by being able to run multiple personalities—for example, one for personal use and one for work use on the same phone.

Para resumir: Imagine um celular rodando 2 plataformas como Android e o Symbian?! Bem interessante!

Link: VMWARE

Achei um post muito interessante publicado pelo blog Developing, sobre o futuro de java para dispositivos móveis. Recomendo a leitura!

O link para o artigo: aqui !





imagesEu acho que, como o autor falou, um dos problemas existentes em JavaME, é que ele ainda é muito burocrático (seu processo depende muito das fabricantes e membros da comunidade JCP para aprovação.) Podemos citar o MIDP 3, há quantos anos que o mesmo está em fase de especificação ? 4 anos ? O que para minha opinião faz com que o JavaME aos poucos perca seu brilho.
Mas ainda acho que Java ainda tem muito que mostrar em dispositivos móveis: seja com JavaME ou outro tipo de subset de plataforma. O poder do processamento dos celulares está aumentando de forma vertiginosa, e logo logo a razão de JavaME existir, que seria devido ao poder limitado de processamento dos aparelhos móveis perderá sentido.
Vocês querem um exemplo concreto?
Não preciso ir longe não, o Android está aí pronto e é feito em Java. Vamos esperar para ver, acho que ano que vem promete. Espero eu que seja para o bem dos milhões de desenvolvedores fãs do Java!
Para os desenvolvedores de Symbian que gostariam de saber como desenvolver um aplicativo utilizando FlashLite (UI) + Python (Core), achei esse exemplo simples (com código-fonte disponível) para download.

A idéia do aplicativo é bem simples: Todo texto digitado pelo usuário é depois falado pelo viva-voz do celular.

O aplicativo, mesmo sendo simples, demonstra como funciona o framework SWF2Go(Responsável pela integração entre o flash (.swf) com o python (.py).

Algumas fotos:

By My Lips - Screenshot1By My Lips - Screenshot2


PS: Existe já há bastante tempo um projeto brasileiro alternativo a este chamado: Flyer! E é open-source criado pelo meu colega Felipe Andrade. Dêem uma olhada!

Fonte: Nokia Blogs
Para os corredores ou para aqueles que gostam de dar caminhadas ou voltas de bike, essa série de aplicativos para celular pode ajudar muito o monitoramento dessas atividades. Os aplicativos estão disponíveis apenas para celulares Symbian S60, mas quem sabe isso não poderia ser portado para o Android, ein ?!

O que são esses aplicativos ?

O Nokia Step Counter é a evolução do Activity Monitor, um programa que mostra gráficos e estatísticas sobre seus movimentos quando estiver andando ou correndo, determinando a distância percorrida e a energia gasta. Ele funciona “lendo” as variações do acelerômetro interno, e você configura a distância média do seu passo, além de idade e peso (para previsão de energia gasta). Confira as telas:

Nokia.Step.Counter.1.jpg Nokia.Step.Counter.2.jpg


O segundo aplicativo é o Wellness Diary. Com ele, você grava todas as suas atividades e registros físicos, determina metas e ele automaticamente importa informações do Nokia Sports Tracker e do Nokia Step Counter. Além disso ele mostra gráficos de sua evolução, é uma ferramenta muito interessante para quem quer “policiar” a sua dieta e quer detalhes sobre a evolução dos seus exercícios. Vale a pena testar. Confira as telas:
Wellness.Diary.1.jpg Wellness.Diary.2.jpg Wellness.Diary.3.jpg Wellness.Diary.4.jpg
















O Nokia Sports Tracker faz uso da função GPS, gravando o trajeto, acelerações e paradas, marcação de voltas, além de contador de passos. Em aparelhos que não possuem GPS é possível usar um módulo externo.

Nokia.Sports.Tracker.01.jpg Nokia.Sports.Tracker.08.jpg






O mais legal é que é possível todo o trajeto percorrido até no Google Maps! São aplicativos realmente muito interessantes!


Para mais informações, ver o blog do Vínicius Martins que postou sua experiência com tais aplicativos.
top