quarta-feira, 11 de abril de 2007

FISL8, a chegada

Escrevo do Hotel Milão Turis, em Porto Alegre. Cheguei há pouco para o FISL que começa amanhã. Vim com o colega Hugo Lavalle, que trabalha na Diretoria de TV Digital do CPqD. Felizmente o avião não atrasou. O único problema é que eu quase não coube na poltrona tamanho diet. Mas tudo bem, quer dizer, não posso reclamar pois eu pedi pra vir.

O problema aconteceu na chegada. Eu vinha para o Milão mas o Hugo ia ficar num outro Hotel. Pegamos o mesmo taxi e eu o deixei lá primeiro e vim pra cá. Quando estava quase chegando ele me liga dizendo que naquele hotel eles não tinham uma reserva pra ele. Resultado, como todos os hotéis de POA estão lotados para o evento (são quase 5.000 inscritos), ele acabou vindo pra cá e vai ficar comigo. Felizmente o quarto tem três camas. :-)

A expectativa para amanhã é grande e o sono também. Vou fechando por hoje pra agüentar o rojão dos próximos dias. Fiquem ligados!

Pré-FISL 8

Fui a São Paulo ontem participar do evento Pré-FISL, no Hotel Macksoud. Como eu ia sozinho, resolvi anotar a rota no Google Maps com ajuda do meu colega marioct. Ajudou, mas não resolveu. Como sempre acontece comigo, bobeei e tive que dar umas voltinhas a mais.

Cheguei atrasado ao evento e peguei a primeira palestra pela metade, do Josh Berkus, sobre as novidades das novas versões do PosgreSQL. Aprendi que o Skype usa PostgreSQL nos seus servidores para implementar o processo de provisionamento do serviço. Aprendi, também, que de acordo com alguns benchmarks, o PostgreSQL consegue, hoje, atingir 80% do desempenho de um tal "EnterpriseDB" custando apenas 1/3 do custo total de propriedade. (EnterpriseDB é o codinome que o Josh usou para designar o maior servidor de bancos de dados proprietário atual. Parece que a sua licença proíbe o seu uso para este tipo de comparação.)

O Josh está trabalhando na Sun, e uma de suas tarefas é usar o DTrace do Solaris para trabalhar na otimização do código do PostgreSQL. Alguém perguntou se o DTrace estaria sendo portado para outros sistemas operacionais livres e ele disse que já existem patches para integrá-lo ao FreeBSD.

Quanto ao Linux, a integração é impedida devido à incompatibilidade das licenças. É interessante que a Sun já anunciou que futuras versões do OpenSolaris poderão ser disponibilizadas sob a futura GPLv3 enquanto o Linus Torvalds já disse várias vezes que pretende manter o Linux sob a GPLv2. Ou seja, pelo menos no futuro mais imediato, a licença do OpenSolaris deverá continar a ser incompatível com a licença do Linux, o que impede a integração de coisas interessantes, como o DTrace, no Linux.

Mas nem tudo está perdido no mundo Linux. O Josh mencionou o projeto SystemTap que pretende ser para o Linux o que o DTrace é para o OpenSolaris. Eu ainda não pude estudá-lo, mas a referência é quente.

A segunda palestra do dia foi a mais esperada. Jon 'maddog' Hall falou sobre thin clients. Faz tempo que eu queria ouvi-lo falar, pois já havia lido muitos elogios a seu respeito. Ele não me decepcionou. A palestra foi muito interessante, apesar de que especificamente sobre thin clients não houve muita novidade. Ele falou basicamente do LTSP. Mais interessante do que falar das vantagens do modelo thin client foi falar das desvantagens do modelo tradicional de PCs. Eles são caros, ineficientes (em termos de consumo de energia), barulhentos, espaçosos, um risco muito grande pra segurança e ecologicamente incorretos.

A questão da seguraça foi ressaltada com a história dos faxineiros com carros de luxo. Segundo o maddog, há muitos casos de faxineiros noturnos que "chupam" os dados dos PCs das empresas com seus pen drives e vendem os segredos obtidos para a concorrência, conseguindo, assim, aumentar a renda da família e comprar carros de luxo. Ainda não vi gente assim no Brasil, mas estou de olho.

