Recentemente publiquei no GitHub um projeto que construí usando o GAE (Google App Engine). Trata-se de um serviço de publicações de Riffs (trechos de composições musicais). O serviço pode ser acessado atravẽs do endereço: http://riffshareweb.appspot.com . Trata-se ainda de uma versão alpha. A versão do aplicativo para Android está sendo desenvolvida. Volto a mencionar que o código-fonte está disponível no meu acervo do GitHub: http://www.github.com/jonathandasilvasantos .
Projeto: riffShare WebApp
publicado por Administrador em janeiro 10th, 2012 em Projetos
Hackintosh: Soluçáo para ˜Your device or computer could not be verified˜ na App Store
publicado por Administrador em outubro 4th, 2011 em Apple
Vejo que muitas pessoas com o Hackintosh – utilizando o Lion – tem tido problemas com a autenticação na App Store. A minha dica para solução do problema é: deixe seu ambiente o mais simples possível. Assim você pode controlar todas as variáveis do ambiente. Os procedimentos que utilizei para eliminar o problema segue adiante:
1 – instale o “Chameleon 2.0 RC5 rev. 1446 HMBT” do www.hmbt.org
2 – Exclua os seguintes arquivos:
/Library/Preferences/SystemConfiguration/com.apple.network.identification.plist
/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
3 – Substitue a pasta /Extra pela pasta Extra aqui disponível. (Faça um backup da sua pasta Extra antes de realizar a substituição).
4 – Reinicie o Hackintosh e boa sorte!
Android: Configurando ambiente de desenvolvimento.
publicado por Administrador em setembro 21st, 2011 em Android
Em virtude de uma melhor compreensão, julgo proveitoso uma introdução a respeito de como uma aplicação é gerida pelo Android. O sistema trabalha com uma máquina virtual chamada Dalvik, que foi construída com o propósito de ser muito eficiente com o gerenciamento de memório – recurso, até então, muito escasso em dispositivos móveis (alvo da plataforma). A Dalvik foi inspirada em Máquinas Virtuuais Java (JVMs), no entanto, a rigor, não se trata de uma JVM, uma vez que não trabalha com o mesmo bytecode (código interpretável por um processo virtual) comum entre as Máquinas Virtuais Java. A maior parte da estruturação do SDK é pensada para o desenvolvimento de aplicações utilizando a linguagem de programação Java, no entanto, existe suporte para a criação de rotinas nativas que são executadas pelo núcleo do sistema (fora da Dalvik).
Agora que já estamos a par – ainda que de maneira bem superficial – do funcionamento do sistema: vamos começar as configurações para o nosso ambiente de desenvolvimento Android.
O primeiro passo é baixar o SDK no portal oficial de desenvolvimento do Android mantido pelo Google:
http://developer.android.com/sdk/
Baixe a versão do SDK de acordo com o seu sistema operacional. A configuração do ambiente de desenvolvimento difere pouco entre os sistemas suportados pelo kit de desenvolvimeno, portanto, acreditamos que esse guia o ajudará a efetuar as configurações em qualquer um dos sistemas operacionais. Uma boa dica: salve-o em um lugar de fácil acesso em seu disco, em ambientes UNIX indicamos o diretório do seu usuário /Users/user (no Mac OS X); /users/usuario (no Linux) e no Windows indicamos a raiz de algum dos discos disponíveis, exemplo: c:\ .
Extraia os arquivos no diretório desejado.
Acesse o diretório android-sdk (no Linux ou Mac OS X, faça-o através do Terminal).
Entre no diretório tools.
Execute a ferramenta “android”. No terminal do Mac OS X ou do Linux, digite ./android no Windows basta clicar duas vezes no arquivo android.exe (ou escrevë-lo no command prompt).
Uma ferramenta de administração do SDK e das virtualizações do Android será aberta. Por meio dessa ferramenta podemos baixar versões diferentes do SDK; criar e configurar nossos “androids” virtuais com as características que desejamos, entre outras funções de maneira visual e prática.
Clique em Avaliable Packages (nas opções expostas no menu à esquerda).
Marque os pacotes relacionados ás versões do SDK que você deseja utilizar. (Como não tenho muita limitação em termos de armazenamento de dados em meus discos, costumo baixar todas as edições de SDKs disponíveis).
Após fazer o download das versões desejadas do SDK, é hora de instalar o Eclipse IDE: baixe o “Eclipse for Java Developers” em http://www.eclipse.org/downloads/ e o instale.
Para prepararmos o Eclipse para trabalhar com o Android SDK, precisamos incluir um plugin na IDE chamado ADT: abra o Eclipse; clique no menu Help; “Install New Software”.
Clique em “Add”, no canto superior direito. Na caixa de diálogo “Add Repository”
Na caixa de diálogo “Adicionar Repositório”, digite “ADT Plugin” para o nome e URL a seguir para o local:
https://dl-ssl.google.com/android/eclipse/
Clique em OK
Nota: Se você tiver problemas para adquirir o plugin, tente usar “http” na URL Localização, em vez de “https” (https é preferível por razões de segurança).
Na caixa de diálogo “Available Software”, selecione a caixa de seleção ao lado de “Developer Tools” e clique em “Next”.
Na janela seguinte, você verá uma lista de ferramentas para ser baixado. Clique em “Next”.
Leia e aceite os acordos de licença, clique em “Finish”.
Nota: Se você receber um aviso de segurança dizendo que a autenticidade ou validade do software não pode ser estabelecida, clique em OK.
Quando a instalação estiver concluída, reinicie o Eclipse. Pronto! Já temos o ADT instalado! Agora, vamos configurá-lo:
Configurando o Plugin ADT
Selecione Window > Preferences … para abrir o painel de Preferências (Mac OS X: Eclipse> Preferências).
Selecione Android a partir do painel esquerdo.
Você pode ver uma janela perguntando se você deseja enviar estatísticas de uso para o Google. Se assim for, faça a sua escolha e clique em Continuar. Não é possível continuar com este procedimento até que você clique em Prosseguir.
Informe a localização do SDK no painel principal, clique em “Browse” … e informe o diretório onde está o SDK (no meu caso: “/home/bender/android-sdk”.
Clique em “Apply” e depois em “OK”.
É isso! Temos instalado e configurado um ambiente pronto para o desenvolvimento de aplicações Android!
Agora, para criar um projeto Android, basta clicar em “File”; “New”; “Project” e em seguida selecionar “Android” na caixa à esquerda da janela que será exibida.
Boa Sorte!
Pong.PSP
publicado por admin em janeiro 15th, 2011 em Projetos, Sem categoria
Olá pessoal, tudo bem? Espero que sim! Como eu já dissera na publicação anterior, vou expor os passos necessários para fazermos uma aplicação para o PSP (Playstation Potátil). São várias as linguagens possíveis de serem usadas para a programação de homebrews para o PSP, menciono algumas: C/C++ (mais comum), Objective-C (Yeah!), D e também algumas linguagens scripts, como o Lua, por exemplo. Vou presumir o interesse em desenvolvimento usando o C/C++. A idéia é que ao longo dessa curta publicação você aprenda a instalar, configurar e ser capaz de compilar uma aplicação para o PSP.
O ambiente de desenvolvimento pode ser instalado em diferentes sistemas operacionais, como: Windows (>= 95), Linux, Mac OS X, BSD, OpenSolaris… Aqui vou me focar no Windows. Na minha máquina estou usando o Windows 7 Ultimate (64bits). Existem algumas técnicas para realizar o debug das aplicações do PSP, mas não irei explorá-las aqui. Em caso de dúvidas, basta me escrever. Para o desenvolvimento nós usaremos uma caixa de ferramentas chamada toolchain que possui as bibliotecas necessárias, o compilador e o linker.
Vejamos algumas curiosidades técnicas: a CPU do PSP é conhecida como “Mips Allegrex”, trata-se de uma modificação do “Mips 3000+” com unidade de ponto flutuante(FPU) e unidade de vetor de ponto flutuante (VFPU). O “Mips Allegrex” foi construido com o propósito de trabalhar com clock baixo, mais especificamente 200MHz de clock. Evidente que o compilador e o linker engenhado para o desenvolvimento com essa CPU não é público, afinal, a Sony não facilitaria tanto assim. O que temos como meios de desenvolvimento é um GCC alterado (PSP-GCC) e diversas bibliotecas para o nosso domínio sobre o hardware alvo. Podemos notar o empenho de centenas de fãs do PSP em descobrir- através da engenharia reversa, sobretudo – como funciona tecnicamente a plataforma e a partir de então criar ferramentas que nos possibilita o desenvolvimento (a vocês, tiro o meu chapéu).
Bom, para instalarmos o ambiente de desenvolvimento no Windows, temos basicamente duas opções. A primeira delas é utilizando o Cygwin (ferramenta que, em poucas palavras: simula um ambiente UNIX dentro do Windows). Essa opção é a minha preferida, mas não será a abordada aqui. Por que? Simples, para isso precisariamos acessar os repositórios Mercury do psp2dev.org, no entanto, o servidor está fora do ar há meses (e sem previsão de voltar). Há um mirror para esse servidor, (Jim’s Mirror: http://psp.jim.sh/svn/ ) mas não estou muito disposto a ficar mudando apontamentos para a instalação do toolchain. A segunda opção é extremamente simples, basta usar um pacote de ferramentas chamado MinPSPW.
O MinPSPW é um projeto iniciado no começo de 2008 que tem por finalidade ser um “port” do SDK desenvolvido pela comunidade para funcionar de maneira nativa no Windows, portanto, sem a necessidade do uso do Cygwin. Mais informações sobre o projeto podem ser encontradas em: http://www.jetdrone.com/ . No site você também encontra o arquivo de instalção do SDK, baixe a última versão estável. Se preferir, pode acessar o site do projeto no Source Forge: www.sourceforge.net/projects/minpspw/ . A versão que estou utilizando nesse momento é a 0.11.1.
Uma vez baixado o arquivo de instalação, instale-o. Recomendo que utilize o diretório padrão como destino dos arquivos do SDK. A instalação é bem tranquila, apenas “next, next, next”… Uma vez instalado você já está pronto para compilar aplicações para o PSP através de linha de comando no console. Se preferir, você pode configurar alguma como o Eclipse ou Visual Studio para trabalhar com o SDK. Para tal basta alguma pesquisa, não se trata de uma tarefa árdua. Em minha máquina possuo o Eclipse com o CDT configurado para trabalhar com o MinPSPW.
Bom, utilizando o console navegue até o diretório de instalação do sdk; vá até a pasta “psp”; vá até a pasta “sdk”; vá até a pasta “samples”. Agora podemos ver (se fizermos uma listagem dos arquivos presentes) diversos exemplos disponíveis para o desenvolvimento tendo como alvo o PSP. Vamos compilar um? Escolhi um que usa a GU (Unidade Gráfica): o cube. Para compilarmos esse exemplo vá até a pasta “gu” (ainda no console) e em seguida vá até a pasta “cube”. Agora, digite o comando “make” e… “Voilà”! Temos um arquivo no diretório chamado “EBOOT.PBP” (executável no PSP). Bacana, não? Como você pode perceber, há vários exemplos que podem ser estudados com códigos em diferentes linguagens. Para criar uma aplicação do zero, fique atento em dois pontos:
Primeiro: há métodos obrigatórios que inicializam e manejam o ciclo de vida da aplicação no PSP. Construa o seu método SetupCallbacks com bastante cautela. Leia com atenção esses métodos nos cõdigos de exemplo.
Segundo: estude os arquivos Makefile dos exemplos disponíveis, ali estão presentes diretrizes que apontam do seu código-fonte para o SDK. Por meio de analogia é bem fácil criar o seu próprio Makefile.
Uma dica: para testar o compilado, você – na maioria das vezes -, pode usar um emulador de PSP. Os emuladores disponíveis ainda estão muito incipientes, porém são bem funcionais quando utilizamos superficialmente a capacidade do hardware. Para testar o Pong eu usei o JpcSP 0.3.
Segue o link do EBOOT.PBP do Pong que fiz. O código-fonte pode ser solicitado através do e-mail, tudo bem?
Um abraço e bom divertimento!
Projeto: Pong.*
publicado por admin em janeiro 7th, 2011 em Projetos, Sem categoria
Há centenas, ou melhor, milhares de plataformas possíveis de serem programadas. Desde de nosso agradável Intel z86 com Windows 7 até o relógio de pulso do seu avô. São tantas e tão distintas que criam em mim um interesse tamanho, qual um cultivador – ou apaixonado – por orquídeas. Assim como as orquídeas, cada plataforma é diferente, embora derivada de outras mais. Estou tratando o tema de maneira muito poética? Ok, vou me policiar a respeito. Você já deve ter sentido a sensação de impotência diante de uma biblioteca ao pensar: “há tantos livros aqui que mesmo se eu pudesse viver mais de um século jamais teria tempo suficiente para ler a todos”. O mesmo sinto ao pensar nas plataformas: jamais terei tempo de programar para todas elas. Parece bem pretensioso, não? É, perdoe-me, ás vezes eu tenho lá essas megalomanias!
Acho importante eu descrever o que entendo como plataforma: “plataforma, no meio tecnologico, é um arranjo de peças, sejam físicas(hardware) ou lógicas e intangíveis(softwares) que configuram um mecanismo de identidade única destinado a cumprir uma específica função”. Trata-se de uma definição bem ampla, mas que me permite exagerar quando digo que há milhares de plataformas neste mundão a fora.
Uma vez definido plataforma e mencionado o meu interesse por elas, agora só resta explicar o porquê estou falando disso tudo. Eu estou com muita vontade de aprender a programar para novos dispositivos (e velhos também). Quero dizer que pretendo estudar e programar para plataformas “diferentes”; que atualmente me interessam. Não tenho um critério específico para escolhê-las, apenas um… digamos… afeto? Bom, o certo é que para esses estudos decidi criar uma aplicação padrão que consiste em desenvolver um jogo Pong (parecido com o que no Brasil foi chamado de Telejogo). A idéia é: para cada plataforma que eu tiver o domínio necessário para criar um Pong, o farei e descreverei o processo aqui em uma publicação dedicada. Não vou me concentrar em explicar o código ou a(s) linguagem(ns) de programação que o fundamenta, mas sim as ferramentas necessárias para instalar o ambiente de desenvolvimento e suas configurações. O ideal seria que eu pudesse tratar sobre o código – eventualmente o farei -, mas definir isso como um propósito seria muito presunçoso da minha parte uma vez que provavelmente há materiais didáticos mais apropriados com esse “escopo”.
Defini as seguintes características obrigatórias para o Pong.*:
1) É necessário ter um “bola” representada por algum artifício visual. A bola deve ter movimentos conforme suas colisões com as bordas da tela
2) É necessário ter uma paleta (bloco) representado por algum artifício visual que ao colidir com a Bola deve causar nessa uma alteração em seu movimento.
3) O usuário deve poder controlar a paleta (bloco).
Já desenvolvi o primeiro Pong, trata-se do Pong.PSP (jogo para Playstation Portátil). Assim que eu tiver um tempo livre começo a escrever os passos necessários do desenvolvimento para essa plataforma. Até mais!



Jonathan da Silva Santos Solteiro, 23 Anos, Diadema-SP. Desenvolvedor de sistemas computacionais e um apaixonado por tecnologia e informática.