Defesa da minha dissertação de mestrado

Atualização 24/10/2017: atualizei o PDF da dissertação com a versão final que incorpora as sugestões feitas pela banca durante a defesa.

Para quem se interessar, a defesa da minha dissertação de mestrado, cujo título é “O discurso do global nas comunidades de software livre: estudo de caso do WordPress”, será no dia 28/09 às 13h no bloco H na sala 324-B do Centro de Tecnologia da UFRJ na Ilha do Fundão. A sala ainda não foi definida. Publicarei mais informações no evento abaixo no Facebook:

https://www.facebook.com/events/1445220408900858

O texto na íntegra está disponível para download neste link. Segue o resumo da dissertação:

As comunidades de software livre comumente se identificam como globais, como sendo compostas por pessoas distribuídas por todo o mundo. A ideia difundida é que a participação nestes grupos é aberta a todas e que o local de residência das colaboradoras não é relevante. Neste contexto, esta dissertação busca problematizar o discurso do global destas comunidades por meio de um estudo de caso do software livre WordPress, inspirada pela desconstrução da ideia de uma ciência universal, defendida por autores dos Estudos CTS (Ciências-Tecnologias-Sociedades). Para isso, são apresentados um histórico do software, como o seu desenvolvimento é organizado, a distribuição das contribuições ao repositório de código por indivíduo e um levantamento do país de residência e do idioma falado pelas desenvolvedoras*. Os resultados mostram que, pelo menos no que diz respeito às pessoas que estão construindo o software, existe uma concentração grande em poucos países, especialmente nos Estados Unidos e em outros países de língua inglesa, o que coloca em questão o discurso do global presente nas comunidades de software livre.

* Na dissertação optei por utilizar o gênero feminino ao invés do costumeiro masculino quando me refiro genericamente a pessoas (a/s programadora/s, a/s alunas, a/s desenvolvedora/s,etc).

Vias de escalada na Cachoeira dos Mineiros em Angatuba – SP

A Cachoeira dos Mineiros em Angatuba (SP) conta com seis vias e duas variantes. As maiores tem cerca de 12 metros. As vias foram abertas por Michel Abdelnur, Rafael Antunes e Paulo Moretti, três escaladores da cidade.

Escaladores na Vai que dá e na sua variante
Escaladores na Vai que dá e na sua variante

Segue abaixo o croqui feito pelo Michel (publicado originalmente neste post no Facebook):

Vias da Cachoeira dos Mineiros

No mapa abaixo é possível ver a localização da cachoeira. A partir do centro de Angatuba são cerca de 30 minutos de bicicleta ou então 15 minutos de carro até a parte alta da cachoeira onde tem um pequeno lago e local para estacionar. As vias ficam na parte de baixo, sendo possível acessá-las caminhando cerca de cinco minutos por uma trilha fácil ou então por um acesso mais rápido descendo uns blocos de pedra. O local é uma propriedade privada mas não é necessário pagar para entrar.

Neste link aqui é possível ver algumas fotos das vias e no vídeo abaixo Michel escalando a via “Tamanho não é documento”. Tanto as fotos quanto o vídeo foram feitos pelo próprio Michel.

A first look at the WordPress developer community

I’m researching the organization of WordPress development as part of my master’s degree. The full article is available in Portuguese in this link. In this post I will briefly share the first results I got analysing WP code repository with two goals in mind:

  1. Compare core developers’ contributions made directly on the repo with the community’s contributions made via a patch on Trac.
  2. Problematize the notion that free software communities are composed by individuals from all over the world by checking where WordPress developers live.

