<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Blog do Tiago</title>
	
	<link>http://blog.tiagomadeira.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 02 Feb 2012 10:59:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/tiagomadeira" /><feedburner:info uri="tiagomadeira" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><image><link>http://blog.tiagomadeira.com</link><url>http://feeds2.feedburner.com/~fc/tiagomadeira?bg=99CCCC&amp;fg=222222&amp;anim=0</url><title>Tiago Madeira</title></image><feedburner:browserFriendly>Isto é um feed XML. Mostra meus últimos posts no blog e é feito para ser visto por um leitor de news.</feedburner:browserFriendly><item>
		<title>Retrospective: new plugin for WordPress</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/FxQo4IDknnU/</link>
		<comments>http://blog.tiagomadeira.com/retrospective/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 00:20:03 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=937</guid>
		<description><![CDATA[I&#8217;ve just wrote my first WordPress public plugin, that I&#8217;m licensing under GPL v3. This post is to make it public. I&#8217;m writing in English because the WordPress plugin directory asks me to provide a plugin page to host the files there and I&#8217;ll provide the URL of this post. Update: The plugin is now <a href='http://blog.tiagomadeira.com/retrospective/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just wrote my first WordPress public plugin, that I&#8217;m licensing under GPL v3. This post is to make it public. I&#8217;m writing in English because the <a href="https://wordpress.org/extend/plugins/add/">WordPress plugin directory</a> asks me to provide a plugin page to host the files there and I&#8217;ll provide the URL of this post. <strong>Update:</strong> The plugin is now in the WordPress plugin directory: <a href="https://wordpress.org/extend/plugins/retrospective/">wordpress.org/extend/plugins/retrospective/</a></p>
<hr />
<p>The website of the brazilian newspaper O Estado de São Paulo has a nice way to display news in a retrospective-style (check <a href="http://blog.tiagomadeira.com/wp-content/uploads/2012/01/estadao.jpg">this screenshot</a> or <a href="http://www.estadao.com.br/especiais/choque-nas-ruas,158638.htm">this link</a> &#8212; Flash required).</p>
<p>Wouldn&#8217;t it be nice if we could display WordPress posts in our pages and categories in the same way just by using a shortcode? The possibilities are many. That&#8217;s why I wrote the <strong>Retrospective</strong> plugin for WordPress.</p>
<p>It has at least two advantages over the version you just saw:</p>
<ol>
<li>Does not require Flash (its implementation uses only CSS and JavaScript/jQuery)</li>
<li>Has a option to respect the (time-)scale of the posts.</li>
</ol>
<p>Its use is very simple. Wherever you add the shortcode [<tt>retrospective</tt>] the plugin will draw that cool retrospective. The shortcode supports several attributes:</p>
<ul>
<li><tt>count</tt> &#8212; limit the number of posts to be displayed (default = 10; use -1 to display all)</li>
<li><tt>cat</tt> &#8212; display posts with category IDs comma-separated (default = display all posts)</li>
<li><tt>width</tt> &#8212; the width of the timeline in pixels (default = 600)</li>
<li><tt>delay</tt> &#8212; the time of the focus change animation in milisseconds (default = 1000)</li>
<li><tt>scale</tt> &#8212; if set, respect the time scale in the distances between the points in the timeline (default = false)</li>
<li><tt>image_width, image_height</tt> &#8212; the dimensions of the thumbnail images in pixels (default = 300&#215;180)</li>
<li><tt>image_border_size</tt> &#8212; the size of the image&#8217;s border in pixels (default = 7)</li>
<li><tt>image_border_color</tt> &#8212; the color of the image&#8217;s border in hexa RGB (default = 000000)</li>
<li><tt>image_margin</tt> &#8212; the space between the images (default = 5)</li>
<li><tt>date_format</tt> &#8212; the date format in <a href="http://php.net/date">PHP format</a> (default = d/m/Y)</li>
</ul>
<p>For example, here is a [<tt>retrospective count=5 cat=41 image_border_color=2F5971</tt>] call:</p>
<div style="padding-left:40px;">
<div id="retro-4a577c6ef517f4c7837a4fc7d265b88b" class="retrospective">
    <!-- TIMELINE -->
    <ul class="time">
		<li rel="0"><a href="http://blog.tiagomadeira.com/calendario-santo-discordiano-no-fluxbox/" style="left:0px;"><span>29/08/2010</span></a></li>
		<li rel="1"><a href="http://blog.tiagomadeira.com/fluxbox-ddate-no-gentoo/" style="left:150px;"><span>29/08/2010</span></a></li>
		<li rel="2"><a href="http://blog.tiagomadeira.com/working-together-for-free-software/" style="left:300px;"><span>16/12/2010</span></a></li>
		<li rel="3"><a href="http://blog.tiagomadeira.com/as-vantagens-do-software-livre/" style="left:450px;"><span>02/02/2011</span></a></li>
		<li rel="4"><a href="http://blog.tiagomadeira.com/retrospective/" style="left:600px;"><span>31/01/2012</span></a></li>

    </ul>
    <!-- PHOTOS -->
    <div class="photos">
        <ul>
			<li rel="0"><a href="http://blog.tiagomadeira.com/calendario-santo-discordiano-no-fluxbox/" title="Calendário santo-discordiano no Fluxbox"><img width="300" height="180" src="http://blog.tiagomadeira.com/wp-content/uploads/2010/08/eris-300x180.jpg" class="attachment-300x180 wp-post-image" alt="eris" title="Calendário santo-discordiano no Fluxbox" /></a></li>
			<li rel="1"><a href="http://blog.tiagomadeira.com/fluxbox-ddate-no-gentoo/" title="fluxbox-ddate no Gentoo"><img width="300" height="180" src="http://blog.tiagomadeira.com/wp-content/uploads/2010/08/a21-300x180.png" class="attachment-300x180 wp-post-image" alt="a2" title="fluxbox-ddate no Gentoo" /></a></li>
			<li rel="2"><a href="http://blog.tiagomadeira.com/working-together-for-free-software/" title="Working together for free software"><img width="300" height="180" src="http://blog.tiagomadeira.com/wp-content/uploads/2010/12/libre-planet1-300x180.jpg" class="attachment-300x180 wp-post-image" alt="libre-planet" title="Working together for free software" /></a></li>
			<li rel="3"><a href="http://blog.tiagomadeira.com/as-vantagens-do-software-livre/" title="As vantagens do software livre"><img width="300" height="180" src="http://blog.tiagomadeira.com/wp-content/uploads/2011/02/stallman-300x180.jpg" class="attachment-300x180 wp-post-image" alt="stallman" title="As vantagens do software livre" /></a></li>
			<li rel="4"><a href="http://blog.tiagomadeira.com/retrospective/" title="Retrospective: new plugin for WordPress"><img width="300" height="180" src="http://blog.tiagomadeira.com/wp-content/uploads/2012/01/wordpresssc1-300x180.jpg" class="attachment-300x180 wp-post-image" alt="wordpresssc" title="Retrospective: new plugin for WordPress" /></a></li>

        </ul>
    </div>
    <!-- POSTS -->
    <ul class="posts">
		<li rel="0"><a href="http://blog.tiagomadeira.com/calendario-santo-discordiano-no-fluxbox/" title="Calendário santo-discordiano no Fluxbox"><h2>Calendário santo-discordiano no Fluxbox <span>(29/08/2010)</span></h2> <p>Acabei de implementar o calendário santo-discordiano no Fluxbox 1.1.1 (última versão).

Link para download do código: fluxbox-ddate-1.1.1-0.tar.bz2

Se você usa Arch Linux, não precisa baixar e compilar manualmente. Basta usar o pkgbuild que o Rev. Beraldo fez para o AUR: aur.archlinux.org/packages.php?ID=403 ...</p></a></li>
		<li rel="1"><a href="http://blog.tiagomadeira.com/fluxbox-ddate-no-gentoo/" title="fluxbox-ddate no Gentoo"><h2>fluxbox-ddate no Gentoo <span>(29/08/2010)</span></h2> <p>Criei um ebuild para o Fluxbox com uma USE flag “ddate” baseado no fluxbox-1.1.1-r2 (que é o último ebuild no Portage neste exato momento). Usando ele, é possível ter o calendário santo-discordiano no Fluxbox do Gentoo.

Siga os passos abaixo para ter Fluxbox com suporte a ddate no seu Gentoo.

Baixando o  ...</p></a></li>
		<li rel="2"><a href="http://blog.tiagomadeira.com/working-together-for-free-software/" title="Working together for free software"><h2>Working together for free software <span>(16/12/2010)</span></h2> <p>by Peter Brown, FSF Executive Director
(Free Software Foundation Bulletin, Issue 16, May 2010)

 A few weeks ago, my six-year-old son Michael looked at my t-shirt from our LibrePlanet conference and started asking me to name each of the various characters and objects shown in the t-shirt design. These characters are ...</p></a></li>
		<li rel="3"><a href="http://blog.tiagomadeira.com/as-vantagens-do-software-livre/" title="As vantagens do software livre"><h2>As vantagens do software livre <span>(02/02/2011)</span></h2> <p>(por Richard Stallman)

Pessoas de fora do movimento do software livre frequentemente perguntam sobre as vantagens práticas do software livre. É uma pergunta curiosa.

Software não-livre é ruim porque ele nega sua liberdade. Logo, perguntar sobre as vantagens práticas do software livre é como perguntar sobre  ...</p></a></li>
		<li rel="4"><a href="http://blog.tiagomadeira.com/retrospective/" title="Retrospective: new plugin for WordPress"><h2>Retrospective: new plugin for WordPress <span>(31/01/2012)</span></h2> <p>I've just wrote my first WordPress public plugin, that I'm licensing under GPL v3. This post is to make it public. I'm writing in English because the WordPress plugin directory asks me to provide a plugin page to host the files there and I'll provide the URL of this post. Update: The plugin is now in the WordPress plug ...</p></a></li>

    </ul>
</div>
</div>
<hr />
<h3>Some screenshots</h3>
<p>Here is a screenshot from <a href="http://juntos.org.br/juntos/internet/">juntos.org.br</a> with <tt>scale=true</tt> (in the link you can see it working):</p>
<p><img src="http://blog.tiagomadeira.com/wp-content/uploads/2012/01/ss1.jpg" alt="" title="ss1" width="639" height="427" class="aligncenter size-full wp-image-967" /></p>
<p>And here is a screenshot from a fresh WordPress install (TwentyEleven theme without modifications):</p>
<p><img src="http://blog.tiagomadeira.com/wp-content/uploads/2012/01/ss2-650x345.jpg" alt="" title="ss2" width="650" height="345" class="aligncenter size-large wp-image-968" /></p>
<hr />
<h3>Customizing</h3>
<h4>Post thumbnails</h4>
<p>For better results, I suggest always adding post thumbnails to your posts and using <a href="https://codex.wordpress.org/Function_Reference/add_image_size">registered image sizes</a> in <tt>image_width</tt> and <tt>image_height</tt> attributes.</p>
<h4>Styling retrospectives</h4>
<p>The generated HTML is very easy to style (but just be careful with margins and paddings, they&#8217;re set with <tt>!important</tt> attribute &#8212; I did it to try not to break with any theme). Here is a sample:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;retro-uniquehash&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;retrospective&quot;</span>&gt;</span>
    <span style="color: #808080; font-style: italic;">&lt;!-- TIMELINE --&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;time&quot;</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;permalink&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;left:0px;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;</span>date<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;permalink&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;left:300px;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;</span>date<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;permalink&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;left:600px;&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;</span>date<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">&lt;!-- PHOTOS --&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;photos&quot;</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
            <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;permalink&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;title&quot;</span>&gt;</span>
                <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;file&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;wp-post-image&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
            <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;permalink&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;title&quot;</span>&gt;</span>
                <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;file&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;wp-post-image&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
            <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;permalink&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;title&quot;</span>&gt;</span>
                <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;file&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;wp-post-image&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">&lt;!-- POSTS --&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;posts&quot;</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;permalink&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;title&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>Title <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;</span>(date)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
            <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Excerpt<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;permalink&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;title&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>Title <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;</span>(date)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
            <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Excerpt<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;permalink&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;title&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>Title <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;</span>(date)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
            <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Excerpt<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<h4>Styling a specific retrospective</h4>
<p>The generated hash takes in consideration all the attributes sent to the shortcode and also how many retrospectives appeared before in the parsing of the actual page. I made it that way to allow users to set up two exactly equal retrospectives in the same page. Because of that, I don&#8217;t recommend setting styles for <tt>#retro-uniquehash</tt>. I think a reasonable solution for this issue is to make something like</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;something_that_makes_sense&quot;</span>&gt;</span>[retrospective]<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p>when inserting the shortcode and then styling <tt>#something_that_makes_sense .retrospective</tt>.</p>
<hr />
<h3>Download</h3>
<p><strong>Here is the code for download:</strong>* <a href='http://blog.tiagomadeira.com/wp-content/uploads/2012/01/retrospective.zip'>retrospective.zip</a><br />
<small><strong>* Warning:</strong> Please consider I&#8217;m using a <a href="http://catb.org/~esr/writings/homesteading/">bazaar approach</a> here. Be aware that the plugin probably has a lot of bugs (and please tell me if you catch any).</small></p>
<p>I hope you enjoy it. Have fun and please let me have your feedback! :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=FxQo4IDknnU:DYpuMcXT0mY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=FxQo4IDknnU:DYpuMcXT0mY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=FxQo4IDknnU:DYpuMcXT0mY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=FxQo4IDknnU:DYpuMcXT0mY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=FxQo4IDknnU:DYpuMcXT0mY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=FxQo4IDknnU:DYpuMcXT0mY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=FxQo4IDknnU:DYpuMcXT0mY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=FxQo4IDknnU:DYpuMcXT0mY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/FxQo4IDknnU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/retrospective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/retrospective/</feedburner:origLink></item>
		<item>
		<title>Userscript para remover usuários de grupos do Facebook</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/GNOJu8cEQKk/</link>
		<comments>http://blog.tiagomadeira.com/userscript-para-remover-usuarios-de-grupos-do-facebook/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 16:58:39 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[Futilidades]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=920</guid>
		<description><![CDATA[Já faz algum tempo que o Facebook tem um bug nas listas de membros dos grupos. As listas não mostram todos os membros do grupo. Mais: os membros que não aparecem na lista nem mesmo podem ser encontrados pelo formulário de busca de nomes. Quando você é administrador de um grupo, isso pode ser um <a href='http://blog.tiagomadeira.com/userscript-para-remover-usuarios-de-grupos-do-facebook/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Já faz algum tempo que o Facebook tem um bug nas listas de membros dos grupos. As listas não mostram todos os membros do grupo. Mais: os membros que não aparecem na lista nem mesmo podem ser encontrados pelo formulário de busca de nomes. Quando você é administrador de um grupo, isso pode ser um grande inconveniente, porque na interface padrão do Facebook a lista de membros é o único lugar onde é possível excluir usuários de um grupo. Ou seja, os usuários que não aparecem lá são indeletáveis!</p>
<p style="text-align:center;"><a href="http://blog.tiagomadeira.com/wp-content/uploads/2011/12/fb1.png"><img src="http://blog.tiagomadeira.com/wp-content/uploads/2011/12/fb1.png" alt="" title="Lista de membros de um grupo no Facebook" width="523" height="106" class="aligncenter size-full wp-image-921" /></a><br /><small>Só ali na lista de membros aparece esse <strong>X</strong> para excluir os membros do grupo.</small></p>
<p>Há alguns meses, escrevi um <em>user script</em> para o <a href="http://www.greasespot.net/">GreaseMonkey</a> (extensão para o Firefox que permite que você crie esses pequenos scripts para serem rodados em páginas específicas) que busca ajudar os administradores de grupos a removerem esses membros fantasmas.</p>
<p>Não havia publicado até agora por vergonha (o script é bem feio, tanto o código como o resultado). Porém, acho que não pretendo perfumá-lo tão cedo, então resolvi liberá-lo aqui até pra inspirar quem quiser fazer coisas mais bonitas.</p>
<p>O funcionamento dele é muito simples: quando você entra num grupo (sendo ou não administrador &#8212; porque nem distingui isso no código), ele cria botões <strong>X</strong> do lado dos links para os perfis dos usuários que estão nessa página (e só nesses &#8212; outra coisa que nem me preocupei no script). Se você for administrador do grupo em questão, quando clica no <strong>X</strong> o Facebook abre aquela caixa perguntando se você quer mesmo excluir o membro em questão (e se quer baní-lo permanentemente).</p>
<p style="text-align:center;"><a href="http://blog.tiagomadeira.com/wp-content/uploads/2011/12/fb2.png"><img src="http://blog.tiagomadeira.com/wp-content/uploads/2011/12/fb2.png" alt="" title="Resultado da aplicação do userscript" width="492" height="409" class="aligncenter size-full wp-image-922" /></a><br /><small>Com o script, tem <strong>X</strong> em todo o lugar! (até onde não deve&#8230; hehe)</small></p>
<p>Sem mais enrolação, eis aqui <strong>o código</strong> para (des-)apreciação e aprimoramentos <em>(por favor! :))</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// ==UserScript==</span>
<span style="color: #006600; font-style: italic;">// @name Remove users from Facebook groups</span>
<span style="color: #006600; font-style: italic;">// @description Remove usuarios que postam no grupo sem precisar procurar na lista de membros</span>
<span style="color: #006600; font-style: italic;">// @author  Tiago Madeira &lt;madeira@juntos.org.br&gt;</span>
<span style="color: #006600; font-style: italic;">// @include http*://www.facebook.com/groups/*</span>
<span style="color: #006600; font-style: italic;">// @version 1.32</span>
<span style="color: #006600; font-style: italic;">// ==/UserScript==</span>
&nbsp;
<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> <span style="color: #000066; font-weight: bold;">as</span> <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> gid <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> <span style="color: #000066; font-weight: bold;">as</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> a <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">as</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> hovercard <span style="color: #339933;">=</span> a.<span style="color: #660066;">getAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;data-hovercard&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>hovercard <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> hovercard <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            uid <span style="color: #339933;">=</span> hovercard.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/.*id=/</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>gid <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #003366; font-weight: bold;">var</span> button <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&lt;a class=&quot;mhm auxiliaryButton closeButton uiCloseButton&quot; title=&quot;Remove&quot; rel=&quot;dialog-post&quot; href=&quot;/ajax/groups/members/remove.php?group_id='</span> <span style="color: #339933;">+</span> gid <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&amp;uid='</span> <span style="color: #339933;">+</span> uid <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot;&gt;&lt;/a&gt;'</span><span style="color: #339933;">;</span>
                a.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> a.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; &quot;</span> <span style="color: #339933;">+</span> button<span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #003366; font-weight: bold;">var</span> pattern <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;(^| )groupsCleanProfilePic( |$)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>pattern.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>a.<span style="color: #660066;">className</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            gid <span style="color: #339933;">=</span> a.<span style="color: #660066;">getAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;href&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/.*id=/</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Ou o <strong>link direto para download (ou instalação no GreaseMonkey)</strong>:</p>
<p style="text-align:center; font-size:1.4em;"><a href="http://blog.tiagomadeira.com/wp-content/uploads/2011/12/fb.group.remove.user.js">fb.group.remove.user.js</a> (1.08kb)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=GNOJu8cEQKk:vp6z2UoVZYw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=GNOJu8cEQKk:vp6z2UoVZYw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=GNOJu8cEQKk:vp6z2UoVZYw:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=GNOJu8cEQKk:vp6z2UoVZYw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=GNOJu8cEQKk:vp6z2UoVZYw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=GNOJu8cEQKk:vp6z2UoVZYw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=GNOJu8cEQKk:vp6z2UoVZYw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=GNOJu8cEQKk:vp6z2UoVZYw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/GNOJu8cEQKk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/userscript-para-remover-usuarios-de-grupos-do-facebook/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/userscript-para-remover-usuarios-de-grupos-do-facebook/</feedburner:origLink></item>
		<item>
		<title>Combatendo a censura com algoritmos</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/K5F3fv5Mrdg/</link>
		<comments>http://blog.tiagomadeira.com/combatendo-a-censura-com-algoritmos/#comments</comments>
		<pubDate>Sat, 24 Dec 2011 18:11:42 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[Ciência da Computação]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=894</guid>
		<description><![CDATA[Mohammad Mahdian* (tradução: Tiago Madeira) Os levantes recentes no Oriente Médio demonstraram a eficácia da internet em ajudar ativistas políticos e sociais a organizarem protestos, disseminarem informações para o público e enviarem notícias de prisões e repressões ao restante do mundo. Ameaçados por esse paradigma, regimes totalitários tentaram controlar e monitorar o acesso de seus <a href='http://blog.tiagomadeira.com/combatendo-a-censura-com-algoritmos/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align:right;"><em>Mohammad Mahdian*</em> (tradução: Tiago Madeira)</p>
<p><a href="http://blog.tiagomadeira.com/wp-content/uploads/2011/12/18.2_Mahdian_med.jpg"><img src="http://blog.tiagomadeira.com/wp-content/uploads/2011/12/18.2_Mahdian_med.jpg" alt="" title="18.2_Mahdian_med" width="440" height="286" class="aligncenter size-full wp-image-896" /></a></p>
<p>Os levantes recentes no Oriente Médio demonstraram a eficácia da internet em ajudar ativistas políticos e sociais a organizarem protestos, disseminarem informações para o público e enviarem notícias de prisões e repressões ao restante do mundo. Ameaçados por esse paradigma, regimes totalitários tentaram controlar e monitorar o acesso de seus cidadãos à web, desenvolvendo ou adquirindo tecnologias de censura e de vigilância da internet. Ao mesmo tempo, uma variedade de ferramentas de violação desses filtros foi desenvolvida para ajudar os usuários a contornarem o filtro da internet acessando sites bloqueados através de intermediários não-bloqueados (os chamados proxies). O artigo de Dan Boneh (<a href="http://dl.acm.org/citation.cfm?id=2043250">Recent Ideas for Circumventing Internet Filtering</a>) dá um ótimo resumo sobre novas e velhas técnicas para construir essas ferramentas.</p>
<p>No coração de todos os métodos de violação existe o seguinte dilema: Para fazer a ferramenta disponível ao público, os endereços de proxy precisam ser comunicados para os usuários. Isso, no entanto, permite que as autoridades obtenham esses endereços (fingindo serem usuários legítimos) e aí bloqueiem todo o tráfego nesses endereços específicos. Ter vários proxies de curta duração alivia o problema, mas a questão permanece: Existe algum método algorítmico esperto para distribuir proxies que diminua o número de proxies necessários para fornecer acesso à internet sem filtro?</p>
<h4>O problema de distribuição de proxy</h4>
<p>Vamos começar definindo um modelo teórico simples para este problema. Nós gostaríamos de distribuir um conjunto de <em>m</em> proxies para uma população de <em>n</em> usuários: <em>k</em> deles são adversários (agentes da censura) e o restante (<em>n-k</em>) são usuários legítimos. Nós não sabemos as identidades dos adversários, mas podemos assumir que <em>k << n</em>. Na verdade, para simplicidade, pense em <em>k</em> como uma constante, enquanto <em>n</em> cresce ao infinito.</p>
<p>Se um proxy é dado a um adversário, ele pode comprometer o proxy, tornando-o inutilizável para os outros usuários. Uma vez que um proxy é comprometido, nós ficamos sabendo e podemos distribuir outros proxies para os usuários afetados. Nossa meta é garantir que todo usuário legítimo tenha pelo menos um proxy não-comprometido. A questão é: qual é o menor <em>m</em> com o qual conseguimos fornecer essa garantia?</p>
<p>Claramente, o problema pode ser resolvido com <em>n</em> proxies dando pra cada usuário um proxy diferente. Na verdade, podemos fazer muito melhor usando um algoritmo de busca binária: Comece dividindo os usuários em duas caixas e dê pra cada caixa o seu proxy. Uma vez que um proxy é comprometido, divida sua caixa correspondente pela metade e dê para cada uma das metades um proxy. Continue fazendo isso enquanto existe apenas um usuário na caixa. É fácil ver que esse método usa no máximo O(log(n)) proxies. Uma divisão cuidadosa dos usuários em caixas rende uma solução com no máximo <img src='http://s.wordpress.com/latex.php?latex=k%281%2Blog_2%28n%2Fk%29%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k(1+log_2(n/k))' title='k(1+log_2(n/k))' class='latex' /> proxies.</p>
<p>Podemos resolver o problema com menos de O(log(n)) proxies? Talvez surpreendentemente, nós podemos fazer um pouco melhor. Há um algoritmo randomizado de distribuição de proxies que usa no máximo O(log(n)/loglog(n)) proxies. Um argumento simples de entropia mostra que isso é assintoticamente ótimo para um <em>k</em> constante.</p>
<h4>Distribuição de proxies via redes de confiança</h4>
<p>Uma forma comum de construir uma base de usuários num país sob censura é através de relações pessoais de confiança. O sistema começa com poucos usuários confiáveis e então cada usuário confiável pode convidar novos usuários em quem ele confia para o sistema. Dessa forma, o conjunto de usuários cresce como uma rede de confiança: uma árvore enraizada na qual o conjunto de usuários confiáveis inicial é filho da raiz e arestas indicam relações de confiança.</p>
<p>Usar uma rede de confiança dificulta que um adversário se infiltre na base de usuários. No entanto, o problema é que uma vez que a rede é infiltrada, o adversário pode convidar novos adversários para a rede. Para levar isso em conta, nós modificamos a formulação do problema como segue: em vez de exigir que um pequeno número de usuários seja adversário, nós assumimos que um pequeno número de usuários e todos os seus descendentes na rede são adversários. Uma forma alternativa de formular esse problema é considerar redes de confiança capacitadas e assumir que o menor corte da raiz para todos os adversários é no máximo um pequeno número <em>k</em>.</p>
<p>O problema de distribuição de proxy em redes de confiança está ainda sem solução em geral. Temos resultados parciais para pequenos <em>k</em> e no caso capacitado. Os algoritmos são não-triviais e precisam olhar para a estrutura da rede de confiança.</p>
<h4>Conclusão</h4>
<p>O objetivo desse exercício era convencer o leitor de que existe um problema teórico interessante e desafiante no âmago das tecnologias de violação de censura. Modelos e algoritmos para esse problema estão muito próximos dos que são usados na prática e, logo, há potencial para pesquisa nessa área que pode ter um impacto real nas vidas de milhões de pessoas vivendo sob opressão.</p>
<hr />
<p>* <strong>Mohammad Mahdian</strong> é um pesquisador senior do Yahoo Research Lab em Santa Clara, CA. É bacharel em Engenharia da Computação pela Universidade de Tecnologia de Sharif, <a href="http://blog.tiagomadeira.com/wp-content/uploads/2011/12/18.2_Cover_crop.jpg"><img src="http://blog.tiagomadeira.com/wp-content/uploads/2011/12/18.2_Cover_crop-300x246.jpg" alt="" title="18.2_Cover_crop" width="300" height="246" class="alignright size-medium wp-image-895" /></a> mestre em Ciência da Computação pela Universidade de Toronto e PhD em Matemática pelo MIT. Seus interesses de pesquisa atuais incluem projeto de algoritmos, economia algorítmica e aplicações em publicidade online e redes sociais.</p>
<p>Este texto foi publicado em inglês na última edição da <a href="http://xrds.acm.org/">XRDS</a> (revista da ACM para estudantes), cujo <a href="http://xrds.acm.org/images/DLImages/18.2_Cover_crop.jpg">tema</a> é <strong>Ciência da Computação a serviço da democracia</strong>. No site do autor, há o <a href="http://www.mahdian.org/censorship.pdf">artigo &#8220;Fighting censorship with algorithms&#8221; completo em PDF</a> disponível para download gratuito. Ainda não li, mas parece interessante.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=K5F3fv5Mrdg:aoUbkkLifDQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=K5F3fv5Mrdg:aoUbkkLifDQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=K5F3fv5Mrdg:aoUbkkLifDQ:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=K5F3fv5Mrdg:aoUbkkLifDQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=K5F3fv5Mrdg:aoUbkkLifDQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=K5F3fv5Mrdg:aoUbkkLifDQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=K5F3fv5Mrdg:aoUbkkLifDQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=K5F3fv5Mrdg:aoUbkkLifDQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/K5F3fv5Mrdg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/combatendo-a-censura-com-algoritmos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/combatendo-a-censura-com-algoritmos/</feedburner:origLink></item>
		<item>
		<title>Direto do Chile</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/hYtSFFdH4L8/</link>
		<comments>http://blog.tiagomadeira.com/direto-do-chile/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 15:27:09 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[Pensamentos aleatórios]]></category>
		<category><![CDATA[chile]]></category>
		<category><![CDATA[folha]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[juntos]]></category>
		<category><![CDATA[maria antonieta]]></category>
		<category><![CDATA[mídia]]></category>
		<category><![CDATA[nathalie drumond]]></category>
		<category><![CDATA[thalie]]></category>
		<category><![CDATA[vladimir safatle]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=880</guid>
		<description><![CDATA[Os Carabineros, los pacos hijos de Pinochet, saíram à caça. Pegavam qualquer um pelo caminho. Como zombies babando atrás de sangue novo. Corríamos para ajudar uns aos outros. Numa rua distante, sacaram um dos nossos. (Nathalie Drumond, 25/08/2011) É bastante raro eu escrever um post no meu blog para recomendar outro. Nem lembro a última <a href='http://blog.tiagomadeira.com/direto-do-chile/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>Os Carabineros, los pacos hijos de Pinochet, saíram à caça. Pegavam qualquer um pelo caminho. Como zombies babando atrás de sangue novo. Corríamos para ajudar uns aos outros. Numa rua distante, sacaram um dos nossos.</p></blockquote>
<p>(<a href="http://diretodochile.juntos.org.br/ha-milhoes-tomando-as-ruas-de-santiago-hoje-o-chile-nao-vai-dormir/">Nathalie Drumond, 25/08/2011</a>)</p>
<p>É bastante raro eu escrever um post no meu blog para recomendar outro. Nem lembro a última vez que fiz isso, mas provavelmente foi na época do 1001 Gatos de Schrödinger. Os relatos da minha amiga Thalie, que está no Chile acompanhando e participando da mobilização dos estudantes e do povo chileno, me intimam a fazê-lo.</p>
<p>É tempo de mudança no mundo. As revoluções árabes inspiraram multidões a irem pras ruas em busca de alternativas mais democráticas (com o povo no poder de fato) à política dos banqueiros e das empresas que impera em todo o planeta. Nossa geração, que cresceu nos anos 90, começou a perceber que o capitalismo não é invencível e vê que <a href="http://www.youtube.com/watch?v=o-6goilce04">a ação coletiva pode produzir mudanças</a>.</p>
<p>O exemplo foi pra vários países vizinhos, seguiu pra Europa (Espanha, Grécia, Islândia, Inglaterra, Portugal, entre outros), até pros Estados Unidos (grande mobilização em Wisconsin no primeiro semestre, que a mídia quase não mostrou) e há mais de dois meses tem grande expressão aqui perto, na América Latina: no Chile.</p>
<p><a href="http://blog.tiagomadeira.com/wp-content/uploads/2011/08/protestas-en-chile-de-estudiantes_note_principal.jpg"><img src="http://blog.tiagomadeira.com/wp-content/uploads/2011/08/protestas-en-chile-de-estudiantes_note_principal.jpg" alt="Protesto dos estudantes no Chile" title="Protesto dos estudantes no Chile" width="475" height="316" class="aligncenter size-full wp-image-883" /></a></p>
<p>Como o professor Vladimir Safatle <a href="http://www.lucianagenro.com.br/2011/08/maria-antonieta/">escreveu</a> há duas semanas na Folha de São Paulo: <em>Nessas horas, vale a lição de Maria Antonieta: aqueles que não percebem o fim de um mundo são destruídos com ele. Há momentos na história em que tudo parece acontecer de maneira muito acelerada. Já temos sinais demais de que nosso presente caminha nessa direção. Nada pior do que continuar a agir como se nada de decisivo e novo estivesse acontecendo.</em></p>
<p>No caso do Chile, a Folha continua agindo como se nada de novo estivesse acontecendo. Em meio a uma greve geral convocada para ontem e hoje, ela noticiou que <em>&#8220;Para esta quarta-feira não está previsto qualquer protesto no Chile&#8221;</em>. Na verdade, pasmem: a única notícia sobre o Chile que vi na mídia tradicional ontem foi a fusão entre um banco chileno e um de outro local. Procurei por &#8220;Chile&#8221; na página inicial da Folha Online e o Firefox posicionou meu cursor numa promoção de passagens aéreas.</p>
<p>Nesse prospecto, e aproveitando a facilidade que a internet nos proporciona pra compartilhar em tempo real informações boicotadas por essa velha imprensa, o blog de uma revolucionária que acompanha por dentro tudo o que está acontecendo em Santiago tem um valor inestimável.</p>
<p style="text-align:center;"><iframe width="420" height="345" src="https://www.youtube.com/embed/Tl8_rCPQQlM" frameborder="0" allowfullscreen></iframe><br />Thalie no Chile</p>
<p>O <a href="http://diretodochile.juntos.org.br/">Direto do Chile</a> é, nas palavras da Thalie: <em>uma espécie de diário de bordo da estada no Chile e do rumo das mobilizações. Trata de política, não apenas daquela dos profissionais de gabinete, mas principalmente de uma nova forma de se fazer política que tem despontado neste último período. É sobre a política que move mulheres e homens a tomar as ruas e as praças pelo mundo que trataremos aqui, mais especificamente daquela que está sendo criada e recriada com as mobilizações do Chile. Inspirada pelos dizeres dos niños ao longo das marchas “que se perca o ano letivo, mas não se deixe passar a educação de Pinochet”. Já basta! É tempo de construir o novo e ele está em nossas mãos.</em></p>
<p><strong>Visita (e divulgação) obrigatória:</strong> <a href="http://diretodochile.juntos.org.br/">diretodochile.juntos.org.br</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=hYtSFFdH4L8:RHVlIyl0YWU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=hYtSFFdH4L8:RHVlIyl0YWU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=hYtSFFdH4L8:RHVlIyl0YWU:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=hYtSFFdH4L8:RHVlIyl0YWU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=hYtSFFdH4L8:RHVlIyl0YWU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=hYtSFFdH4L8:RHVlIyl0YWU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=hYtSFFdH4L8:RHVlIyl0YWU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=hYtSFFdH4L8:RHVlIyl0YWU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/hYtSFFdH4L8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/direto-do-chile/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/direto-do-chile/</feedburner:origLink></item>
		<item>
		<title>Em defesa dos pseudônimos</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/IqtGe1V_NUA/</link>
		<comments>http://blog.tiagomadeira.com/em-defesa-dos-pseudonimos/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 20:47:12 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[Pensamentos aleatórios]]></category>
		<category><![CDATA[anonimato]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[liberdade de expressão]]></category>
		<category><![CDATA[pseudônimos]]></category>
		<category><![CDATA[pseudonimato]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=867</guid>
		<description><![CDATA[Tradução por Tiago Madeira do artigo A case for pseudonyms (29/jul/2011), escrito pela Jillian York (Electronic Frontier Foundation). pseu·dô·ni·mo &#160; &#160; &#8212; substantivo nome fictício usado por um autor para ocultar sua identidade Existem inúmeras razões pelas as quais os indivíduos podem desejar usar um nome diferente daquele com o qual nasceram. Eles podem estar <a href='http://blog.tiagomadeira.com/em-defesa-dos-pseudonimos/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><strong>Tradução por <a href="http://blog.tiagomadeira.com/em-defesa-dos-pseudonimos/">Tiago Madeira</a> do artigo <a href="https://www.eff.org/deeplinks/2011/07/case-pseudonyms">A case for pseudonyms</a> (29/jul/2011), escrito pela <a href="https://www.eff.org/about/staff/jillian">Jillian York</a> (<a href="https://www.eff.org/">Electronic Frontier Foundation</a>).</strong></p>
<p><strong>pseu·dô·ni·mo</strong><br />
 &nbsp; &nbsp; &#8212; substantivo <em>nome fictício usado por um autor para ocultar sua identidade</em></p>
<p>Existem inúmeras razões pelas as quais os indivíduos podem desejar usar um nome diferente daquele com o qual nasceram. Eles podem estar preocupados com ameaças às suas vidas, empregos ou com retaliações políticas ou econômicas. Eles podem querer evitar discriminação ou podem preferir usarem um nome que é mais fácil de pronunciar ou de soletrar em determinada cultura.</p>
<p>Online, as razões se multiplicam. A cultura da internet por muito tempo encorajou o uso de &#8220;nomes de usuários&#8221;, pseudônimos que podem ou não estarem associados a identidade de uma pessoa fora da rede. Habitantes de longa data do meio virtual podem ter nicknames que já duraram mais de vinte anos.</p>
<p>Discursos pseudônimos tiveram um papel fundamental através da história também. Dos esforços literários de George Eliot e Mark Twain até as defesas políticas de Publius em O Federalista [<em>Federalist Papers</em>, uma série de 85 artigos argumentando para a ratificação da Constituição dos Estados Unidos] ou as cartas de Junius para o Public Advertiser [jornal britânico do século XVIII], o povo contribuiu fortemente para o debate público sob pseudônimos e continua o fazendo até hoje.</p>
<p>Um novo debate em torno do pseudonimato em plataformas online tem surgido como um resultado da <a href="http://www.google.com/support/accounts/bin/answer.py?answer=107107">política</a> de identificação do Google+, que requer que os usuários se identifiquem pelo &#8220;nome que seus amigos, família ou colegas de trabalho geralmente chamam&#8221;. Essa política é similar a do Facebook, que <a href="http://www.google.com/support/accounts/bin/answer.py?answer=107107">exige</a> aos usuários &#8220;fornecer nomes e informações reais&#8221;. A política do Google em pouquíssimas semanas atraiu significativa atenção da comunidade e de fora dela, provocando o debate sobre se uma plataforma social deve colocar limites na identidade. Um número considerável de usuários do Google+ já experimentou a desativação de suas contas como um resultado dessa política, que Kirrily &#8220;Skud&#8221; Robert, um ex-funcionário do Google expulso do serviço por se identificar como &#8220;Skud&#8221;, <a href="http://infotrope.net/2011/07/25/preliminary-results-of-my-survey-of-suspended-google-accounts/">documentou</a> em detalhes.</p>
<p>Aqueles a favor do uso de &#8220;nomes reais&#8221; em plataformas sociais apresentaram uma série de argumentos: que os nomes reais melhoram o comportamento dos usuários e criam um ambiente mais civilizado; que os nomes reais ajudam a prevenção contra perseguição e assédio tornando mais fácil ir atrás dos infratores; que uma política de exigir nomes reais impede agentes da lei de entrarem no sistema para espionarem os usuários; que nomes reais fazem os usuários responsáveis por suas ações.</p>
<p>Embora esses argumentos tenham seus méritos, eles ignoram o problema. O dever dos defensores dessas políticas de nomes reais não é mostrar que o uso de nomes reais tem um lado positivo, mas mostrar que esses benefícios superam inconvenientes muito sérios.</p>
<p>Considere, por exemplo, Wael Ghonim, o egípcio (agora famoso) cuja página no Facebook, <a href="https://www.facebook.com/ElShaheeed">Somos todos Khaled Said</a>, inspirou milhares a participar dos levantes de janeiro. Embora a página tenha sido criada no verão de 2010, não muito depois da <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Death_of_Khaled_Mohamed_Saeed">morte de Khaled Said</a> nas mãos dos policiais, não foi até o fim daquele ano que ela começou a ganhar impulso. E, no entanto, sua presença nos protestos quase não aconteceu: em novembro de 2010, a página caiu depois de seu administrador (que agora sabemos que era Ghonim) foi relatado por usar um pseudônimo. O Facebook esteve apto a <a href="http://www.thedailybeast.com/articles/2011/02/24/middle-east-uprising-facebooks-back-channel-diplomacy.html">oferecer uma solução</a>, permitindo uma pessoa &#8220;identificada&#8221; a substituir Ghonim, mas esse caso foi excepcional, em grande parte devido à capacidade de Ghonim de se conectar ao pessoal do Facebook para resolver o problema. Nem todos têm essas conexões e não há forma de saber quantas pessoas já caíram através das rachaduras, por assim dizer, porque elas não tinham conhecimento sobre como apelar contra a desativação de uma conta. No caso de Ghonim, usar seu nome real teria o colocado num risco considerável. E, embora pseudonimato não ofereça garantias, torna consideravelmente mais difícil para as autoridades identificar ativistas.</p>
<p>Há inúmeras razões pelas as quais um indivíduo pode se sentir mais seguro por se identificar sob um nome diferente do seu nome de nascimento. Adolescentes que se identificam como membros da comunidade LGBT, por exemplo, são regularmente ameaçados online e podem preferir se identificar na internet com um pseudônimo. Indivíduos cujo conjugês trabalham para o governo ou são muito conhecidos, muitas vezes podem querer esconder aspectos de seu próprio estilo de vida e podem se sentir mais seguros operando sob um nome diferente online. Sobreviventes de violência doméstica que precisam não ser encontradas por seus agressores podem querer alterar o seu nome, inteiro ou uma parte. E qualquer pessoa com opiniões políticas impopulares pode optar por não arriscar sua vida por meio da identificação com um pseudônimo.</p>
<p>Como o juiz John Paul Stevens, da Suprema Corte americana, escreveu na decisão do caso McIntyre v. Ohio Elections Comm&#8217;n 514 U.S. 334, 357 (1995):</p>
<blockquote><p>&#8220;O anonimato é um escudo contra a tirania da maioria. Assim, exemplifica o propósito por trás da Carta dos Direitos dos EUA e, em particular, da Primeira Emenda, que foi escrita para proteger indivíduos impopulares da retaliação &#8212; e suas ideias de serem suprimidas &#8212; na mão de uma sociedade intolerante. O direito de permanecer anônimo pode ser abusado quando protege conduta fraudulenta. Mas o discurso político, por sua natureza, terá algumas vezes consequências desagradáveis e, em geral, nossa sociedade atribui maior peso ao valor da liberdade de expressão do que aos perigos do seu uso indevido.&#8221;</p></blockquote>
<p>Assim como usar nomes &#8220;reais&#8221; pode ter consequências reais, obrigar o uso de nomes &#8220;reais&#8221; pode também, excluindo da conversa qualquer pessoa que teme retaliação por compartilhar seus pontos de vista. <strong>Embora a obrigação de usar nomes reais possa aumentar a &#8220;civilidade&#8221; da conversa, é quase certamente em detrimento da diversidade.</strong></p>
<p>As blogueiras do Geek Feminism compilaram uma wiki destacando <a href="http://geekfeminism.wikia.com/wiki/Who_is_harmed_by_a_%22Real_Names%22_policy%3F">pessoas e grupos prejudicados por uma política de nomes reais</a>, demonstrando as centenas de potenciais razões pela as quais uma pessoa pode querer usar um nome diferente do seu próprio. Embora muitos exemplos da lista demonstram casos de indivíduos em risco que usam um pseudônimo por razões de segurança, há outras importantes razões pelas as quais alguém pode escolher o pseudonimato também.</p>
<p>Um exemplo é Michael Anti, o jornalista chinês cujo nome de nascimento é Jing Zhao. Anti foi <a href="http://www.cpj.org/internet/2011/03/michael-antis-exile-from-facebook-over-real-name-p.php">expulso do Facebook</a> em janeiro de 2011, presumivelmente depois de alguém relatá-lo por usar um nome diferente do qual ele nasceu. Apesar de ter usado seu pseudônimo por quase uma década (com o qual assinava textos no New York Times e em todo lugar), o Facebook insistiu na aplicação rigorosa de sua política.</p>
<p>No Google+, exemplos similares tem surgido, assim como falsos positivos, levando o Google+ a <a href="https://plus.google.com/113116318008017777871/posts/VJoZMS8zVqU">revisar alguns de seus processos</a>, inclusive deixando de desativar imediatamente as contas, em vez disso mostrando ao usuário um aviso e oferecendo-o a oportunidade de alinhar seu nome com sua política.</p>
<p>No entanto, políticas que requerem nomes &#8220;reais&#8221; são quase impossíveis de aplicar em larga escala e, como vários exemplos demonstraram, a aplicação tende a ser enviesada contra indivíduos que são muito conhecidos ou têm inimigos, como resultado do mecanismo da comunidade reportar.</p>
<p>É direito das empresas &#8212; Google, Facebook ou outra qualquer &#8212; criar políticas como acharem melhor para seus serviços. Mas é uma visão curta dessas empresas sugerir que uma política de &#8220;nomes reais&#8221; cria maior potencial para a civilidade, quando elas a fazem às custas da diversidade e da liberdade de expressão. De fato, esse giro para a elaboração de políticas que requerem nomes &#8220;reais&#8221; vai ter um efeito inibidor sobre a liberdade de expressão online.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=IqtGe1V_NUA:x7RK_Vv43oY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=IqtGe1V_NUA:x7RK_Vv43oY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=IqtGe1V_NUA:x7RK_Vv43oY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=IqtGe1V_NUA:x7RK_Vv43oY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=IqtGe1V_NUA:x7RK_Vv43oY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=IqtGe1V_NUA:x7RK_Vv43oY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=IqtGe1V_NUA:x7RK_Vv43oY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=IqtGe1V_NUA:x7RK_Vv43oY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/IqtGe1V_NUA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/em-defesa-dos-pseudonimos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/em-defesa-dos-pseudonimos/</feedburner:origLink></item>
		<item>
		<title>Perdi minha carteira</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/gMc3m5Jfx4Q/</link>
		<comments>http://blog.tiagomadeira.com/perdi-minha-carteira/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 15:50:21 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[São Paulo]]></category>
		<category><![CDATA[carteira]]></category>
		<category><![CDATA[furto]]></category>
		<category><![CDATA[perda]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=863</guid>
		<description><![CDATA[Perdi minha carteira na última madrugada (08/julho/2011) em São Paulo. Estou escrevendo para que você, caso tenha encontrado ela (e assim chegou no meu site, colocando o meu nome no Google), não ter dúvida: sou eu mesmo. Por favor, entre em contato se for o caso (através dos comentários deste post ou do e-mail tmadeira@gmail.com). <a href='http://blog.tiagomadeira.com/perdi-minha-carteira/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Perdi minha carteira na última madrugada (08/julho/2011) em São Paulo. Estou escrevendo para que você, caso tenha encontrado ela (e assim chegou no meu site, colocando o meu nome no Google), não ter dúvida: sou eu mesmo. Por favor, entre em contato se for o caso (através dos comentários deste post ou do e-mail tmadeira@gmail.com). Muito obrigado!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=gMc3m5Jfx4Q:dQJ13kQKQqY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=gMc3m5Jfx4Q:dQJ13kQKQqY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=gMc3m5Jfx4Q:dQJ13kQKQqY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=gMc3m5Jfx4Q:dQJ13kQKQqY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=gMc3m5Jfx4Q:dQJ13kQKQqY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=gMc3m5Jfx4Q:dQJ13kQKQqY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=gMc3m5Jfx4Q:dQJ13kQKQqY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=gMc3m5Jfx4Q:dQJ13kQKQqY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/gMc3m5Jfx4Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/perdi-minha-carteira/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/perdi-minha-carteira/</feedburner:origLink></item>
		<item>
		<title>Ataque, não: protesto!</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/CXlH43hykXA/</link>
		<comments>http://blog.tiagomadeira.com/ataque-nao-protesto/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 15:50:13 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[Pensamentos aleatórios]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[anonymous]]></category>
		<category><![CDATA[fsf]]></category>
		<category><![CDATA[mastercard]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[stallman]]></category>
		<category><![CDATA[wikileaks]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=851</guid>
		<description><![CDATA[por Richard Stallman (Free Software Foundation) O Stallman escreveu algo parecido com o que eu estava há semanas sentindo necessidade de escrever. Explica por quê tirar sites do ar não requer inteligência, o que é DDoS e o que é botnet. Não chama os manifestantes de moleques como fazem alguns petistas aqui no Brasil e <a href='http://blog.tiagomadeira.com/ataque-nao-protesto/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>por <a href="http://stallman.org/">Richard Stallman</a> (<a href="http://www.fsf.org/">Free Software Foundation</a>)</p>
<p><small>O Stallman escreveu algo parecido com o que eu estava há semanas sentindo necessidade de escrever. Explica por quê tirar sites do ar não requer inteligência, o que é DDoS e o que é botnet. Não chama os manifestantes de moleques como fazem alguns petistas aqui no Brasil e responsabiliza a vigilância, os interesses capitalistas e os governos pelos protestos. Texto muito interessante. Recomendo!</small></p>
<p>Os protestos online feitos pelo grupo Anonymous são equivalentes a uma manifestação na internet. É um erro classificá-los como atividade de grupos hackers (uso da astúcia brincalhona) ou de crackers (invasão de sistemas de segurança).</p>
<p>O programa que os manifestantes usam, chamado LOIC, já vem pré-configurado, de modo que nenhuma astúcia é necessária para rodá-lo, e ele não invade o sistema de segurança de nenhum computador.</p>
<p>Os manifestantes do Anonymous não tentaram assumir o controle do site da Amazon e nem roubar dados da MasterCard. Eles entram pela porta da frente de uma página, que simplesmente não é capaz de suportar tantos visitantes ao mesmo tempo.</p>
<p>Chamar os protestos organizados por eles de “ataques de negação de serviço” (DDoS) também está errado. Um ataque DDoS propriamente dito é feito por meio de milhares de computadores zumbis. Alguém invade o sistema de segurança destes computadores (com frequência recorrendo a um vírus) e assume remotamente o controle sobre eles, programando-os para formar uma botnet (rede de zumbis, que é um sistema em que computadores aliciados desempenham automaticamente a mesma função) que atende em uníssono às suas ordens (neste caso, a ordem é sobrecarregar um servidor). A diferença é que os manifestantes do Anonymous em geral fizeram eles mesmos que seus próprios computadores participassem do protesto.</p>
<p>A comparação mais adequada seria com as multidões que foram, em dezembro de 2010, protestar diantes das lojas da Topshop (cadeia de varejo de moda no Reino Unido). Aquelas pessoas não invadiram as lojas e nem subtraíram dali nenhuma mercadoria, mas certamente provocaram um grande inconveniente.</p>
<p>Eu não gostaria nem um pouco se minha loja (supondo que eu tivesse uma) fosse alvo de um protesto de grandes proporções. A Amazon e a MasterCard tiveram uma reação parecida, e seus clientes ficaram irritados. As pessoas que tinham a intenção de fazer uma compra na Topshop naquele dia também devem ter ficado incomodadas.</p>
<p>A internet não pode funcionar se os sites forem constantemente bloqueados por multidões, assim como uma cidade não funciona se suas ruas estiverem sempre tomadas por protestos. Mas, antes de declarar seu apoio à repressão dos protestos na internet, pense no motivo de tais protestos: na internet, os usuários não têm direitos.</p>
<p>Como ficou claramente demonstrado no caso do WikiLeaks, devemos suportar sozinhos as consequências daquilo que fazemos na rede.</p>
<p>No mundo físico, temos o direito de publicar e vender livros. Quem quiser impedir a publicação do livro tem de levar o caso a um tribunal. Para criar um site na rede, porém, precisamos da cooperação de uma empresa de concessão de domínios, de um provedor de acesso à internet (ISP) e, com frequência, de uma empresa de hospedagem, e cada um desses elos pode ser individualmente pressionado a cortar o nosso acesso.</p>
<p>Nos Estados Unidos, nenhuma lei exige explicitamente tal precariedade. Em vez disso, ela está encarnada nos contratos que essas empresas estabeleceram como normais, com o nosso consentimento. É como se todos nós morássemos em quartos alugados e os senhorios pudessem despejar qualquer um sem notificação prévia.</p>
<p>A leitura também é feita apesar das consequências. No mundo físico, podemos comprar um livro de maneira anônima, usando dinheiro. Uma vez que ele nos pertença, temos a liberdade de oferecê-lo como presente, emprestá-lo ou vendê-lo a outra pessoa. Temos também a liberdade de guardá-lo. Entretanto, no mundo virtual, os e-readers têm algemas travas digitais que impedem o usuário de oferecer como presente, emprestar ou vender um livro, além das licenças que proíbem tal prática. Em 2009, a Amazon usou as portas dos fundos de seu e-reader para apagar remotamente milhares de cópias de 1984, de George Orwell, de aparelhos Kindle. O Ministério da Verdade foi privatizado.</p>
<p>No mundo físico, temos o direito de pagar em dinheiro e receber em dinheiro &#8212; mesmo de modo anônimo. Na internet, só podemos receber dinheiro com a aprovação de organizações como PayPal e MasterCard, e o Estado de vigilância rastreia os pagamentos a todo instante. Leis como a Ata da Economia Digital, que castigam os acusados antes de serem confirmadas as suspeitas, estendem esse padrão de precariedade à conectividade com a internet.</p>
<p>Por meio dos softwares não-livres, aquilo que você faz em seu próprio computador também é controlado pelos outros.</p>
<p>Os sistemas da Microsoft e da Apple contam com algemas digitais &#8212; recursos projetados especificamente para restringir a liberdade de ação dos usuários. O uso contínuo de um programa ou recurso também é precário: a Apple manteve uma porta dos fundos no iPhone para poder apagar remotamente aplicativos instalados. Uma porta dos fundos observada no Windows permite que a Microsoft instale alterações no software sem pedir permissão.</p>
<p>Dei início ao movimento do software livre com o objetivo de substituir o software proprietário que controla o usuário por programas que respeitem a liberdade. Com o software livre, podemos ao menos controlar aquilo que os programas fazem em nossos próprios computadores. O programa LOIC, usado pelos manifestantes do Anonymous, é um software livre; em particular, os usuários podem ler seu código fonte e alterá-lo, impossibilitando assim que ele imponha recursos maliciosos como fazem Windows e MacOS.</p>
<p>O Estado americano atual é um nexo de poder para os interesses corporativos. Como ele precisa fingir que serve ao povo, este Estado teme que a verdade seja revelada. Daí decorrem suas campanhas paralelas contra o WikiLeaks: as tentativas de esmagá-lo por meio da precariedade da internet e limitar formalmente a liberdade da imprensa.</p>
<p>Desconectar o WikiLeaks equivale a sitiar manifestantes em uma praça. Ataques preventivos da polícia provocam uma reação; então eles usam os pequenos delitos das pessoas enfurecidas para afastar a atenção dos grandes delitos do Estado. Assim, a Grã-Bretanha deteve o manifestante que se pendurou de uma bandeira, mas não o homem (supostamente um policial) que rachou o crânio de um estudante. Da mesma maneira, os Estados tentam aprisionar os manifestantes do Anonymous, e não os torturadores e assassinos que trabalham para o poder.</p>
<p>No dia em que nossos governos processarem os criminosos de guerra e nos contarem a verdade, o controle das multidões na internet será o mais urgente dos problemas que nos restarão. Será um regozijo se eu testemunhar a chegada deste dia. </p>
<p><small><strong>Tradução:</strong> <a href="http://blogs.estadao.com.br/link/ataque-nao-protesto/">Augusto Calil</a> (um pouco modificada, porque acredito que o tradutor confundiu software livre com software gratuito em alguns pontos)</small></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=CXlH43hykXA:6hA9Arce7oo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=CXlH43hykXA:6hA9Arce7oo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=CXlH43hykXA:6hA9Arce7oo:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=CXlH43hykXA:6hA9Arce7oo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=CXlH43hykXA:6hA9Arce7oo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=CXlH43hykXA:6hA9Arce7oo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=CXlH43hykXA:6hA9Arce7oo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=CXlH43hykXA:6hA9Arce7oo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/CXlH43hykXA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/ataque-nao-protesto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/ataque-nao-protesto/</feedburner:origLink></item>
		<item>
		<title>A palestra do Chris Hofmann (Mozilla) e outros destaques do 2º dia do 12º FISL</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/WnPCbd8jWX0/</link>
		<comments>http://blog.tiagomadeira.com/a-palestra-do-chris-hofmann-mozilla-e-outros-destaques-do-2%c2%ba-dia-do-12%c2%ba-fisl/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 05:15:23 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[Pensamentos aleatórios]]></category>
		<category><![CDATA[compartilhamento]]></category>
		<category><![CDATA[comunidade]]></category>
		<category><![CDATA[fórum internacional do software livre]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[fisl]]></category>
		<category><![CDATA[governo]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[privacidade]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=844</guid>
		<description><![CDATA[A palestra do Chris Hofmann, da Mozilla Foundation, superou minhas expectativas. Acho que não esperava muito por causa de traumas com gringos que vem falar em nome de programas grandes/populares e acabam decepcionando. Mas é claro que com a Mozilla tinha que ser diferente. Chris contou a história do Firefox justificando a necessidade de sua <a href='http://blog.tiagomadeira.com/a-palestra-do-chris-hofmann-mozilla-e-outros-destaques-do-2%c2%ba-dia-do-12%c2%ba-fisl/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>A palestra do Chris Hofmann, da Mozilla Foundation, superou minhas expectativas. Acho que não esperava muito por causa de traumas com gringos que vem falar em nome de programas grandes/populares e acabam decepcionando. Mas é claro que com a Mozilla tinha que ser diferente. Chris contou a história do Firefox justificando a necessidade de sua existência desde que foi criado (época em que o Internet Explorer representava mais de 95% dos navegadores e parecia impossível inovar a web) até hoje, quando as empresas (e os navegadores escritos por elas) cada vez mais ignoram a privacidade de seus usuários. Comprovou esse ponto com duas citações, uma do CEO do Google e outra do CEO do Facebook (Eric Schmidt e Mark Zuckerberg, respectivamente), que mostravam seu total desprezo pelos dados que compartilhamos nesses sites.</p>
<p>Prosseguindo nesse sentido, ele fez o paralelo entre uma proposta do congresso dos Estados Unidos em 2001 (que propunha que o governo controlasse e-mails, documentos, cartão de crédito e sites acessados pelos usuários) com o Google de hoje (Google Mail, Google Docs, Google Checkout, Google Analytics &#8212; <em>respectivamente</em>). A partir daí, falou do funcionamento do Firefox Sync, que, diferentemente do sincronizador do Chrome, criptografa as informações antes de mandar para o servidor (portanto, deixando a Mozilla sem acesso aos dados dos usuários) e também fez um apelo para que usemos a checkbox <em>&#8220;I do not want my data to be tracked&#8221;</em> dos novos Firefox para que ao menos mandemos uma mensagem para os sites dizendo que não estamos de acordo com a forma como elas estão nos vigiando nesses tempos. Sua fala foi um bom complemento ao que o Alexandre Oliva (da <a href="http://www.fsf.org/">Free Software Foundation</a>) <a href="http://blog.tiagomadeira.com/destaques-do-1º-dia-do-12º-forum-internacional-do-software-livre/">colocou ontem</a>, sobre a violação de privacidade que tem aumentado muito também nos sistemas operacionais de telefones celulares.</p>
<p>Chris concluiu agradecendo e incentivando os presentes a continuar espalhando o Firefox ajudando seus parentes e amigos a migrarem, usando versões beta, reportando bugs, ajudando com traduções e se envolvendo mais com a comunidade Mozilla.</p>
<h3>Outros destaques, curiosidades e citações aleatórias</h3>
<ol>
<li>O Irmão Pedro Ost definiu <strong>software livre</strong> de uma forma legal: <em>&#8220;Em vez de eu me adaptar ao programa que vem, o programa tem que se adaptar à minha realidade.&#8221;</em></li>
<li>Jacob Appelbaum falaria sobre o projeto Tor e sobre censura na internet. Provavelmente teria sido uma palestra interessantíssima &#8212; eu esperava que fosse uma das melhores deste FISL, ainda mais pelas coisas recentes que aconteceram no mundo &#8211;, mas infelizmente seu avião atrasou. Por conta disso, Jeremy Allison, do Samba e do Google, fez uma palestra sugerindo cloud computing para substituir sistemas de arquivos em rede (NFS, Samba). Eles seriam baseados em busca (no lugar de sistemas de arquivos baseados em árvores de diretórios). A ideia de basear sistemas de arquivos em buscas é divertida, mas a sugestão de manter seus dados longe é preocupante, ainda mais vinda de um funcionário do Google.</li>
<li>Esperava muito mais da mesa sobre ética hacker com Sérgio Amadeu, Alexandre Oliva e Nelson Pretto. Pelos nomes e pelo tema, esperava que fosse um dos grandes eventos deste FISL, mas não foi nada demais. Uma fala curiosa do Sérgio: <em>&#8220;O hacker é um individualista, mas não é o individualista que a cultura de massa criou. É um individualista colaborativo. Se realiza quando consegue enfrentar o desafio e compartilhar com os outros.&#8221;</em></li>
<li>Foi bastante interessante a palestra do Deivi Lopes Kuhn sobre software livre no governo federal. Anotei algumas coisas e vou deixar pra sistematizar e publicar comentários em breve, num post a parte (devido à densidade do conteúdo).</li>
</ol>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=WnPCbd8jWX0:TOtVwkMGqFI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=WnPCbd8jWX0:TOtVwkMGqFI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=WnPCbd8jWX0:TOtVwkMGqFI:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=WnPCbd8jWX0:TOtVwkMGqFI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=WnPCbd8jWX0:TOtVwkMGqFI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=WnPCbd8jWX0:TOtVwkMGqFI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=WnPCbd8jWX0:TOtVwkMGqFI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=WnPCbd8jWX0:TOtVwkMGqFI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/WnPCbd8jWX0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/a-palestra-do-chris-hofmann-mozilla-e-outros-destaques-do-2%c2%ba-dia-do-12%c2%ba-fisl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/a-palestra-do-chris-hofmann-mozilla-e-outros-destaques-do-2%c2%ba-dia-do-12%c2%ba-fisl/</feedburner:origLink></item>
		<item>
		<title>Destaques do 1º dia do 12º Fórum Internacional do Software Livre</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/UU-YD7v611M/</link>
		<comments>http://blog.tiagomadeira.com/destaques-do-1%c2%ba-dia-do-12%c2%ba-forum-internacional-do-software-livre/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 02:49:10 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[Pensamentos aleatórios]]></category>
		<category><![CDATA[autonomia]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[fórum internacional do software livre]]></category>
		<category><![CDATA[fisl]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[free software foundation]]></category>
		<category><![CDATA[fsf]]></category>
		<category><![CDATA[gnash]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[governo]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[porto alegre]]></category>
		<category><![CDATA[privacidade]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=834</guid>
		<description><![CDATA[Seguem alguns registros aleatórios do que vi no primeiro dia (29/06) deste FISL em Porto Alegre. Software livre &#8220;Debater software livre não é discutir trocar Windows pra Linux. Isso é o de menos. Debater, e mais importante, militar pelo software livre, é criar redes para transformar o mundo.&#8221; (Wilkens Lenon) &#8220;A liberdade de software não <a href='http://blog.tiagomadeira.com/destaques-do-1%c2%ba-dia-do-12%c2%ba-forum-internacional-do-software-livre/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Seguem alguns registros aleatórios do que vi no primeiro dia (29/06) deste FISL em Porto Alegre.</p>
<h3>Software livre</h3>
<p><em>&#8220;Debater software livre não é discutir trocar Windows pra Linux. Isso é o de menos. Debater, e mais importante, militar pelo software livre, é criar redes para transformar o mundo.&#8221;</em></p>
<p>(Wilkens Lenon)</p>
<p><em>&#8220;A liberdade de software não é útil só pra quem escreve o programa, mas para todos, da mesma forma que a liberdade de imprensa não é útil só pra quem escreve, mas pra todos, porque você pode escolher o que escutar (ou o que usar).&#8221;</em></p>
<p>(Alexandre Oliva)</p>
<h3>Cloud computing</h3>
<p><em>&#8220;Onde há nuvem há tempestade. Computação em nuvem é pior do que computação privativa porque você não tem nenhuma das quatro liberdades. Mais que isso: além de não ter acesso ao programa, você não tem acesso aos seus dados.&#8221;</em></p>
<p>(Alexandre Oliva)</p>
<p><em>&#8220;Software livre rodando na nuvem é tão maléfico quanto software proprietário rodando na nuvem.&#8221;</em></p>
<p>(Rodrigo R. Silva)</p>
<h3>Sobre Flash</h3>
<p><em>&#8220;O Gnash é uma máquina virtual. O Gnash não é solução, nem que funcione. A solução é não precisar rodar uma aplicação alienígena no seu computador para assistir um vídeo.&#8221;</em></p>
<p>(Felipe Sanches)</p>
<h3>Formatos fechados</h3>
<p><em>&#8220;Delimitam, controlam, bloqueiam, aprisionam e criam dependência. Documentos não são como blocos de papel: daqui a 10 anos eu consigo ler o que está escrito num papel, mas dependo de uma empresa pra conseguir ler um formato fechado.&#8221;</em></p>
<p>(Sérgio Amadeu)</p>
<h3>Além das citações</h3>
<ol>
<li>Numa mesa sobre <em>educação e inclusão digital</em>, Sady Jacques mencionou que seria interessante ter fundamentos de ciência da computação nas escolas. É algo que eu acho muito importante e, entre o pessoal de OBI/Maratona, discutimos com frequência. Surgiu a ideia de lançar um abaixo-assinado.</li>
<li>No <em>Encontro de Hackers GNU+Linux-libre</em>, foi discutida a importância de termos firmwares livres. Recomendou-se enviar e-mails para as empresas cobrando o código dos firmwares.</li>
<li>Na <em>audiência pública com Tarso Genro</em>, Alexandre Oliva citou por minutos problemas que governos e pessoas tiveram confiando em software proprietário. São bons exemplos para habituais discussões. Não lembro de todos, mas aqui vão alguns: a guerra entre Argentina e Inglaterra em que os mísseis (comprados da França) não funcionavam contra navios ingleses; a Microsoft ter usado criptografia com apenas 40 bits nos computadores dos usuários durante anos, permitindo que o governo americano descriptografasse o que os usuários de Windows faziam; recentemente espionando conversas no Skype; o Gmail ter um backdoor para o governo dos EUA (que China usou para invadir recentemente); a Sony processando pessoas que descobriram como usar um computador para instalar o que quisessem nele (o Playstation 3); a Nintendo destruindo videogames a distância; a Amazon deletando e-books do Kindle a distância (ironicamente, o livro 1984); o iPhone e o Android anotando todos os lugares por onde o usuário passa junto com informações sobre redes sem fio e mandando para a Apple / o Google; o celular distribuído para crianças com câmera acionada pela sua escola.</li>
<li>Na mesma audiência, Sérgio Amadeu falou da importância que tem os governos abrirem seus bancos de dados e todas as informações que têm em formato aberto e em redes P2P, sugerindo uma democracia radical em que todos os usuários da internet possam baixar rápido e processar as informações (<em>data mining</em>), de forma que grupos organizados (e desorganizados) possam controlar gastos e decisões públicas. Ideia interessante. Outras ideias interessantes da mesma fala, para pensar mais a respeito: analogia entre rede elétrica e a internet (alguém controla se você liga um liquidificador ou um chuveiro?); recursos educacionais abertos (professores remixam o material que usam); biotecnologia de garagem (nunca escrevi ou pesquisei muito sobre o tema, que é uma aplicação legal da cultura hacker fora do computador).</li>
</ol>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=UU-YD7v611M:0xqLQeAcXGc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=UU-YD7v611M:0xqLQeAcXGc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=UU-YD7v611M:0xqLQeAcXGc:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=UU-YD7v611M:0xqLQeAcXGc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=UU-YD7v611M:0xqLQeAcXGc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=UU-YD7v611M:0xqLQeAcXGc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=UU-YD7v611M:0xqLQeAcXGc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=UU-YD7v611M:0xqLQeAcXGc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/UU-YD7v611M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/destaques-do-1%c2%ba-dia-do-12%c2%ba-forum-internacional-do-software-livre/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/destaques-do-1%c2%ba-dia-do-12%c2%ba-forum-internacional-do-software-livre/</feedburner:origLink></item>
		<item>
		<title>Depoimento de Eduardo Galeano na Espanha</title>
		<link>http://feedproxy.google.com/~r/tiagomadeira/~3/pgS9oseAetw/</link>
		<comments>http://blog.tiagomadeira.com/depoimento-de-eduardo-galeano-na-espanha/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 17:29:24 +0000</pubDate>
		<dc:creator>Tiago Madeira</dc:creator>
				<category><![CDATA[Pensamentos aleatórios]]></category>
		<category><![CDATA[democracia]]></category>
		<category><![CDATA[eduardo galeano]]></category>
		<category><![CDATA[espanha]]></category>
		<category><![CDATA[política]]></category>
		<category><![CDATA[revolução]]></category>

		<guid isPermaLink="false">http://blog.tiagomadeira.com/?p=827</guid>
		<description><![CDATA[(em espanhol, com legenda em português) http://www.youtube.com/watch?v=mdY64TdriJk]]></description>
			<content:encoded><![CDATA[<p>(em espanhol, com legenda em português)</p>
<p style="text-align:center;"><iframe width="450" height="256" src="https://www.youtube.com/embed/mdY64TdriJk" frameborder="0" allowfullscreen></iframe><br /><small><a href="http://www.youtube.com/watch?v=mdY64TdriJk">http://www.youtube.com/watch?v=mdY64TdriJk</a></small></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=pgS9oseAetw:fElsyAnurY4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=pgS9oseAetw:fElsyAnurY4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=pgS9oseAetw:fElsyAnurY4:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=pgS9oseAetw:fElsyAnurY4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=pgS9oseAetw:fElsyAnurY4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?i=pgS9oseAetw:fElsyAnurY4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=pgS9oseAetw:fElsyAnurY4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tiagomadeira?a=pgS9oseAetw:fElsyAnurY4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/tiagomadeira?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tiagomadeira/~4/pgS9oseAetw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.tiagomadeira.com/depoimento-de-eduardo-galeano-na-espanha/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.tiagomadeira.com/depoimento-de-eduardo-galeano-na-espanha/</feedburner:origLink></item>
	</channel>
</rss>

