Antonio Terceiro


Feed RSS

Validate the RSS feed

Seu Blog

É preciso logar para criar ou gerenciar seu blog.

  • Todos os posts:

novo blog

(16 Jun 2009 - 21:57)

Depois de bastante tempo usando o TWiki para o meu blog, estou de mudança para o Software Livre Brasil. Apesar do blog no TWiki ser muito legal e prático, eu preciso divulgar mais o Noosfero, projeto no qual eu venho trabalhando já há 2 anos, e também provar do meu próprio remédio usando o troço no dia-a-dia. Lá também tem comentários, algo que eu e todo mundo mais que usava blog aqui sentia falta.

Laboratório de Engenharia de Software: Rails, aula #3

(19 May 2009 - 20:15)

Aula 3: ActiveLdap

(veja também: aula #1, aula #2)

Nesta aula:

Os arquivos para baixar estão no lugar de sempre. Desta vez tem também o código-fonte da aplicação (Copyright © 2009, Antonio Terceiro, licenciado sob os termos da licença MIT).

Como antes, comentários são bem-vindos.

Laboratório de Engenharia de Software: Rails, aula #2

(06 May 2009 - 01:32)

Screenshot: um teste funcional

(veja também: aula #1)

Nesta aula:

  • testes de integração, testes funcionais e testes unitários
  • validações do ActiveRecord
  • renderizar ou redirecionar
  • criando layout para a aplicação

Hoje fiz uma página de download mais ou menos arrumada para os vídeos, e gerei também versões em baixa resolução usando o ffmpeg2theora. Reduzindo as duas dimensões do vídeo pela metade (de 912 x 640 para 456 x 320), consegui fazer uma versão pequena desta aula com 97 MB, sendo que o original tem 528 MB. Com certeza o vídeo é muito pior, mas dá pra assistir; praticamente não dá pra ler a barra de título das janelas, mas os demais textos com mais contraste (o conteúdo das janelas, em geral) tá tranquilo. Espero que facilite a vida de quem tiver restrições de banda ou espaço em disco/memória flash.

Espero que seja útil pra quem estiver interessado. Comentários são bem-vindos por e-mail (terceiro@softwarelivre.org).

Laboratório de Engenharia de Software: Rails, aula #1 em vídeo

(02 May 2009 - 02:34)

Como parte do meu estágio docência, uma das atividades obrigatórias do doutorado, estou compartilhando com a minha orientadora, professora Christina, a disciplina Laboratório de Engenharia de Software na graduação em Computação da UFBA. A idéia da disciplina é trabalhar questões práticas de desenvolvimento de software, e implementar um projeto de verdade usando Ruby e Rails, usando conceitos de desenvolvimento ágil. No começo do curso, fizemos sessões de TDD para introduzir o conceito de TDD e aumentar a familiaridade com Ruby, e pensamos "a gente podia ter gravado esse negócio pra servir de referência depois".

Algumas semanas depois, chegamos no ponto de apresentar o Rails e eu resolvi que desse vez ía: gravamos a aula toda usando o recordMyDesktop, e o vídeo está disponível aqui:

  • rails-aula1.ogv, 466MB. (para fazer download clique com o botão direito e escolha "Salvar link como..." ou algo que o valha no seu navegador.

Algumas observações:

  • o vídeo está sem edição nem tratamento nenhum, do jeito que o recordMyDesktop deixou eu subi. Apesar disso, acho que a compressão está bastante boa: 466MB pra 1 hora e 20 minutos em alta resolução ...
  • O vídeo está em formato Ogg, usando o codec Theora, que é um codec de vídeo livre (de patentes inclusive). A grande maioria dos players livres devem tocar facilmente, em especial mplayer e vlc são boas opções.
  • minha locução é bizarra, eu sei. Mas eu não ligo. smile
  • Creative Commons License
    Laboratório de Engenharia de Software: Rails, aula #1 por Antonio Terceiro, está licenciada pela Licença Creative Commons Atribuição 2.5 Brasil.

highlighting (git) patches in mutt

(23 Apr 2009 - 14:24)

This tip is useful for those who want to read the patches before even trying them into a branch. While it's possible to read them as regular text, being able to spot directly what matters helps doing it very quicker. Drop the following lines in your ~/.muttrc to highlight the relevant elements in the diff:

color body brightred default "^-.*"
color body brightgreen default "^[+].*"
color body brightwhite default "^diff --git.*"
color body brightwhite default "^index [a-f0-9].*"
color body brightyellow default "^@@.*"

Of course you can change the colors to match your preferences, I'm not even sure yet that these are the best colors for me. The result looks like this:

Highlighted patch in mutt

estacionamento

(02 Apr 2009 - 20:32)

Levante a mão quem já não teve vontade de poder fazer isso. smile

Cortesia do xkcd.

ferramentas livres para gerenciamento de bibliografia

(31 Mar 2009 - 20:44)

Nos últimos dias eu li o clássico Como Se Faz Uma Tese, de Umberto Eco. Ele propunha um esquema super sofisticado pra catalogar a bibliografia em fichas; ainda que eu não pretenda investir em fichas de papel hoje em dia (o livro é de 1977, então computador não estava nem próximo da realidade naquele contexto), eu percebi que organizar a bibliografia de uma forma sistemática é fundamental pra poder desenvolver qualquer trabalho direito.

Resolvi tomar jeito na vida e começar a organizar minhas referências, e fui à caça de ferramentas pra isso. Segue uma tabela que fiz pra comparar as opções que eu encontrei empacotadas no Debian:

Ferramenta Descrição Abrir/importar .bib Salvar .bib Facilidade de edição Possibilidade de incluir resumo/etc
bibcursed aplicativo para console (ncurses); projeto antigo Sim Sim Tosco Não
referencer aplicativo Gtk+; projeto recente Sim Sim Simples e rápido Sim
kbibtex aplicativo KDE/Qt; Sim Sim Completo, mas complexo Sim

Resolvi ficar com o referencer. Achei ele bem agradável e prático, suporta tags, suporta várias formas de importar ... vamos ver.

referencer.png
Janela do referencer.

Eu conheço ainda o JabRef, mas nem testei porquê não está na seção main ainda.

update: coloquei um screenshot bem mais legal, depois de começar a usar o referencer de verdade, já com tags e tal.

travando o painel do GNOME

(05 Mar 2009 - 21:50)

De vez em quanto meu pai me ligava perguntando porquê a barra de cima ou de baixo tinha sumido no GNOME dele. O que acontecia era que ele sem querer arrastava um painel pra cima do outro, ou mesmo removia o painel sem querer. Isso deve ter acontecido umas três vezes já.

Nunca mais: pesquisando um pouco na internet, descobri uma forma de travar o painel de forma que o usuário não consegue quebrar o desktop (pelo menos não no que diz respeito aos painéis do GNOME): basta abrir o gconf-editor ("Ferramentas do Sistema" → "Editor de Configurações) e marcar a chave booleana /apps/panel/global/locked_down. Com essa chave marcada o usuário não consegue nem mover os painéis nem incluir novos lançadores, nem nada. Bastante útil.

Debian 5.0 (Lenny) lançado

(16 Feb 2009 - 00:39)

Então, o Debian 5.0, codinome Lenny, está pronto. Foi bastante tempo de desenvolvimento, e mais vários meses de teste pra essa versão ser estável como uma rocha.

É muito bom poder participar desse projeto e fazer o melhor sistema operacional disponível, que é preparado pra rodar em todo tipo de equipamento, desde equipamentos pequeninos até mainframes do tamanho de uma geladeira. Isso sem falar na comunidade sensacional e absurdamente competente.

Como a versão estável foi lançada e o congelamento acabou, começou o ciclo de desenvolvimento da próxima versão (codinome Squeeze). Isso quer dizer que já podemos começar a subir novas versões dos pacotes. A nova versão da mocha, uma biblioteca de mocking e stubbing para Ruby, usada em conjunto com frameworks de teste automatizado, já está a caminho.

A julgar pelo número de pacotes na área de upload, muita gente estava se coçando pra começar a subir versões novas. smile

ordenando números de versão

(30 Dec 2008 - 23:01)

Quando eu quero listar versões em ordem, a ordenação de strings padrão, seja pelo comando sort ou pelo sort padrão de qualquer linguagem de progamação, não serve.

terceiro@morere:~/src/noosfero (master)$ git tag
0.1.0
0.10.0
0.10.1
0.10.2
0.10.3
0.11.0
0.11.1
0.11.2
0.11.3
0.11.4
0.11.5
0.12.0
0.2.0
0.3.1
0.4.0
0.5.0
0.6.0
0.7.0
0.8.0
0.9.0
terceiro@morere:~/src/noosfero (master)$ git tag | sort
0.1.0
0.10.0
0.10.1
0.10.2
0.10.3
0.11.0
0.11.1
0.11.2
0.11.3
0.11.4
0.11.5
0.12.0
0.2.0
0.3.1
0.4.0
0.5.0
0.6.0
0.7.0
0.8.0
0.9.0

O script a seguir resolve meu caso:

#!/usr/bin/ruby
out = $stdin.readlines.map { |s| s.strip }.sort do |v1,v2|
  (v1 == v2) ? 0 : (system("dpkg --compare-versions  #{v1} le #{v2}") ? -1 : 1)
end
puts out

Salvei ele em ~/bin/version-sort e fix um chmod +x ~/bin/version-sort.

Aí eu consigo fazer coisas assim:

terceiro@morere:~/src/noosfero (master)$ git tag | version-sort 
0.1.0
0.2.0
0.3.1
0.4.0
0.5.0
0.6.0
0.7.0
0.8.0
0.9.0
0.10.0
0.10.1
0.10.2
0.10.3
0.11.0
0.11.1
0.11.2
0.11.3
0.11.4
0.11.5
0.12.0

UPDATE: Pedro me indicou por e-mail uma alternativa usando opções do próprio sort:

terceiro@morere:~/src/noosfero (master)$ git tag | sort -n -t . -k 1,1 -k 2,2 -k 3,3
0.1.0
0.2.0
0.3.1
0.4.0
0.5.0
0.6.0
0.7.0
0.8.0
0.9.0
0.10.0
0.10.1
0.10.2
0.10.3
0.11.0
0.11.1
0.11.2
0.11.3
0.11.4
0.11.5
0.12.0

De fato pra esse caso específico funciona que é uma beleza, e é simples fazer uma alias do shell com o comando todo. Mesmo assim essa abordagem usando o dpkg --compare-version tem a vantagem de ser genérica: eu posso abstrair o formato do número de versão que o dpkg se vira: x.y.z, x.y, x.y.z.w, x:y.z, etc.

Reflexão sobre o Tabuleiro Digital, e sobre projetos de inclusão digital em geral

(19 Dec 2008 - 19:00)

Achei por acaso no blog No blog do professor Nelson Pretto. Sensacional, vale à pena a leitura.

Pra dar um gostinho, um parágrafo no comecinho:

Primeiro, permitam-me uma questão que balizará toda essa conversa: por que os filhos das classes média e alta podem ter acesso ao universo da internet, na privacidade de seus quartos, com banda larga, suporte via telefone e computadores poderosos para fazer um monte de coisas como baixar músicas, mixá-las, distribuí-las, jogar videogames online, conversar com amigos velhos e novos, visitar e interagir com sites às vezes não tão adequados segundo os adultos - que aliás, um dia já viram as mesmas coisas em gibis escondidos dentro dos livros escolares! -, e, os filhos dos pobres, têm que acessar internet em telecentros para serem treinados (com projetos pedagógicos) em word e excel (aliás, softwares proprietários que lhes "escravizarão" para o todo e sempre...)?!

TWikiBrasil agora é FoswikiBrasil

(14 Dec 2008 - 02:08)

Foi criada uma nova lista, a web foi renomeada para Foswikibr, e o Carlinhos já está tocando o barco como coordenador da tradução para português, que é só um nome bonito para o papel que ele já vinha desempenhando há um bom tempo no TWiki. Se tivemos o TWiki em bom português nos últimos sei lá quantos releases, devemos a ele.

Bola pra frente que com a gente vem mais gente. smile

Espero conseguir tempo de contribuir com código para o Foswiki em breve, o projeto está num gás sensacional.

mudanças no wiki.softwarelivre.org

(19 Nov 2008 - 03:15)

Conforme eu relatei antes, o projeto antes conhecido como TWiki agora chama-se Foswiki (ou se você preferir, a comunidade que antes desenvolvia o que era chamado de "TWiki" agora desenvolve algo chamado "Foswiki") . Desta forma comecei a fazer algum rebranding no wiki da Associação Software Livre.Org para refletir a nova situação das coisas.

  1. o antigo hostname twiki.softwarelivre.org agora é obsoleto. Usaremos daqui em diante wiki.softwarelivre.org. O antigo ainda funciona, mas redirecionar para o novo.
    • isso pode quebrar os feeds RSS da web Blogs com leitores de RSS que não suportem redirecionamento. Até onde pude ver o newsbeuter e o planet se viram com os redirecionamentos.
  2. fiz algumas mudanças de logo, especialmente na capa e na web Blogs.
  3. o software ainda é o TWiki. Farei upgrade para o Foswiki assim que sair a primeira versão, com o rebranding feito.

Qualquer coisa estranha escrevam para wikiwebmaster@softwarelivre.org.

Não espero terminar isso tão cedo, mas o passo inicial foi dado. Quem quiser ajudar a tirar "TWiki" de todo o canto, sinta-se em casa.

UPDATE: s/FOSWiki/Foswiki/

UPDATE 2: Valessio fez a gentileza de refazer o logo de cabeçalho.

goodbye TWiki, welcome Foswiki

(28 Oct 2008 - 16:45)

This post comes pretty late. I had it as a draft and didn't had the time to finish before. It's not as polished as I wanted, but here it goes anyway.

Right to the point: I left the TWiki project.

Now the history. The following is the "Relaunch TWiki.org Project" letter by Peter Thoeny and Tom Barton, frozen here to keep the current state of the situation and my feelings about it:

There are some tremendous opportunities for our project. In order to take full advantage of these, today Peter Thoeny and the management team at TWIKI.NET decided to re-launch the TWiki.org project with a new governance model.

We want to reach out to all community members to explain:

  • why we decided to do this
  • some thoughts on our new top level direction
  • our invitation to re-confirm your membership in the community

There have been many recent positive developments in the community. We are now at 10,000 downloads a month with our latest release, which contains these major new features:

  • important usability improvements including a world-class WYSWIG editor
  • SQL-like query language

These are great strides and everyone in the community should all be very proud of the current software. But this is just the beginning!

It became obvious that to take full advantage of the new opportunities surrounding enterprise collaboration a much broader agenda is required for the project. This will attract additional participation in the community, and allow us to improve our competitive position. To address these opportunities also requires a change in governance model to establish clear project direction. The new governance model is based on the Ubuntu project and can be found at TWikiGovernance.

The new governance model also addresses branding and trademark questions. There is a delicate balance between the community needs and what is required to maintain a strong brand. TWiki has a strong brand which can be extended using the Ubuntu model. Ubuntu has clear branding guidelines, whereas under Debian, a brand cannot be protected. New TWikiCommunity friendly guidelines on TWiki trademark use will be worked out and announced by the newly formed TWikiCommunityCouncil.

In recent months, it became apparent that the community lacked clear leadership and was moving toward a "Debian" style of governance, which we do not believe would be healthy for the long run interests of the community. A picture is worth a thousand words:

debian-ubuntu-s.png

The charter of the project is now broadened because of the tremendous need of enterprises to go to the next level in collaboration. The major areas of focus are:

  • Addressing the full range of enterprise Web 2.0 collaboration needs (not just the wiki).
  • Setting clear open standards that encourage 3rd party contribution - think the enterprise equivalent of OpenSocial
  • Expanded enterprise features (MySQL backend, SharePoint integration, full internationalization)

Detail on the expanded charter can be found at TWiki.TWikiCharter and TWikiRoadMap.

Because the scope and governance of our project has been substantially modified, we are asking all community members to go to AgreeToTermsOfUse to:

  • show support for the expanded project charter,
  • agree with the new governance model,
  • agree to the terms of use for twiki.org.

Peter Thoeny & Tom Barton

Although I admire Peter's work and his people skills, I must point out that I never liked the whole history of trying to force a Ubuntu-like governance for TWiki. Being a Debian contributor for some time now, I feel pretty aware of Debian/Ubuntu situation and feel that the Ubuntu model does not apply to TWiki because:

  1. The Ubuntu governance model works because in Ubuntu, Canonical employs the largest share of core Ubuntu developers. TWIKI.NET (Peter's company), on the other hand, does not employ the majority of the people who actually contribute code to TWiki. Actually, all relevant developers are leaving the TWiki project and are involved with the fork.
  2. Ubuntu was -- and is -- made possible because of Debian's work. Even if currently there are important contributions that are developed in the context of Ubuntu that get back into Debian, most of the important things still goes the other way around.
  3. Ubuntu and Debian have different goals: while Debian wants to be "The Universal Operating System", Ubuntu wants to be the "Linux for human beings".

The worst thing, besides the desire to apply a model that works in a completely different environment, was the way everything was put by Peter. Closing everyone out of the door and requiring them to ask to come back was too much. A relationship that were already fragile was broken.

Although I didn't follow the facts as close as I wanted to, the fact that all relevant former TWiki developers left the project makes me pretty sure that the way Peter/TWIKI.NET conducted this was the worst possible.

Foswiki logo

Then the new project was born, with a work name of "Nextwiki", which had to be changed ASAP because "TWiki" is a registered trademark of Peter Thoeny, and he demanded that the new project don't use anything that looks like "TWiki". The things are running as fast as possible, and today it was announced the new name: Foswiki. The process for choosing the new name was very democratic and was supported by a professional copywriter. The donain name for the new name is already set up.

There is a more detailed explanation of the whole process that led to the fork. Actually it's not a fork, since all relevant people that were involved in TWiki development are now involved with Foswiki development. It's the same project, now with a different name because of a trademark issues.

On the TWiki side, things seem to be not good at all. The development mailing list traffic in the last two weeks is composed almos 100% by failing unit tests messages sent automatically by the -- now probably unatended -- integration server), which looks to me as a sad, silent and unnecessary death. Too bad.

Former TWiki users are invited to migrate to Foswiki as soon as there is a first release, which will mainly include a rebranding (i.e. removing all mentions to "TWiki"). FOSWIki will be able to deal with all your current content in TWiki and will evolve much more vividly than ever before, without breaking your content and applications.

Long life to Foswiki.

UPDATE: the Right Way to capitalize is "Foswiki". This is interesting because people always capitalized TWiki wrong, so ... we are not repeating the mistakes from the past. wink

A história das coisas

(12 Nov 2008 - 13:31)

Vale à pena assistir: http://www.storyofstuff.com/

O flash na capa não funciona direito com swfdec, mas você pode baixar o vídeo nesse mesmo site.

Rola uma versão legendada: http://video.google.com/videoplay?docid=-3412294239230716755

E tem uma dublada também: http://www.youtube.com/watch?v=lgmTfPzLl4E

Apesar de ter algumas informações forçadas (como dizer que o processador, uma "pecinha pequena no canto", é o único elemento que evolui e força a troca de um computador inteiro), é muito interessante e traz reflexões muito importantes.

Controle de Versão e Fluxo de Trabalho em projetos de desenvolvimento de software

(08 Nov 2008 - 12:02)

Este é o material do minicurso que eu dei no V Empirical Software Engineering Latin American Workshop, realizado nos últimos dias 5, 6 e 7 em Salvador.

Título: Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software
Resumo:

Será apresentado um breve histórico dos sistemas de controle de versão livres, tanto do ponto de vista tecnológico quanto do modelo de fluxo de trabalho pressuposto pelos mesmos. Será dada ênfase em sistemas de controle de versão distribuído, em especial git, e como eles podem suportar diferentes workflows em desenvolvimento de software.

Você pode baixar os slides em PDF. O código-fonte (LaTeX + beamer) está no github.

Creative Commons License Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software por Antonio Terceiro é licenciado sobre uma licença Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil.

Em breve eu devo apresentar esse minicurso na IM, interessados fiquem de olho.

links sobre qualidade de software livre

(29 Oct 2008 - 14:43)

bibliotecas javascript para visualização de informação

(21 Oct 2008 - 20:59)

  • js-Treemap: visualização de Treemaps em Javascript puro.
  • jsviz: visualização de informações de árvores/grafos em geral. Parece o prefuse pra Java, mas em Javascript (e um pouco mais limitado, por consequencia).

Ambos produzem resultados bem legais. :-o

me rendi ao github

(21 Oct 2008 - 16:42)

Nunca fui simpático à idéia de hospedar código em lugares onde eu não confio cegamente e/ou eu mesmo não administro os servidores. Mas desta vez não deu pra resistir mais e eu aderi à modinha do github. A grande vantagem é lidar com projetos que já são hospedados lá.

Como o git é distribuído, então eles nunca vão ter nada que eu não tenho também; isso me deixa mais tranquilo (sim, eu sou paranóico).

Primeiras impressões:

  • clonar repositórios é muito prático.
  • chamar "clone" de "fork" é muito tosco.
  • a funcionalidade de "pull request" é muito boa.

Uma hora dessa vou dar uma olhada no Gitorius também.

qualidade de código: mais alguns brinquedos para Ruby e Rails

(27 Sep 2008 - 14:47)

  • Roodi, Ruby Object Oriented Design Inferometer, procurar maus sinais em código através de análise estática.
  • tarantula é um plugin Rails pra fazer testes de spider na aplicação e achar (por exemplo) links quebrados.
  • Shoulda, blibioteca que estende o Test::Unit com uma sintaxe bem mais agradável -- e fácil de ler -- e contextos!

Shoulda, em sua versão voltada para aplicações não-Rails, vai estar no Debian em breve.

E, pra variar, algo que não é uma ferramenta mas é muito útil: Ruby on Rails Code Quality Checklist.