Diego Santos

Vocês anseiam pelo dia em que homens serão homens e escreverão seus próprios devices drivers?

Um overview sobre o desenvolvimento para iphone julho 29, 2008

Filed under: Mobilidade — diegosantos @ 9:29 pm
Tags: ,

Esse texto, a alguns outros que virão, é a tradução do centro de desenvolvimento para iphone do qual faço parte.

extraído de : http://developer.apple.com/iphone/gettingstarted/docs/iphoneosoverview.action

O iPhone OS inclui sistema operacional e tecnologias que você pode usar para executar aplicativos nativamente em iPhone e iPod touch . Ainda que compartilhe uma herança comum a muitas tecnologias com o Mac OS X, O iPhone OS foi concebido para satisfazer as necessidades de um ambiente móvel, onde as necessidades do usuário são um pouco diferentes. Os desenvolvedores do Mac OS X irão encontrar muitas tecnologias familiar, mas eles podem também encontrar tecnologias que estão disponíveis apenas no sistema operacional do iPhone sistema operacional, tais como a interface Multi-Touch e o acelerómetro.

O Kit de desenvolvimento para iPhone (iPhone SDK) contém o código, a informação, e as ferramentas que você precisa para desenvolver, testar, executar, depurar e aplicações para sincronizar com o iPhone OS. O ferramentas do Xcode foram atualizados para apoiar o desenvolvimento do iPhone OS. Para além de constituir a base de edição, compilação, depuração e de ambiente para o seu código, Xcode prevê também o ponto de lançamento para testar seus aplicativos em um iPod ou iPhone touch. Xcode também lhe permite executar aplicativos em um simulador de iPhone , uma plataforma que imita a base do iPhone OS em ambiente local no seu computador Macintosh.

Este artigo fornece uma visão geral de alto nível das características básicas encontradas no iPhone OS, para ajudar a orientá-lo na plataforma. Você encontrará outros artigos do iPhone Dev Center para ajudar a chegar até a velocidade mais rápida e para ajudá-lo a entender o processo básico para a criação de aplicativos para iPhone. Você deve usar esses artigos para ajudar a guiar o seu caminho para a aprendizagem da plataforma do iPhone OS.

Camadas de tecnologia do iPhone OS

No iPhone OS, o sistema de arquitetura e muitas das tecnologias são semelhantes aos encontrados no Mac OS X. O kernel do sistema operacional do iPhone é baseado em uma variante da mesma base Mach kernel que se encontra no Mac OS X. No topo desta kernel estão as camadas de serviços que são usados para executar aplicações na plataforma. A Figura mostra uma visão geral de alto nível dessas camadas.

Isto dá-lhe opções camadas quando se trata de implementar seu código. Por exemplo, as camadas núcleo do sistema operacional (Core OS) e o o Núcles dos Serviços (Core Services)  contém as interfaces fundamentais para iPhone OS, incluindo os utilizados para acessar aos arquivos, tipos de dados de baixo nível, serviços Bonjour, soquetes de rede e assim por diante. Essas interfaces são na sua maioria à base do C e incluem tecnologias como a Core Fundation, CFNetwork, SQLite, e acesso a POSIX threads e sockets UNIX entre outros.

Nas camadas superiores, você encontrará as mais avançadas tecnologias que utilizam uma mistura de interfaces baseadas em C e Objective-C. Por exemplo, a camada dos Meios de Comunicação Social (Media) contém as tecnologias fundamentais utilizados para apoiar desenho 2D e 3D, áudio e vídeo. Esta camada inclui as tecnologias baseadas em C o OpenGL ES, Quartz, e Core Audio. Contém também Core Animation, que é um avançado engine de animação baseado em Objetivo-C.

Na camada Cocoa Touch, a maior parte das tecnologias utiliza Objetivo-C. O framework dessa camada fornecer as infra-estruturas fundamentais utilizadas pela sua aplicação. Por exemplo, o frame provê suporte a orientação a objetos colecções, gerenciamento de arquivos, operações de rede, e mais. O framework UIKit prevê a infra-estrutura visual para sua aplicação, incluindo classes de janelas, pontos de vista, controles  e os controladores que gerenciam esses objetos. Outros frameworks deste nível permitem o acesso do usuário à informação e de contato e foto para o acelerômetros e outras características de hardware do dispositivo.

