Idéia: Sistema de buscas de transportes coletivos


Essa semana tive que ir de ônibus ao trabalho, visto que meu automóvel estava na oficina. O que isso tem haver com mobilidade e tecnologia? Explicarei agora.

Primeiramente, faz um bom tempo que não pego ônibus. Isso significa que informações como parada de ônibus, linhas de ônibus, itinerário(rota) dos ônibus eu não detinha. Então fui pegar o ônibus meio que na sorte. Ao chegar na parada, ficava prestando atenção nos cartazes que ficavam pregados no painel frontal do motorista do ônibus que continham alguma informação mesmo que incompleta de onde o ônibus passaria. Se ele passasse perto de onde eu precisasse descer, já saberia que eu poderia pegar aquele ônibus. Mas, e se o ônibus que eu precisasse para chegar até o local do meu trabalho não passasse naquela parada, ou se eram necessários pegar 2 ônibus para chegar até o mesmo ? E o preço do vale transporte? Tarifa A, B, C ? Essas informações estavam totalmente confusas em minha cabeça. Enfim, em base de suposições acabei chegando até o meu trabalho, mesmo descendo na parada errada e tendo que caminhar algumas centenas de metros para uma parada mais próxima, onde baseado novamente em adivinhações, peguei um novo ônibus que chegava até o lugar pretendido.

Essa experiência que foi muito na tentativa e erro, poderia ser resolvida se existisse algum sistema que pudesse me dar essas informações. Procurei na internet sobre o itinerário de ônibus da minha cidade e por felicidade encontrei esse site do orgão municipal responsável pelos transportes urbanos. Embora o sistema até informe quais são os itinerários das principais linhas, mas ainda é insuficiente. Como vo saber qual linha pegar se eu não se onde eu pego ônibus passa aquela linha ? Ou seja, terei que navegar no site, pesquisando linha por linha até encontrar o ônibus que passa na parada desejada. E ainda depois verificar se o mesmo vai até o destino pretendido. Isso, com sorte, se o ônibus tiver o itinerário até o local. Se não terei que cruzar várias informações até encontrar quais linhas pegar. Haja tempo desperdiçado! Mas e se eu quiser saber informações como tempo médio de viagem, custos, distância pecorrida... e se as linhas que eu pegar não forem as melhores? Isso envolve variáveis como tempo de viagem, distância percorrida, custo da passagem, até o trânsito pode ser incluído também nesse conjunto.

Foi aí que veio a idéia na minha mente em possibilitar a criação de um sistema com uma interface visual fácil para que os usuários de transportes coletivos possam rapidamente baseado no ponto de origem ao ponto de destino quais os ônibus que ele deve pegar afim de chegar até o local desejado. Com isso, o usuário que não detém conhecimento de quais linhas deve pegar, usará o sistema para poder não somente identificar quais linhas de ônibus (itinerários), como também quais pontos de ônibus (que ele deve descer/subir) com o menor custo possível. Informações de tarifas, horários, empresas tudo isso seria informado pelo sistema que poderia ser acessado via celular (por meio de um aplicativo móvel ou web) e via web em sua própria residência antes de preparar a sua jornada até o local desejado.

Um sistema inteligente com uma interface agradável (integrado ao engine do google maps) onde tivesse acesso a um banco de dados com informações sobre tarifas, itinerários x linhas de ônibus, distância x tempo, etc , de forma que o usuário pudesse acessar em tempo real essas informações sejam através de uma consulta pela internet ou até através de consultas SMS em modo texto. Assim o sistema diria qual o trajeto necessário para que o usuário a partir do ponto de saída ao ponto de chegado deveriar percorrer sem se perder.

Agora, pense que não somente facilitaria a vida dos usuários de ônibus, como também ajudariam
as empresas que administram o transporte coletivo a mapear quais as linhas mais requisitadas e trajetos mais utilizados pelos usuários a fim de tomar medidas/ações para agilizar a vida do usuário de transporte coletivo nas principais metropóles do país.

Partindo do ponto de vista tecnológico esse sistema poderia ser disponibilizado em terminais específicos espalhados pelos terminais de integração da cidade e também em forma de aplicativos móveis para o usuário que precisa em tempo real saber qual ônibus pegar, em que parada pegar/descer, o custo da viagem e o tempo médio que vai gastar para chegar até o local desejado.

Para toda essa base de dados, e para que o sistema automaticamente montasse a melhor rota até o local desejado, seria necessário algumas técnicas de otimização de roteamento de veículos. Algo bem interessante para um projeto de mestrado ou algo específico. Pretendo vasculhar mais informações sobre essa área, quem sabe não sai um protótipo interessante em breve.

O nome da idéia é chamada de B.U.S.U. Um buscador universal de rotas para transportes coletivos. A tecnologia tem que chegar às massas. São mais 300.000 usuário de tranporte coletivos mensalmente. E esse tipo de aplicativo pretende ajudar pessoas como eu que utilizam de intuições, palpites e perguntas ao moço do lado com a clássica pergunta: "Esse ônibus vai até o lugar x ? Qual eh o ônibus que pego ? "


Algo que pretendo aprimorar mais. Mantenham-se ligados!

Banda onde os instrumentos são celulares!

Já pensou alguma vez tocar em uma banda onde os instrumentos são aparelhos celulares? Sim é possível! Coisa de japa mesmo!! Muito irado esses celulares protótipos feitos pela Yamaha.
Vejam o vídeo abaixo e prestem atenção na música Stairway to Heaven de Led Zepellin orquestrado pelos aparelhos móveis.
Isso que eu chamo de uma idéia com mobilidade e convergência!


Segue o décimo terceiro capítulo dos tutoriais para a obtenção do certificado SCMAD (Sun Mobile Application Developer). Todo o material está em inglês e formato .PPT (powerpoint).

Nesse capítulo abordo:

  • MMAPI. (Mobile Multimedia API).
Recomendo a leitura em conjunto com o capítulo anterior de MIDP Sound para maior entendimento.


Para fazer o download dos slides, clicar aqui.

Para acesso ao primeiro tutorial do certificado SCMAD aqui.

Para acesso ao segundo tutorial do certificado SCMAD aqui.

Para o aceso ao terceiro tutorial do certificado SCMAD aqui.

Para o acesso ao quarto tutorial do certificado SCMAD aqui.

Para o acesso ao quinto tutorial do certificado SCMAD aqui.

Para o acesso ao sexto tutorial do certificado SCMAD aqui.

Para o acesso ao sétimo tutorial do certificado SCMAD aqui.

Para o acesso ao oitavo tutorial do certificado SCMAD aqui.

Para o acesso ao nono tutorial do certificado SCMAD aqui.

Para o acesso ao décimo tutorial do certificado SCMAD aqui.

Para o acesso ao décimo primeiro tutorial do certificado SCMAD aqui.

Para o acesso ao décimo segundo tutorial do certificado SCMAD aqui.

Scmad Chapter13
View SlideShare presentation or Upload your own.
Achei no blog do Diego Santos, um material bem interessante em português em que o mesmo está traduzindo os guias de desenvolvimento para o Iphone do site da Apple. Nesses tutoriais em português, vários conceitos sobre a plataforma do Iphone e sobre o ambiente de desenvolvimento são apresentados.

Seguem os links abaixo:

Um overview sobre o desenvolvimento para Iphone

Ferramenta para Desenvolvimento para Iphone OS


Tudo isso pode ser encontrado no site oficial de desenvolvedores da Apple:

Apple Developer

Nokia trabalha em sistemas de localização indoor

Localização indoor com sistemas semelhantes ao GPS ? Seria possível ?

Vejam essa notícia retirada do site Geek:

