Arquivo por categoria desenvolvimento

Exemplo de cooperação

No mundo do software livre a lei que impera é a da cooperação. Cooperar nem sempre significa colocar a mão efetivamente na massa (traduzindo: programar). A cooperação pode vir de diversas formas. E temos um exemplo muito bom, em andamento, no fórum do Maemo.org.

Tudo começou com alguns usuários pedindo um aplicativo para a Copa do Mundo de Futebol. Primeiro foi a ideia básica, aí alguns outros usuários dizendo que isso seria interessante, até que apareceu um usuário dizendo que já tinha iniciado os trabalhos de um aplicativo assim, mas tinha parado, e outro dizendo que poderia ser o ponto de início da nova aplicação.

Enquanto mais gente dizia que queria um programa assim, outros já partiram pra prática, como por exemplo de onde pegar as informações sobre os jogos, os placares, etc.

Perceberam que até agora não havia uma única linha de código? Ou seja: apenas usuários comuns poderiam estar participando, e ninguém notaria.

E cada um começa a participar com aquilo que sabe, como o usuário que criou uma imagem de fundo, ou aqueles que sugeriram o ícone. E por fim entram os programadores que vão dando forma à aplicação.

E ele começa a ter corpo.

Claro que há vários problemas, o programa não é o que se pode dizer de totalmente utilizável, e sequer é possível instalá-lo através do Gerenciador de Aplicativos, mesmo havendo uma versão dele por lá.

Mas é um excelente exemplo de que o programador, o cara que efetivamente faz a coisa, é apenas uma parte do processo todo, e que pra participar do desenvolvimento de algo não é preciso ser especialista. Basta ter vontade.

Observação: o programa só é instalável através do download do arquivo .deb, anexado em mensagens do fórum. É preciso percorrer as mensagens para encontrar a mais recente (que no momento em que escrevo o texto fica aqui).

Desenvolvedor sofre

Às vezes surge no meu cérebro um pensamento, uma pergunta: vale mesmo a pena desenvolver usando ferramentas gratuitas, ou com código-fonte aberto?

Eu comecei a programar no MSX. Tinha um Expert, da Gradiente. Na verdade aprendi nele, mas comecei com um Apple II (acho, faz muito tempo), num curso de informática que “ganhei” quando tinha meus 12, 13 anos. Logo depois que comecei o curso ganhei o MSX, e era nele que aplicava toda a teoria que aprendia no curso.

No MSX comecei usando BASIC, depois parti pro Pascal, Assembly, e cheguei a fazer algumas poucas coisas em linguagem de máquina diretamente (principalmente debugar programas escritos em Assembly). Na época não existia internet, e todo o conhecimento vinha através de revistas ou de livros. Durante um bom tempo meu livro de cabeceira foi O Livro Vermelho do MSX.

Aí comecei a trabalhar, e veio a oportunidade de programar profissionalmente. Iniciei com o famigerado Clipper, e depois de algum tempo comecei com MS Access, e daí pro Visual Basic foi um pulo. Quando passei a usar as ferramentas da Microsoft um novo mundo se abriu, pois se tem algo no qual a Microsoft sempre foi excelente é em documentação. Foi com ela que aprendi que o melhor amigo de um usuário/programador pode ser a tecla F1.

E aí surgiu a internet. E a descoberta da MSDN. Bastava pesquisar, que encontrava a solução.

Depois veio o Java, que também conta com uma documentação muito boa. Mas o Java já apresenta um problema: muitas coisas nele são feitas através de bibliotecas criadas por outros usuários. E quem disse que todos os que fazem essas bibliotecas fazem uma documentação decente? Muitos sequer fazem um leia-me!

Com isso, fazer um programa muitas vezes passa a ser descobrir como algo funciona para que possa ser usado corretamente. E é exatamente o que estou enfrentando agora.

Estou convertendo o pySafe de GTK para Qt. Aí apareceu o primeiro problema: qual biblioteca utilizar? Sim…existem duas bibliotecas de Qt para o Python!! Existe a mais desenvolvida, chamada de PyQt, e existe uma outra que a Nokia resolveu criar, chamada de PySide. A Nokia tomou essa atitude porque a PyQt possui uma licença de uso que obriga que se pague ao seu desenvolvedor caso o programa que a use seja comercial. Se for um programa livre não é preciso pagar nada.