O ponto de partida para qualquer novo projecto é a camada Cocoa Touch , e o framework UIKit , em particular. Ao decidir quais tecnologias adicionais  utilizar, é recomendado que você comece com framework das camadas de nível superior e se apoiar nos framework das camadas mais baixas, conforme necessário. Os framework de nível superior torna mais fácil o suporte aos comportamenntos do sistema com menos esforço da sua parte. A única vez em que você deve descer para os framework de nível mais baixo é quando você deseja implementar um comportamento personalizado que não seja fornecida a um nível superior.

Para maiores detalhes das tecnologias do iPhone OS veja iPhone OS Programming Guide.

Escrevendo Código para iPhone OS

O iPhone SDK suporta a criação de orientada-gráficamente para os aplicativos que correm nativamente em iPhone OS. As aplicações que você criar pode residir no ecrã inicial do usuário, junto com os outros aplicativos de sistema, tais como fotos, previsão do tempo, e Relógio. Depois de serem lançados, com exceção do kernel e alguns daemons de baixo nível ,a sua aplicação é a única aplicação em execução no sistema. Embora executando, a sua aplicação ocupa todo o ecrã e é o foco de atenção do usuário. E quando o usuário apertar o botão Home, a sua aplicação sai do sistema exibe a tela Home novamente. Tendo o sistema é vantajoso para você mesmo, porque dá-lhe acesso total ao sistema de recursos subjacentes. Você pode tirar vantagem do espaço construído, em hardware, tais como os acelerómetros, câmera, gráficos e de hardware para executar apenas o seu código.

Devido à forma como os usuários interagem com o iPod e iPhone touch é fundamentalmente diferente da forma como os usuários interagem com o Mac OS X, a maneira de conceber as suas aplicações também devem ser diferentes. Em uma aplicação do iPhone, não há nenhuma noção de documento separado por janelas para exibir o conteúdo. Em vez disso, todos os dados da aplicação é exibida em uma única janela. Esta situação levou à criação de novos pontos de vista e controles que permitem que você possa apresentar os dados de sua aplicação de modo organizado. Além disso, muitos dos pontos de vista e controles padrão pode se comportar de forma ligeiramente diferente do que os seus homólogos do Mac OS X. A maior parte destas alterações devem ser transparentes, mas alguns podem exigir-lhe repensar a forma de organizar e apresentar os seus dados.

O modelo de tratamento de evento do iPhone SO representa também um importante ruptura em relação as aplicações desktop tradicionais. Em vez de se basear nos tradicionais eventos de mouse e teclado,  o iPhone OS introduz a idéia de “eventos de toque”. Um evento de toque pode ocorrer em qualquer altura e em combinação com um toque adicional ou mais eventos. Toques podem ser usado para detectar simples interações com o conteúdo, tais como a seleção ou arrastar os itens, ou eles podem ser usados para detectar gestos e interações complexas, tais como toque leve ou gestos para abrir ou fechar(utilizado, por exemplo, a zoom in e out nas aplicações de imagens).

Considerando a estrutura básica do seu aplicativo, você precisa pensar sobre o modo como os usuários vão realmente usá-lo. As aplicações do iPhone ser limpas, e focar no que o usuário precisa no momento. Lembre-se que os usuários que estão on-the-go querem obter a informação rapidamente e não gastar muito tempo procurando através de várias camadas de telas. Proporcionar um esquema simples que destaca as principais informações que o usuário precisa é importante. Para jogos divertidos e outros aplicativos, você também deve considerar a forma como os usuários podem querer interagir com o seu pedido e tirar partido das tecnologias, como os acelerômetros e câmera se for esse o caso.

À medida que você começar o desenvolvimento, os framework que pretende utilizar inicialmente estão nos framework UIKit e Foundation . Estes frameworks fornecem os principais serviços utilizados por todos as aplicações do iPhone. Para refinar sua aplicação, você deve investigar os outros frameworks do sistema para ver quais os serviços que oferecem. A documentação conceitual para cada um dos frameworks inclui links para materiais relevantes para ajudá-lo a aprender mais sobre como usar esse framework.

Para obter informações sobre os framework foundation e UIKit , veja Foundation Framework ReferenceUIKit Framework.
e

Onde começar

Criar simples aplicações que são executadas no iPhone OS é relativamente fácil com o projeto de construção de modelos fornecidos pela Xcode, mas criar aplicativos que fazem alguma coisa útil e agradável exige que você gaste algum tempo com leitura através da documentação disponível. No mínimo, você deve ter o tempo para ler as orientações dos artigos do iPhone Dev Center, que explorará as ferramentas e processos para a criação de aplicações.

