Diego Santos

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

Robótica Livre Goiás janeiro 21, 2009

Filed under: Robótica — diegosantos @ 4:48 pm
Tags: ,

robotica_livre-go1

É com orgulho que venho anunciar a criação do Grupo de Robótica Livre de Goiás. Uma galera geek que almeja inserir Goías no cenário da robótica nacional e para tanto decidimos apoiar o Software Livre nessa nossa meta.

Todos os projetos que serão por nós desenvolvidos, ao que tange software, tanto para programação, quanto para diagramação, desenho e arquitetura de robôs terá como base as ferramentas disponíveis como Software Livre. Como nosso grupo é formado por programadores, administradores de redes que possuem conhecimento em eletrônica almejamos também melhorar as ferramentas já disponíveis, contribuindo assim para a comunidade.

O grupo é aberto a todos aqueles que desejam somar com conhecimento, idéias, dúvidas, cabos antigos, impressoras velhas, placas arcaicas e ajuda de custos (hehe!).

Para maiores informações : [http://groups.google.com.br/group/robotica-livre-goias?hl=pt-BR]

Anúncios
 

Veja íntegra da carta de Steve Jobs janeiro 15, 2009

Filed under: Miscellaneous — diegosantos @ 11:22 am
Tags:

SÃO PAULO – A carta que Steve Jobs enviou ao funcionários da Apple está disponível no site da empresa.

jobw

Veja, a seguir, a íntegra do e-mail enviado por Jobs:

Equipe,

Estou certo de que todos vocês viram a minha carta na semana passada, na qual compartilhava algo extremamente pessoal com a comunidade Apple. Infelizmente, a curiosidade em relação a minha saúde continua a ser uma distração não apenas para mim e para a minha família, mas para todos na Apple também. Além disso, na semana passada descobri que meus problemas de saúde eram mais complexos do que eu inicialmente imaginava.

Para sair do centro das atenções e manter o foco em minha saúde – e permitir que todos na Apple possam se concentrar em criar produtos extraordinários –, decidi tirar uma licença médica até o fim de junho.

Pedi a Tim Cook para ficar responsável pelas operações do dia-a-dia da Apple, e eu sei que ele e os outros integrantes da equipe de executivos vão fazer um excelente trabalho. Como CEO, pretendo continuar envolvido nas principais decisões estratégicas enquanto estiver fora. Nossa direção dá pleno suporte a esse plano.

Espero encontrar todos vocês neste verão.

Steve.

 

Codecamp Forum Nokia setembro 26, 2008

Filed under: Mobilidade — diegosantos @ 7:11 pm
Tags: ,

O Codecamp Forum Nokia que vai acontecer aqui no Brasil no dia 22 de
outubro no Rio de Janeiro e no dia 24 de outubro em São Paulo:

http://www.onlineintl.com/Nokia/

Nesse Codecamp eles irão fazer um “overview” da plataforma S60 da
Nokia e irão apresentar dois tutoriais:

– Python para smartphones S60
– Web Runtime Widgets para smartphones S60

Vocês podem obter informações detalhadas e se inscreverem para o
evento no site informado acima.

 

Ferramenta para Desenvolvimento para Iphone OS setembro 14, 2008

Filed under: Mobilidade — diegosantos @ 6:15 am
Tags:
Para desenvolver aplicações para iphone, você precisa de um computador com MAC OS X executando as ferramentas do Xcode. Xcode é uma suite da Apple para desenvolvimento que prove suporte a gerenciamento de projetos, edição de código, construção de executáveis, debugar códico fonte, gereciamento de repositório de código, apuração da perfomance, e muito mais. No centro da suite está a própria aplicação Xcode, que prove o ambiente de básico de desenvolvimento. Xcode não é a única ferramenta que você usa, a as seguintes seções te dara uma introdução dos aplicativos que você usa para criar aplicativos para Iphone.

Xcode

O focu da sua experiência de desenvolvimento é o aplicativo Xcode. Xcode é um ambiente integrado de desenvolvimento (IDE) que provê todas as ferramentas que você irá precisar para criar e gerenciar seu projeto e arquivos Iphone, construa seu como um executável, execute e debugue seu código no simulador Iphone ou em um aparelho.

Para criar um novo aplicativo Iphone, você começa criando um novo projeto no Xcode. Um projeto gerencia todas as informações associadas com seu aplicativo, incluindo códigos fonte, configurações de instalação e regaras necessárias para por as partes juntas. O coração de cada projeto Xcode é a janela do projeto, seja na “Figure 1”. Essa janela permite acesso instantâneo para todos os elementos chave para seu aplicativo. A lista Grupos e Arquivos é onde você gerencia os arquivos em seu projeto, incluindo os arquivos de códigos e os alvos de cada um desses arquivos. A barra de ferramentas permite acesso a ferramentas e comando frequentemente usados, enquanto o painel de detalhes provê um espaço configurável para trabalhar em seu projeto. Outros aspectos de cada janela do projeto oferece

informações sobre o projeto.

Figure 1 Uma janela do projeto Xcode.

The Xcode project window

 

Xcode vem com um avançado editor de texto, que suporta recursos tais como completar código, sintaxe em cores, esconder códigos, e anotações inline para erros, alertas, e notas. O sistema de inicialização do Xcode prove apropriadas configurações padrão e a habilidade para configurar o ambiente de acordo com o seu desejo. E se você necessita de documentação, o Assistente de Pesquisa providencia uma documentação de acordo com o contexto, enquanto a janela da documentação do Xcode deixa você navegar e buscar por informação.

Quando você inicializa sua aplicação no Xcode, você tem a opção de inicializar no simulador ou no aparelho. O simulador providencia um ambiente local para testar sua aplicação e ter certeza que ela se comporta essencialmente do jeito que você quer. Depois que você estiver satisfeito com o comportamento básico da aplicação, você pode dizer ao Xcode para inicializar e executá-lo no Iphone ou iPod Touch conectado ao seu computador. Executando em um aparelho permite um teste de última instância, e o Xcode deixa você debugar o código que está sendo executado no aparelho. Executar no aparelho permite um último teste no ambiente, e o Xcode permite que você debugue o código que está sendo executado no aparelho.

Figure 2 Executando um projeto do Xcode

Running a project from Xcode

Para detalhes de como inicilizar e executar um projeto no Iphone, veja “Development Environment” in iPhone OS Programming Guide.

Interface Builder

Interface Builder é a ferramenta usada para montar a interface visual de sua aplicação. Usando o Interface Builder, você monta a janela de sua aplicação arrastando e soltando componentes pré-configurados dentro dele. O compontoente inclui sistema de controle padrão como campos de textos, botões, e também customização para representar o layout de sua aplicação. Depois de ter posicionado os componentes na superfície da janela, você pode posicioná-lo arrastando, configurar seus atributos usando o inspetor, e estabelecer o relacionamento entre aqueles objetos e seu código. Quando sua interface parece do jeito que você quer, você salva o conteúdo em um arquivo nib, que é um formato de arquivo de recursos customizados.

Os arquivos nib você pode criar no Interface Builder contendo todas as informações que o kit UI precisa para recriar os mesmos objetos em sua apliacação em tempo de execução. Carregando o aquivo nib cria se versões de tempo de execução de todos os objetos arquivdos no arquivo, configurando-os exatamente como eles eram no Interface Builder. Também usa informações de conexão que você especificou para estabeler conexões entre um objete criado a pouco e alguns objetos já existentes na aplicação. Essas conexões providenciam a seu código ponteiros para os objetos dos arquivos nib e também provicendia informações sobre o que os objetos precisam para comunicar ações dos usuários ao código.
Em toda parte, usar o Interface Builder salva nos de um tremendo tempo quando vamos criar interface do usuário de nossa aplicação. Interface Builder elimina códigos necessários para criar, configurar, e posicionar os objetos que compoem sua interface. Por isso com um editor visual, você consegue ver exatamente como sua interface vai parecer no tempo de execução.

Instruments

A fim de assegurar que você entregue o melhor experiência aos usuários de seu software, o ambiente de instrumentos permite que você analize a performance de seu aplicativo Iphone enquanto executa no simulador ou no aparelho. Instrumentos reunem dados de seu aplicativo executado e apresenta dados em gráficos chamados de linha do tempo. Você pode reunir dados sobre o uso da memória de sua aplicação, atividade do dis, atividade de rede e gráficos de performance. A linha do tempo pode mostrar todos os diferentes tipos de informações lado a lado, deixando você correlagar em toda parte o comportamento de sua aplicação, não só o comportamento em uma área especifica. Para conseguir informações mais detalhadas, você pode ver detalhes das amostras que o instrumento reune.

Figure 3 Using Instruments to tune your application

Using Instruments to tune your application

Em adição para prover a linha do tempo, os instrumentos providenciam ferramentas para ajudá-lo a analizar o comportamento de sua aplicação. Por exemplo, a janela de instrumentos deixa você armazenar dados de mútiplas execuções assim você pode ver se o comportamento de seu aplicativo está realmente conseguindo melhoras ou se ainda precisa de ajustes. Você pode salvar os dados daquela execução em um documento do instrumento e abrí-lo em outras vezes.

Para detalhes de como usar os instrumentos com os aplicativos do Iphone, veja “Development Environment” em iPhone OS Programming Guide. Para informações gerais de como usar os intrumentos, veja Instruments User Guide.

 

Python for S60 setembro 10, 2008

Filed under: Mobilidade,PyS60 — diegosantos @ 7:23 pm
Tags: ,

Após alguns artigos falando sobre o desenvolvimento para móveis, irei mostrar agora um pouco sobre o PyS60 uma das melhores maneiras de se desenvolver para a Série 60 da Nokia. Em breve postarei mais algumas traduções referentes ao desenvolvimento para o Iphone e também algumas dicas sobre Objective-C, a linguagem do Iphone.

Pra começar: Porque Python?
Pythonis a simple, consistent and effective programming language. [Manual Getting Started With Pyton]

Algumas coisas interessantes antes de começar

Python for S60 tem algumas peculiaridades interessantes. Dentre todas, quero citar algumas:

  • Instalação simplificada
  • Possibilidade de programar diretamente no celular
  • Possibilidade de instalar bibliotecas
  • Construir aplicações gráficas
  • Acessar arquivos do cartão de memória/ ou memória do telefone
  • Construir aplicativos com tecnologia bluetooth
  • Acessar câmera
  • SMS
  • Lista telefônica

Como deu pra perceber, é possível construir um número infinito de aplicativos utilizando esta tecnologia.

Requisitos

Celular Nokia com Symbian S60 ou superior.

Um computador… Pois o download do interpretador Symbian para o celular está geralmente em um arquivo .zip. É necessário descompactar o arquivo e instalar o .sys via Pc Suite. Você pode fazer o download dele pelo link para o Forum da Nokia

E um editorzinho de texto. Seja no computador ou no celular….. No PC serve até o notepad, no celular eu gosto de usar o Yedit ou o Notepad. Você pode fazer o download de ambos no symbianbrasil.com

Funfando…

Vamos escrever nosso primeiro script em Python. Será algo extremamente complexo e cansativo. Vamos construir o nosso primeiro “Hello World!” (ou quase um Hello World!).
O código será o seguinte:

  1. print O primeiro programa PyS60

Só isso? Sim, só isso!
Igualzinho ao nosso bom e velho Python na linha de comando. Para um Hellow World gráfico, o código ficaria:

  1. import appuifw
  2. appuifw.app.title = uO primeiro programa PyS60
  3. appuifw.note(uO primeiro programa PyS60, ‘info’)

Phyton_hello_world
Para rodar o aplicativo, basta renomea-lo para arquivo.py e envia-lo ao celular. Quando o arquivo for executado, o interpretador já saberá que o programa que o executa é o Python.

 

10 Livros para entender computação julho 30, 2008

Filed under: Miscellaneous — diegosantos @ 5:06 pm
Tags:

Estava dando uma olhada no Planet Python e achei um post do Marcos Daniel sobre “como aprender computação”, ele cita 10 livros que o ajudou nesse processo. Particularmente achei todos ótimos livros.

1 – Gödel, Escher, Bach (Hofstadter): Eu começaria com o GEB, por dois motivos. O primeiro é que ele é um ótimo reality check: se você não gostar do GEB, então mude de área, porque computação não é a sua praia 🙂 O segundo motivo é que esse livro tem uma excelente introdução à lógica (proposicionalde predicados), que é a ferramenta básica onde você constrói a ciência da computação.

2 – Concrete Mathematics (Knuth): Você não precisa saber matemática para programar, mas se você quiser ser um bom programador, então matemática é essencial. O Concrete tem todo o básico que você precisa pra fazer análises de complexidade computacional, e tudo escrito de maneira extremamente bem-humorada.

3 – Algorithms in C++ (Sedgewick): Se você já sabe lógica e matemática, então agora pode partir pro estudo de algoritmos. O Sedgewick tem todos os algoritmos básicos, e é uma leitura bem leve: se você está começando com algoritmos agora, esse precisa ser o seu primeiro livro. Ele não vai muito fundo em nenhum tópico, mas isso é compensado pela extrema didática nos tópicos. O livro ainda tem código exemplo pra todos os algoritmos, e várias edições, uma pra cada linguagem (eu sei que tem, pelo menos, C, C++, Java e Pascal).

4 – Introduction to Algorithms (Cormen): Os algoritmos que você aprendeu no Sedgewick, você vai estudar em detalhes no Cormen. Esse livro é extremamente formal, e talvez por isso é o livro-texto usado nos cursos de computaçao do MIT. Ele também cobre algoritmos mais avançados, que o Sedgewick apenas cita (por exemplo, Fibonacci Heap)


5 – The Art of Computer Programming (Knuth): O tAoCP está para o Cormen assim como o Cormen está pro Segdewick, aqui você vai dissecar os algoritmos até o último bit deles. Além de ser uma coleção excelente, a encadernação é muito bonita (mas não se engane, ele fica ótimo na prateleira, mas melhor ainda na sua cabeça).


6 – Effective C++ (Meyers): Agora que você sabe os algoritmos, precisa de uma linguagem para programá-los. Pra falar a verdade, a escolha de linguagem nem importa tanto assim, mas se você escolher uma, aprenda-a tão bem quanto possível. Eu escolhi C++, e esse livro do Meyers é o que diferencia as crianças dos adultos (especialmente para aquelas horas quando você cria uma classe sem destrutor virtual e não sabe por que a memória está vazando).

7 – Effective STL (Meyers): Já teve uma época em que eu não gostava de C++, mas isso é porque eu sou velho o suficiente pra ter mexido em C++ antes que os compiladores tivessem templates. Com templates a linguagem fica muito mais atraente, e esse é o livro que vai te ensinar a dominar a STL.

8 – The Practice of Programming (Kernighan, Pike): Se você leu tudo até agora, então você já é um programador muito bom na teoria. Na prática, entretanto, tem um monte de skills que ainda faltam. Nesse livro você aprende sobre as coisas que usualmente não se aprende na escola: debugging, otimização, unit testing, documentação.

9 – Programming Pearls (Bentley): Com os livros lidos até agora, você já deve ser um excelente programador. O passo final é passar de programador para um true hacker, e esse é um passo que não requer só conhecimento, você também precisa de manha, criatividade e insight. Eu não sei se dá pra ensinar essas coisas, mas esse livro certamente é o que chega mais próximo disso.

10 – The Mythical Man-Month (Brooks): Depois de ler todos os livros acima você estará próximo do nirvana, mas pra atingir o zen da programação de verdade, é preciso lembrar que projetos não precisam só de computadores, precisam de pessoas também. O Mythical Man-Month é um livro de gerência de projetos de software escrito em 1975, mas é surpreendente como ele continua atual. A tecnologia avança, mas as pessoas continuam as mesmas 🙂

É claro que pra manter uma lista com só dez itens, muita coisa boa fica de fora. Mas a lista acima tem um mérito: foi com esses livros que eu aprendi computação de verdade (vale lembrar que eu sou autodidata, minha graduação foi em engenharia elétrica, e eu quase não tive computação em aulas). Se funcionou pra mim, pode ser que funcione pra você também 🙂 .”

 

iotop

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

Para quem já usou o Windows uma vez na vida e se lembram do crtl+alt+del, o famoso gerenciador de tarefas, deve sentir um pouco sua falta no Fedora, não pelo travamento, mas sim por as vezes não saber como visualizar quais tarefas estão sendo executada por cada usuário.

Para contornar isso irei ensinar como instalar e utilizar um programa chamado iotop:

“Este pequeño utilitario es para la tarea de determinar que procesos y usuarios están haciendo IO, muy al estilo del tradicional top para los procesos del sistema.” ( Proyecto Fedora)

instalação :

# yum install iotop

Ao se executar o programa :

# iotop

Temos as seguintes opções :

– o – Mostra somente os processos de I/O ao invés de todos os processos ou threads. Pode ser ativado ou desativadado pressionando o .

– b – Permite modo não interativo. Útil para registrar I/O atual. p-PID – pid = PID lista dos processos de acompanhar (por padrão todos). USUÁRIO

– u USUÁRIO —user=USUÁRIO lista de usuários para controlar (todos por default).

Um sreenshot.

Existe também o top presente na maioria das distros linx.