"Durante a conferência The Way We Live, realizada em Espoo, Finlândia, a fabricante de celulares Nokia anunciou estar trabalhando em um projeto audacioso, que quando concluído poderá levar um sistema de localização semelhante ao GPS para dentro de prédios.

Atualmente, o GPS se limita a espaços abertos, então a idéia da Nokia é permitir que um sistema funcione de maneira semelhante mapeando salas e itens dentro de prédios e outras construções, noticiou o site Register Hardware.

O novo sistema utilizará redes sem fio (WLAN) que poderão se comunicar com aparelhos de celular provendo a localização exata inclusive de pessoas, útil para encontrar crianças em ambientes cheios, por exemplo.

De acordo com o site T3, a novidade já está sendo testada em mais de 40 prédios da companhia e novos cenários como universidades, aeroportos e shopping centers de Helsinki estão sendo mapeados.

Nos próximos meses o primeiro teste comercial deve acontecer em um shopping e depois disso o site da Nokia Beta Labs (nokia.com/A4384041) deve apresentar a solução. "


Pense na quantidade de aplicações possíveis a partir de uma solução como essa. Localização de mercadorias em galpões? Localização de pessoas em prédios ? Localização de produtos em supermercados? Isso é só o início.

E pensar que em 2005/2006 na epóca da faculdade, eu tive uma idéia baseada nisso usando sistemas Wi-Fi para localização indoor. Como usar antenas wi-fi para triangular sua posição em ambientes fechados.. WPS...Wireless Positioning Sytem!

User Interfaces: As 10 últimas em inovação

Achei um artigo bem legal do site Smashing Magazine, mostrando as 10 últimas inovações em relação a interface com usuário que estão em pesquisa recentemente. Muito interessante os vídeos e imagens, especialmente o Aurora.

Vejo que a usabilidade sem dúvidas é um ponto-chave na conquista de mais clientes e consumidores na escolha da compra de um produto.
Pessoal, encontrei um artigo muito bom sobre a tecnologia ZigBee no site VivaSemFio.com. Para aqueles que não sabem, o ZigBee (IEEE 802.15.4) é uma tecnologia de transmissão e recepção de dados sem fio de curto alcance assim como o infravermelho, bluetooth, etc. Suas aplicações são das mais variadas, onde pode ser utilizada em projetos de sensoriamento e monitoramento , automação predial, controle industrial, etc.

Bastante interessante saber mais sobre esses novos padrões e tecnologias sem-fio! Celulares com chips ZigBee seriam muito bem vindos!

Análise de Plataforma: Python para S60 (PyS60)

Dando continuidade à minha análise das linguagens de programação existentes hoje para desenvolvimento mobile, hoje falarei da plataforma de desenvolvimento chamada Python. Para quem não sabe o que é a linguagem de programação Python, ela é uma linguagem que veio para mudar/ajudar o mundo da programação. Além de ser fácil aprendizado e uso, tem ganhado bastante atenção das comunidades de desenvolvedores e pode ser usada para diferentes propósitos como a construção de aplicativos desktop, desenvolvimento web, computação científica, utilitários, games, criação de efeitos especiais e por fim, claro desenvolvimento móvel.

Para a área de dispositivos móveis, Python é oferecida através da plataforma Symbian S60, que varia desde a segunda edição até a 'terceira edição com todos as features opcionais. Isso faz a plataforma ser bastante abrangente, visto que temos milhares de aparelhos no mercado prontos para ser usados como repositórios pelos seus aplicativos Python.


Podemos ver que no cenário de desenvolvimento mobile, existem hoje diversas plataformas disponíveis para os desenvolvedores, especialmente para os desenvolvedores da plataforma Symbian. Há o Symbian C++ que é o núcleo do S.O. Symbian disponível com uma imensa quantidade de APIs e funcionalidades prontas para o uso. Claro, que há um custo para isso: C++ não é uma linguagem tão fácil de se aprender e o framework exige um grau de aprendizado um pouco mais extenso e elevado. Java é bem mais fácil de usar e está presente, óbvio, em milhões de aparelhos móveis. As funcionalidades disponíveis por ele são suficientes, mão são restritas e disponibilizadas de acordo com o processo JCP. Isso significa que para criar uma nova API para o JavaME ? Só se for de acordo com todos os participantes de cada especificação JSR. Indisponível para meros mortais como nós : desenvolvedores.

Aí entra Python, como uma ponte, e pelo que vejo, isso é uma grande vantagem. Tem a facilidade de aprendizado de Java e é ao mesmo tempo tão poderosa como C++. Diferente de java que é limitado pelo processo de padrões, em Python se você quer criar uma API que use recursos avançados dos seu aparelho e a mesma não está disponível, é muito simples! Apenas crie uma extensão (módulo) e pronto! Está pronto para ser usado. Para os interessados em desenvolver em python, especialmente com tutoriais, aplicativos exemplos, etc: o site
http://croozeus.googlepages.com/py60extensions pode ajudar os iniciados!

Também, se você é um desenvolvedor que gosta de fuçar o aparelho móvel e mexer no hard code da máquina virtual, fique feliz! Porque o runtime do Python para S60 é open source, e você pode passar dias contribuindo com a comunidade caçando bugs, adicionando novas funcionalides e criando até a sua própria versão modificada.

Tecnologia: Python para S60

Prós:

  • Aplicativos integrados com web - Você pode facilmente usar a API de localização com o Google Maps e criar poderosos aplicativos mobile/web que usam o melhor de ambas plataformas. Posso citar exemplos como: MobyMaps, um aplicativo de geolocalização escrita apenas em 104 linhas de código, pyAmazon, Mobile Google Maps e tantos outros.
  • Aplicativos comerciais - Aplicativos que precisem acessar o sistema de arquivos, lista de contatos, conectividade bluetooth, câmera, galeria de imagens , etc. Com as APIS disponíveis em Python, elas permitem que o desenvolvedor escreva rapidmente aplicativos que possam interagir com seu aparelho e com outras pessoas. Exemplos claros como MobileGTD, PyS60RemoteControl e PySpy.
  • Rápida prototipação - Este sem dúvidas é uma das principais motivações de se usar Python para S60. Explicarei o porquê. O cenário comum é o desenvolvedor escolher uma linguagem de programação e começa logo de imediato a desenvolver seu aplicativo com ela. Se algo der errado ou não funcionar, ele só irar descobrir no fim do projeto, quando é tarde demais. Vários casos já foram reportados de projetos com desenvolvimento em JavaME onde o desenvolvedor trava em uma parte da codificação do seu aplicativo e descobre que aquela funcionalidade não pode ser feita com Java! Principalmente quando o sistema está quase pronto! Pois, Python vem ajudar aos desenvolvedores nesse desafio de uma forma elegante e bem eficiente: Se você tem uma idéia, e quer checar se aquela sua idéia funciona ou não, basta escrever algumas linhas de script de código Python para testá-la. Se você estiver satisfeito com a idéia/resultado, apenas incremente um pouco mais seu código para torná-lo seu produto final. Caso o contrário, você pode implementar a sua idéia agora (provada que funciona) em uma versão final com C++ ou Java se você necessita de mais performance ou portabilidade. Uma coisa bem legal com desenvolvimento em Python,
    é que com a rápida prototipação, você pode mostrar coisas já funcionando desde o primeiro dia de projeto em vez de utilizar documentações, diagramas ou slides.
  • Utilitários - Se você tem que dar alguma palestra ou participar de algum evento especial e precisa de soluções rápidas para problemas simples, porque não usar PyS60 ? Um exemplo prático foi uma pequena palestra que tive que dar sobre aplicações móveis tempos atrás, e pra a mesma desenvolvi pequenos aplicativos utilitários (câmeras fotográficas, gravador de vídeos, reprodutores de vídeos, jogos simples) em poucos dias. Qual linguagem usei ? Python! Prototipação rápida associada com altos recursos do aparelho me permitiram criar aplicações-demo bem interessantes para minha palestra.
  • Jogos - Python é uma linguagem com uma grande quantidade de biblitotecas APIs que podem ser utilizadas para jogos, como: Sensor API, Open GL, gráficos, manipulação de imagem, etc. Ela é também uma boa ferramenta para desenvolvimento de jogos casuais de curta duração. Embora, isso possa ser feito com o Flash Lite com uma API para gráficos mais poderosa e de fácil uso, as APIS do PyS60 irão ajudá-lo a desenvolver seus jogos com aquela sensação de "Uau! Pode fazer isso em Python é?? Que maneiro!"