Sobre "pirataria" de software, o maddog disse que os índices mais recentes são de 34% nos EUA, 84% no Brasil e 98% na China. Segundo ele, se a China decidisse pagar todas as licenças que usa, precisaria depositar todo o seu PIB na conta da Microsoft. Obviamente, isso não justifica o delito, mas mostra que há algo de errado no modelo de negócios ou na estrutura jurídica. Alguma coisa tem que mudar.

Uma dica do maddog foi o projeto MythTV, que seria algo como um Tivo livre.

No final da palestra ele mencionou a existência de um "plano de negócios" que ele tem bastante detalhado e que pretende apresentar para o governo brasileiro e para outras empresas do setor de telecomunicações. Ele não entrou em muitos detalhes, mas entendi que se trata de prover Internet para 100% da população brasileira através da interconexão de milhares de servidores numa rede wireless mesh. A tecnologia não é a novidade, mas o modelo de incentivo à adesão. Segundo ele, o modelo propiciaria inclusive a criação de um milhão de empregos. Peguei uma referência sobre isso com o Cesar Brod pra estudar melhor o assunto.

Na seção de perguntas alguém fez a de sempre: como fazer pro Linux deslanchar no desktop? O maddog disse que nos seus quase 40 anos de atuação na área ele descobriu uma grande lição:
It isn't the OS. It's the volume. Volume is the only thing.
Ou seja, é tudo uma questão de volume de vendas ou de presença no mercado. Haveria um ponto sem retorno de participação no mercado a partir do qual a adaptação dos desktops Linux para a população seria ladeira abaixo. Mas pra chegar lá, é preciso usar outras armas... é como a questão do frescor do Tostines.

A terceira e última palestra da manhã foi do Cezar Taurion, da IBM. Ele falou sobre os vários modelos de negócio baseados na utilização ou no desenvolvimento de software livre. Gostei muito, mas tive uma ou outra questão com os slides. Convidei-o a repetir a palestra no CPqD e ele aceitou. Vai ser ótimo poder conversar um pouco mais com ele.

Alguém fez uma outra pergunta comum, sobre o fato de haverem muitas distribuições Linux e como isso parece ser um desperdício de esforço. Não me lembro da resposta do Cezar, mas fiquei pensando numa nova abordagem de resposta. Diferente das tradicionais que normalmente fazem analogia com o processo de evolução por seleção natural. Uma outra forma de pensar na questão é lembrar das lições do Fred Brooks no seu clássico The Mythical Man-Month. Ele dizia, se a memória não me falha, que quando o número de pessoas participando de um projeto aumenta, o esforço de comunicação entre elas aumenta numa taxa maior. Chega um ponto em que não adianta acrescentar mais gente que o resultado chega a ser um decréscimo na eficiência geral do grupo. Pois bem, imagine que todos os desenvolvedores que hoje participam de todas as distribuições Linux resolvessem se juntar numa única distribuição BigLinux. Dificilmente alguém conseguiria gerenciar um projeto tão grande e o mais provável é que ele entrasse em processo de estagnação e de colapso. O fato de haverem múltiplas distribuições mantém os grupos menores e coesos, garantindo a eficiência interna. Quanto à sinergia entre as distribuições, isso acontece. Talvez não com a velocidade ideal, mas provavelmente com a velocidade possível.

