É uma cilada, Bino?

Hoje, Lauro e eu fomos como representantes do CInLUG, a uma palestra sobre interoperabilidade lá na sede da Microsoft, aqui no Recife.

(silêncio)

É, isso mesmo, e nem rolou uma situação “lavagem cerebral estilo Laranja Mecânica”. :D

Conversamos com Fábio (esqueci o sobrenome), que é um cara com uma bagagem técnica muito boa e sabia do que falava; ele fez uma das melhores exposições sobre a história e situação do software livre/open source que já vi. Depois nos mostrou as tecnologias OpenXML e Silverlight, também rodou uns códigos PHP num Suse rodando dentro de um Virtual PC, dentro de um Vista.

Depois disso, aos negócios. A intenção da Microsoft é fazer contato com o pessoal da comunidade de Software Livre. A idéia geral é que eles se tocaram, e isso já faz um bom tempo, de que é bom ter softwares open source rodando na plataforma Windows. São muitos, são bons e agregam valor. É preciso se aproximar de quem produz e usa esses software. A mensagem é do tipo daquele antigo comercial “vem pra Caixa você também. Vem!”. Rodem suas aplicações aqui, é bonito e confortável, e temos cookies! A iniciativa teria sido inicialmente provocada pelas exigências do mercado e encontrou muita resistência interna. E externamente, bem, as pessoas têm dificuldade de confiar na Microsoft, e com razão, pois as trairagens do passado são muitas (e sempre aparecem algumas no presente).

Como eu disse lá no evento, uma pessoa pode confiar em outra pessoa, mas ninguém pode confiar numa companhia. Confiança de companhia é contrato, e em se tratando de software, uma licença de código aberto precisa me garantir as quatro liberdades básicas. Não falo isso só do ponto de vista filosófico, mas o mais pragmático desenvolvedor Open Source não contribuiria uma linha de código se não tiver as garantias (na licença, o contrato) de que não irão tirar proveito de seu trabalho, ou não usaria uma plataforma se houvesse a possibilidade de ficar preso nela.

Foi dito que o OpenXML é um padrão aberto e que o OpenOffice da Novell é o único com suporte a esse formato (não conferi, mas serve como exemplo possível). Ora, Software Livre não é sobre “o único que…”, é sobre “alguém implementou X? então todos temos X!”. Mas se o filtro OpenXML da Novell está coberto pelo acordo de patentes Novell-Microsoft, então ele é “aberto mas…”, sua licença é “livre, mas…”, e caímos numa situação Orwelliana “todos os animais são iguais, mas alguns são mais iguais que os outros”. Bem, pessoal, vocês desejarem cooperação é uma coisa boa, a divisão de Open Source não poder influenciar em algumas políticas infelizes da mastodôntica Microsoft não é surpresa, mas se querem um relacionamento sincero com as comunidades de Software Livre então sejam sinceros: “é, o OpenXML (ou SilverLight, ou qualquer outra coisa) é coberto por patentes, se vocês quiserem usar vão ter de trabalhar nesses limites aqui”. Não que informações sobre suas restrições legais seja uma grande revelação para as massas ignorantes (“oh, patentes! Jamais imaginei!”, e uma donzela desmaia do lado), mas sinceridade é uma iniciativa boa e ajuda as pessoas a saber com quem estão lidando, e podem decidir onde é possível cooperar em lugar de simplesmente dizer um “não” automático.

Em suma, as pessoas não querem coisas desse tipo:

The patent-protection pledge in Microsoft’s Open Specification Promise only protects what is explicitly specified in the standard. The Promise states that the company will not sue anyone for implementing the explicit parts of the OOXML specification; however, there are numerous implied, referenced, and undocumented facets and behaviors of the OOXML formats which, if implemented by another entity, would risk “intellectual property” (patent) violations against Microsoft software.

[Extraído de Achieving Openness: A Closer Look at ODF and OOXML]

Me parece que a “essência da coisa” do desenvolvimento aberto ainda está escapando da Microsoft. Você não pode restringir as condições nas quais alguém vai usar tal e tal tecnologia, não pode ser apenas no Windows, ou apenas naquele Linux ratificado pela Microsoft. Todas as empresas Open Source estão baseadas num tipo de colaboração que não pode sofrer esses tipos de restrições, sob o risco de quebrar o sistema. Imagine que você trabalha na Red Hat, na Canonical, ou é um desenvolvedor Debian, você colaboraria com o Moonlight da Novell sabendo que apenas ela pode usá-lo legalmente? Onde está o retorno? Acho que esse seria o primeiro exemplo real de “trabalhar de graça” do qual os programadores Software Livre eram acusados trocentos anos atrás. Estou exagerando?

Binary codecs for Windows Media video and audio, only licensed for use with Moonlight when running in a web browser. Other decoders will also work include Gstreamer and ffmpeg (used during the development stage) but Novell will not provide prepackaged version that include these libraries because of licensing and patent restrictions in the United States.

Wikipedia: Moonlight (runtime)

Outro ponto notável no discurso é que mesmo o Open Source estando tão em alta aos olhos da Microsoft, o Linux não está, assim como o Apache, o que não é uma surpresa, pois o negócio da Microsoft sempre foi plataformas de software, e a desejável posição de poder que vem junto. Até Bill G. já expressou como esse controle da plataforma já salvou sua empresa no passado:

“In short, without this exclusive franchise called the Windows API, we would have been dead a long time ago.”

Wikipedia: Vendor Lock-In – Microsoft

O Apache é um alvo particularmente interessante nesses tempos de aplicações Web, que tornam Linux e Windows relevantes apenas como porta de entrada pra internet, e muito foi falado sobre o Windows Server.

