Wednesday, May 31, 2006

Dapper Release Party em Brasília

Opa. Tá confirmada nossa Release Party do Dapper no planalto central! O pessoal na lista se organizou e ficou definido:

Dia: 03 Jun, Sábado
Local: Libanus (na CLS 206 - Asa Sul)
Hora: 16h
Contatos: lucius.curado # gmail.com / yves.junqueira # ubuntu.com - (61) 9144-9522
Não tem complicação. É um encontro num bar :-)
Vários já confirmaram presença. Vai lá, pô - vai ser excelente!

Sunday, May 28, 2006

Ubuntu Landscape anunciado - de certa forma

Mark Shuttleworth mencionou numa entrevista recente que a Canonical está trabalhando num serviço que irá provavelmente chocar com o NWU:
There is, additionally, a team that’s working on management infrastructure, so providing people with a comprehensive framework to manage large deployments of servers. That won’t be released for Dapper, but all the foundations of it will be there so that Dapper will be manageable just as people have come to expect a Red Hat Enterprise deployment to be managed, through the web. We’ll deliver that same level of functionality with Dapper as soon as the other pieces of that solution are in place.

Aparentemente, será um serviço pago, parecido com o Red Hat Network. Já foi incluído recentemente no Dapper um pacote que ocupa um espaço que será provavelmente substituído por uma ferramenta parecida com o nwu-agent, chamado landscape-client.

Essa ferramenta torna o Ubuntu atrativo para o mercado que prefere produtos ditos "Enteprise". Ela também nos ajuda a entender que a Canonical não é uma estranha organização humanitária, mas uma empresa voltada ao mercado (apesar de ter uma filosofia de conduta). Projetos secretos são esperados nesse contexto.

Acho que eles deveriam ter trazido isso a público antes, apesar de que eu teria trabalhado no NWU de qualquer forma. Eu ainda estou trabalhando duro nele, por três razões: 1) aparentemente esse landscape não será livre ou gratuito; 3) O Debian ainda irá precisar (acredito) de uma ferramenta assim e; 3) Eu dediquei meses do meu tempo livre desenvolvendo uma implementação daquele spec e está quase pronta.

Tenho esperança que esse software não irá substituir o NWU inteiramente, portanto não vejo muitos problemas. Acho apenas que eles deveriam tê-lo mencionado - talvez na especificação do NetworkWideUpdates.

Esse comportamento pode não quebrar as políticas de "ser sempre livre" ou "nunca ter licenças restritivas associadas ao Ubuntu", mas torna menos atraente para a comunidade contribuir com o Ubuntu, disso estou certo.

Ubuntu Landscape somewhat announced

Mark Shuttleworth mentioned in a recent interview that Canonical is working on a service that will probably overlap with NWU:
There is, additionally, a team that’s working on management infrastructure, so providing people with a comprehensive framework to manage large deployments of servers. That won’t be released for Dapper, but all the foundations of it will be there so that Dapper will be manageable just as people have come to expect a Red Hat Enterprise deployment to be managed, through the web. We’ll deliver that same level of functionality with Dapper as soon as the other pieces of that solution are in place.

It seems it will be a paid service, much like Red Hat Network. There is even a placeholder package that recently slipped into dapper, called landscape-client, which will probably be replaced by a "nwu-agent"-like tool to manage the server.

This is a feature that makes Ubuntu attractive to the slice of the corporate market that likes "enterprise"-rated products. It also helps us understand that Canonical is not an awkward humanitarian organization, but a market-oriented company (although with a philosophy). Secret projects are expected in such a context.

I think they should have brought this to the public before, although I would have worked on NWU anyway. I still am working hard on it, for three reasons: 1) it appears that landscape will not be free; 2) Debian will (I presume) still miss a tool like that and; 3) I've dedicated months of my free time to code an implementation that spec and it's almost there.

I'm hoping that this software would not replace NWU entirely, so it's not a big issue.
I do think they should have mentioned it, though - maybe in the NetworkWideUpdates spec.

This behaviour may not break the "never ask for a fee" and "totally free environment" policies, but makes it less attractive for the community to contribute to Ubuntu. Project contributors don't get this kind of surprises with Debian, for example.

Wednesday, May 17, 2006

nwu saindo do atoleiro

Oba. O nwu saiu do seu atoleiro emocional e começou uma nova vida. Finalmente fechei o ticket #56, que relatei noutro post. Era só uma questão de manualmente criar e fechar cada conexão necessária por thread/request. Isso pode ser óbvio pra você, mas pra mim não era. Na lata eu ganhei também um boost invejável de performance, por passar a utilizar transações.
O bug do momento é que, após um upgrade, a lista de update candidates do cliente é zerada, mas às vezes o diff dessa modificação é enviada errada pro servidor. É um problema importante, mas nada que cause perda de dados ou instabilidade na máquina. Prova disso é que estou usando o nwu em semi-produção, com 7 clientes, com relativo sucesso.

Vai ser divertido matar isso, porque pela primeira vez no projeto, o bug será primeiro tratado com um teste de unidade e, só depois, corrigido. Graças à grata insistência do Otávio Salvador, me convenci de que uma boa estrutura de unittest vai ser de fato essencial à estabilidade da ferramenta, que é crítica e, espero, deve ser usada em servidores por outras pessoas além de mim :-).
Falando em unittest, pela metodologia XP (XP Programming) os testes de unidade devem ser formulados antes mesmo de se escrever o código. Isso é curioso e, IMO, discutível - mas não tão discutível, como me lembrou o coredump, que o princípio de Pair Programming, também proposto pela XP. Gosto da XP, principalmente se compara às alternativas burocratizantes como CMMI e ISO.