Porque?

  • Vasta quantidade de APIs/funcionalidades - A plataforma Python para S60 oferece uma quantidade razoável de APIS para desenvolvimento, mas o mais legal é que em qualquer momento, você pode criar novos módulos /extensões usando Python/C se você sentir falta de alguma funcionalidade não coberta pelas APIs padrões. Esses módulos podem ser adicionados de uma plataforma para outra sem grnades modificações a depender da plataforma alvo.
  • Facilidade de uso - A linguagem Python é uma das linguagens mais fáceis de se aprender e de trabalhar. Em apenas algumas semanas, você pode está produzindo variados códigos de acordo com sua necessidade (Alta produtividade).
  • Suporte da comunidade- Como Python é open-source, logo há uma grande quantidade de scripts e códigos escritos pela comunidades open-source espalhados por aí, prontos para serem usados na sua aplicação.

Contras:

  • Desempenho/Performance - A performance de Python é razoável, embora seja mais lenta que C++, Java e Flash. Se você precisa desenvolver aplicativos que exijam computação científica, cálculos numéricos complexos, streaming de vídeo/áudio, python realmente não é a melhor opção.
  • Certificação/Assinatura dos aplicativos - Pode-se considerar que não é muito diferente dos aplicativos Symbian em C++, os aplicativos comerciais (e.g. os que são vendidos pelas operadoras) precisam ser assinados e passar pelo processo de certificação Symbian (Symbian Signed Proccess). Um pouco burocrático!
  • Portabilidade - Acho que é um dos principais contras da plataforma Python. Afinal de contas, ele só funciona em plataformas Symbian-S60. Mas é claro que é possível fazer o porte dela para outras plataformas visto que o núcleo de Python é o mesmo. Mas nem todas as bibliotecas do S60 pode ser portadas diretamente sem modificações críticas.

Porque?

  • Assinatura Symbian (Symbian Signed) - O processo era até para funcionar com aplicativos Python, mas ele foi desenhado para aplicativos em C++. Por isso fica aí uma incogníta na hora de certificar seus aplicativos Python. As poucas vezes que tentei fazer isso, acabei não conseguindo fazer (Acho que por falta de informação ou inexperiência).
  • Segurança - Como o processo de segurança é algo sempre levado em questão, especialmente na fase de desenvolvimento, logo é bem complicado lidar com essas questões de segurança da plataforma (e.g.evitar que usuários construam aplicativos malwares para os dispositivos). Sempre há restrições de API que pode desacelerar o andamento do projeto e aí começa o ciclo de teste, assinatura, re-teste, etc. Python para S60 também sofre desse male quando você decidir montar o package instalável dele para o Symbian (.sis).
  • Desempenho - O baixo desempenho de Python se deve pelo simples fato de ela ser uma linguagem interpretada. Logo, há umas desvantagens de performance em comparação com aplicativos desenvolvidos em linguagens nativas do aparelho.
  • Ferramentas- Em questão de ferramentas, PyS60 ainda deve muito. Embora tenha um plugin para testar seus scripts no emulador do C++ SDK do Symbian, scripts para testar no seu aparelho e até programas como py2sis ou Ensymble para tornar os scripts em instaláveis (.sis), ainda assim é fraco quando se fala de integração com ferramentas como Carbide C++, Eclipse, Netbeans, etc. Diferente dessas plataformas (JavaME, FlashLite, SymbianC++) que cada uma tem uma IDE forte associada, Python ainda não tem uma ferramenta ou plugin específico para desenvolvimento para mobile S60. Ah, e fãs do linux e mac irão ficar tristes: o Emulador de testes só roda no Windows! =/

Enfim, posso concluir que python permite você desenvolver coisas bem legais para seu aparelho, especialmente se ele for um Symbian Series 60. Com apenas poucas linhas de código você estará desenvolvendo aplicativos e utilitários de baixa/média e alta complexidade. Ideal para prototipação rápida, a linha de aprendizado é suave e a quantidade de APIs existentes é enorme abrigada por uma comunidade opensource que está sempre contribuindo com novas bibliotecas e APIs para sua aplicação. Como ainda está em fase de crescimento, a plataforma mobile de python está sempre inovando-se com novas releases, e você desenvolvedor pode ajudar e contribuir com a evolução da mesma, afim de tornar uma plataforma inovadora e divertida de programar para Symbians S60.

Se você estiver interessado em aprender mais sobre o Python para S60 , há diversos recursos nesse site wiki.


Acho que é isso!

Em breve postarei alguma análise sobre o Symbian C++!


TV Digital em aparelhos móveis como notebook, celulares ? Realidade ou mito?

Vejam o vídeo, e olhe que não precisa nem ir muito longe... É aqui no Brasil mesmo. =D
Fiquei fascinado com um vídeo que eu encontrei no Olhar Digital sobre automação residencial. Existe uma solução sem fio chamada Z-Wave (brasileira) que permite o controle remoto através de pequenos controles ou celulares dos objetos encontrados da sua casa.

A idéia é que com alguns simples toques de botão, você possa controlar seu arcondicionado, acender as luzes da casa, ligar a tv, abrir o portão, etc.

Acho que é essa a idéia da convergência, você ter o poder da mobilidade para fazer que o ambiente seja inteligente e haja sobre contexto. Não seria legal que você ao chegar depois de um dia cansativo do trabalho, o ambiente reconhecesse seu humor e ajustasse o ambiente de melhor agrado ? Luzes sem muito brilho, música ambiente relaxante, a tv com imagens de vitrais e paisagens, o chuveiro quente com uma temperatura agradável, seu arcondicionado ligado na temperatura relativamente propícia, seu café pronto na cafeteira, etc. TUdo isso automático baseado no comportamento e reação do usuário. Esse tipo de tecnologia deve estar em estudo e em breve veremos coisas desse nível.

Vejam o vídeo, é bem maneiro!
Para os interessados em desenvolvimento de jogos para celulares, achei um vídeo bem legal no Olhar Digital falando sobre o mercado de games para aparelhos móveis que está em plena ascensão. E é mesmo, hoje os aparelhos estão ficando cada vez mais robustos com um relativo alto poder de processamento. Para os desenvolvedores é bastante animador também, especialmente pela quantidade de recursos (APIS e funcionalidades) que as fabricantes estão liberando para o uso dos desenvolvedores : sensores, Câmera, localização GPS, etc.

Vejam o vídeo neste link.
Esse teve um pouco atraso, mas enfim: Segue o décimo segundo capítulo dos tutoriais para a obtenção do certificado SCMAD (Sun Mobile Application Developer). Todo o material está em inglês e formato .PPT (powerpoint).

Nesse capítulo abordo:

  • MIDP Sound API

Para fazer o download dos slides, clicar aqui.