The data was extracted from WP Git repository (git://develop.git.wordpress.org/) on May 2014 using a modified version of gitinspector. The software was adapted to parse the commit message searching for a “props” tag to identify contributions made by non-core developers. Only commits changing PHP, JS or CSS files were taken into account. 25,692 commits were analysed. Among those, 32 core developers made 14,882 commits (58% of total) and 1346 non-core developers made 10,810 commits (42% of total). Considering only non-core developers, 767 individuals made a single contribution and 368 made two contributions.

After getting the list of developers that contributed to WordPress, their location was retrieved by a script from their profile page on wordpress.org. The location field on the profile page is an open non-mandatory field so OpenStreetMap API was used to normalize the data. Using this method it was possible to determine the country of residence of 603 developers (43% of total).

Figure 1 shows the cumulative distribution of core developers’ contributions to the code base (including the commits they made with contributions sent by others via Trac). The different lines shows the cumulative fraction of commits, lines added and lines removed. As can be seem 9 developers were responsible for more than 80% of the contributions.

fig1

Figure 2 plots the cumulative distribution to the code base made by core and non-core developers. In this case there is a larger distribution of the work, 50 developers did 80% of the commits.

fig2The next four figures show the country of residence of the developers and the main language spoken in those countries. Figure 3 represents core developers’ country of residence. The majority of the 32 core developers are based in USA (56%). There are no core developers in Latin America and Africa and only one in Oceania and one in Asia.

fig3As shown in figure 4, the vast majority (84%) of core developers live in countries where the main language is English (27 out of 32).

fig4Figure 5 shows the same analysis as figure 3 but considering core and non-core developers. It was possible to identify developers from 58 different countries. Almost 50% (298 individuals) of them live in USA, 10% (55 individuals) in UK and 5% (32 individuals) in Canada. The remaining 35% are distributed across 55 countries. 55% of the total number of developers are in North America, 32% in Europe, 9% in Asia and the remaining 4% in Oceania, South America and Africa.

fig5At last, figure 6 represents the main language spoken in core and non-core developers’ country of residence. Again the majority (67%) is based in English speaking countries.

fig6The results shown in this post are part of an ongoing research. Any feedback or suggestion will be greatly appreciated. Next I intend to expand this study  applying the same analysis to the plugins repository and Trac.

Palestra sobre o WP-CLI no WordCamp BH 2014

Hoje dei uma palestra sobre o WP-CLI no WordCamp Belo Horizonte 2014.

O WP-CLI é um conjunto de ferramentas para gerenciar o WordPress na linha de comando.

A apresentação foi muito parecida com a que dei ano passado no WordCamp São Paulo. Fiz algumas pequenas modificações nos slides e publiquei eles no link abaixo:

http://rodrigoprimo.github.io/wp-cli-wordcamp-bh-2014/

Palestra sobre o WP-CLI no WordCamp São Paulo 2013

Amanhã vou dar uma palestra sobre o WP-CLI no WordCamp São Paulo 2013.

O WP-CLI é um conjunto de ferramentas para gerenciar o WordPress na linha de comando.

Segue abaixo o link para os slides que fiz para a apresentação:

http://rodrigoprimo.github.io/wp-cli-presentation/

Relato do WordCamp San Francisco 2013

Na última semana de julho, eu, Leo e Catia fomos, representando o Hacklab, para San Francisco para participar do WordCamp San Francisco 2013, o maior evento da comunidade do WordPress. Foi uma ótima oportunidade para conhecer alguns dos desenvolvedores da Automatic e saber quais são os planos para o futuro do projeto e da comunidade.

Os dois primeiros dias do evento foram dedicados a palestras dividas em duas trilhas. A primeira tinha como público alvo desenvolvedores e designers e a segunda usuários e empreendedores. O terceiro e último dia foi reservado para o Contributor Day, onde os interessados tem a oportunidade de contribuir diretamente com o WordPress.

Saguão de entrada do WordCamp San Francisco 2013
Saguão de entrada do WordCamp San Francisco 2013

Do primeiro dia destaco as palestras Confident Commits, Delightful Deploys do Mark Jaquith (slides) e a Writing Code as User Experience Design do Nikolay Bachiyski.

A palestra do Mark Jaquith tratou de boas práticas para todos os desenvolvedores e sysadmins que trabalham com WordPress, em especial na hora de publicar uma nova versão do código. Ele reforçou algumas coisas que já deveriam ser senso comum (e que infelizmente ainda não são), como o uso de um sistema de controle de versão. Também citou algumas ferramentas que facilitam bastante o fluxo de trabalho como o WP Stack ou o Capistrano-WP para fazer deploys, Puppet ou Chef que são ferramentas para o gerenciamento das configurações dos servidores e, por fim, o Vagrant para criar um ambiente de desenvolvimento semelhante ao servidor onde o site está publicado.

Na palestra do  Nikolay Bachiyski, ele explorou o que os desenvolvedores podem aprender da experiência de quem estuda user experience designConsiderando que um desenvolvedor passa mais de 70% do seu tempo de trabalho lendo código e não escrevendo, quando criamos código temos que nos preocupar com a experiência do usuário, que neste caso serão os outros desenvolvedores que terão contato com ele. Além de sugerir algumas boas práticas para criação de código, ele mostrou alguns vídeos da tela e cara de alguns desenvolvedores enquanto estes criavam uma página usando a Settings API do WP.

Já do segundo dia destaco as palestras Three Security Issues You Thought You’d Fixed do Mike Adams e a Magical WordPress Management using WP-CLI do Mike Schroder (slides).

No último dia teve ainda o State of the Word 2013 do Matt Mullenweg. Nele o fundador do WordPress falou do crescimento do software que agora representa 18,9% de todo o conteúdo da web (ano passado era 16,7%), do uso crescente a partir de plataformas móveis e de um novo modelo de desenvolvimento para o core. A ideia é implementar ciclos mais curtos de release com o lançamento das versões 3.7 e 3.8 ainda esse ano e organizar os desenvolvedores do core em pequenos times que trabalhem em plugins. Quando um plugin estiver pronto ele é incorporado ao código principal. Este novo modelo já está sendo testado com o desenvolvimento da nova interface para o admin.

No Contributor Day trabalhei na automatização dos testes unitários do core do WordPress utilizando o Travis CI junto com o Bryan Petty e com a ajuda do Nikolai Bachiyski. Criamos um fork do repositório do WordPress no github e nele configuramos o serviço de integração continua que pode ser visto neste link. Nas próximas semanas o Andrew Nacin deve integrar o que fizemos no repositório do WordPress.

Contributor Day no novo escritório da Automattic
Contributor Day no novo escritório da Automattic

O arquivo de configuração que criamos para o Travis CI pode ser visto neste link. Ele roda os testes do WP usando PHP 5.2, 5.3 e 5.4 e para cada uma dessas versões com o modo multisite habilitado ou desabilitado. Por enquanto, o Travis só é chamado quando há um commit no core e não quando há um commit no repositório de testes. O próprio Nacin disse que a intenção é juntar os dois num único repositório.

Uma vez com a integração dos testes do WordPress com o Travis CI funcionando partimos para resolver os testes que estavam falhando. Conseguimos resolver cerca de dez testes, não deu tempo de resolver apenas um que foi resolvido uns dias depois. Após o WordCamp descobrimos mais três testes que falham quando executados com o PHP 5.2. Estes ainda estão pendentes e podem ser vistos na página do repositório no Travis CI.

Plugin do WordPress para usar o OpenID Delegation

No final do ano passado publiquei um plugin para WordPress que permite utilizar a URL de um blog rodando o WP como uma identidade OpenID.

Para usar o OpenID Delegation é necessário ter uma identidade OpenID em algum serviço como o myopenid.com.

Com este plugin ao invés de usar como identidade OpenID a URL fornecida pelo provider, é possível usar a URL do WordPress. No meu caso uso como identidade OpenID https://rodrigo.utopia.org.br ao invés de http://rodrigoprimo.myopenid.com/.

Para mais informações vejam a página do plugin: http://wordpress.org/extend/plugins/wordpress-openid-delegation/

Para quem estiver procurando um provider e/ou consumer OpenID vejam o plugin WordPress OpenID.

 

How to use Tiki with “Git”

Tiki use SVN for revision control. There has been some discussion in the community about migrating to a Distributed Version Control System (DVCS) but it is unlikely that anything will change in the near future.

I’m writing this post to briefly share my experience using git-svn locally for Tiki development. This tool allow you to synchronize a Git repository with a SVN repository. Follow the steps below to create a local git repository based on Tiki trunk.

1. Create a new Git repository from Tiki trunk SVN repository

git svn clone https://svn.code.sf.net/p/tikiwiki/code/trunk

2. Checkout external repositories

Download git_svn_externals.pl script (alternatively you can use git_svn_clone_externals) and then place it in the root directory of your Tiki. Run the script. It will download all Tiki’s svn externals and add them to .git/info/exclude.

3. Known issues

  1. It is not possible to set SVN properties using git-svn (http://stackoverflow.com/questions/1271449/how-to-set-subversion-properties-with-git-svn)
  2. You have to remember to manually call git_svn_externals.pl every once in a while to update the externals repositories.

That is it. If you are not familiar with Git take a look at Git Cheat Sheet and My git svn workflow for more information.