Junto do material que nos foi distribuído havia um jogo de palavras cruzadas cujas perguntas eram todas relacionadas ao tema software livre. No meio da manhã disseram que os três primeiros que entregassem o jogo totalmente preenchido após o almoço receberiam um Tux de pelúcia. Daí eu pensei: já tenho um Tux mas tenho dois filhos... não custa tentar, né? Consegui preencher quase tudo antes do almoço, mas ainda faltavam umas cinco questões. Fui almoçar e passei ao lado de uma Lan House. Por um real dava pra usar por quinze minutos. Pensei: um real pelo Tux? Tá valendo... Com ajuda do Google consegui preencher tudo menos uma. Chutei e voltei ao Hotel. Chegando lá entreguei o jogo e fiquei esperando. Antes da primeira palestra da tarde me chamaram e disseram que eu tinha sido o único até então a entregar o jogo, mas que havia uma resposta errada. Peguei o jogo de volta e desisti, pois eu não sabia mesmo a resposta. Ao final da primeira palestra anunciaram que havia mais um pretendente, mas que ele tinha umas três respostas erradas. Passados alguns minutos chega um cara pra mim perguntando se eu era o outro pretendente. Ele sentou-se ao meu lado e "trocamos figurinhas". Assim, conseguimos um Tux pra cada um.

Não acho que fizemos nada de errado. Afinal, a cola é uma metodologia colaborativa de aprendizado, não é? Bem apropriado ao tema do evento.

A primeira palestra da tarde foi do Kristian Kielhofner, sobre o Asterisk. Ele é o mantenedor do AstLinux, uma distribuição Linux especializada no Asterisk. Aprendi com ele o que é jitter, e por que isso é um problema para VoIP em geral e como o Asterisk trata o problema. Outra coisa que aprendi foi que em geral não é possível usar máquinas de fax numa rede VoIP. O Asterisk implementa um truque interessante para possibilitar isso.

Depois foi a vez do Amauri Zavatini, da Caixa Econômica Federal, falar sobre as experiências daquela instituição financeira com software livre. A palestra foi muito longa. Acho que ele devia ter se concentrado em apresentar poucos projetos relevantes, mas ele tentou falar de tudo. Mas aprendi algumas coisas interessantes:
  • A Caixa tem 118.000 funcionários e um número equivalente de desktops.
  • 70% destes desktops ainda rodam NT4.0!
  • Tiveram dificuldade na implantação do OpenOffice.org. A estratégia foi cancelar as atualizações do MS Office e configurar a máquinas para abrirem todos os documentos do Office com o OpenOffice.org. Mas ainda não tomaram a medida definitiva.
  • Estão para substituir o Exchange pelo Expresso Livre, desenvolvido pelo Governo do Paraná.
  • Eles têm 25.000 impressoras na rede e os custos dos insumos de impressão correspondem à 80% dos custos dos insumos de escritório em geral.
  • Estão experimentando uma solução de IM baseada no servidor Jabber do SuSE e nos clientes Pandion (Windows) e Gaim (Linux). O sistema fará autenticação dos usuários no AD da rede e deverá atender 1.500 usuários.
  • Ele mencionou o Framework Laszlo para desenvolvimento de aplicações web ricas. Eu já havia lido sobre ele... acho que merece atenção.
A última palestra do dia foi do Lous-Suarez Potts, porta-voz do projeto OpenOffice.org. Ele falou bastante do ODF e da sua importância. Mas sua mensagem principal foi para o risco que o projeto OpenOffice.org tem corrido nos últimos anos, visto que ele ainda é tocado principalmente pelos engenheiros da Sun. Se ele não conseguir atrair a colaboração de mais desenvolvedores estaremos sempre na dependência da boa vontade e dos bons negócios da Sun. E isso não é bom. Segundo ele, as versões mais recentes têm procurado diminuir as barreiras de entrada para colaboradores, como o refactoring do código para torná-lo mais modular, a implementação do framework de extensões e a simplificação do processo de compilação do produto. Mas considerando que o OOo é um colosso de 10 milhões de linhas de código, a maioria delas escritas em C++ (e, provavelmente muitos comentários ainda em alemão) não é de espantar a dificuldade desta empreitada.

Foi isso. A volta de carro transcorreu sem maiores incidentes. E a Juliana adorou o Tux.

sábado, 7 de abril de 2007

Trabalho em casa

O “trabalho em casa”, ou home office, parece ser uma tendência irreversível para as empresas do setor de tecnologia. Isso é fácil de explicar tendo em vista os baixos custos de conectividade à Internet via banda-larga e a disponibilidade de ferramentas de colaboração remota eficientes como VoIP, mensagens instantâneas, correio-eletrônico, além do acesso direto e seguro via VPN a todas as ferramentas de suporte ao desenvolvimento.