No geral a visita foi muito interessante, sinceramente, não estou falando por educação. :) O pessoal lá parecia bem aberto e a discussão fluiu muito bem. Eles certamente encontrarão resistência, mas a iniciativa é válida e espero que a comunidade mostre boas maneiras. Como disse o Fábio, é preciso coexistir, até porque ninguém vai desaparecer.

Inimigo Meu
(cena do filme Inimigo Meu)

Notificator Tabajara 3000

Não tem coisa mais chata do que esperar algum processo demorado terminar, naturalmente vou fazer outra coisa (normalmente não tão emocionante quanto meus vizinihos), mas aí ou acabo esquecendo de verificar se o negócio terminou, ou fico neurótico olhando o tempo todo. Pra acabar com essa besteira fiz um notificador em Python [source]:

import dbus
import sys
if len(sys.argv) > 1: id = '"%s" is done.' % sys.argv[1]
else: id = 'Whatever it is, it\'s done.'
my_bus = dbus.SessionBus()
proxy = my_bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
notifier = dbus.Interface(proxy, 'org.freedesktop.Notifications')
notifier.Notify('Notificator', 0, '/usr/share/icons/Tango/scalable/emotes/face-monkey.svg', 'Work done!', id, '', {}, 5000)

A idéia é chamá-lo junto com o processo demorado:

$ find ~ -name "*" ; notificator.py

Então, quando você menos esperar, esse macaco vai pular na sua cara:

Work Done!

Como se pode ver pelo código, você também pode acrescentar informação sobre qual processo terminou:

$ find ~ -name "*" ; notificator.py “find command”

Agora, meu jabá: veja mais no artigo sobre DBus no site do CInLUG.

Montando Uma Subrede com NAT, DHCP e iptables

 

Gateway

Outro dia numa das minhas threads de atividades (um cara tem de ganhar a vida :P), tive de montar uma subrede num laboratório aqui da UFPE. Não foi nada extraordinário e o povo que mexe com Linux deve estar careca de saber como faz: só um servidor DHCP e Firewall com NAT. Mas como servidores não são minha praia foi uma novidade interessante e resolvi anotar como foi caso precise depois, provavelmente num dia em que já terei esquecido como fiz a primeira vez. :P

Tutorial no site do CInLUG:

 

Workshop de Python do CInLUG, pt.2

O segundo Workshop de Python do CIn terminou faz uma hora, e creio que foi bem proveitoso. Tivemos mais exercícios que da outra vez e o pessoal parece ter sacado a facilidade e poder da linguagem. Viva. :)

Ainda vamos decidir qual será o assunto do próximo, mas deve ser algo além do básico, e o mais provável é que a periodicidade seja quinzenal.

Os slides estão no site do CInLUG e aqui:

Nota: as respostas dos exercícios estão nos slides, baixe o arquivo ODP, abra com o OpenOffice e peça pra ver as anotações que lá estarão as soluções.

Workshop de Python do CInLUG, pt.1

Ontem o CInLUG, com apoio do PET, realizou um workshop de Python no Centro de Informática da UFPE. Lauro e eu fomos os instrutores, com apoio de Rodrigo e Jesus.

O evento foi aberto, gratuito e sem inscrição. Demos uma introdução bem introdutória à linguagem Python, falamos de tipos, estruturas de controle, usamos muito o terminal (nada de IDEs por hora :P) e dos projetos (nossos e famosos) e empresas que usam Python. Creio que a facilidade e flexibilidade de Python (listas, dicionários!) impressionou e que a quebra no monótono regime Javanesco do CIn criou novas conexões neurais nos cérebros presentes.

Apesar de ter acontecido no laboratório onde acabaram de instalar um brand-shiny-new Ubuntu Feisty (há anos não tínhamos Linux nos laboratórios), preferimos fazer tudo no Windows, pra não ficar a impressão subliminar que Python é “coisa de Linux”.

Pretendemos continuar com mais 3 workshops, mas ainda vamos decidir se será semanal, quinzenal ou uma combinação dos dois baseada na nossa disponibilidade de tempo. De qualquer modo vamos avisar com antecedência.

Obrigado a todos que foram. :)

P.S.: pra minha namorada que foi lá, tome um beijo ;*

A página com mais informações e download dos slides está no CInLUG. Mas você também pode ver os slides aqui:

Domínio do CInLUG

Logo do CInLUG

Graças a Jesus (Sanchez) e às camisetas que vendemos, o CInLUG (grupo de usuários Linux do CIn) tem um domínio decente:

www.cinlug-br.org

Por falar no CInLUG, na última sexta à tarde fizemos uma apresentação sobre Software Livre e Open Source para os calouros de computação (ciência e engenharia). Falamos o básico e respondemos a fatídica pergunta: “como ganhamos dinheiro?” Petulantes?! Claro! ;P

Update: E agora o endereço do Planet CInLUG: http://planet.cinlug-br.org. Alguém pague uma cerveja pra Jesus!

Apresentação sobre desenvolvimento em Linux

Um dos grupos da disciplina carinhosamente chamada de “Projetão”, que temos lá no Centro de Informática, resolveu usar a plataforma Maemo para o projeto deles. Como a maior parte da equipe havia tido pouco contato com Linux, fui convidado a fazer uma rápida explanação do ambiente de desenvolvimento Linux. Detalhes e a apresentação aqui.

Bom ver o pessoal do CIn usando plataformas Linux, mas uma pena que a infra-estrutura de lá não ajude em nada. Mas eles já pediram máquinas com Ubuntu ao suporte, veremos o que acontece.