Se você é completamente novo ao que diz respeito a iPhone OS e Mac OS X, ter tempo para compreender a concepção básica e padrões e das convenções iPhone OS é crítico para escrever código para a plataforma. Aplicações em iPhone OS funcionam melhor quando se tirar partido do poder fornecidos pelos frameworks . Se você passar algum tempo tentando trabalhar em torno do framework de comportamento básico, você poderá criar a sua aplicação muito mais difícil do que simplesmente a aprendizagem da utilização de padrões de projeto básico. As informações básicas que todos os desenvolvedores de iPhone está  Cocoa Fundamentals Guide. Este documento apresenta os princípios básicos da linguagem Objective-C e das convenções de programaçã e padrões utilizados por UIKit design e muitos outros frameworks do sistema.

Depois de compreender a base de convenções você usará para criar aplicações para o iPhone, pode  o  iPhone OS Programming Guide para detalhes específicos sobre o processo de desenvolvimento. Este livro oferece tarefa-chave de base conceitual e informações sobre como escrever aplicações para o iPhone, incluindo exemplos de como exibir uma interface de usuário, manipular eventos e tirar partido das características-chave do iPhone OS. Ele também descreve o processo global de desenvolvimento e explica como você usa o Xcode para construir e executar seus aplicativos.

Além de iPhone OS Programming Guide, você deve olhar também códigos de amostra disponíveis. Você também pode olhar os códigos disponíveis de aplicações iPhone OS que lhe mostram como usar as tecnologias disponíveis para criar aplicações para o mundo real. Você pode utilizar essas amostras como ponto de partida para as suas próprias aplicações ou você pode olhar para eles para saber mais sobre como usar recursos específicos.

O iPhone promete mudar todos os patamares do que é uma mobile, aliás ele já tem feito, muito ainda existe para ser feito e vale a pena aos techmaníacos ficarem atentos.

 

Fedora 10 Cambridge

Filed under: Fedora — diegosantos @ 12:59 pm
Tags:

O nome da versão do Fedora 10 foi divulgado na noite do dia 28/7 por Josh Boyer. A votação, que iniciou-se em 22/7, teve 1900 usuários elegíveis de voto e 390 cédulas válidas.

O nome da próxima versão do Fedora será Cambridge e foi escolhido dentre as opções abaixo e suas respectivas votações:

1. Cambridge 1547
2. Nile 1503
3. Farnsworth 1435
4. Water 1408
5. Nitrate 1295
6. Whiskey Run 1281
7. Mississippi 1145
8. Saltpetre 1076
9. Terror 953

Sendo assim, que venha o Fedora 10 Cambridge.

 

Linus Torvalds usa Fedora 9 julho 28, 2008

Filed under: Fedora — diegosantos @ 12:28 pm
Tags:

Olá, hoje pela manhã ao fazer a minha visita padrão ao site do Fedora Project, me deparo com uma notícia .

“Linus Torvalds usa Fedora 9”

Reproduzo aqui o post do Gomex no site :

“O pai do kernel Linux” em entrevista[1] para a simple talk respondeu algumas perguntas sobre o futuro o kernel, sua pequena desavença com Tanenbaum e a pergunta feita a todos entrevistados:
“Que distribuição Linux você usa?”

Linus responde :

Fedora 9

Por que? Ele mesmo responde:

“…tem mais a ver com o fato do Fedora ter tido um ótimo suporte para o PowerPC na época que eu usava,

então me acostumei com ele. Mas eu não ligo muito para a distribuição, contanto que torne fácil de instalar e manter o sistema atualizado.”

Ele ainda comenta que nunca utiilizou debian e outros, pois sempre achou um tanto complicado a sua instalação, mas relatou também que o sistema hoje provavelmente está mais simples, mas por comodidade continua a utilizar o Fedora.

É um enorme prazer saber que o Linus utiliza Fedora e ainda colabora em relatos de bugs. Isso é realmente gratificante.

Para todos aqueles usuários de Ubuntu, Debian, Mandriva, Slackware que não acreditam olhem o site do Simple Talk. Gente! Sem brigas, o mundo do software livre deve-se unir, mas que é bom saber que Linus usa Fedora isso é.

http://www.simple-talk.com/opinion/geek-of-the-week/linus-torvalds,-geek-of-the-week/

 