Sun, IBM, HP, Cisco e Accenture são algumas das empresas de tecnologia que têm oferecido aos seus empregados a possibilidade de adotarem um horário mais flexível de trabalho, permitindo que eles trabalhem parte do tempo em casa. Algumas delas vão mais longe e arcam com os custos de conexão à Internet e com o computador que o empregado utiliza em casa. Mas não são apenas as empresas de tecnologia que estão experimentando esta novidade. BMW, Shell, Royal Bank of Scotland, Nationwide Building Society e Marks & Spencer também têm programas semelhantes.

O gerente da IBM na Índia explica desta maneira as vantagens deste modelo:

"Acreditamos que um ambiente de trabalho flexível dá aos empregados mais flexibilidade e controle sobre seu trabalho, tornando-se um meio importante para conquistar um maior equilíbrio entre suas vidas e seu trabalho, além de aumentar sua produtividade. Nós (na IBM) somos flexíveis sobre como e em que local o trabalho é realizado e somos focados nos resultados do negócio e não no “tempo de cadeira”. Flexibilidade, no ambiente de trabalho da IBM, é um grande fator de atração para novos talentos, aumentando a efetividade, o foco e a produtividade."

Há economias óbvias que esta abordagem traz às empresas, como a redução no custo de infra-estrutura de suporte aos empregados, particularmente em espaço físico, mobiliário, equipamentos, linhas telefônicas, transporte e serviços em geral.

Outra vantagem menos óbvia desta flexibilização é libertar a empresa das restrições geográficas para contratar seu pessoal. Com uma boa infra-estrutura de suporte, uma empresa pode contratar os melhores candidatos de qualquer parte do Brasil e do mundo para constituir sua força de trabalho. Para uma empresa com clientes internacionais, a possibilidade de contar com empregados trabalhando em fuso horários diferentes pode ser fonte de economia para atividades de atendimento ao cliente, por exemplo.

O empregado ganha com a redução no tempo e nos custos de transporte e com a possibilidade de trabalhar perto da família. Além disso, muitos teriam a chance de trabalhar num ambiente mais confortável, mais amplo e menos susceptível a interrupções, o que pode proporcionar ganhos de produtividade significativos.

Obviamente, nem todos os empregados preferem trabalhar em casa, seja por não possuírem um ambiente adequado, seja por não conseguirem separar suas atividades domésticas das atividades de trabalho. Alguns sentem-se isolados, apesar do acesso fácil aos seus colegas através de ferramentas de comunicação eletrônicas. Outros perdem contato com a cultura da empresa. É preciso encontrar o equilíbrio ideal entre a quantidade de horas trabalhadas na empresa e a quantidade de horas trabalhadas em casa, para cada empregado.

Há dificuldades para a empresa também. Os gerentes precisam se acostumar a gerenciar seus subordinados remotamente. A avaliação de desempenho e a manutenção da capacitação dos empregados também podem ser mais difíceis. Sem mencionar os riscos de segurança envolvidos no acesso remoto aos sistemas da empresa por um grande número de funcionários.

De qualquer modo, isso me parece uma tendência inevitável. E eu sei que eu preferiria trabalhar onde estou agora. :-)

Religiucinação

Tem gente que acha que o fato de um monte de gente acreditar numa religião é evidência suficiente pra se crer nela.  Se isso é verdade, a questão imediata seria quantas pessoas precisam acreditar numa religião pra valer como evidência?  Um milhão?  Um bilhão?  O fato é que estabelecer um número exato levaria-nos a questionar a razão da sua escolha.  E qualquer número menor que dois bilhões levaria a uma contradição, já que a segunda religião com maior ibope é o Islã, com mais de um bilhão de seguidores.

Se isto fosse verdade, teríamos bilhões de pessoas sofrendo de alucinação por acreditarem em uma religião sem a evidência dos grandes números.

http://dilbertblog.typepad.com/the_dilbert_blog/2007/04/scientific_fact.html

