<?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>Softcore software development</title>
	<atom:link href="http://tea.cesaroliveira.net/feed" rel="self" type="application/rss+xml" />
	<link>http://tea.cesaroliveira.net</link>
	<description>It&#039;s all about the cycles</description>
	<lastBuildDate>Sat, 27 Feb 2010 03:08:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Update</title>
		<link>http://tea.cesaroliveira.net/archives/176</link>
		<comments>http://tea.cesaroliveira.net/archives/176#comments</comments>
		<pubDate>Sat, 27 Feb 2010 03:08:22 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[hugs]]></category>

		<guid isPermaLink="false">http://tea.cesaroliveira.net/?p=176</guid>
		<description><![CDATA[I have been suspiciously absent from my blog, even though I don&#8217;t blog very much. Truthfully, I have been getting a lot of nothing done. Socially, the experiment is a failure, as I haven&#8217;t been able to make new friends. Relationship with my ex is still in a wild state of flux (we almost went [...]]]></description>
			<content:encoded><![CDATA[<p>I have been suspiciously absent from my blog, even though I don&#8217;t blog very much. Truthfully, I have been getting a lot of nothing done. Socially, the experiment is a failure, as I haven&#8217;t been able to make new friends. Relationship with my ex is still in a wild state of flux (we almost went a whole month without a fight!), and I have gone completely <acronym title="Absent Without Official Leave">AWOL</acronym> on any contributing to <a href="https://addons.mozilla.org/" onclick="pageTracker._trackPageview('/outgoing/addons.mozilla.org/?referer=');">AMO</a>.</p>
<p>On the positive notes, I have and continue to learn more about cryptography even though I haven&#8217;t finished (hell, you can say I barely started) reading the <a href="http://www.cacr.math.uwaterloo.ca/hac/" onclick="pageTracker._trackPageview('/outgoing/www.cacr.math.uwaterloo.ca/hac/?referer=');">Handbook of Applied Cryptography</a> which is a fascinating book that is low level. I have finished, and testing, a working implementation of SHA-1 and MD5 hash. It&#8217;s for a slightly bigger project that I had in mind.</p>
<p>My work is going very well. Since being assigned Tester/Release Manager (it&#8217;s not quite as involved as Mozilla release manager, believe me) I have been learning about NSIS installers and C++ testing frameworks, which is always fun and exciting and strange.</p>
<p>Moving on, I hope to have a working implementation of AES in March, even though I am mathematically challenged and will have no practical solution for it (it will be a solution without a problem). There are still several bugs assigned to me in <a href="https://wiki.mozilla.org/Update:Remora" onclick="pageTracker._trackPageview('/outgoing/wiki.mozilla.org/Update_Remora?referer=');">Remora</a> that I plan on finishing. I will still need to make a actual effort to get socially involved. I still have two goals that really should have started in January that includes:</p>
<ul>
<li>Getting my gun licence</li>
<li>Going to the gym</li>
</ul>
<p>My work will also be evolving soon to tackle our next release of the SmartSwipe. Totally not sure how much to give away, but it&#8217;s a tight deadline.</p>
<p>Ah, it feels good to reflect back on the last few months and have a plan for the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/176/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AES and CBC</title>
		<link>http://tea.cesaroliveira.net/archives/156</link>
		<comments>http://tea.cesaroliveira.net/archives/156#comments</comments>
		<pubDate>Tue, 22 Dec 2009 05:21:06 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[crypto]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://tea.cesaroliveira.net/?p=156</guid>
		<description><![CDATA[If you ever want to use a crypto library in Python, you&#8217;ll be sad to note that there isn&#8217;t one built into Python impressive repertoire of modules. In fact, you&#8217;ll most likely hit pycrypt on your Google search to find one. And there is some dirty work you&#8217;ll have to do if you want to [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever want to use a crypto library in Python, you&#8217;ll be sad to note that there isn&#8217;t one built into Python impressive repertoire of modules. In fact, you&#8217;ll most likely hit <a href="http://www.dlitz.net/software/pycrypto/" onclick="pageTracker._trackPageview('/outgoing/www.dlitz.net/software/pycrypto/?referer=');">pycrypt</a> on your Google search to find one. And there is some dirty work you&#8217;ll have to do if you want to use symmetric cryptography using this library. And one of the hard/easy parts is knowing the difference between ECB and CBC.</p>
<p>Here, we start initializing the AES object using CBC mode:</p>
<p><code>&gt;&gt;&gt; from Crypto.Cipher import AES;<br />
&gt;&gt;&gt; aes = AES.new('some key here', AES.MODE_CBC, 'INIT_VECTOR')<br />
Traceback (most recent call last):<br />
  File "&lt;console&gt;", line 1, in &lt;module&gt;<br />
ValueError: IV must be 16 bytes long</code></p>
<p>oops. You&#8217;ll have to make you&#8217;re initialization vector 16 bytes long. Also, your key has to be 16, 24, or 32 bytes long as well. Let&#8217;s do something better :</p>
<p><code>&gt;&gt;&gt; aes = AES.new('J2-+sfd%932mIt:{', AES.MODE_CBC, 'wir&amp;/&gt;H54mgd9a";')</code></p>
<p>ah! much better. Even if it was me smashing my hand against the keyboard. Now let&#8217;s encrypt/decrypt something important.</p>
<p><code>&gt;&gt;&gt; aes.encrypt('the answer to life the universe and everything is 42')<br />
Traceback (most recent call last):<br />
  File "&lt;console&gt;", line 1, in &lt;module&gt;<br />
ValueError: Input strings must be a multiple of 16 in length</code></p>
<p>You&#8217;ll have to do the dirty work remember:</p>
<p><code>>&gt;&gt;&gt; ciphertext = aes.encrypt('the answer to life the universe and everything is 42195479204957')<br />
>>> ciphertext<br />
'f0\xa9\xf9f&#038;X)\x0e\x08=\x06\x97\xcbF\xddK\x1a\xa6i\x1d\x02"}\xd9\\\xaa\xb6\xd9J\xe3Q\x07\xaev\x012\xbf\rPN\xd2\xf9\xf7$\x93\xe0/\xcb\xae9\x91K\xd01\xab\xb7\xdb\reR\xff\xef\x1c'</code></p>
<p>Much better. Now lets decrypt it:</p>
<p><code>&gt;&gt;&gt; aes.decrypt(ciphertext)<br />
'\xc8\xaf.\x97\x05\x80\n\xe9\xe6\xc4Ju\x04\xbe\xa1Nfe the universe and everything is 42195479204957'</code></p>
<p>Woah! That isn&#8217;t the whole message! So what&#8217;s going on?</p>
<p>Remember that initialization vector you set in the beginning? That sets the stage for the first block. But each block becomes the initialization vector for the second block, and so on. So when you decrypt, it is using the initialization vector from the block before. That&#8217;s why the first 16 bytes are screwed up. This is a feature of CBC, but not ECB:</p>
<p><code>&gt;&gt;&gt; aes = AES.new('J2-+sfd%932mIt:{', AES.MODE_ECB, 'wir&amp;/&gt;H54mgd9a";')<br />
&gt;&gt;&gt; ciphertext = aes.encrypt('the answer to life the universe and everything is 42195479204957')<br />
&gt;&gt;&gt; aes.decrypt(ciphertext)'the answer to life the universe and everything is 42195479204957'</code></p>
<p>And yes, this is a feature. Read the <a href="http://en.wikipedia.org/wiki/Cipher_block_chaining" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Cipher_block_chaining?referer=');">block cipher modes wikipedia article</a> for a better explination. So what&#8217;s the answer? Simply, to call aes.new() again before calling decrypt!</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/156/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freshly Baked Bread</title>
		<link>http://tea.cesaroliveira.net/archives/144</link>
		<comments>http://tea.cesaroliveira.net/archives/144#comments</comments>
		<pubDate>Fri, 18 Dec 2009 06:09:06 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[Living]]></category>
		<category><![CDATA[bread]]></category>
		<category><![CDATA[mission impossible]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[regina]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://tea.cesaroliveira.net/?p=144</guid>
		<description><![CDATA[I have two wishes for Santa Claus this year: stable software and freshly baked bread.
My first wish won&#8217;t be granted. So he is obligated to fulfill the second one for sure. And the second wish is becoming a non-trivial task.
Sasketchewan, where I currently live now, lies in what is considered Canada&#8217;s breakbasket. We learned about [...]]]></description>
			<content:encoded><![CDATA[<p>I have two wishes for Santa Claus this year: stable software and freshly baked bread.</p>
<p>My first wish won&#8217;t be granted. So he is obligated to fulfill the second one for sure. And the second wish is becoming a non-trivial task.</p>
<p>Sasketchewan, where I currently live now, lies in what is considered <a href="http://en.wikipedia.org/wiki/Breadbasket#Canada" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Breadbasket_Canada?referer=');">Canada&#8217;s breakbasket</a>. We learned about it in school. They apparently <a href="http://esask.uregina.ca/entry/wheat.html" onclick="pageTracker._trackPageview('/outgoing/esask.uregina.ca/entry/wheat.html?referer=');">grow a lot of wheat here</a>. Wheat, as you may or may not know, is one of the critical ingredients in most breads. </p>
<p>So why is it that I can&#8217;t find a goddamn bakery that makes fresh goddamn bread in the middle of this goddamn breadfactory?</p>
<p>I went to four &#8220;bakeries&#8221;. Two didn&#8217;t sell bread at all, just pastries. One only sold a variety of toast. And the last one, which was only a 10 minute bus ride from my house, and recommended to me by a co-worker, closes at fucking 5pm (isn&#8217;t that when most people finish work and fresh bread is something on their mind?)</p>
<p>What the fuck.</p>
<p>When having a discussion with my co-workers about this, here is how they manage to get bread:</p>
<ol>
<li>Get a breadmaker and have your girlfriend make it for you</li>
<li>Get your girlfriend, which works in a bakery, to get it for you when she leaves work</li>
</ol>
<p>Either solution requires a girlfriend. Fuck this shit.</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/144/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minimizing the damage of malware</title>
		<link>http://tea.cesaroliveira.net/archives/139</link>
		<comments>http://tea.cesaroliveira.net/archives/139#comments</comments>
		<pubDate>Wed, 11 Nov 2009 18:15:20 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tea.cesaroliveira.net/?p=139</guid>
		<description><![CDATA[It happened a few days ago, and it was bound to happen sooner or later. My sister could no longer log into her account on her Windows XP machine. When you tried, it went to a black screen with only the mouse cursor shown. The common symptoms of a broken computer, like one caused by [...]]]></description>
			<content:encoded><![CDATA[<p>It happened a few days ago, and it was bound to happen sooner or later. My sister could no longer log into her account on her Windows XP machine. When you tried, it went to a black screen with only the mouse cursor shown. The common symptoms of a broken computer, like one caused by a virus infection.</p>
<p>Normally, this sort of thing would be a geeks nightmare. One would have to spend time to fix it or reinstall Windows XP. There are supposedly tools to fix this (System restore and such) but past experience has shown this rarely fixes the problem.</p>
<p>But I was prepared this time. When I first set-up my sister&#8217;s machine, I made her a <strong>limited</strong> user. And it was one of the better decisions I made. I simply created her a new account, and everything worked and she was happy to have her computer back with AIM and MSN and iTunes (though not the music, though that can easily be copied over).</p>
<p>This has some pitfalls. I have to log in to do random stupid stuff like change the clock time, install new software, and update Firefox. But these hassles, even when combined, have paid off for themselves by not having me sit in front of a broken computer.</p>
<p>Managing her account from Regina is gonna be hard though. And I don&#8217;t have much time to resolve this problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/139/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Destination Regina</title>
		<link>http://tea.cesaroliveira.net/archives/133</link>
		<comments>http://tea.cesaroliveira.net/archives/133#comments</comments>
		<pubDate>Mon, 26 Oct 2009 05:17:40 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[hugs]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[microblog]]></category>
		<category><![CDATA[regina]]></category>
		<category><![CDATA[toronto]]></category>

		<guid isPermaLink="false">http://tea.cesaroliveira.net/?p=133</guid>
		<description><![CDATA[Yesterday, I accepted an offer to work at NetSecure Technologies which is a company based in Regina doing Firefox extension and C# work (mainly the former. I never worked with the latter, and they are aware of that). This also means I have to relocate to a city who I know nothing about. In fact, [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I accepted an offer to work at NetSecure Technologies which is a company based in Regina doing Firefox extension and C# work (mainly the former. I never worked with the latter, and they are aware of that). This also means I have to relocate to a city who I know nothing about. In fact, I will likely be a typical snobby Torontoian for the year contract that it is for.</p>
<p>Unfortunately I will be leaving my current employer PPX. Good people. But I am excited about my new job responsibilities, and think it will be a better fit for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/133/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Number of daily downloads slightly reduced on AMO</title>
		<link>http://tea.cesaroliveira.net/archives/103</link>
		<comments>http://tea.cesaroliveira.net/archives/103#comments</comments>
		<pubDate>Mon, 26 Oct 2009 05:01:04 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[addons]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://tea.cesaroliveira.net/?p=103</guid>
		<description><![CDATA[This was originally written early September. The patch was live late September. And 4 weeks of results later, this post. My apologies if I mixed past and present tense
The number of add-on downloads was always an interesting figure to me. Over several months, one of my add-ons was getting over 100 downloads a week without [...]]]></description>
			<content:encoded><![CDATA[<p><strong>This was originally written early September. The patch was live late September. And 4 weeks of results later, this post. My apologies if I mixed past and present tense</strong></p>
<p>The number of add-on downloads was always an interesting figure to me. Over several months, one of my add-ons was getting over 100 downloads a week without any promotion. But my <acronym title="Active Daily Users">ADU</acronym> remains almost constant every week. It may increase by a few, but compared to the number of downloads, it only seemed like I got an abnormally low number of conversions. Less than 15% of users who downloaded my add-on turned into a ADU.</p>
<p>This didn&#8217;t seem right, so for 0.7 release of <a href="https://addons.mozilla.org/en-US/firefox/addon/11666" onclick="pageTracker._trackPageview('/outgoing/addons.mozilla.org/en-US/firefox/addon/11666?referer=');">Safe extension</a>, I added some code that sent me some info whenever someone uninstalled from the Add-ons Manager.</p>
<p>According to the add-ons dashboard, I had 78 ADU users for version 0.7 (submitted 2009-08-14. Averaged over a period of 1 week.).</p>
<p>How many downloads since it was uploaded? About 659 (I likely uploaded it late evening, so it might be less then that). So about 11% of the users that downloaded the extension didn&#8217;t uninstall it. But how many users chose to uninstall it using the Add-ons manager?</p>
<p>Ten.</p>
<p>So what of the other 500+ users? How did they uninstall my extension? I wondered whether web crawlers were downloading my extension. 500 seems like an awfully big number. Maybe a broken crawler? Well, actually, it turned out that <a href="https://addons.mozilla.org/robots.txt" onclick="pageTracker._trackPageview('/outgoing/addons.mozilla.org/robots.txt?referer=');">AMO&#8217;s robot.txt</a> did not exclude robots from downloading extensions at all. And how often a <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&#038;answer=34439" onclick="pageTracker._trackPageview('/outgoing/www.google.com/support/webmasters/bin/answer.py?hl=en_038_answer=34439&amp;referer=');">crawler visits</a> is determined by the provider. Google cache takes a snapshot around once every week for me.</p>
<p>I realized that these numbers won&#8217;t be accurate because there are more ways to uninstall an add-on, including new profile or deleting the add-ons folder from the profile. But these seem like rare cases. Certainly not responsible for such a misleading number.</p>
<p>I <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=513483" onclick="pageTracker._trackPageview('/outgoing/bugzilla.mozilla.org/show_bug.cgi?id=513483&amp;referer=');">filed</a> and fixed a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=512528" onclick="pageTracker._trackPageview('/outgoing/bugzilla.mozilla.org/show_bug.cgi?id=512528&amp;referer=');">earlier bug</a> to have robots.txt exclude crawlers from the /downloads/ path of each of our localized versions of AMO.</p>
<p>After 4 weeks, my stats have leveled off and the number of downloads have dropped by about 10 a day. My add-on downloads dropped from >10 to about 3 a day. This won&#8217;t be considerable to popular add-ons (<a href="https://addons.mozilla.org/en-US/statistics/addon/1865" onclick="pageTracker._trackPageview('/outgoing/addons.mozilla.org/en-US/statistics/addon/1865?referer=');">AdBlock Plus</a> shows no difference, they are still getting 80,000 downloads a day). Looking at the statistics on AMO, total downloads have dropped over 100,000 a day since the stuff went live last month. Good stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/103/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Protected: Whazzup!?</title>
		<link>http://tea.cesaroliveira.net/archives/109</link>
		<comments>http://tea.cesaroliveira.net/archives/109#comments</comments>
		<pubDate>Sat, 03 Oct 2009 20:17:21 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[hugs]]></category>

		<guid isPermaLink="false">http://tea.cdolivei.webfactional.com/?p=109</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://tea.cesaroliveira.net/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-109">Password:<br />
<input name="post_password" id="pwbox-109" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/109/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Allowing mixing insecure and secure content</title>
		<link>http://tea.cesaroliveira.net/archives/92</link>
		<comments>http://tea.cesaroliveira.net/archives/92#comments</comments>
		<pubDate>Mon, 31 Aug 2009 02:38:12 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[crazy]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://tea.cesaroliveira.net/?p=92</guid>
		<description><![CDATA[This is something that&#8217;s been floating in my head. Not sure how much this is worth advancing, or whether it is deeply flawed. Or whether it was considered at some point but not indexed by Google good enough.
Many sites do mix HTTP and HTTPS content. Sites that do this are no-longer considered secure (Larry goes [...]]]></description>
			<content:encoded><![CDATA[<p>This is something that&#8217;s been floating in my head. Not sure how much this is worth advancing, or whether it is deeply flawed. Or whether it was considered at some point but not indexed by Google good enough.</p>
<p>Many sites do mix HTTP and HTTPS content. Sites that do this are no-longer considered secure (Larry goes away, the lock has a warning symbol over it) for good reason, the insecure content cannot be trusted. It may have been tampered with. If the content was a javascript file for instance, it could be very bad news.</p>
<p>But if we know that data from a secure source can&#8217;t be tampered with, could it vouch for content that isn&#8217;t secure? Let&#8217;s take an example of a fictitious webpage :</p>
<p><code><br />
&lt;script type="text/javascript" src="http://media.cesaroliveira.net/badass-javascript.js"&gt;&lt;/script&gt;<br />
&lt;img src="http://media.cesaroliveira.net/panda.jpg" alt="look out!" /&gt;<br />
Credit card number : &lt;input type="text" ...<br />
</code></p>
<p>Even though the site is served securely, some important information is sent insecurely. I am proposing that the secure content is able to pass along a hash (sha1, not md5) of the content that it expects. If the content in the insecure channel meets the has the same hash value, then we can be reasonably assured that the data has not been tampered with during transport. Let&#8217;s see the code again :</p>
<p><code><br />
&lt;script type="text/javascript" src="http://media.cesaroliveira.net/badass-javascript.js" data-hash="sha1:12b36be3076d357b2d390b2df3f9b65cd55b93e1" &gt;&lt;/script&gt;<br />
&lt;img src="http://media.cesaroliveira.net/panda.jpg" alt="look out!" data-hash="sha1:bcf31e777fa69753f8ecf9701fc9b6f1518b51b3" /&gt;<br />
Credit card number : &lt;input type="text" ...<br />
</code></p>
<p>Starts with data- because I doubt something like this would be implemented outside of my head. But it seems to solve the problem of tampering with the data. If the hashes don&#8217;t match, the website is still broken. If they do match then we should be able to breathe easily.</p>
<p>Of course, in time people will figure out vulnerabilities. Hash collisions is a problem. But this is <a href="http://www.win.tue.nl/hashclash/rogue-ca/" onclick="pageTracker._trackPageview('/outgoing/www.win.tue.nl/hashclash/rogue-ca/?referer=');">something that web had to deal with before</a>. Maybe a nice edition would be allowing multiple hash values, like :</p>
<p>&lt;img src=&#8221;http://media.cesaroliveira.net/panda.jpg&#8221; alt=&#8221;look out!&#8221; data-hash=&#8221;sha1:bcf31e777fa69753f8ecf9701fc9b6f1518b51b3;md5:953c78ac57ca68bfe532eb50120c8aa1&#8243; /&gt;</p>
<p>Yeah. I know I said no md5 <img src='http://tea.cesaroliveira.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/92/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Statistical gathering for add-ons</title>
		<link>http://tea.cesaroliveira.net/archives/88</link>
		<comments>http://tea.cesaroliveira.net/archives/88#comments</comments>
		<pubDate>Mon, 10 Aug 2009 02:00:22 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[addons]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[safe]]></category>
		<category><![CDATA[stats]]></category>

		<guid isPermaLink="false">http://tea.cesaroliveira.net/?p=88</guid>
		<description><![CDATA[Today I submitted version 0.7 of the safe add-on. This was not a version with additional features, but rather a version that collects stats from users who uninstall the add-on.
I mainly did this because I wanted to know more about why only a small percentage of users who downloaded my extension continued on using it. [...]]]></description>
			<content:encoded><![CDATA[<p>Today I submitted version 0.7 of the <a href="https://addons.mozilla.org/en-US/firefox/addon/11666" onclick="pageTracker._trackPageview('/outgoing/addons.mozilla.org/en-US/firefox/addon/11666?referer=');">safe add-on</a>. This was not a version with additional features, but rather a version that collects stats from users who uninstall the add-on.</p>
<p>I mainly did this because I wanted to know more about why only a small percentage of users who downloaded my extension continued on using it. How long have they used the extension? What options have they enabled (if any)? Where are my users coming from? I stopped short of asking people to complete a feedback form, instead opting to just send data to my server. It&#8217;s relatively anonymous, except for the IP address which gets recorded.</p>
<p>Unfortunately, this doesn&#8217;t really give me useful statistics from people who stay with my add-on. Which is still useful. My best hope is that it&#8217;ll answer at least one of my questions that it was set out to answer.</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/88/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open source shoes</title>
		<link>http://tea.cesaroliveira.net/archives/71</link>
		<comments>http://tea.cesaroliveira.net/archives/71#comments</comments>
		<pubDate>Sat, 25 Jul 2009 04:50:09 +0000</pubDate>
		<dc:creator>Cesar</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA["open source"]]></category>
		<category><![CDATA[activism]]></category>
		<category><![CDATA[shoes]]></category>

		<guid isPermaLink="false">http://tea.cesaroliveira.net/?p=71</guid>
		<description><![CDATA[A few days ago, I went to buy a pair of new shoes. I decided that I would put effort this time into actually looking for vegan (or as they say, cruelty-free) shoes. Generally I am more lax about leather/pelts than most other vegetarians, but I still don&#8217;t like supporting the industry. So I decided [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago, I went to buy a pair of new shoes. I decided that I would put effort this time into actually looking for vegan (or as they say, cruelty-free) shoes. Generally I am more lax about leather/pelts than most other vegetarians, but I still don&#8217;t like supporting the industry. So I decided to go and buy hemp shoes (FYI, <a href="http://www.payless.com/store/" onclick="pageTracker._trackPageview('/outgoing/www.payless.com/store/?referer=');">paylesss hoes</a> seems to have leather-free shoes, according to the <a href="http://www.veg.ca/content/view/174/101/" onclick="pageTracker._trackPageview('/outgoing/www.veg.ca/content/view/174/101/?referer=');">TVA</a>). I found this little place called <a href="http://www.leftfeet.ca/" onclick="pageTracker._trackPageview('/outgoing/www.leftfeet.ca/?referer=');">Left Feet</a>, which had hemp shoes that didn&#8217;t look like a hippy designed it.</p>
<p>The shop is small. Very small. With limited selection that caters to people who go out of their way to buy products that are typically made with leather. After I found a pair that I liked, I brought it home and saw a pamphlet at the bottom of the box (emphasis on their part, not mine).</p>
<blockquote>
<h1>Join the Blackspot Community</h1>
<p><strong>You&#8217;re now the owner of a pair of Blackspot shoes</strong>. It&#8217;s a purchase that could be unlike any you have made before. By buying Blackspots you&#8217;ve become a member of an international movement to regain control of our own minds and communities.</p>
<p>The open-source logo, hand-drawn on the side of your Blackspots, is a symbol of resistance against the kind of big-money hyperbranding that has been undermining civil society for decades. Earth-friendly, anti-sweatshop (made in Europe), cruelty-free, and pro-grassroots, the Blackspot model represents fundamental change.</p></blockquote>
<p>The open-source logo they talked about looks like below. Despite the name the logo is white, not black. The black you do see is dirt. If you touch it, it feels sticky. Kinda like gum.</p>
<p><a href="http://media.cesaroliveira.net/images/20090725/shoe.jpg" onclick="pageTracker._trackPageview('/outgoing/media.cesaroliveira.net/images/20090725/shoe.jpg?referer=');"><img src="http://media.cesaroliveira.net/images/20090725/shoe-thumb.jpg" alt="Blackspot Shoe" /></a></p>
<p>The reason why it&#8217;s called an open-source logo is because <a href="http://www.triplepundit.com/pages/blackspot-the-a.php" onclick="pageTracker._trackPageview('/outgoing/www.triplepundit.com/pages/blackspot-the-a.php?referer=');">anyone can supposedly use it</a>. It&#8217;s not a particularly great logo, and it likely didn&#8217;t <a href="http://blog.mozilla.com/faaborg/2009/06/06/new-firefox-icon-iteration-14-in-context/" onclick="pageTracker._trackPageview('/outgoing/blog.mozilla.com/faaborg/2009/06/06/new-firefox-icon-iteration-14-in-context/?referer=');">go through over a dozen iterations</a>.</p>
<p>On the plus side, they were very well priced for what they claim to do (organic hemp, biodegradable materials, made by unionized workers). I am happy with the purchase despite the smaller selection.</p>
]]></content:encoded>
			<wfw:commentRss>http://tea.cesaroliveira.net/archives/71/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