Trabalhando com Mysql em Python julho 27, 2008

Filed under: Python — diegosantos @ 11:37 pm
Tags: ,

Após alguns artigos falando sobre o básico da linguagem python, irei agora mostrar algo um pouco mais complexo e que será útil todas as vezes que precisarmos guardar os dados processados em nosso aplicativo em um banco de dados, nesse caso o Mysql.

Iremos precisar instalar um módulo “mysql-python, tente :

# yum -y install MySQL-python

Caso algo errado aconteça, tente utilizar o packageKit, se seu fedora for o Sulphur, digitando mysql-python.

Para Debian e derivados :

# apt-get install python-mysqldb

A interface python para mysql conhecida como MySQLdb é um módulo muito conhecido para a interação com banco de dados mysql em python. Após sua instalação vamos conhecer algumas funcões básicas para seu uso.

+ Conectar ao Servidor

pyCon = MySQLdb.connect(‘servidor’,’usuario’,’senha’)

+ Selecionando o Banco de Dados

pyCon.select_db(‘Banco de Dados’)

Para trabalharmos com o mysql em python precisamos criar um handle, uma espécie de cursor :

+ Criar ponteiro, cursor

pyCursor = pyCon.cursor()

+ Executar query SQL

pyCursor.execute(‘sql’);

Depois de termos executado uma query, podemos pegar seu valor de trê maneiras mais comuns e práticas :

+ Retorna uma linha apenas

pyResultOne = pyCursor.fetchone()

+ Retorna todas as linhas

pyResultAll = pyCursor.fetchall()

Podemos ainda retornar todas as linhas como um dicionario, tendo os nomes dos campos como indice :

pyResultDic = pyCursor.dicfetcall()

Agora uma classe em python para tratar o mysql :

arquivo : connect.py

#! /usr/bin/python

class connect:

def __init__(self, pyServer, pyUser, pyPass):

self.pyServer = pyServer

self.pyUser    = pyUser

self.pyPass    = pyPass

self.pyCon     =  MySQLdb(pyServer, pyUser, pyPass)

selft.Cursor    = selft.pyCon.cursor()

def execSql(self, sql):

self.pySql = self.pyCursor.execute(sql)

return self.pySql

def returnOne(self):

self.pyResultOne  = self.pyCursor.fetchone()

return self.pyResultOne

def returnAll(self):

self.pyReturnAll = self.pyCursor.fetchall()

return self.pyReturnAll

 

Desenvolvendo aplicações para Symbian OS S60

Filed under: Mobilidade — diegosantos @ 6:26 pm
Tags: ,

O Symbian OS é um sistema muito versátil permitindo desenvolver aplicações em diversas linguagens diferentes como Symbian C++, JavaME, C entre outras.

O C++ como linguagem nativa do sistema possibilita que aplicações escritas nesta linguagem obtenham acesso maior as APIs (Application Programming Interface) do sistema e desempenho superior se comparado a outras linguagens como Java.
Possibilidades.JPG
Fonte: Symbian Resources

Possibilidades

  • Symbian C++
  • Java ME
  • Python
  • Perl
  • Ruby
  • FlashLite

Symbian C++

Prós:

  • Acesso completo ao sistema de arquivos.
  • Inicialização rápida.
  • Aplicações funcionam em todos os dispositivos sem necessidades de porta-los.
  • Aplicações funcionam em background, foreground, invisíveis.
  • Conta com controles já definidos e padronizados(Grids, Listbox, Forms, etc).
  • IDE gratuíta.

Contras:

  • Requer um conhecimento aprofundado em C++.
  • Maior tempo de produção comparada com outras linguagens.

Java ME

Prós:

  • Grande potencial de mercado.
  • Funcionam em qualquer dispositivos com suporte a Java (apesar da necessidade de portabilidade).
  • Facilidade na elaboração do código.
  • IDE gratuíta.

Contras:

  • Aplicações não podem rodar em background.
  • Demora na inicialização.
  • Fragmentação.
  • Acesso limitado ao recursos do sistema.

Python

Prós:

  • Extensibilidade.
  • Open Source.
  • Fácil programação.
  • Pode ser programado *on-device*.

Contras:

  • Sem pré-instalação

FlashLite

Prós:

  • Grande potencial de marketing
  • Boa IDE para desenvolvimento
  • Fácil de programar

Contras:

  • IDE de alto custo ($700)
  • Limitações do Flash Lite 1.1
 