sábado, 24 de março de 2007

O ideal do software livre

Outro dia eu falava sobre as licenças de software e como elas podem ser entendidas efetivamente como um contrato em que o autor do software "dá licença" para o usuário usufruí-lo de maneira parcial e limitada.

O movimento do software livre, orginado e liderado pelo Stallman, entende que este poder do autor pode ser usado de maneira abusiva e imoral. A questão não é que o autor possa impedir outras pessoas de utilizar o programa. O problema é que ele pode sujeitar o usuário a um conjunto de restrições que podem levar a situações de conflito moral.

O exemplo canônico deste tipo de conflito ocorre quando o usuário se vê obrigado a transgredir a Regra de Ouro, também conhecida como ética da reciprocidade, e que é um dos pilares da ética de todas as culturas e religiões. Trata-se meramente da regra que diz que você deve fazer pelos outros o que gostaria que os outros fizessem por você e que não deve fazer aos outros o que não gostaria que lhe fizessem.

Pois bem. Segundo Stallman, a Regra de Ouro diz que se eu gosto de um programa e devo compartilhá-lo com as outras pessoas que se interessarem por ele. Afinal, é assim que eu gostaria de ser tratado quando eu me interessasse por um programa de um colega. Notem que isso não vale para bens tangíveis, apenas para bens intangíveis e sobre os quais não hajam direitos morais associados, como o software. Não é porque eu gosto do meu iPod, por exemplo, que eu preciso dá-lo a quem mo pedir, pois ao dá-lo eu ficaria sem ele. No caso do software eu daria uma cópia e permaneceria com a minha, efetivamente incrementando a "riqueza" total do mundo.

Os tais direitos morais são coisas como o direito de ser reconhecido como autor e o direito de não ter sua obra artística, como um livro, conspurcada. Mas o autor de software não padece destes direitos.

Em última análise então, se eu me sinto compelido a seguir a Regra de Ouro, eu deveria me abster de assumir qualquer obrigação que possa me forçar a transgredi-la. Portanto, eu não deveria aceitar um contratro que restringisse meu direito de compartilhar um software com um amigo interessado. Se eu entendo corretamente, esta é a essência do ideal de Stallman: as licenças de software que impõem restrições ao compartilhamento me forçam a transgredir a Regra de Ouro e por isso eu não deveria aceitá-las.

sexta-feira, 23 de março de 2007

Licenças de software

Hoje eu tive uma daquelas valiosas experiências que acontecem conosco quando percebemos que estamos errados. Ao ler a transcrição de uma palestra do Richard Stallman sobre a GPLv3 vi que ainda há detalhes sobre a GPLv2 que eu desconhecia.

Aliás, o assunto "licenças de software", em geral, é normalmente envolto em muito mistério, mito e ignorância. Não sei bem o porquê, mas tenho uma teoria: as pessoas não formam conceitos a partir de definições oficiais mas sim de analogias banais. Quando, à primeira vista, o significado de um termo parece óbvio, não nos passa pela cabeça a possibilidade de estarmos enganados a seu respeito.

Todo mundo acha que sabe o que é uma licença de software. É o preço do programa, certo? Afinal, não existe o "custo de licença"? E aí, quando alguém vem e diz que existem "licenças livres" dá um nó na cabeça, pois isso mais parece um oxímoro.

Errado. Eu já disse antes que uma licença de software é o contrato estabelecido entre o distribuidor do software e quem o adquire, especificando os direitos que o adquirente está obtendo. Como de costume eu estava errado. Não é o distribuidor mas sim o autor do software (ou o detentor do seu copyright, no direito anglo-saxão) que pode estabelecer um contrato com o usuário, pois ele é quem detém os direitos exclusivos sobre o software.

Uma licença de software não é um contrato de venda. O autor do software não cede seus direitos através da licença. Ele apenas os concede de maneira parcial e limitada. É como um ingresso de cinema. Você não sente que está comprando o filme. Você sabe que está apenas comprando o direito de assistir a uma determinada sessão.