No mundo FOSS ainda impera o Bazaar entre as metodologias de desenvolvimento de software, mas hei de concordar, no caso do nwu, em abrir mão de uma das premissas, a de que cabe aos usuários fazer todos os testes. Sendo o nwu crítico para estabilidade e segurança das máquina, não posso correr esse risco.

PS: Uma grande salva de palmas ao Fluminense do Welsey, que precisava ganhar e fez merda. Agora, Pirralho, você aguenta o César amanhã.

Guia para Servidores Ubuntu: dá-lhe Ubuntu Brasil!

Concluímos há pouco a tradução do Guia para Servidores Ubuntu (versão com tradução incompleta). Parabéns a todos que contribuíram!  Essa é a lista do rosetta daqueles que ajudaram nessa empreitada:

Entre os tradutores cujo trabalho eu tive oportunidade de revisar, merece destaque o Minholi, que além de ter colaborado com uma grande quantidade de strings, contribuiu com traduções impecáveis. Cito também o Lucius Curado,  amigo e colega do Ubuntu-DF, que fez traduções com excelente qualidade - e isso é o mais importante nesse projeto.

Ao revisar alguns textos, notei diversos erros nas sugestões dos usuários. Por mais que não se possa exigir nada num trabalho voluntário, é essencial manter a qualidade do que nos dispomos a fazer. Temos que nos espelhar no perfeccionismo do Debian nessas questões.

A maioria desses erros poderia ser evitado com cuidados simples:

  1. Revisar o que você acabou de escrever
    Erros óbvios, inclusive as muitas mudanças completas no sentido original do texto (a chamada "tradução criativa"), poderiam ser evitados com esse cuidado.

  2. Consultar o dicionário de termos do Ubuntu Brasil
    É importante padronizarmos os termos principais, na medida do possível.

  3. Observar boas fontes de tradução
    Seguir traduções acadêmicas e aceitas pelo mercado, e não aquelas do senso-comum, é um bom costume.
    Exemplo lembrado pelo ThiagoCP no #ubuntu-br-tradutores: "Grid", em softwares para gráficos 3D, seria corretamente traduzido como "Grade". Mesmo que no dia-a-dia as pessoas continuem a falar "Grid", é recomendável adotar o termo traduzido, visto que é aceito e utilizado por equivalentes de mercado (No caso, pelo 3D S Max)


Infelizmente, meu nível de contribuição com as traduções é menor que eu gostaria mas, bem, o time está no caminho certo. Além de haver um bom clima de colaboração, especialmente no canal da Freenode (#ubuntu-br-tradutores), estamos atraindo voluntários muito capazes e esforçados. O resultado é a melhoria na qualidade das traduções. Isso ficou claro no caso do serverguide.

Por outro lado, achei importante a decisão dos administradores do time de tradução, OgMaciel e segfault, de reduzir o time oficial de contribuidores (coitado do Og, eu dei piti quando ele me tirou o acesso, mas ó, ele tinha mesmo razão). Por mais que seja tentador permitir que o máximo de usuários traduzam strings sem necessitar revisão, isso poderia até apodrecer o projeto, com traduções toscas pipocando em menus e caixas de diálogo. Para garantir essa qualidade, fica claro, também, que o papel dos revisores é muito importante.
Os leitores que queiram participar desses esforços provavelmente já sabem o que fazer.

Monday, May 8, 2006

Tempo de hackozar

O nwu está há semanas na UTI. Culpa de um daqueles bugs difíceis de se resolver, que podem inviabilizar projetos de desenvolvimento voluntário. O problema pode até não ser complicado, mas dá uma preguiça enorme de sentar para trabalhar nisso.É frustrante. Em um projeto desenvolvido em tempo livre, dá uma broxada você sentar vários dias pra resolver um problema, mas não sair nada.

O problema no [tag]nwu[/tag] é uso de memória. Eu não sou um desenvolvedor muito experiente, daí ainda me embanano em projetos grandes. Nesse caso, apesar de todos os meus esforços para fazer um código organizado e bem estruturado, todos os requests XML-RPC estão sendo mantidos em um mesmo escopo do sistema. Mesmo seguindo a sugestão do coredump e usando threads, o problema persiste, isto é, o SQLObject faz cache de requests e o daemon não desfaz as referências aos objetos, como deveria (quer dizer, como eu gostaria).

A solução é fazer conexões do sqlobject para cada thread. O desafio é fazer isso sem utilizar o ConnectionHub, disponível apenas no sqlobject 0.7 - que não está disponível no [tag]Debian[/tag] 3.1, uma das distribuições-alvo (junto com [tag]Ubuntu[/tag] 6.06). Acredito que usar um dicionário e manter nele as conexões de cada thread. Vamos ver :-). Ainda estou devendo também fazer a estrutura de unittest pro nwu, como sugerido pelo Otavio Salvador, melhoria essencial pra ferramenta ser confiável.

A novidade do dia é que recebi um convite do Google para hospedar os e-mails do cetico.org no Gmail. Eu havia me inscrito como beta tester do programa há alguns meses - é o chamado [tag]gmail hosted[/tag].
É impecável. Além de poder utilizar a interface do Gmail nos e-mails de seu próprio domínio, cujas contas você pode administrar por meio de uma interface googliana, ele permite algum nível de personalização, disponibiliza [tag]jabber[/tag] com syndication, além de todas as funcionalidades do gmail, como POP, anti-spam. Isso tudo com a vantagem de utilizar seu próprio domínio personalizado.

Não sei se o serviço continuará a ser gratuito, mas pelo modelo de negócios do Google, tudo indica que sim. Os adwords continuam lá, mas não incomodam. É duca.