Então tive que pesar os prós e contras de cada uma. Em tese, elas seriam completamente equivalentes!! Só precisaria mudar uma linha de código para usar uma ou outra….mas como mundo ideal é uma coisa, e mundo real é outra, elas possuem suas diferenças, e essa história de mudar uma linha não funciona (eu testei).

Acabei optando pela PyQt porque meu programa é livre, então não tenho que me preocupar com a licença. E a PySide, neste momento, roda apenas em GNU/Linux, e eu quero que o pySafe rode em qualquer sistema operacional (basta ter Python), e isso a PyQt permite.

Mas para aprender sobre uma biblioteca você depende de sua documentação. E voltamos ao problema comentado acima….quem disse que a documentação dessas bibliotecas é boa? Há vários links apontando para o nada, não há exemplos claros e práticos, e hoje em dia, infelizmente, encontrar algo útil no Google está difícil. A maioria dos links que o Google devolve são de listas de discussão ou de fóruns, onde nem sempre você encontra a solução para seu problema.

Aí fico pensando no SDK da Apple, altamente elogiado por todos, com vasta documentação. Não adianta apenas lançar um bom aparelho, é preciso dar subsídios para quem quer desenvolver para ele.

E nisso (dar os subsídios) a qualidade da Microsoft é indiscutível! E parece que a da Apple também…..

A resposta para a pergunta inicial continua indefinida. Há alguns casos de softwares livres onde você paga pela documentação….aí eu pergunto: isso é realmente software livre?

MeeGo rodando em alguns dispositivos

Neste vídeo feito na IDF 2010 (Intel Developer Forum), dá para ver o MeeGo rodando num netbook, numa televisão e num celular (que não é o N900).

O desenvolvimento do sistema está realmente bem avançado.

fonte: Nokia Conversations

Tags:

Versão 1.0 do MeeGo em maio

Pelo menos é o que diz um post num blog da Intel. E também diz que a versão 1.1 virá em outubro, esta com suporte a desenvolvimento em Silverlight, Java e Air.

Também diz que a Intel está trabalhando conjuntamente à Microsoft para tentar deixar o MeeGo e o Windows o mais amigos possível.

Uma coisa que chama a atenção no texto é o fato de dizerem que o MeeGo = Moblin + o melhor do Maemo. Isso soa um pouco estranho. É como dizer que o MeeGo é o Moblin com algumas partes do Maemo, e não um sistema feito à partir do zero contendo o melhor dos dois mundos. Apesar que, se pararmos para pensar, realmente o Moblin é mais complexo que o Maemo, já que este roda, em tese, apenas nos internet tablets da Nokia, enquanto que o Moblin poderia rodar em qualquer netbook.

Mas segundo o comentário do BR-Linux, vamos ver como a Nokia chamará o sistema, para saber quem é que efetivamente manda nessa sociedade (e se os sócios estão falando a mesma língua).

No Maemo Central apareceram algumas imagens do que seria o MeeGo rodando nos aparelhos da Nokia. Acredito que sejam apenas conceitos, e sabe-se lá se realmente da Nokia ou feitos por algum usuário.


fonte: Zumo Blog, via BR-Linux.org

Tags:

Por que não é possível instalar vários programas ?

Aqueles que costumam instalar programas do repositório extras-devel já devem ter notado que muitos programas não estão instaláveis, assim como muitos outros não estão atualizáveis.

Alguns reclamam da libhildon1, outros de algum componente do Qt.

O problema todo reside no fato de que muitas bibliotecas foram atualizadas. Porém essas versões atualizadas só serão colocadas no aparelho quando o firmware novo for lançado…o que ninguém sabe quando será.

Explicando mais a fundo: todos os programas podem ter dependências. Ou seja, um programa pode depender de alguma biblioteca. E essa biblioteca, geralmente, deve estar em sua última versão. O sistema do Maemo.org indica qual é a versão da biblioteca que o programa espera encontrar, e caso a versão instalada seja mais velha que a versão esperada, o programa não é instalado.

Isso é uma questão de segurança, pois o que garante que o programa não fará uso de alguma função da biblioteca que só foi implementada na última versão? Impossível saber.

O que gerou todo esse problema é que, como dito acima, muitas bibliotecas foram atualizadas, e o repositório de desenvolvimento já está configurado para essas novas versões. Então ao pedir para instalar um programa, ele já está apontando para a versão mais recente, que não está ainda no aparelho.