Para acesso ao primeiro tutorial do certificado SCMAD aqui.

Para acesso ao segundo tutorial do certificado SCMAD aqui.

Para o aceso ao terceiro tutorial do certificado SCMAD aqui.

Para o acesso ao quarto tutorial do certificado SCMAD aqui.

Para o acesso ao quinto tutorial do certificado SCMAD aqui.

Para o acesso ao sexto tutorial do certificado SCMAD aqui.

Para o acesso ao sétimo tutorial do certificado SCMAD aqui.

Para o acesso ao oitavo tutorial do certificado SCMAD aqui.

Para o acesso ao nono tutorial do certificado SCMAD aqui.

Para o acesso ao décimo tutorial do certificado SCMAD aqui.

Para o acesso ao décimo primeiro tutorial do certificado SCMAD aqui.

Scmad Chapter12
View SlideShare presentation or Upload your own.

Resenha do Evento: PBJUG - Encontro dos usuários Java em Campina Grande

Olá Pessoal,

Acabei de chegar do evento do PBJUG: Mês de usuários Java em Campina Grande - PB. Posso logo iniciar que o evento, embora com duração de apenas um dia, foi repleto de ótimas palestras bem interessantes. Umas por sinal, me chamaram demais a atenção.
Em nível de organização, tomei um susto devido à quantidade de pessoas no evento. Era muita gente, nem eu imaginava que o evento teria um público tão imenso. Isso me revela uma coisa bem interessante: O estado da Paraíba tem muita gente boa trabalhando em informática, mesmo o estado não tendo tanto destaque (não merecido) no cenário de informática brasileiro.

Enfim, o evento muito bem organizado foi composto por palestras de duração de 1 hora em média. O mais engraçado é que durante as palestras, os organizadores jogavam brindes no ar ao público presente no auditório. E o pessoal ia ao delírio para pegar os brindes. Era muita agitação! O calor humano foi forte. Eu de Pernambuco, junto com uma pequena caravana de 15 pessoas foi a minoria do evento em comparação a maciça presença dos paraibanos (Isso não é novidade!)

Vamos às palestras:


A primeira palestra do evento foi a de Jacques Philippe Sauvé , Professor da UFCG. Ele apresentou uma bela palestra principalmente ao público que na grande maioria formada por estudantes de quais carreiras a seguir na área de informática. Achei bem legal, especialmente por tirar dúvidas "clássicas" sobre diferenças entre os cursos de Sistemas de Informação x Ciência da Computação x Engenharia da Computação x Processamento de dados. Outro ponto a destacar também foi um aspecto relevante referente ao dilema contínuo de um estudante de computação recém- calouro ao perguntar a si mesmo: "Se eu nao gostar de programação, o que é que eu vou fazer ? " Pois, de acordo com o prof. Jacques há outras carreiras que não necessariamente exigem que você tenha que programar. Mas, deixa claro que é fundamental ter o conhecimento téorico e técnicos do funcionamento de um software.

A segunda palestra foi sobre o Glasfish. Ela foi apresentada por Kohsuke Kawaguchi , engenheiro da SUN. Posso considerar que essa palestra foi a mais técnica de todo o evento. Talvez muitos presentes não tenham compreendido toda a essência da palestra, mas foi bem interessante. Um servidor de aplicações opens-source que ele vem desenvolvendo que com diversos experimentos tem provado ser bastante eficiente e com uma grande performance. Não entrarei muito à fundo sobre essa palestra, visto que, como não é muito da minha área de conhecimento, não tenho muita experiência pra falar os conceitos apresentados na demonstração do GlasFish.

A terceira palestra foi considerada por mim uma surpresa. Primeiro porque não conhecia de perto o tal do SunSpot. Já tinha lido à respeito, mas nunca ter tocado. Posso dizer que fiquei admirado pelo poder desse pequeno aparelho. A palestra "Sun Spot - Simplificando o desenvolvimento para dispositivos wireless" apresentada por Alisson Brito (CEFET-JP) foi de altíssimo nível. Além de explicar o funcionamento desse pequeno aparelho, mostrou na prática o que é possível fazer com ele. E te digo, são coisas incríveis. O Sun Spot é um dispositivo que tem diversos sensores e pode se comunicar com outros dispositivos através de redes sem fio ou cabo, com um notebok por exemplo. Coisas legais como você está num ambiente com diversos arcodicionados. Você pode programar esse aparelho para que ele auto-regule a temperatura de acordo com a temperatura ambiente. Isso é possível através de um sensor que vem embutido no Sun Spot. Melhor ainda! Que tal você poder fazer com que esses aparelhos se auto-comuniquem (uma rede sem fio mesh) e desliguem os arcondicionados da sua sala de trabalho quando você não estiver mais presente ou indo embora. Coisas assim que fazem esse Sun Spot ser um aparelho bem legal para catucar. Para finalizar irei colocar um vídeo aqui postado no blog do Ricardo Ogliari (Mobilidade é tudo) que mostra o uso do SunSpot na prática. Bem legal o vídeo!
Por fim, o Alisson apresentou diversos trabalhos que ele anda desenvolvendo. Deixo o link do seu website com mais informações sobre seus projetos.



Pausa para o almoço! O pessoal e eu fomos almoçar no Shopping da cidade. Cidade bem acolhedora e bastante organizada. Campina Grande sem dúvidas é um bom lugar para criar sua famíla!

De volta para as palestras da tarde, inicio com a entrega da camisa e certificado para o público presente. Camisa bem legal que eu ganhei e bastante criativa. Pretendo colocar uma foto dela em breve por aqui.
A primeira palestra da tarde foi sobre Processos e Pessoas por Maurício Linhares. Não posso comentar muito sobre essa palestra, pois não pude ficar presente no decorrer da mesma. Estava um pouco cansado e decidi cochilar no carro por alguns minutos devido à viagem que fiz de carro durante toda a madrugada de Recife à Campina Grande. Porém, nos minutos que presenciei, o Maurício explicou sobre como os processos podem afetar no desenvolvimento de software. A idéia principal é: Não são os processos que guiam como deve ser o desenvolvimento de software e sim o inverso. Os processos precisam ser adaptados de acordo com a necessidade e complexidade do sistema a ser desenvolvido. Bem interessante!

Por fim, chegou nas palestras que eu realmente estava querendo assistir. A primeira foi a "Java na Ponta dos dedos: A revolução Invísivel". Ministrada pelo engenheiro Maurício Leal. A palestra foi bem legal sobre o futuro da convergência e como a tecnologia pode evoluir a ponto de coisas simples do dia-a-dia serem integrados com a tecnologia intrisicamente. É a ubiquidade chegando. E Java tem demonstrado força nessa área com diversos projetos open-source para reforçar o estímulo da convergência, mobilidade e ubiquidade. Ele apresentou alguns vídeos bem legais durante a apresentação, dos quais um deixarei no fim para fechar a conclusão desse post.

A "TOP" palestra do dia foi a do grande Roger Brinkley da SUN MicroSystems. Esse cara é "O" cara! Ele é o líder-técnico e gerenciador da maior comunidade mobile embeded open-source ligada ao JavaME no mundo. Além de um vasto conhecimento técnico na área, apresentou um pouco sobre as comunidades open-source e o que fazer se você quiser criar ou até participar de um projeto ligado à comunidade open-source. Palestra muito boa com direito à tacadas de golfe (Pois é, o Roger é um cara muito animado e bem brincalhão) ao público com bolinhas premiadas com direito a voucher de certificados da SUN.

Enfim, posso resumir que o evento foi um sucesso. Parabéns ao comitê de organização do evento e espero participar desse tipo de evento mais vezes. Por sinal, gostaria muito se Pernambuco também sediasse um evento desse porte.