As licenças de software propritário tradicionais são bem parecidas com o ingresso de cinema. Normalmente, elas concedem ao usuário o direito de executar o programa em um único computador e só. Há variações, como as licenças flutuantes, que permitem um número limitado de ativações simultâneas do programa em um número indeterminado de máquinas em rede. Outras vezes, a licença especifica o tipo de máquina em que o programa pode ser executado, não permitindo que ele seja usado em máquinas de maior poder computacional.

Acho que o melhor jeito de entender a função de uma licença de software é prestar atenção não na palavra "software", mas sim na palavra "licença". É exatamente isso. O autor "dá licença" ao usuário de usar o software de uma determinada maneira. Como ele detém os direitos exclusivos sobre sua obra, só ele pode "dar licença" para que outras pessoas o utilizem e ele pode dar uma licença tão ampla ou tão restrita quanto lhe der na telha. Chato pro usuário, não?

E tem mais. O autor pode dar uma licença diferente para usuários diferentes. Ele pode cobrar uma baba por uma licença flutuante que interesse a uma empresa. Pode cobrar um valor menor por uma licença individual. E pode não cobrar nada da sua esposa. A idéia é que enquanto seus direitos durarem ele os pode conceder como bem entender.

Então, em princípio, um software não licenciado só pode ser usado pelo seu autor. Outros usuários só podem usá-lo respeitando o contrato de licença estabelecido explicitamente pelo autor.

Licenças livres

http://www.fsfeurope.org/projects/gplv3/tokyo-rms-transcript
------------------
- internet distribution instead of mail order

-----------------
Q7: I'd like to know more about this term "use freely". In patent terminology, to use something freely means that as long as you pay the licence fees, then you can use it.

Richard Stallman: That's not Free Software. In any case, when I informally use terminology like "to use something freely", I am not referring to any country's patent law, and specifically, being free to do something means you don't have to pay for permission to do it. When we describe the four freedoms, when we say that freedom zero is the freedom to run the program as you wish, part of that is: you're not required to pay anyone for permission to run that program as you wish.

And, freedom 2 is the freedom to distribute copies of the program. That means you don't have to pay for permission to do so, you don't have to pay for each copy or negotiate with anybody. You're simply free outright to go and do it.

If there's a program that you're allowed to run only if you pay somebody, that's not Free Software. Therefore, the GNU GPL aims to make sure that nobody can create such a situation. If somebody can create a situation where people feel they must pay in order to be allowed to run a GPL covered program, then that is a flaw, a failing in the GPL and we are doing our best to make sure that can't happen.

--------------------------
I don't believe that all the important ethical issues in life can be modelled on the Free Software movement.
-----------------------------
We're not working on open source, we're not interested in open source. By the way, some open source licences are not Free Software licences, the definition of open source came from the definition of Free Software but it followed a circuitous path, and it's written very differently and it's interpreted by different people, so they've drawn the lines in different places, so most of the open source licences are Free Software licences, but there are some licences that the OSI accepted that we consider unacceptably restrictive.
-----------------------------
And then are licences that are file-level copylefts. The Mozilla Public License was the first of these. File-level copylefts say "If you modify the files of this program, the modified versions of those same files must be under this same licence". Now, that's not as strong as the GPL. The GPL says if you modify the program, you're whole modified program must be under the GPL. Those file-level copylefts, or we might call them weak copylefts, permit the additional of separate files which are non-free. They don't really achieve the goal of copyleft, but because they made this requirement about the file, it's impossible to relicense that file under the GPL. So the GPL will always be incompatible with those file-level copyleft licences.
-----------------------------
The licence of TeX says "You can't modify this file, but you can distribute it with a change file" and then when TeX is built, it's built by patching the standard TeX source code using the change file. So, in effect, you can distribute any modified version in that way, that's how I convinced myself in 1984 that that was a Free Software licence. But if you have two programs under the TeX licence, you can't merge them because each one says: anything that contains this can only be distributed as a changefile from this. So you have two things tugging at each other, each one insisting on being the base. So the TeX licence is incompatible with itself, but it's a Free Software licence.
--------------------------