A solução? Esperar. Não há nada que possa ser feito a não ser esperar até que o firmware seja lançado.

Muitos podem reclamar, espernear, resmungar, mas vamos lembrar que o repositório extras-devel é de programas em desenvolvimento, que normalmente não deveriam ser instalados por usuários comuns. Claro que isso num mundo ideal, onde os programas seguissem todos os passos normais dentro dos repositórios do Maemo.org….que não acontece, pois muitos são criados e deixados por lá, mesmo que funcionando 100%.

MeeGo: dia 1…HOJE!

Segundo prometido pelos responsáveis por tocar o MeeGo, no final do mês de março foi liberada a primeira versão do MeeGo, ainda versão (diria eu) pré-alpha.

Para os que quiserem se aventurar, é possível baixar uma imagem do sistema e rodar à partir de um pen-drive ou do cartão de memória do N900. Mas não se assanhem muito, pois por enquanto ele é apenas um terminal. É possível baixar versões para os processadores Atom da Intel, e para o N900.

Há também uma imagem contendo binários proprietários da Nokia para instalação no N900 (é preciso digitar o IMEI do seu N900, e aceitar a licença de uso).

Há alguns poréns que devem ser observados: ao instalar qualquer um desses sistemas no N900 diretamente é equivalente a instalar um firmware do zero no aparelho (adeus programas instalados e talvez algumas informações pessoais). Sem contar que há um aviso no Maemo-Freak dizendo que não existe gerenciamento da bateria nesses binários, então corre o sério risco de danificar a bateria do aparelho caso a sua carga se esgote completamente (o aparelho não vai se desligar para preservá-la, por exemplo).

De qualquer forma, além de ser uma boa notícia, significa que é possível confiar nos responsáveis pelo MeeGo, pois prometeram e cumpriram. E não é piada de 1o. de abril!

fonte: Maemo-Freak e MeeGo

Tags:

OCR: mais sobre o assunto

Eu já falei um pouco sobre reconhecimento ótico de caracteres quando comentei sobre o PhotoTranslator.

Um usuário do N900 resolveu brincar com isso também, inspirado pelo PhotoTranslator. Como ele não é muito paciente (afinal, tem que esperar os desenvolvedores do programa o disponibilizarem), resolveu por sua conta brincar com o assunto.

O que o rapaz (que também é o autor do Witter, o único cliente para o twitter disponível atualmente para o N900) fez foi bem simples: ele baixou o Tesseract, que é o pacote de reconhecimento utilizado pelo pessoal do PhotoTranslator e o compilou, sem problema nenhum.

Aí ele precisou de algo para converter as fotos tiradas pelo N900, que são gravadas em JPEG, para TIFF, que é o formato utilizado pelo Tesseract. Ele usou o ImageMagick. Novamente, apenas o downlaod e a compilação.

E fez alguns testes de reconhecimento….na minha concepção, a coisa até que foi bem! As imagens que ele reconheceu e o resultado podem ser vistos no site dele.

Não há nenhum programa, nem compilação de nada, pois a intenção é apenas mostrar que é possível. Isso pode abrir algumas possibilidades, como aquele programa para Symbian que digitaliza cartões de visita, e insere os dados na agenda do aparelho.

fonte: Daniel Would’s Weblog

Tags:

CallBlocker ou PyCallBlocker?

Infelizmente aconteceu algo que às vezes acontece no mundo do software livre: furto de ideias sem que os devidos créditos sejam dados.

Primeiro apareceu o pequeno programinha em Python, muito mais como prova de conceito. E logo em seguida apareceu uma interface gráfica para configurá-lo: o PyCallBlocker.

Hoje navegando pelo fórum do Maemo.org notei que havia um tópico falando de um tal CallBlocker. Achei que fosse o mesmo programa, e fui olhar. Não é.

Na verdade, o autor do PyCallBlocker pegou o programa (aquela “prova de conceito”), colocou uma interface por cima, e montou o pacote, sem dar o devidos créditos (basta olhar nos fontes ou na descrição do programa que não há nenhuma referência ao real autor).

Eu já removi o PyCallBlocker, e estou esperando os autores verdadeiros disponibilizarem um pacote nos repositórios. Por enquanto, há apenas o arquivo .deb no Garage, mas que não é automaticamente instalado por falta das dependências.

