<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>hacklab.com.br &#187; software livre</title>
	<atom:link href="http://hacklab.com.br/tag/software-livre/feed/" rel="self" type="application/rss+xml" />
	<link>http://hacklab.com.br</link>
	<description></description>
	<lastBuildDate>Thu, 17 May 2012 19:02:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Definição de Software Livre</title>
		<link>http://hacklab.com.br/2011/05/03/definicao-software-livre/</link>
		<comments>http://hacklab.com.br/2011/05/03/definicao-software-livre/#comments</comments>
		<pubDate>Wed, 04 May 2011 00:23:08 +0000</pubDate>
		<dc:creator>Pedro Germani Ghiorzi</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[software livre]]></category>

		<guid isPermaLink="false">http://hacklab.com.br/?p=1041</guid>
		<description><![CDATA[Gostei desta definição de software livre, que foi publicada no convite do fórum &#8220;SOFTWARE LIVRE &#8211; Filosofia e Prática&#8221; [FÓRUM PERMANENTE DE CIÊNCIA E TECNOLOGIA - UNICAMP] Software Livre é todo programa de computador que respeita a autonomia dos usuários e suas liberdades de executar, estudar, adaptar, melhorar e compartilhar. É um movimento social, filosófico, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Gostei desta definição de software livre, que foi publicada no convite do fórum &#8220;SOFTWARE LIVRE &#8211; Filosofia e Prática&#8221;<a href="http://foruns.bc.unicamp.br/" target="_blank"> </a></p>
<blockquote>
<p style="text-align: center;"><a href="http://foruns.bc.unicamp.br/" target="_blank">[FÓRUM PERMANENTE DE CIÊNCIA E TECNOLOGIA - UNICAMP]</a></p>
<p style="text-align: justify;">Software Livre é todo programa de computador que respeita a autonomia dos usuários e suas liberdades de executar, estudar, adaptar, melhorar e compartilhar.</p>
<p style="text-align: justify;">É um movimento social, filosófico, político e cultural que defende esse respeito como direito humano, como questão social, moral e ética.  São formas colaborativas de desenvolver software em comunidades de voluntários e empresas, usuários e desenvolvedores. São modelos de negócio que cativam clientes pela qualidade do serviço, não por segredos e restrições.</p>
<p style="text-align: justify;">São modelos de licenciamento que, ao invés de cercear, por vezes até defendem as liberdades.  São teorias econômicas que explicam inovação, motivação, riqueza e lucro sem privação nem abuso.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://hacklab.com.br/2011/05/03/definicao-software-livre/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fix publicado no Plugin Geo-Mashup</title>
		<link>http://hacklab.com.br/2010/11/24/fix-publicado-no-plugin-geo-mashup/</link>
		<comments>http://hacklab.com.br/2010/11/24/fix-publicado-no-plugin-geo-mashup/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 12:06:01 +0000</pubDate>
		<dc:creator>Pedro Germani Ghiorzi</dc:creator>
				<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[bug fix]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://hacklab.com.br/?p=954</guid>
		<description><![CDATA[Há algum tempo atrás utilizamos o plugin Geo-Mashup para controle de georreferenciamento de posts do wordpress e exibição de coleções de posts em mapas do google. Quando começamos a implementar o sistema que usa este plugin, percebemos um bug que fazia a página de configuração do plugin ficasse na &#8220;aba errada&#8221; quando as configurações eram [...]]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo atrás utilizamos o plugin Geo-Mashup para controle de georreferenciamento de posts do wordpress e exibição de coleções de posts em mapas do google.</p>
<p>Quando começamos a implementar o sistema que usa este plugin, percebemos um bug que fazia a página de configuração do plugin ficasse na &#8220;aba errada&#8221; quando as configurações eram atualizadas (POST).</p>
<p>Fizemos um pequeno fix, mandamos para os autores e entrou na versão nova!</p>
<p>Aproveitem, considero este um dos melhores plugins de georreferenciamento de post: ﻿﻿﻿﻿<a href="http://code.google.com/p/wordpress-geo-mashup">http://code.google.com/p/wordpress-geo-mashup</a></p>
]]></content:encoded>
			<wfw:commentRss>http://hacklab.com.br/2010/11/24/fix-publicado-no-plugin-geo-mashup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como manipular metadados de fotos no Linux com o exiv2</title>
		<link>http://rodrigo.utopia.org.br/2009/12/16/como-manipular-metadados-de-fotos-no-linux-com-o-exiv2/</link>
		<comments>http://rodrigo.utopia.org.br/2009/12/16/como-manipular-metadados-de-fotos-no-linux-com-o-exiv2/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 00:18:58 +0000</pubDate>
		<dc:creator>rodrigo</dc:creator>
				<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[digikam]]></category>
		<category><![CDATA[exiv2]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rodrigo.utopia.org.br/?p=245</guid>
		<description><![CDATA[Algumas vezes quando viajo mais de uma pessoa leva câmera fotográfica. Quando volto, gosto de juntar todas essas fotos em um único diretório e renomear elas de acordo com a data de criação para poder vem as fotos em ordem independente da câmera. Para fazer isso uso a ferramenta para renomear em lote do software [...]]]></description>
			<content:encoded><![CDATA[<p>Algumas vezes quando viajo mais de uma pessoa leva câmera fotográfica. Quando volto, gosto de juntar todas essas fotos em um único diretório e renomear elas de acordo com a data de criação para poder vem as fotos em ordem independente da câmera. <span style="text-decoration: line-through">Para fazer isso uso a ferramenta para renomear em lote do software <a href="http://www.digikam.org" >digiKam</a></span>. Para fazer isso, usava o <a href="http://www.digikam.org/" >digiKam</a> mas não encontrei essa opção na nova versão que vem com o Ubuntu 9.10. Utilizei então o <a href="http://www.krename.net/" >Krename</a>.</p>
<p>Porém, algumas vezes a data e o horário de uma das câmeras não está certo e, por tanto, o metadado referente a data de criação das fotos está errado. Para poder renomear as fotos levando em conta a data de criação é necessário então primeiro corrigir o metadado. Para isso utilizo o <a href="http://www.exiv2.org/" >exiv2</a>, uma ferramenta de linha de comando para linux para editar metadados de fotos.</p>
<p>Para instalar o exiv2 no Ubuntu basta rodar o seguinte comando:</p>
<p><code>sudo aptitude install exiv2</code></p>
<p>Para ver os metadados de uma foto basta passar o nome do arquivo como primeiro parâmetro para o software (onde foto.jpg deve ser trocado pelo nome do arquivo):</p>
<p><code>exiv2 foto.jpg</code></p>
<p>Também é possível inserir, deletar, modificar ou renomear metadados. Informações sobre como utilizar esses recursos podem ser obtidas na man page do programa:</p>
<p><code>man exiv2</code></p>
<p>Existe ainda o recurso de ajustar a data e horário de criação de uma ou mais fotos passando um número de horas, ou dias, ou meses (etc). Com isso basta descobrir em quanto a data da câmera que tirou as fotos estava errada (comparando por exemplo os metadados de duas fotos tiradas com câmeras diferentes mais ou menos no mesmo horário) e utilizar o recurso de ajustar data e horário do exiv2.</p>
<p>A opção para ajustar é a <em>ad</em> e ela depende de pelo menos mais um parâmetro que pode ser (tradução livre da man page):</p>
<ul>
<li>-a <em><span style="text-decoration: underline">tempo</span></em> &#8211; Ajustar tempo no formato [-]HH[:MM[:SS]]. Essa opção só pode ser usada com a ação de ajustar (ad). Exemplos: <em>1</em> adiciona uma hora, <em>1:01</em> adiciona uma hora e um minuto, <em>-0:00:30</em> subtrai trinta segundos.</li>
<li>-Y <span style="text-decoration: underline"><em>anos</em></span><em> </em> &#8211; Ajuste de tempo com base num número positivo ou negativo de anos.</li>
<li>-O <span style="text-decoration: underline"><em>meses</em></span><em> </em> &#8211; Ajuste de tempo com base num número positivo ou negativo de meses.</li>
<li>-D <span style="text-decoration: underline"><em>dias</em><em></em></span> &#8211; Ajuste de tempo com base num número positivo ou negativo de dias.</li>
</ul>
<p>Por exemplo, para arrumar em uma hora e meia o horário de todas as fotos da extensão JPG que estão em um determinado diretório:</p>
<p><code>exiv2 ad -a 1:30 *.jpg</code></p>
<p>Ou então para subtrair duas horas, quarenta minutos, quinze dias e dois meses:</p>
<p><code>exiv2 ad -a -2:40 -D 15 -O 2 *.jpg</code></p>
<p>Ps: alguém conhece alguma interface gráfica para Linux que permite fazer esse tipo de manipulação de fotos?</p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigo.utopia.org.br/2009/12/16/como-manipular-metadados-de-fotos-no-linux-com-o-exiv2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dois vídeos e fotos do TikiFest em Barcelona</title>
		<link>http://rodrigo.utopia.org.br/2009/09/23/dois-videos-do-tikifest-em-barcelona/</link>
		<comments>http://rodrigo.utopia.org.br/2009/09/23/dois-videos-do-tikifest-em-barcelona/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 03:19:58 +0000</pubDate>
		<dc:creator>rodrigo</dc:creator>
				<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[europa]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[tikifest]]></category>
		<category><![CDATA[tikiwiki]]></category>
		<category><![CDATA[viagens]]></category>

		<guid isPermaLink="false">http://rodrigo.utopia.org.br/?p=199</guid>
		<description><![CDATA[No começo de agosto estive em Barcelona para mais um encontro da comunidade do Tikiwiki, o TikiFest Barcelona (http://tikiwiki.org/TikiFestBarcelona). Enquanto eu trabalhava no meu projeto para o Google Summer of Code, o restante do pessoal estava lá para desenvolver um novo recurso para o Tikiwiki: workspaces.
O Luci publicou muitas fotos do encontro quase todas com [...]]]></description>
			<content:encoded><![CDATA[<p>No começo de agosto estive em Barcelona para mais um encontro da comunidade do Tikiwiki, o TikiFest Barcelona (http://tikiwiki.org/TikiFestBarcelona). Enquanto eu trabalhava no meu projeto para o Google Summer of Code, o restante do pessoal estava lá para desenvolver um novo recurso para o Tikiwiki: workspaces.</p>
<p>O Luci publicou muitas fotos do encontro quase todas com legendas engraçadas nesse link aqui <a href="http://picasaweb.google.com/mindbro/TikiFestBarcelona2009">http://picasaweb.google.com/mindbro/TikiFestBarcelona2009</a></p>
<p>Além das fotos, foram feitos dois vídeos do encontro. O primeiro foi feito pela Vladislava, mulher do Luci, ela é Tcheca e trabalha para uma televisão chinesa independente (é uma televisão chinesa proibida na China). É um vídeo com um carater mais institucional, de divulgação do Tikiwiki, com entrevistas com alguns dos membros da comunidade (mais informações sobre a matéria <a href="http://english.ntdtv.com/ntdtv_en/ns_europe/2009-08-13/093675925612.html">http://english.ntdtv.com/ntdtv_en/ns_europe/2009-08-13/093675925612.html</a>).</p>
<p>O segundo vídeo foi feito pelo Xavier, ele é de Barcelona e foi quem organizou toda a logística do encontro. O vídeo dele é mais longo e mostra um pouco mais da dinâmica do encontro.</p>
<a href="http://rodrigo.utopia.org.br/2009/09/23/dois-videos-do-tikifest-em-barcelona/"><p><em>Clique aqui para assistir o vídeo inserido.</em></p></a>
<p><a href="http://rodrigo.utopia.org.br/2009/09/23/dois-videos-do-tikifest-em-barcelona/"><p><em>Clique aqui para assistir o vídeo inserido.</em></p></a><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigo.utopia.org.br/2009/09/23/dois-videos-do-tikifest-em-barcelona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GSOC TikiFest in London</title>
		<link>http://rodrigo.utopia.org.br/2009/07/25/gsoc-tikifest-in-london/</link>
		<comments>http://rodrigo.utopia.org.br/2009/07/25/gsoc-tikifest-in-london/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 13:29:50 +0000</pubDate>
		<dc:creator>rodrigo</dc:creator>
				<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[gettext]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[phpdocumentor]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[Text_Wiki]]></category>
		<category><![CDATA[tikifest]]></category>
		<category><![CDATA[tikiwiki]]></category>

		<guid isPermaLink="false">http://rodrigo.utopia.org.br/?p=173</guid>
		<description><![CDATA[In the first week of July I was in London for the GSOC (Google Summer of Code) TikiFest. TikiFests are a tradition in the Tikiwiki community. It is when two or more Tiki contributors get together to code, discuss about free software etc.
This time the main reason for the TikiFest was to gather together all [...]]]></description>
			<content:encoded><![CDATA[<p>In the first week of July I was in London for the GSOC (Google Summer of Code) TikiFest. TikiFests are a tradition in the Tikiwiki community. It is when two or more Tiki contributors get together to code, discuss about free software etc.</p>
<p>This time the main reason for the TikiFest was to gather together all the students from GSOC who are working in the Tikiwiki projects. This is the first year Tikiwiki is participating in GSOC and there are four students involved, including myself.</p>
<p><a href="http://rodrigo.utopia.org.br/files/dsc01365-copy.jpg" rel="lightbox[173]"><img class="aligncenter size-medium wp-image-188" src="http://rodrigo.utopia.org.br/files/dsc01365-copy-300x225.jpg" alt="dsc01365-copy" width="300" height="225" /></a></p>
<p>Two students from Spain, Aldo and Ben, are working together to create the new workspaces feature (the ability to have collections of items/objects that allow different set of users to have different kinds of access in a single Tikiwiki installation). For more information on their project see the wiki page <a href="http://dev.tikiwiki.org/workspaces">http://dev.tikiwiki.org/workspaces</a>. At the TikiFest they presented their work done until that moment and we discussed some tricky aspects of the implementation. The development of the workspaces is of great interest for the Tikiwiki community and there are more people working on it at present besides the two GSOC students. On the first week of August there will be another <a href="http://tikiwiki.org/tiki-index.php?page=Tikifest%20Workspaces%20and%20Social%20Networking">TikiFest in Barcelona</a> just to discuss and develop some parts of the workspaces.</p>
<p>Another student from India, Nagendra, was there to present his project which will allow online video edition in Tikiwiki using the Kaltura API. Maybe in the future we will be able to edit video the wiki way using this.</p>
<p><a href="http://rodrigo.utopia.org.br/files/dsc01357-copy.jpg" rel="lightbox[173]"><img class="aligncenter size-medium wp-image-185" src="http://rodrigo.utopia.org.br/files/dsc01357-copy-300x225.jpg" alt="dsc01357-copy" width="300" height="225" /></a></p>
<p>And finally I presented my project to create a <a href="http://dev.tikiwiki.org/gsoc2009rodrigo">migration script from Mediawiki to Tikiwiki</a>. As my mentor on this project, Nelson Ko, was at the TikiFest I had a great opportunity to make some crucial decisions for the project. Mainly to leave phpBB for another project and focus only on the migration from Mediawiki to Tikiwiki.</p>
<p>Beside the presentation of the projects, we also discussed some interesting aspects of the free software world. Aldo and Amette showed some of the great features Git has over SVN and we discussed how the Tikiwiki community could benifit from moving to Git (for example merging branches is much easier with Git). It was agreed that as an expemeriment the workspaces development would be done using Git.</p>
<p><a href="http://rodrigo.utopia.org.br/files/dsc01360-copy.jpg" rel="lightbox[173]"><img class="aligncenter size-medium wp-image-187" src="http://rodrigo.utopia.org.br/files/dsc01360-copy-225x300.jpg" alt="dsc01360-copy" width="225" height="300" /></a></p>
<p>Jonny talked about the recent development of the Tikiwiki profiles and <span class="gI">Jean-Marc showed some inconsistencies between the administration page of different Tikiwiki features and we discussed possible interface standards for those pages.</span></p>
<p><span class="gI">Olaf-Michael brought the discussion about Tiki as an open translation tool. He told us about <a href="http://translatewiki.com/">http://translatewiki.com/</a>, a place to centralize and make the translation of different open source wiki softwares </span><span class="gI">as easy as possible</span><span class="gI">. They are interested in putting Tikiwiki in the pool of softwares they translate and Olaf is in contact with them to make this happen. Although the way Tikiwiki handles with translations at present (a PHP array for each language with key/value pairs) is accepted by TranslateWiki I mentioned at the TikiFest that it would be a good idea for the Tikiwiki community to switch to a standard open source tool for translation like <a href="http://www.gnu.org/software/gettext/">gettext</a>.</span></p>
<p><a href="http://rodrigo.utopia.org.br/files/dsc01358-copy.jpg" rel="lightbox[173]"><img class="aligncenter size-medium wp-image-186" src="http://rodrigo.utopia.org.br/files/dsc01358-copy-300x225.jpg" alt="dsc01358-copy" width="300" height="225" /></a></p>
<p><span class="gI">At present it is hard for a non-technical person to start helping with Tikiwiki translation. As I host several sites using Tikiwiki for different Brazilian social movements I am very interested in making it easier to translate. I think that using a standard tool for that purpose is a great first step. We can take advantage of all the tools built around gettext that already exist. I plan to look at this question in the next weeks, so if anyone else is also interested please do let me know. Apparently it is not that hard to convert to gettext. PHP has gettext built-in support and there is already a script to <a href="http://tikiwiki.org/PO+convertor+for+TikiWiki">convert from Tikiwiki language.php files to gettext</a>. Before moving, as mentioned by Jean-Marc, it is a good idea to talk with people from other projects that already use gettext to learn from their experience.<br />
</span></p>
<p><span class="gI">On the last day of the meeting, Aldo, Ben and I (unfortunately Nagendra had to leave the day before) talked about the difficulties we had with Tikiwiki when we started our projects. We agreed that the lack of technical documentation and tests were the two most difficult aspects.</span></p>
<p><span class="gI">Without technical documentation we had to read the code to understand what a function does and without tests it is much harder to know if the change you are making will break something elsewhere in the code. With this in mind we are using in our projects <a href="http://www.phpdoc.org/">phpDocumentor</a> and <a href="http://www.phpunit.de/">PHPUnit</a>. By using phpDocumentor we can have some day, as proposed by Aldo in the devel list, api.tikiwiki.org. Very similar to <a href="http://api.joomla.org/">http://api.joomla.org/</a> or <a href="http://api.cakephp.org/">http://api.cakephp.org/</a>. Which can help to atract more contributors. </span>PHPUnit is already used in a few parts of Tikiwiki. Louis-Phillipe created on trunk the directory lib/core. All the code there have tests. Alain Desilets and Marta Stojanovic are using PHPUnit with Selenium to write acceptance tests for Tikiwiki.</p>
<p><a href="http://rodrigo.utopia.org.br/files/dsc013611.jpg" rel="lightbox[173]"><img class="aligncenter size-medium wp-image-189" src="http://rodrigo.utopia.org.br/files/dsc013611-300x232.jpg" alt="dsc013611" width="300" height="232" /></a></p>
<p>This is what I remember from the discussions we had during the five days of GSOC TikiFest. If I forgot to mention something please leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigo.utopia.org.br/2009/07/25/gsoc-tikifest-in-london/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to run phpt tests with PHPUnit</title>
		<link>http://rodrigo.utopia.org.br/2009/06/12/how-to-run-phpt-tests-with-phpunit/</link>
		<comments>http://rodrigo.utopia.org.br/2009/06/12/how-to-run-phpt-tests-with-phpunit/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 23:19:58 +0000</pubDate>
		<dc:creator>rodrigo</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpt]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[Text_Wiki]]></category>
		<category><![CDATA[unit tests]]></category>

		<guid isPermaLink="false">http://rodrigo.hacklab.com.br/?p=129</guid>
		<description><![CDATA[In this post I will explain how to run phpt tests with PHPUnit.
For my GSOC project I will use (and contribute to) the PEAR package Text_Wiki (more about my contributions on this package on another post). This package use phpt tests for unit testing. I&#8217;m not familiar with phpt tests as I&#8217;m with PHPUnit and [...]]]></description>
			<content:encoded><![CDATA[<p>In this post I will explain how to run <a href="http://qa.php.net/write-test.php">phpt</a> tests with <a href="http://phpunit.de">PHPUnit</a>.</p>
<p>For my <a href="http://dev.tikiwiki.org/gsoc2009rodrigo">GSOC project</a> I will use (and contribute to) the PEAR package <a href="http://pear.php.net/package/Text_Wiki/">Text_Wiki</a> (more about my contributions on this package on another post). This package use phpt tests for unit testing. I&#8217;m not familiar with phpt tests as I&#8217;m with PHPUnit and phpt tests didn&#8217;t give me a good impression (its difficult to understand feedback and its syntax mixing PHP code and plain text statements lead to improper syntax highlighting in Emacs <img src='http://rodrigo.utopia.org.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> ).</p>
<p>So I proposed the main developer of Text_Wiki to switch to PHPUnit. He had no objections if I were able to provide a solution that made possible to run the old phpt tests with the new PHPUnit tests at the same time.</p>
<p>I found that there is a PHPUnit extension that does exactly what I was looking for. As I wasn&#8217;t able to find a tutorial explaining how to use it, I decided to write this post to share the way I used that extension.</p>
<p>I&#8217;m using version 3.3.17 of PHPUnit and it came with two phpt related extensions located in the directory PHPUnit/Extensions (if you use Ubuntu as I do the full path will probably be /usr/share/php/PHPUnit/Extensions): PhptTestCase.php and PhptTestSuite.php</p>
<p>The first one implements the class PHPUnit_Extensions_PhptTestCase. The constructor of this class receive as a parameter the path to a single phpt file. I did not use this one.</p>
<p>The other file implements the class PHPUnit_Extensions_PhptTestSuite. You can instantiate this class in your test script passing as the first parameter the root directory where your phpt files are located. The constructor of the class will recursively look for all files with the extension .phpt.</p>
<p>On the link below you can view the code I used to integrate the old Text_Wiki phpt tests with the new PHPUnit classes I&#8217;m writing:</p>
<p><a href="http://cvs.php.net/viewvc.cgi/pear/Text_Wiki/tests/tests.php?revision=1.2&amp;view=markup">http://cvs.php.net/viewvc.cgi/pear/Text_Wiki/tests/tests.php?revision=1.2&amp;view=markup</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigo.utopia.org.br/2009/06/12/how-to-run-phpt-tests-with-phpunit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First day of GSOC 2009</title>
		<link>http://rodrigo.utopia.org.br/2009/05/26/first-day-of-gsoc-2009/</link>
		<comments>http://rodrigo.utopia.org.br/2009/05/26/first-day-of-gsoc-2009/#comments</comments>
		<pubDate>Tue, 26 May 2009 16:34:04 +0000</pubDate>
		<dc:creator>rodrigo</dc:creator>
				<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mediawiki]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[phpbb]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[tikiwiki]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://rodrigo.hacklab.com.br/?p=91</guid>
		<description><![CDATA[English version below
Há algumas semanas atrás saiu a lista de projetos aprovados para o GSOC 2009 (Google Summer of Code) e meu projeto de implementar um importador de MediaWiki e phpBB para Tikiwiki foi aceito.
Hoje foi o primeiro dia de trabalho, entrei em contato com o Nelson Ko (o mentor do meu projeto) e definimos [...]]]></description>
			<content:encoded><![CDATA[<p><em>English version below</em></p>
<p>Há algumas semanas atrás saiu a lista de projetos aprovados para o <a href="http://socghop.appspot.com/program/home/google/gsoc2009">GSOC 2009</a> (Google Summer of Code) e meu projeto de implementar um importador de <a href="http://www.mediawiki.org">MediaWiki</a> e <a href="http://www.phpbb.com">phpBB</a> para <a href="http://tikiwiki.org">Tikiwiki</a> foi aceito.</p>
<p>Hoje foi o primeiro dia de trabalho, entrei em contato com o Nelson Ko (o mentor do meu projeto) e definimos alguns objetivos para essa primeira semana. Vou pesquisar alguns importadores feitos anteriormente pela comunidade do Tikiwiki e que nunca foram finalizados bem como outros scripts para importar o MediaWiki para outros softwares. Além disso pretendo dar uma olhada na documentação da sintaxe do MediaWiki (a idéia é começar por esse software e deixar o phpBB para uma segunda fase).</p>
<p>Para o fim da semana pretendo ter uma avaliação das implentações existentes para ter uma idéia do caminho que o software que vou criar vai seguir. E também ter uma tabela comparativa entre a sintaxe do MediaWiki e do Tikiwiki indicando quais sintaxes serão fáceis de suportar, quais serão difíceis e quais não serão suportadas.</p>
<p>Pretendo publicar de vez em quando algumas atualizações aqui no blog sobre esse projeto, quem quiser acompanhá-lo de perto pode monitar a <a href="http://dev.tikiwiki.org/tiki-index.php?page=GSOC%202009:%20phpBB%20and%20MediaWiki-TikiWiki%20importer">página wiki</a> usada para documentação.</p>
<div class="im">
<p><br class="spacer_" /></p>
<p>A few weeks ago Google released the list of approved projects to <a href="http://socghop.appspot.com/program/home/google/gsoc2009">GSOC 2009</a> (Google Summer of Code) and my project (a script to import  <a href="http://www.mediawiki.org/">MediaWiki</a> or<a href="http://www.phpbb.com/"> phpBB</a> content to <a href="http://tikiwiki.org/">Tikiwiki</a>) was accepted.</p>
</div>
<p>Today was my first GSOC working day. I talked with Nelson Ko (my mentor for this project) through Skype (he lives in Canada and I in Brazil) and we decided the goals for this first week. I&#8217;ll research some old importers made by the Tikiwiki community and some scripts to import MediaWiki content to other software. I am also going to read the syntax documentation of MediaWiki (the plan is to start with MediaWiki and leave phpBB to a second stage).</p>
<p>By the end of the week I intend to perform an evaluation of the old scripts to start planning my implementation and I will produce a comparative table of TikiWiki and MediaWiki syntax to define what is simple to import, what is difficult and what is not going to be imported.</p>
<p>Occasionally I plan to update this blog with news about the GSOC. If you are interested in the project I suggest that you monitor the <a href="http://dev.tikiwiki.org/tiki-index.php?page=GSOC%202009:%20phpBB%20and%20MediaWiki-TikiWiki%20importer">wiki page</a> used to document my progress.</p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigo.utopia.org.br/2009/05/26/first-day-of-gsoc-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como impedir que o editor do WordPress (TinyMCE) remova quebras de linha</title>
		<link>http://rodrigo.utopia.org.br/2009/05/04/como-impedir-que-o-editor-do-wordpress-tinymce-remova-quebras-de-linha/</link>
		<comments>http://rodrigo.utopia.org.br/2009/05/04/como-impedir-que-o-editor-do-wordpress-tinymce-remova-quebras-de-linha/#comments</comments>
		<pubDate>Mon, 04 May 2009 18:29:44 +0000</pubDate>
		<dc:creator>rodrigo</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[tinymce]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rodrigo.hacklab.com.br/?p=10</guid>
		<description><![CDATA[Atualização (15/10/2009): o Rafael Biriba deixou um comentário falando do PS Disable Auto Formatting, um outro plugin do Wordpress que também server para impedir a remoção automática das tags &#8220;br&#8221; e &#8220;p&#8221;.

Mais de uma vez quis formatar o texto de um post do Wordpress usando algumas quebras de linha (enter) para separar dois blocos de [...]]]></description>
			<content:encoded><![CDATA[<p><em>Atualização (15/10/2009)</em>: o <a href="http://www.rafaelbiriba.com/">Rafael Biriba</a> deixou um comentário falando do <a href="http://wordpress.org/extend/plugins/ps-disable-auto-formatting/">PS Disable Auto Formatting</a>, um outro plugin do Wordpress que também server para impedir a remoção automática das tags &#8220;br&#8221; e &#8220;p&#8221;.</p>
<p><br class="spacer_" /></p>
<p>Mais de uma vez quis formatar o texto de um post do Wordpress usando algumas quebras de linha (enter) para separar dois blocos de texto ou então um bloco de texto de uma imagem. Porém, por padrão o editor do Wordpress, o TinyMCE, remove qualquer tag &#8220;br&#8221; ou &#8220;p&#8221; que ele considere que esteja &#8220;sobrando&#8221;.</p>
<p>Talvez exista uma forma mais inteligente de se fazer isso sem usar quebra de linha, porém eu desconheço e já perdi um bom tempo tentando enganar o editor.</p>
<p>Ontem, encontrei o <a href="http://www.laptoptips.ca/projects/tinymce-advanced/">TinyMCE Advanced</a> um plugin que tem uma opção para que as tags &#8220;br &#8220;<br />
 e &#8220;p&#8221; não sejam removidas e além disso permite customizar os itens que aparecem na barra de edição. Abaixo um screenshot de parte da tela de administração:</p>
<p style="text-align: center"><a href="http://rodrigo.utopia.org.br/files/tadv2.jpg" rel="lightbox[10]"><img class="size-thumbnail wp-image-13 aligncenter" src="http://rodrigo.utopia.org.br/files/tadv2-150x150.jpg" alt="Parte da tela de administração do TinyMCE Advanced" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigo.utopia.org.br/2009/05/04/como-impedir-que-o-editor-do-wordpress-tinymce-remova-quebras-de-linha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moderação de usuários no WordPress</title>
		<link>http://rodrigo.utopia.org.br/2009/04/17/moderacao-de-usuarios-no-wordpress/</link>
		<comments>http://rodrigo.utopia.org.br/2009/04/17/moderacao-de-usuarios-no-wordpress/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 20:12:59 +0000</pubDate>
		<dc:creator>rodrigo</dc:creator>
				<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rodrigo.hacklab.com.br/?p=3</guid>
		<description><![CDATA[Uma das demandas do portal eletrocooperativa.org.br (um dos projetos desenvolvidos pelo Hacklab neste semestre) é a moderação dos usuários que se registram no site. Como esse recurso não existe no core do Wordpress, saímos em busca de um plugin.
O Leo encontrou no diretório de plugins do Wordpress (http://wordpress.org/extend/plugins/) o New User Approve, uma extensão simples [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das demandas do portal eletrocooperativa.org.br (um dos projetos desenvolvidos pelo Hacklab neste semestre) é a moderação dos usuários que se registram no site. Como esse recurso não existe no core do Wordpress, saímos em busca de um plugin.</p>
<p>O <a href="http://pirex.com.br/category/leo/">Leo</a> encontrou no diretório de plugins do Wordpress (http://wordpress.org/extend/plugins/) o <a href="http://www.picklewagon.com/wordpress/new-user-approve">New User Approve</a>, uma extensão simples que faz exatamente o que precisávamos. Durante o desenvolvimento encontramos dois problemas na versão atual (1.0):</p>
<ol>
<li>Se um usuário é criado pelo administrador e não pelo formulário de registro, ele aparece na listagem de usuários para moderação e se o administrador aprová-lo sua senha será alterada.</li>
<li>Com o plugin habilitado, o formulário de registro sempre mostra uma mensagem de usuário criado com sucesso mesmo quando ocorreram erros (como por exemplo nome de usuário já existente ou senhas não conferem).</li>
</ol>
<p>Fizemos dois patches para corrigir esses erros e enviamos para o desenvolvedor do plugin. Essa é a melhor parte do software livre <img src='http://rodrigo.utopia.org.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Ele agradeceu mas infelizmente ainda não teve tempo para incorporar as mudanças no código e lançar uma nova versão. Acredito que o fará em breve.</p>
<p><span style="text-decoration: line-through">Se alguém precisar da mesma funcionalidade e quiser utilizar o plugin com as correções, o patch está disponível <a href="http://rodrigo.utopia.org.br/files/new-user-approvepatch.zip">neste link</a> (mais detalhes podem ser vistos nos comentários que fiz na página do próprio plugin).</span></p>
<p><strong>Atualização (em 22/04/2009):</strong> foi lançada uma nova versão (1.1) do plugin que incorpora os patches que enviei, basta baixá-la <a href="http://wordpress.org/extend/plugins/new-user-approve/">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigo.utopia.org.br/2009/04/17/moderacao-de-usuarios-no-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moderação de usuários no WordPress</title>
		<link>http://rodrigo.utopia.org.br/2009/04/17/moderacao-de-usuarios-no-wordpress/</link>
		<comments>http://rodrigo.utopia.org.br/2009/04/17/moderacao-de-usuarios-no-wordpress/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 20:12:59 +0000</pubDate>
		<dc:creator>rodrigo</dc:creator>
				<category><![CDATA[hacklab]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rodrigo.hacklab.com.br/?p=3</guid>
		<description><![CDATA[Uma das demandas do portal eletrocooperativa.org.br (um dos projetos desenvolvidos pelo Hacklab neste semestre) é a moderação dos usuários que se registram no site. Como esse recurso não existe no core do Wordpress, saímos em busca de um plugin.
O Leo encontrou no diretório de plugins do Wordpress (http://wordpress.org/extend/plugins/) o New User Approve, uma extensão simples [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das demandas do portal eletrocooperativa.org.br (um dos projetos desenvolvidos pelo Hacklab neste semestre) é a moderação dos usuários que se registram no site. Como esse recurso não existe no core do Wordpress, saímos em busca de um plugin.</p>
<p>O <a href="http://pirex.com.br/category/leo/" >Leo</a> encontrou no diretório de plugins do Wordpress (http://wordpress.org/extend/plugins/) o <a href="http://www.picklewagon.com/wordpress/new-user-approve" >New User Approve</a>, uma extensão simples que faz exatamente o que precisávamos. Durante o desenvolvimento encontramos dois problemas na versão atual (1.0):</p>
<ol>
<li>Se um usuário é criado pelo administrador e não pelo formulário de registro, ele aparece na listagem de usuários para moderação e se o administrador aprová-lo sua senha será alterada.</li>
<li>Com o plugin habilitado, o formulário de registro sempre mostra uma mensagem de usuário criado com sucesso mesmo quando ocorreram erros (como por exemplo nome de usuário já existente ou senhas não conferem).</li>
</ol>
<p>Fizemos dois patches para corrigir esses erros e enviamos para o desenvolvedor do plugin. Essa é a melhor parte do software livre <img src='http://rodrigo.utopia.org.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Ele agradeceu mas infelizmente ainda não teve tempo para incorporar as mudanças no código e lançar uma nova versão. Acredito que o fará em breve.</p>
<p><span style="text-decoration: line-through">Se alguém precisar da mesma funcionalidade e quiser utilizar o plugin com as correções, o patch está disponível <a href="http://rodrigo.utopia.org.br/files/new-user-approvepatch.zip">neste link</a> (mais detalhes podem ser vistos nos comentários que fiz na página do próprio plugin).</span></p>
<p><strong>Atualização (em 22/04/2009):</strong> foi lançada uma nova versão (1.1) do plugin que incorpora os patches que enviei, basta baixá-la <a href="http://wordpress.org/extend/plugins/new-user-approve/">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigo.utopia.org.br/2009/04/17/moderacao-de-usuarios-no-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