Programando dispositivos móveis

Filed under: Mobilidade — diegosantos @ 4:11 am
Tags: , , ,

Com essa onda de Iphone, virou moda se falar em desenvolvimento para dispositivos moveis. Porém o que realmente falta é um guia para aqueles que desejam desenvolver para smartphones, iphones e ipods.

Não é a minha intenção ainda escrever um guia completo sobre o desenvolvimento para “MOBILE”, mas irei explanar um pouco, ao menos para clarear a mente daqueles, que como eu, está se aventurando nessa nova área para programação.

Para programar dispositivos móveis você precisa primeiramente saber em qual plataforma programar, cada celular possui um sistema operacional no qual trabalha em cima, porém este SO pode variar de celular para celular e pode possuir versões diferentes.

Aconselho você olhar este link para então verificar qual plataforma você irá utilizar ex.: S60, Series40, Series80 etc. Atualmente as plataformas mais utilizadas são Symbiam da RIM, Windows Mobile da Microsoft e uma versão móvel da Mac OS X para iphone.

O Symbian atualmente proporciona suporte as seguintes linguagens :

+ C++ (Nativo);

+ Java ME;

+ Python;

+ FlashLite;

+ entre outras.

Caso queira saber mais sobre Symbian acesse o site oficial.

O Windows Mobile, na sua versão 6.0 suporta o pacotes:

+ Visual Studio, além dos normais;

+ Java ME ;

+ Python, existe um;

+ interpretador PHP para Windows Mobile .

Caso queira saber mais sobre acesse  Windows Mobile .

E como estamos acostumado, para desenvolver para iphone temos que nos adequar as vontades de Steve Jobs. No Iphone devemos utlizar COCOA, um framework super poderoso para interfaces em dispositivos que utilizam MAC OS X. Existem maneiras de se desenvolver em outras linguagens nesses aparelhos :

+ Python – PyObjC;

+ Ruby – RubyCocoa;

+ Perl – CamelBones;

+ C# – Cocoa#;

+ Objective-Basic – ObjB.

Para um suporte oficial maior acesse Iphone for Developers .

Criando soluções para um desses três sistemas você estará desenvolvendo um software para uma vasta gama de smartphones.

 

Liberado Singularity RDK 1.1 julho 4, 2008

Filed under: Miscellaneous — diegosantos @ 7:39 am
Tags:

Em desenvolvimento desde 2003, Singularity é um sistema operacional não-windows pela Microsoft. O Singularity revoluciona o conceito de OS Microsoft, pois é todo open-source, podendo ser encontrado no Code Plex, site mantido pela empresa de Steve Ballmer onde são disponibilizados projetos Open-Source.

O Singularity foi programado para ser utlizar de SIP’s ( Software Isolated Process), que significa que cada aplicação, processo ou device driver é executado singularmente, não carregando código algum do software para o kernel, não compartilhando memória e comunicando se por canais entre os processos. Segundo a própria Microsoft, 85 % das deficiências do Windows, principalmente relacionado a segurança, é causado por códigos de terceiros carregados no kernel, com o Singularity isso não acontece, pois há ainda coleta de lixo otimizando a utilização de endereço de memória.

Sobre o Singularity :

* 95 % devenvolvido em uma extensão do C#

– 5 % contém arquivos assembly x86 ASM e C++.

* Software Isolated Process ( SIP’s)

– Todo código de usuário ( de terceiros) é verificado.

– O kernel é selado a tempo de iniciação.

* Comunicação via Canais ( channels)

– Rápida e eficiente comunicação para reportar erros, ou simplesmente no compartilhamento de dados necessários entre processos e aplicações.

E o melhor

* Protótipo de pesquisa

– Não requer compatibilidade alguma com o Windows.

O Singularity RDK 1.1, kit de desenvolvimento e pesquisa, inclui o código-fonte, material informativo e ferramentas de compilação e testes. Está liberado sob licensa acadêmica, não é ainda um open-source, pois não se pode ter fins lucrativos, mas é um bom começo vindo da gigante do mundo decadendo dos softwares desktop’s.

Saiba mais em :

+ http://research.microsoft.com/os/Singularity/ ( Website oficial do projeto).

+ftp://ftp.research.microsoft.com/pub/tr/TR-2005-135.pdf ( Um Overview sobre a arquitetura).

+ Download do Kit de Desenvolvimento de Pesquisa do Singularity .