Não há nada de errado em pegar uma ideia, alterá-la ou melhorá-la ou qualquer coisa que seja, desde que os créditos sejam dados. Reconhecimento é o que move grande parte dos desenvolvedores de programas com código-fonte livre e aberto.

Tags:

3,5 milhões de downloads

Já ocorreram mais de 3,5 milhões de downloads à partir do Maemo.org, segundo informações na própria página (no momento em que escrevo, são exatos 3.574.501).

Não sei dizer se esse número se refere apenas aos downloads do repositório extras, ou também ao extras-devel e extras-testing.

O número por si é bem expressivo! E se ele se referir apenas aos downloads do repositório “principal” (o extras), então é mais impressionante ainda, mesmo considerando que vários usuários devem ter baixado o mesmo programa mais de uma vez.

Vale lembrar que todos os programas que estão no extras passaram por todo um processo que leva certo tempo, e serve para garantir a qualidade do software. Sem contar que todos são softwares livres e muitos possuem o código-fonte disponível.

Tags:

Porque não é preciso temer o MeeGo

Depois que li um texto, com chamada nas news do Maemo.org, parei pra pensar e realmente não há porque ficar com o pé atrás em relação ao MeeGo.

Qual é o maior medo das pessoas em relação a essa mudança? Ficar com um sistema operacional defasado ou que os aplicativos criados para o novo não rodem no atual?

Ficar com o sistema defasado, sinto muito dizer, vai acontecer inevitavelmente! Vejamos só: se o Harmatan/Maemo 6/MeeGo 2.0 for lançado num aparelho multi-toque, o N900 mesmo que rode o sistema, já estará defasado porque não conta com esse recurso (se bem que há uma discussão interessante no Maemo.org a esse respeito, mas serve de exemplo).

Quanto aos softwares…..bem, aqui caímos num problema de conceitos. As pessoas não estão acostumadas à filosofia do GNU/Linux. A começar por como é formado um sistema nessa plataforma. Não existe apenas um elemento, como é no Windows.

No sistema da Microsoft o sistema de janelas está intimamente conectado ao sistema de arquivos que está intimamente ligado ao núcleo do sistema. É tudo uma coisa só! Tente arrancar fora o Internet Explorer…o máximo que você vai conseguir é desabilitá-lo. Mas ele continuará ali!

Não é assim no GNU/Linux.

No sistema livre temos um núcleo básico, que por si só não faz absolutamente nada (o famoso kernel). Para ter uma interface gráfica, é colocado junto ao kernel o X, que é o responsável por fazer a comunicação entre o kernel e a placa gráfica. Em cima do X, temos o gerenciador de janelas, que pode ser o KDE, o Gnome, o Enlightenment, o LXDE, ou, no caso do N900, o Hildon.

E temos as bibliotecas gráficas que, nativamente, cada gerenciador gráfico utiliza (que já comentei anteriormente). Um programa apenas vai decidir qual biblioteca gráfica e quais recursos do aparelho usará. Se os requisitos forem cumpridos no aparelho, ele vai rodar o programa! Seja ele um N900, N920, N2000 ou um Symbian da vida!

No máximo talvez seja necessária uma recompilação se a arquitetura for diferente (por exemplo, um programa feito em Qt para o N97 e para o N900).

Se o medo é que o próximo sistema seja muito mais bonito e funcional que o atual, e não possa ser instalado nos aparelhos atuais, é duro admitir, mas é assim que as coisas funcionam! A Nokia vive de vender aparelhos. Se ela lançar um sistema que funcionará igual no N900 e num futuro aparelho, para que eu iria comprar o novo?

E cá entre nós, a média de lançamentos de aparelhos é exatamente de 1 ano. Senão vejamos: em 2006 foi lançado o N95. Em 2007 veio o N95-8GB. Em 2008 o N96 e em 2009 o N97. Uma sequência “familiar”, com um aparelho por ano. E o iPhone: em 2007 foi lançado o “original”, em 2008 o 3G e em 2009 o 3GS. E agora em 2010 já se espera um novo em junho ou julho.

Ou seja: na prática, na realidade, quando alguém compra um aparelho top de linha, ele não está comprando um top, pois o seu sucessor já está quase entrando nas linhas de produção. É um ciclo, e sempre será assim.

Eu torço para que o novo sistema operacional possa ser instalado no N900. Mas se não for, bem, enquanto o N900 der conta do recado, é com ele que ficarei (como foi com o N95, que utilizei durante 3 anos).

Tags: ,