Para finalizar deixarei um vídeo que achei fascinante demonstrada em uma das palestras: o CoolTown. Vejam o que o futuro nos reserva quando a mobilidade se torna parte da nossa vida de forma implícita.


Evento em São Paulo: IV eBussiness & Mobile Strategies Forum

Pessoal,

Através de alguns contatos, fui informado de um grande fórum que irá ocorrer agora no mês de outubro (dias 14 e 15 especificamente). O eBusiness & Mobile Strategies Fórum será realizado em São Paulo e irá focar na apresentação de cases de sucesso de diversas empresas que usaram a mobilidade para incrementar a produtividade e lucro dos seus negócios. Grandes empresas como Mellita, CopaGaz, Assolan, TIM, etc. já garantiram presença para apresentações de cases.
Para mais informações ou inscrições, entrar no site no link abaixo.

Uma boa notícia para os leitores deste blog, é que tem um desconto de 10% na inscrição do IV eBussiness & Mobile Strategies Forum, bastando apenas fornecer o código de desconto - blog0508 - no momento de inscrição pelo site- www.ebusinessbrasil.com.br/mobile.

eBusiness & Mobile Strategies Fórum

Nos dias 14 e 15 de outubro será realizado o IV eBusiness & Mobile Strategies Forum, no WTC Hotel, em São Paulo. O evento (que já está em sua 4ª edição) irá apresentar os principais cases de mobilidade que revolucionaram os negócios das organizações brasileiras, demonstrando como é possível aumentar a produtividade, elevar as vendas e reduzir custos.
Este ano, um dos grandes destaques do evento ficará por conta do Expo Mobile. Paralelamente ao congresso e com entrada gratuita, o espaço contará com a presença das principais empresas focadas em soluções de mobilidade, que apresentarão as últimas inovações direcionadas ao mercado corporativo.

Capítulo 11: Guia de certificação SCMAD

Segue o décimo primeiro capítulo dos tutoriais para a obtenção do certificado SCMAD (Sun Mobile Application Developer). Todo o material está em inglês e formato .PPT (powerpoint).

Nesse capítulo abordo:

  • MIDP Deployment
  • Push Registry

Para fazer o download dos slides, clicar aqui.

Para acesso ao primeiro tutorial do certificado SCMAD aqui.

Para acesso ao segundo tutorial do certificado SCMAD aqui.

Para o aceso ao terceiro tutorial do certificado SCMAD aqui.

Para o acesso ao quarto tutorial do certificado SCMAD aqui.

Para o acesso ao quinto tutorial do certificado SCMAD aqui.

Para o acesso ao sexto tutorial do certificado SCMAD aqui.

Para o acesso ao sétimo tutorial do certificado SCMAD aqui.

Para o acesso ao oitavo tutorial do certificado SCMAD aqui.

Para o acesso ao nono tutorial do certificado SCMAD aqui.

Para o acess ao décimo tutorial do certificado SCMAD aqui.

Scmad Chapter11
View SlideShare presentation or Upload your own.

Aplicativos Python S60


Achei um post muito interessante em um fórum que encontrei mostrando diversos aplicativos desenvolvidos em Python para celulares Symbian S60.
É incrível a quantidade de aplicativos interessantes de bastante qualidade desenvolvidos em apenas em algumas horas! Linguagens de programação de script são fantásticas para prototipação de aplicativos, e agora mostrando serviço em aplicativos comerciais prontos para serem distribuídos!

Recomendo fortemente vocês darem uma olhada, especialmente porque os aplicativos são open-source e os códigos-fonte estão disponíveis para download e estudo.
Acabei de ver isso no blog do Felipe Andrade, putz!!!! Sensacional =D
O que um celular com câmera e com saída para Tv (um N95 da vida) somado com um algoritmo de reconhecimento de imagens pode fazer por você ?
Assista este vídeo e veja que aplicativos esperam para ser desenvolvidos semelhantes a esse:


Análise de plataformas móveis: JavaME (Prós e contras)

Uma das questões bem intrigantes hoje para os desenvolvedores da área mobile é a dificuldade da escolha de que linguagem de programação ou tecnologia a escolher para desenvolver nossa aplicação. Existe hoje uma variada e crescente lista de linguagens como Java, Symbian C++, Flash Lite, Widgets, Python, etc.
O mais interessante é que como existem diversas tecnologias, não há a necessidade para os desenvolvedores de ter conhecimento técnico em todas as tecnologias, visto que nem todos também desenvolvem os mesmos tipos de aplicativos. Ou seja, de acordo com o tipo de tecnologia que melhor se encaixa com a experiência do desenvolvedor e com o propósito do aplicativo, podemos decidir qual melhor tecnologia a ser usada para o desenvolvimento.
Mas isso pode ser uma faca de dois gumes. Há a possibilidade também de confudir os novos desenvolvedores que estão começando a desenvolver nesse amplo mundo de software mobile, porém fragmentado.

Em muitos fórums, geralmente ocorre esse tipo de discussão:

Questão: "Eu quero desenvolver um aplicativo que abra um arquivo e possa enviá-lo para um servidor web. O que eu posso usar para desenvolver esse aplicativo ?"

Resposta1: "JavaME, FileConnection API! Ele pode resolver seu problema."
Resposta2: "Ah, não se preocupe. Use C++ em vez de JavaME, porque senão você vai receber milhões de caixas de dialógo de permissões e segurança."
Resposta3: "Porque usar C++ quando você pode fazer a mesma coisa com Python? C++ é muito complexo ! "
Resposta4: "Mas Python não roda em aparelhos sem o sistema operacional Symbian, use Java."
Resposta5: "Para que tanto trabalho? Porque não usa logo o Flash Lite e usa a persistência já nativa baseada em servidor ("server-based persistence") ? Seu aplicativo vai sair rapidinho!"
Resposta6: "Flash Lite é muito fragmentado e de novo cai na necessidade de aparelhos Symbian. Use JavaME, mas não se esqueça de assinar (certificar) sua MIDlet ou a usabilidade do aplicativo será um lixo!"

Vejam os diversos fórums na área de desenvolvimento móvel. Está cheio dessas discussões como o exemplo acima. Baseada na minha opinião/experiência e também compilando opiniões de diversas fontes, pude juntar uma análise com pós e contras das principais plataformas de desenvolvimento da atualidade. Irei começar com JavaME, que é a mais popular dentre as existentes.

Tecnologia: JavaME

Prós:
Aplicativos para gerenciamento pessoal e produtividade - Exemplos: Gerenciadores de atividades físicas (sport trackers), aplicativos de controle de gastos, gerenciamento de informações pessoais (calendário, agenda de contatos, etc.).
Jogos - Tanto jogos casuais (advergames) como jogos complexos.
Aplicativos comerciais "enterprise" - Esses não necessitam de interfaces muito requintadas. Geralmente usam bibliotecas padrões da API (Ex: LCDUI) para atingir o maior número de aparelhos possíveis aliado com menor tempo de desenvolvimento (A preocupação fica na regra de negócio).
Prototipação Rápida - Provas de conceito e aplicativos para testes podem ser rapidamente implementados com JavaME.
Aplicativos de Rede - Leitores RSS, serviços de previsão de tempo, aplicativos de blogging, versões mobile de aplicativos web, etc.
Criação de aplicativos realmente portáveis.
Grande quantidade de aparelhos disponíveis com o a máquina virtual JavaME.

Porque?

