<?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"
	>

<channel>
	<title>brunotavares.net: ScrapBook</title>
	<atom:link href="http://blog.brunotavares.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.brunotavares.net</link>
	<description>Notes. tech and a few thoughs</description>
	<pubDate>Tue, 20 Jul 2010 14:21:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Google Analytics data from multiple profiles</title>
		<link>http://blog.brunotavares.net/?p=265</link>
		<comments>http://blog.brunotavares.net/?p=265#comments</comments>
		<pubDate>Tue, 20 Jul 2010 14:20:06 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<category><![CDATA[analytics]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=265</guid>
		<description><![CDATA[If you ever need to get a integrated data report for multiple profiles you can get one here: http://gaevolution.appspot.com
Simple webinterface that aggregates multiple profiles from your GA account and produces a tabular report.
.. or you can always script arround the Data API
]]></description>
			<content:encoded><![CDATA[<p>If you ever need to get a integrated data report for multiple profiles you can get one here: <a href="http://gaevolution.appspot.com">http://gaevolution.appspot.com</a></p>
<p>Simple webinterface that aggregates multiple profiles from your GA account and produces a tabular report.</p>
<p>.. or you can always script arround the <a href="http://code.google.com/apis/analytics/docs/gdata/gdataDeveloperGuide.html">Data API</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=265</wfw:commentRss>
		</item>
		<item>
		<title>Finding your Ubuntu version</title>
		<link>http://blog.brunotavares.net/?p=255</link>
		<comments>http://blog.brunotavares.net/?p=255#comments</comments>
		<pubDate>Tue, 11 May 2010 19:30:00 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=255</guid>
		<description><![CDATA[
$ cat /etc/lsb-release

]]></description>
			<content:encoded><![CDATA[<p><code><br />
$ cat /etc/lsb-release<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=255</wfw:commentRss>
		</item>
		<item>
		<title>Cloning VirtualBox disk images</title>
		<link>http://blog.brunotavares.net/?p=252</link>
		<comments>http://blog.brunotavares.net/?p=252#comments</comments>
		<pubDate>Tue, 09 Dec 2008 14:43:57 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=252</guid>
		<description><![CDATA[If you hope that a simple copy will make it.. it doesn&#8217;t. Apparently the unique disk indentifier (UUID) is embbeded in the image file.

$ VBoxManage clonevdi sourceimage.vdi destimage.vdi

]]></description>
			<content:encoded><![CDATA[<p>If you hope that a simple copy will make it.. it doesn&#8217;t. Apparently the unique disk indentifier (UUID) is embbeded in the image file.</p>
<pre><code>
$ VBoxManage clonevdi sourceimage.vdi destimage.vdi
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=252</wfw:commentRss>
		</item>
		<item>
		<title>Visual Diffs</title>
		<link>http://blog.brunotavares.net/?p=245</link>
		<comments>http://blog.brunotavares.net/?p=245#comments</comments>
		<pubDate>Tue, 02 Dec 2008 22:48:49 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<category><![CDATA[git]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=245</guid>
		<description><![CDATA[For some time now i started to notice the amount of time i wasted in solving version conflicts. The GNU diff works great with small change sets, but having a visual diff tool helps a lot when you&#8217;re dealing with long files with lots of diffs. 
I used several visuall-diff-editors whit the several version-control software [...]]]></description>
			<content:encoded><![CDATA[<p>For some time now i started to notice the amount of time i wasted in solving version conflicts. The GNU diff works great with small change sets, but having a visual diff tool helps a lot when you&#8217;re dealing with long files with lots of diffs. </p>
<p>I used several visuall-diff-editors whit the several version-control software and i currently use Meld: it&#8217;s gtk, has in-line edition ( let&#8217;s you change the working copy with a real-time diff computing ) and its &#8220;command line diff&#8221; and diff3 compatible which makes it work smoothly with version-control software.</p>
<p>So, for the both version-control systems that i use currently here is my setup</p>
<h4>SVN</h4>
<p>For a quick diff using meld just run:</p>
<p><code>$ svn diff--diff-cmd meld</code></p>
<p>For a permanent setup edit <code>~/.subversion/config</code> and set the <code>diff-cmd</code> to <code>meld</code></p>
<h4>GIT</h4>
<p>Write a small wrapper:</p>
<pre>
<code>
#!/usr/bin/env sh
meld $2 $5
</code>
</pre>
<p>and the just configure svn to use the wrapper as diff tool</p>
<p><code>git config --global diff.external /path/to/wrapper </code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=245</wfw:commentRss>
		</item>
		<item>
		<title>Pikeo::API 1.00</title>
		<link>http://blog.brunotavares.net/?p=239</link>
		<comments>http://blog.brunotavares.net/?p=239#comments</comments>
		<pubDate>Mon, 13 Oct 2008 12:56:01 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[cpan]]></category>

		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=239</guid>
		<description><![CDATA[It&#8217;s now on CPAN: http://search.cpan.org/~bmavt/Pikeo-API-1.00/lib/Pikeo/API.pm
Project page still available: http://projects.brunotavares.net/projects/show/pikeoperlapi
]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s now on <a href="http://search.cpan.org" title="CPAN">CPAN</a>: <a href="http://search.cpan.org/~bmavt/Pikeo-API-1.00/lib/Pikeo/API.pm">http://search.cpan.org/~bmavt/Pikeo-API-1.00/lib/Pikeo/API.pm</a></p>
<p>Project page still available: <a href="http://projects.brunotavares.net/projects/show/pikeoperlapi">http://projects.brunotavares.net/projects/show/pikeoperlapi</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=239</wfw:commentRss>
		</item>
		<item>
		<title>Maintaining your namespace clean in Perl</title>
		<link>http://blog.brunotavares.net/?p=234</link>
		<comments>http://blog.brunotavares.net/?p=234#comments</comments>
		<pubDate>Fri, 10 Oct 2008 08:01:32 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=234</guid>
		<description><![CDATA[Some modules like XML::Simple export some functions by default into your namespace. Normally you don&#8217;t want this functions since the module has a OO interface; so, how to avoid the auto-export from taint your namespace ?
You can, at include time, be careful and explicitly tell the module not to export anything by doing this:

use XML::Simple [...]]]></description>
			<content:encoded><![CDATA[<p>Some modules like <code>XML::Simple</code> export some functions by default into your namespace. Normally you don&#8217;t want this functions since the module has a OO interface; so, how to avoid the auto-export from taint your namespace ?</p>
<p>You can, at include time, be careful and explicitly tell the module not to export anything by doing this:</p>
<pre><code>
use XML::Simple qw();
</code></pre>
<p>But what if you are using a bunch of modules and you aren&#8217;t really sure of everything each one of them exports? You can either tell each one to export nothing ( <code> qw() </code>) or you can use <code>use namespace::clean</code>.</p>
<p><a href="http://search.cpan.org/~phaylon/namespace-clean-0.08/lib/namespace/clean.pm">namespace::clean</a> defines a pragma that cleans up your namespace from exported functions. When you use the pragma all the exported functions to that point are cleaned-out from your namespace.</p>
<p>So if your using a lot of modules you can use it like this:</p>
<pre><code>
use strict;

use Foo;
use Bar;

use namespace::clean; #all Foo and Bar exported functions are cleaned out from your namespace

use Carp; #croak is available on your namespace

...
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=234</wfw:commentRss>
		</item>
		<item>
		<title>If you use Live HTTP Headers for Firefox &#8230;</title>
		<link>http://blog.brunotavares.net/?p=232</link>
		<comments>http://blog.brunotavares.net/?p=232#comments</comments>
		<pubDate>Mon, 06 Oct 2008 16:04:15 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=232</guid>
		<description><![CDATA[&#8230; you really should ckeck out HttpFox : https://addons.mozilla.org/en-US/firefox/addon/6647
It provides all the information that Live HTTP Headers do (and more, like request time tracking ) but with better organization.
]]></description>
			<content:encoded><![CDATA[<p>&#8230; you really should ckeck out HttpFox : https://addons.mozilla.org/en-US/firefox/addon/6647</p>
<p>It provides all the information that Live HTTP Headers do (and more, like request time tracking ) but with better organization.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=232</wfw:commentRss>
		</item>
		<item>
		<title>Pikeo::API</title>
		<link>http://blog.brunotavares.net/?p=227</link>
		<comments>http://blog.brunotavares.net/?p=227#comments</comments>
		<pubDate>Sun, 05 Oct 2008 21:59:42 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[perl]]></category>

		<category><![CDATA[pikeo]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=227</guid>
		<description><![CDATA[At work we had the need to interact with Orange&#8217;s Pikeo service.
Pikeo is a Flickr like photo management/sharing service that has a REST API.
We ended up making a, object oriented, Perl wrapper for the API. The Perl API project is here, will be published to cpan as soon as we finish the documentation.
As always: comments [...]]]></description>
			<content:encoded><![CDATA[<p>At work we had the need to interact with <a href="http://orange.fr">Orange</a>&#8217;s <a href="http://pikeo.com">Pikeo</a> service.</p>
<p>Pikeo is a Flickr like photo management/sharing service that has a <a href="http//dev.pikeo.com">REST API</a>.</p>
<p>We ended up making a, object oriented, Perl wrapper for the API. The Perl API project is <a href="http://projects.brunotavares.net/projects/show/pikeoperlapi">here</a>, will be published to <a href="http://search.cpan.org" title="CPAN">cpan</a> as soon as we finish the documentation.</p>
<p>As always: comments , bugs and feature requests are welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=227</wfw:commentRss>
		</item>
		<item>
		<title>svn and python</title>
		<link>http://blog.brunotavares.net/?p=223</link>
		<comments>http://blog.brunotavares.net/?p=223#comments</comments>
		<pubDate>Fri, 03 Oct 2008 07:50:47 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=223</guid>
		<description><![CDATA[I still use svn for some projects, some of them are python. 
Python pre-compiles the python files, so, the first time i run one of this projects i end up with a bunch of .pyc files that i don&#8217;t want to add to the repository.
Since svn doesn&#8217;t know this files the svn status generates a [...]]]></description>
			<content:encoded><![CDATA[<p>I still use svn for some projects, some of them are python. </p>
<p>Python pre-compiles the python files, so, the first time i run one of this projects i end up with a bunch of .pyc files that i don&#8217;t want to add to the repository.</p>
<p>Since svn doesn&#8217;t know this files the <code>svn status</code> generates a lot of garbage in the output.</p>
<p>svn has a property ( see <a href="shttp://svnbook.red-bean.com/en/1.1/ch07s02.html">svn properties</a> ) called svn:ignore that tells svn to ignore certain files matching a pattern. The problem is that this property is directory/file based so you have to set it, at least, to every directory.</p>
<p>easy way to do this:<br />
<code>
<pre>
$ cd myproject
$ find . -type d | grep -v '.svn' | xargs svn propset svn:ignore "*.pyc"
$ svn commit
</pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=223</wfw:commentRss>
		</item>
		<item>
		<title>Isolated Python environments.</title>
		<link>http://blog.brunotavares.net/?p=219</link>
		<comments>http://blog.brunotavares.net/?p=219#comments</comments>
		<pubDate>Tue, 30 Sep 2008 23:45:11 +0000</pubDate>
		<dc:creator>bat</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.brunotavares.net/?p=219</guid>
		<description><![CDATA[I&#8217;ve a lot of code that depends on different versions of the same library, its quite hard to maintain the different versions installed in their specific dirs along with all their dependencies without tainting anything else.
To be able to run all of this code in one machine i&#8217;ve to make a lot of manipulation to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve a lot of code that depends on different versions of the same library, its quite hard to maintain the different versions installed in their specific dirs along with all their dependencies without tainting anything else.</p>
<p>To be able to run all of this code in one machine i&#8217;ve to make a lot of manipulation to the PYTHONPATH configuration. This is painfull and time-consuming. The plot thickens if i want to test some new version of the same library.</p>
<p>I found out <a href="http://pypi.python.org/pypi/virtualenv#what-it-does">virtualenv</a>, this is a small python utility that bootstraps isolated python environments. </p>
<p>It allows you to maintain your application, libraries and all their dependencies in a isolated environment. </p>
<p>It also installs setup-tools in the virtual environment turning all your new libraries installations into painless tasks. </p>
<p>It comes with a set of handy scripts ( per-environment ) to activate and deactivate the environment so it&#8217;s quite simple to switch around environments. </p>
<p>Optionally you can make your environments inherit ( as a fallback ) the system site-packages and, with little effort, your enviromnents can be &#8220;relocatable&#8221; not being tied to any specific path which makes it possible to move them around your filesystem.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brunotavares.net/?feed=rss2&amp;p=219</wfw:commentRss>
		</item>
	</channel>
</rss>