Facilidade e simplicidade de uso e aprendizado - Um programador experiente, mesmo vindo de outras linguagens como C/C++, pode obter um bom conhecimento prático de como toda a plataforma funciona em algumas semanas e produzir aplicativos rapidamente. Isto eleva a JavaME como uma plataforma rápida pra desenvolvimento de aplicativos. Baseada na linguagem Java e orientada a objetos facilitam esse aprendizado. O framework também não é muito complexo.
Portabilidade - A idéia do Java é "Programe uma vez e rode em qualquer lugar". Embora isso seja o ideal, na prática há diferenças entre implementações, o suporte diferenciado a certos pacotes e APIS, formatos de Audio/video, etc. Mas isso não significa que você deve reescrever totalmente seu aplicativo. Com algumas linhas e algumas checagens em tempo de execução será suficiente.

GAME API - Para mim um dos frameworks matadores do JavaME. Ele combinado com algumas APIS opcionais tornam o desenvolvimento de jogos para celular bastante eficiente com ótimos resultados.
API de Networking e a facilidade de comunicação Web - O framework GCF (Generic Connection Framework) tem como essência ser o máximo possível extensível e genérico para variados tipos de conexão. Uma vez que você tenha aprendido a fazer um tipo de conexão, você está apto rapidamente a fazer qualquer tipo de conexão.


Contras:

Acesso a recursos específicos do aparelho - Exemplos: Acesso a caixa de mensagens SMS, sistema de arquivos, galerias de foto, hardware, etc.
Aplicações Multimídia - Examplos: Reprodutores (players) de video streaming, audio e gravadores de vídeo e som, aplicações de reconhecimento de vídeo/som.
Aplicativos que exigem bastante performance - Computação científica, processamento de imagens, decodificadores de vídeo, processamento de som.


Porque?

A API de Java ainda é limitada para acesso a recursos específicos no hardware do telefone. Isso existe porque qualquer funcionalidade nova em Java depende da aprovação do processo da comunidade Java (Java Community Process), logo se não existir uma API padrão disponível para que o desenvolvedor queira fazer, ele está com má sorte. Um exemplo clássico seria acessar a caixa de mensagens SMS do aparelho.

A implementação MMAPI ainda é bastante bugada. Muitas checagens em tempo de execução são necessárias ainda pelo fato de que as funcionalidades nativas do aparelho (desenvolvidas em outras linguagens) são disponíveis para máquina virtual Java e esse acesso indireto pode ter um impacto profundo em performance de aplicativos de tempo-real.

Fazer controles específicos sobre áudio, vídeo ou câmera geralmente não está disponível. Embora o JSR 234 (Advanced Multimedia Supplements) ainda consiga resolver algumas dessas dependências, ainda nem se compara com o que outras plataformas podem oferecer para os desenvolvedores. E a disponibilidade dessa API em aparelhos móveis, já que é uma API opcional, é bastante baixa.

O acesso ao sistema de arquivos é provido pela API FileConnection (JSR-75), mas ainda é restrito para certos tipos de acesso e requer que o MIDlet seja assinado, senão diversas caixas de diálogo de segurança pedindo a permissão do usuário aparecerão na tela. Usabilidade zero! Ah, e o processo de assinatura de um MIDlet custa $$ e tem uma burocracia envolvida, esteja preparado.


Enfim, essa é apenas uma pequena análise que eu faço hoje com JavaME, inclusive opinião de alguns desenvolvedores e fóruns que eu vejo na área. Não acho que JavaME é ruim ou melhor. Ela tem muitos prós e contras que devem ser levados quando iniciar a escolha de qual plataforma para o desenvolvimento do seu aplicativo móvel. De acordo com as suas necessidades e requisitos do seu aplicativo, a pergunta "O que eu devo escolher ou usar" será respondida através da experiência. No início realmente é complicado, mas com o tempo a escolha de qual plataforma adotar acaba sendo bastante natural. Gerenciamento de requisitos é uma ciência e não uma arte, então a escolha da plataforma de desenvolvimento irá aparecer naturalmente com a experiência.

A próxima linguagem de programação que irei citar mais detalhes é o Python! Considero essa a minha plataforma de desenvolvimento favorita. =D



Cap. 10 - SCMAD : Guia de Certificação

Estamos já no Décimo capítulo dos tutoriais para a obtenção do certificado SCMAD (Sun Mobile Application Developer). Todo o material está em inglês, visto que a prova também é em inglês!

Nesse capítulo abordo:

  • WMA- Wireless Messaging API
    • Message Connection
    • Message Types
    • Classes
    • Permissions

Para fazer o download dos slides, clicar aqui.

Para acesso ao primeiro tutorial do certificado SCMAD aqui.

Para acesso ao segundo tutorial do certificado SCMAD aqui.

Para o aceso ao terceiro tutorial do certificado SCMAD aqui.

Para o acesso ao quarto tutorial do certificado SCMAD aqui.

Para o acesso ao quinto tutorial do certificado SCMAD aqui.

Para o acesso ao sexto tutorial do certificado SCMAD aqui.

Para o acesso ao sétimo tutorial do certificado SCMAD aqui.

Para o acesso ao oitavo tutorial do certificado SCMAD aqui.

Para o acesso ao nono tutorial do certificado SCMAD aqui.


Scmad Chapter10
View SlideShare presentation or Upload your own.

Mês Java - Encontro de usuários Java em Campina Grande (PBJUG)

Pessoal,

Para fins de divulgação, vai ocorrer um evento muito interessante em Campina Grande: o Encontro dos usuários Java da Paraiba (PBJug). O evento será no dia 13 de setembro e terá uma programação repleta de palestras bem interessantes sobre a tecnologia Java.


Obs. 1: As palestras em inglês terão tradução
Obs. 2: As palestras serão todas presenciais.

Horário Título
08h00 - 08h20 Credenciamento e entrega de camisas
08h20 - 08h40 Abertura do Evento
Rodrigo Rebouças (UFCG / PBJUG)
08h40 - 09h30 Palestra: As Profissões em Ciência da Computação
Jacques Philippe Sauvé (UFCG)
09h30 - 10h00 Coffee Break
10h00 - 11h00 Palestra: Glassfish v3: a nova geração de servidores de aplicação modular
Kohsuke Kawaguchi (Sun Microsystems)
11h00 - 12h00 Palestra: Sun SPOT - Simplificando o Desenvolvimento para Dispositivos Wireless
Alisson Brito (CEFET-JP)
12h00 - 13h30 Horário de Almoço
13h30 - 14h00 Distribuição de Brindes
14h00 - 15h00 Palestra: Processos ou Pessoas?
Maurício Linhares (PBJUG)
15h00 - 16h00 Palestra: Java na Ponta dos Dedos: a revolução invisível
Mauricio Leal (Sun Microsystems)
16h00 - 16h30 Coffee Break
16h30 - 17h30 Palestra: Estendendo, expandindo e portando projetos da Comunidade ME
Roger Brinkley (Sun Microsystems)
17h30 Encerramento e distribuição de brindes


Realmente, o evento está de altíssimo nível com palestras internacionais, inclusive. Vale destacar as duas últimas palestras com Mauricio Leal (grande arquiteto e desenvolvedor de tecnologias JavaME e mobile da SUN) e Roger Brinkley (Da comunidade Open source com projetos relacionados a Mobile e JavaME e até o PhoneME).

Um evento imperdível para os que moram próximos na região Nordeste!

Mais informações ver o site de organização do evento. Inscrições com o valor R$ 12,00 (até 07/09 com brinde uma camisa!) .

Quem for, manda um email ou comentário no blog, quem sabe a gente não pode trocar umas idéias por lá!

Está dado o recado!
Olá pessoal,

Gostaria de retificar um erro que passou despercebido por mim. A postagem dos slides do primeiro capítulo do guia de estudos da certificação SUN SCMAD. Por algum motivo (talvez algum deslize meu) , o slideshares modificou os meus slides, substitutindo os slides do capítulo 1 pelo o capítulo 5.
Graças ao leitor do blog Fernando, consegui consertar esse pequeno erro.

Para os interessados, em fazer o download do arquivo, o link ainda é o mesmo e pode ser baixado aqui.

Em breve, já saindo do forno o próximo capítulo do guia.
Fiquem antenados!

Cap. 09 - Guia de certificação SCMAD - GCF

Estamos já no Nono capítulo dos tutoriais para a obtenção do certificado SCMAD (Sun Mobile Application Developer). Todo o material está em inglês, visto que a prova também é em inglês!

Nesse capítulo abordo:

  • GCF- Generic Connection Framework
    • Connector
    • Connection, InputConnection, OutputConnection
    • StreamConnection, ContentConnection
    • DatagramConnection
    • Datagram
    • StreamConnectionNotifier
    • Exceptions

Para fazer o download dos slides, clicar aqui.

Para acesso ao primeiro tutorial do certificado SCMAD aqui.

Para acesso ao segundo tutorial do certificado SCMAD aqui.

Para o aceso ao terceiro tutorial do certificado SCMAD aqui.

Para o acesso ao quarto tutorial do certificado SCMAD aqui.

Para o acesso ao quinto tutorial do certificado SCMAD aqui.

Para o acesso ao sexto tutorial do certificado SCMAD aqui.

Para o acesso ao sétimo tutorial do certificado SCMAD aqui.

Para o acesso ao oitavo tutorial do certificado SCMAD aqui.


Scmad Chapter09
View SlideShare presentation or Upload your own.

Novos celulares e novas tecnologias

Realmente, faz um tempo que não posto no meu blog, mas enfim estou voltando à ativa novamente depois dessa fase de solenidades devido à minha formatura. Para início encontrei esse vídeo bem legal no site Olhar Digital , publicando um vídeo sobre nos modelos de celulares e as novas tecnologias envovlidades. Fiquei intrigado com o uma particular funcionalidade de uns dos celulares mostrados onde o usuário baseado no seu estado de humor, o sistema pode montar listas de execução de música e oferecer ao usuário músicas que tem o mesmo perfil ou ritmo associado ao seu humor. Penso na possibilidade de melhorar tal interface e poder automaticamente construir e oferecer músicas do mesmo estilo musical, ou até da mesma época. Isso é muito bom quando temos diversas músicas em nosso mp3 player e não sabemos como organizar.
Vale também lembrar o telefone que funciona como sensor de movimento da Sony Ericsson. Bem legal! Vale a pena dar uma olhada mais afinco.

Segue o link do vídeo!

Cap. 08 - Guia de certificação SCMAD

O oitvao capítulo dos tutoriais para a obtenção do certificado SCMAD (Sun Mobile Application Developer) acaba de sair do forno. Lembrem-se que o tutorial está em inglês!

Nesse capítulo abordo:

  • RMS - Record Management System
    • RecordListener
    • RecordComparator
    • RecordStore
    • RecordFilter
    • Exceptions

Para fazer o download dos slides, clicar aqui.

Para acesso ao primeiro tutorial do certificado SCMAD aqui.

Para acesso ao segundo tutorial do certificado SCMAD aqui.

Para o aceso ao terceiro tutorial do certificado SCMAD aqui.

Para o acesso ao quarto tutorial do certificado SCMAD aqui.

Para o acesso ao quinto tutorial do certificado SCMAD aqui.

Para o acesso ao sexto tutorial do certificado SCMAD aqui.

Para o acesso ao sétimo tutorial do certificado SCMAD aqui.


Scmad Chapter08
View SlideShare presentation or Upload your own.

Modelagem e visualização de grafos e árvores em Java

Pessoal,

Para aqueles interessados ou que necessitam modelar grafos, árvores e tabelas em Java, eu encontrei uma referência muito interessante no blog do Vitor Pamplona citando sobre o Prefuse.
O Prefuse é um framework para modelagem, visualização e manipulação de grafos, tabelas e árvores em Java. Ele permite além de gerenciamento de layouts de visualização, animações, pesquisas integradas e conexão com banco de dados. Disponível sobre BSD, o Prefuse usa Java2D para visualização e pode ser utilizado tanto em Applets como também em aplicações Swing/AWT.


Vejam alguns screenshots retirados pelo uso do framework:






O próprio Vitor escreveu um passo-a-passo explicando como utilizar esse framework. Recomendo a leitura!

Capítulo 07 - Guia de Certificação SCMAD

Segue o sétimo capítulo dos tutoriais para a obtenção do certificado SCMAD (Sun Mobile Application Developer). Lembrem-se que o tutorial está em inglês!

Nesse capítulo abordo:

  • MIDP Util API - Timer e TimerTask
  • Game API

Para fazer o download dos slides, clicar aqui.

Para acesso ao primeiro tutorial do certificado SCMAD aqui.

Para acesso ao segundo tutorial do certificado SCMAD aqui.

Para o aceso ao terceiro tutorial do certificado SCMAD aqui.

Para o acesso ao quarto tutorial do certificado SCMAD aqui.

Para o acesso ao quinto tutorial do certificado SCMAD aqui.

Para o acesso ao sexto tutorial do certificado SCMAD aqui.

MSA 2.0 (JSR 248) está chegando

Aos desenvolvedores de JavaME que querem saber um pouco mais sobre a nova especificação padrão de APIS para aparelhos móveis, segue um link com mais informações sobre a mobile service architecture (JSR 248).
Para quem não sabe para que serve essa API, ela define um conjunto padrão de APIS necessários que as plataformas JavaME (KVMS) devem fornecer a fim de evitar a fragmentação entre diversos modelos de aparelhos.

A grande novidade é a espera da nova MIDP 3.0 (Mobile Information Device Profile) que virá com novas funcionalidades. No momento ela ainda se encontra em revisão para que possa ser dada como a versão final (demora cerca de 6 meses).

No novo MSA 2, que está em processo de revisão, a nova arquitetura é dividida em 3 versões: : Limited, Subset, e Full.

A figura a seguir ilustra quais são as diferenças entre essas novas arquiteturas:

The following figure shows MSA2 Full with its Limited and Subset variations.

MSA 2.0 Full


Mais informações precisas sobre o MSA 2, clique aqui.

Aparelhos Sony Ericsson com animações Flash Lite como papel de parede

O portal de desenvolvedores para os aparelhos celulares Sony Ericsson lançou um novo tutorial explicando como construir animações em Flash Lite 2.0 e usá-las como papel de parede do seu celular ou ser importado como um tema usando o Sony Ericsson Themes Creator.

O tutorial provê uma demonstração de uma animação de uma avenida com informações sobre a bateria, a potência do sinal do celular e a data corrente. Ou seja, com informações visuais e ilustrativas eu posso incrementar a usabilidade do meu aparelho e customizar como eu quero visualizar tais informações. Muito legal!

Eles fornecem uma API específica para a comunicação do tema (animação) e os recursos do aparelho. Gostaria de ver tais coisas também em celulares da Nokia, Motorola, etc.
Até meu papel de parede posso definir como os ícones serão representados de uma forma customizável e bem bacana!

Vejam algumas fotos:


Signal strength, time and battery status presented as buildings.


Tudo isso é possível graças à nova versão do Sony Ericsson Themes Creator que suporta a importação de arquivos SWF (flash) para a área de papel de parede do seu tema (pacote de interfaces customizáveis para o seu aparelho).

Mais informações, ver o tutorial aqui.

.


Cap. 06 -Guia de Certificação SCMAD

Segue o sexto capítulo dos tutoriais para a obtenção do certificado SCMAD (Sun Mobile Application Developer). Lembrem-se que o tutorial está em inglês!

Nesse capítulo abordo:

  • MIDP Low User Interface API
  • Canvas
  • Custom Items
Para fazer o download dos slides, clicar aqui.

Para acesso ao primeiro tutorial do certificado SCMAD aqui.

Para acesso ao segundo tutorial do certificado SCMAD aqui.

Para o aceso ao terceiro tutorial do certificado SCMAD aqui.

Para o acesso ao quarto tutorial do certificado SCMAD aqui.

Para o acesso ao quinto tutorial do certificado SCMAD aqui.

Projeto InterArm: Há interoperabilidade entre plataformas?

Olá pessoal,

Ultimamente venho trabalhado pesado, especialmente uma dedicação a mais até para obter minha certificação em JavaME da SUN (SCMAD). Inclusive com uma grande gama de material disponível nesse próprio blog como um guia de certificação.
Enfim, um dos projetos que venho trabalhado e que inclusive é um projeto pessoal meu é a demonstração da possibilidade da interoperabilidade entre plataformas. O que isso quer dizer?
Vejamos... Será que é possível fazer com que plataformas distintas ou aplicações desenvolvidas em linguagens de programação totalmente diferentes possam se comunicar?
Claro que sim, até porque existe um protocolo em comum que permite essa comunicação entre aplicativos. Um dos grandes problemas hoje é descobrir qual plataforma melhor se adequa às necessidades do desenvolvedor e atenda aos requisitos exigidos pelo produto. Uma prova de conceito bem interessante é mostrar que plataformas se sobressaem melhor que as outras de acordo com o ambiente ou funcionalidade a ser desenvolvida. Vamos colocar um exemplo bem simples: "Se eu quero desenvolver um joguinho que exige uma grande quantidade de gráficos e animações 2D, qual plataforma de desenvolvimento eu posso utilizar? " Resposta: Existem várias. Mas uma que tenha a uma curva de produtividade e desenvolvimento rápida? Resposta: Uma possível plataforma seria o Flash. Pois ele é voltado para desenvolvimento de animações e gráficos. Eu falo em um desenvolvimento de um aplicativo em que o tempo é um fator crítico especialmente quando queremos propor um novo protótipo ao cliente.

Então porque reinventar a roda, quando existem plataformas diversas que tem vantagens e características exclusivas que ajudam o desenvolvedor na prototipação de um aplicativo? É claro também, que o mesmo vai avaliando durante o ciclo de desenvolvimento se ele achar que é necessário uma plataforma mais robusta que lhe dê mais funcionalidades como as bibliotecas gráficas de C/C++.
Enfim, eu estou desenvolvendo um pequeno projeto que envolve a integração de diversas plataformas e que interligadas geram um "aplicativo" maior e que prova a possibilidade de você desenvolver aplicativos em quaisquer plataformas, bastando apenas você dotá-los para falarem a mesma língua ("comunicação").

Em breve, citarei mais detalhes desse pequeno projeto open-source e pessoal que estou a começando a rabiscar.

Fiquem à vontade para adicionarem comentários ou sugestões!! =D

CitySense: Redes Sociais + Celulares + baladas

Achei bem interessante a proposta idealizada por esse aplicativo desenvolvido por um professor de ciência da computação da Universidade de Columbia nos EUA. A idéia é distribuir um aplicativo gratuito chamado CitySense que mosta em seu celular onde as baladas estão acontecendo em sua própria cidade. O mais interessante é a forma de como o aplicativo aprende as informações (dados) provenientes de milhares de telefones celulares, cabines equipadas com GPS e outros dispositivos de dados para mostrar as imagens ao vivo do local onde as pessoas estão. Através de técnicas inteligentes de aprendizado de máquina (*uma rede social inteligente), o CitySense opera sobre uma plataforma Sense Networks Macrosense, que analisa uma quantidade enorme de dados agregados e anônimo de localização em tempo real.
O foco do aplicativo é responder as seguintes perguntas: "Onde está todo mundo ?" "Qual balada vai me agradar? " "Onde posso comer ?" ... O aplicativo através da experiência e iteração com o usuário vai aprendendo sobre os tipos de lugares que a pessoa gosta de ir (sem compartilhamento de informações - questão da privacidade). O próximo passo seria informar também não somente onde toda a gente está no momento, mas também onde todo mundo que tem as mesmas preferências que você estão no momento. O aplicativo faria comparações entre seu histórico e preferências com as de outros usuários e aí mostrar os locais com maior probabilidade encontrar pessoas com gostos semelhantes. Ainda a possibilidade de ter um mapa da vida noturna de cada pessoa onde indicaria uma lista de ranking com os lugares mais legais.

Eu já tive uma idéia dessa, por sinal já venho comentado há alguns anos sobre o uso de aparelhos móveis e redes sociais para a construção do Mobalada.

Realmente fiquei impressionado com o nível de realismo do aplicativo, onde disponibilizo abaixo uma prévia do aplicativo (Screenshot). No momento tal aplicativo só funciona em San Francisco nos Estados Unidos.



CitySense

Quero agradecer a Ricardo Ogliari por essa dica com seu blog Mobilidade é tudo. Já venho dizendo que a idéia de redes sociais em que o usuário é o provedor de dados seja em dispositivos móveis, web ou qualquer derivado da computação ubíqua é o futuro, ou melhor já está acontecendo.
Segue o quinto capítulo (com um pouco de atraso) dos tutoriais para a obtenção do certificado SCMAD (Sun Mobile Application Developer). Lembrem-se que o tutorial está em inglês!

Nesse capítulo abordo:

  • MIDP User interface API’s - Form
  • Item Types
  • Classes
  • Other topics about HighLevel UI

Para fazer o download dos slides, clicar aqui.

Para acesso ao primeiro tutorial do certificado SCMAD aqui.

Para acesso ao segundo tutorial do certificado SCMAD aqui.

Para o aceso ao terceiro tutorial do certificado SCMAD aqui.

Para o acesso ao quarto turorial do certificado SCMAD aqui.

Bons estudos!


Para os desenvolvedores de JavaME, e em especial para os fãs do BlackBerry (famoso aparelho móvel altamente reconhecido pela sua grande de recursos especialmente destaque em ambientes corporativos) há um guia bem legal com algumas dicas de desenvolvimento para BlackBerry que aborda desde conteúdo Web, Wap a API JavaME para o BlackBerry. Todo esse material está disponível no site Programa de Desenvolvedores Nextel. Agradecer a Ricardo Ogliari por divulgar essa dica no seu blog Mobilidade é tudo.

Seguem os links:

Bluetooth e GPS - Artigo : JavaME (Bluetooth API)

Para os desenvolvedores de JavaME (especialmente interessados em desenvolver módulos específicos para conexão bluetooth com aparelhos GPS), segue a primeira parte de um artigo explicando como desenvolver uma solução em JSR-82 (Bluetooth API) para conexão com um aparelho GPS embarcado com bluetooth.

O artigo, na íntegra, pode ser encontrado aqui.
Para os interessados em querer aprender novas plataformas de desenvolvimento como JavaME, Python para S60, Widgets, etc. Existe uma grande quantidade de material muito bom on-line (que também pode ser baixado para a sua máquina) com aulas e tutoriais bem didáticos (em inglês). Todo esse material é provido pela Nokia no seu portal Forum Nokia. Ah, claro! Material é gratuito =D

Recomendo a visita, especialmente dessas duas aulas E-learning:

** PythonS60 :Introdução
** JavaME: Introdução

[]''s
top