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

<channel>
	<title>coding &#187; unifei</title>
	<atom:link href="http://www.coding.com.br/tag/unifei/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coding.com.br</link>
	<description>have you coded today?</description>
	<lastBuildDate>Fri, 23 Jul 2010 02:37:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Calourada Livre 2010</title>
		<link>http://www.coding.com.br/unifei/calourada-livre-2010/</link>
		<comments>http://www.coding.com.br/unifei/calourada-livre-2010/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 22:39:30 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[unifei]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[software livre]]></category>

		<guid isPermaLink="false">http://www.coding.com.br/?p=775</guid>
		<description><![CDATA[Este ano pensei minha apresentação no Calourada Livre como uma série de &#8220;dicas&#8221; para os bixos aprenderem sobre Software Livre ainda na graduação, associando quando possível as matérias oferecidas no curso.
 
Slides: http://www.slideshare.net/maluta/calourada2010
:wq
]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Este ano pensei minha apresentação no Calourada Livre como uma série de &#8220;dicas&#8221; para os bixos aprenderem sobre Software Livre ainda na graduação, associando quando possível as matérias oferecidas no curso.</p>
<p style="text-align: justify;"><em> </em></p>
<p style="text-align: center;">Slides: <a title="Slides da minha apresentação no Calourada Livre realizado esta semana na Universidade Federal de Itajubá." href="http://www.slideshare.net/maluta/calourada2010" target="_blank">http://www.slideshare.net/maluta/calourada2010</a></p>
<p>:wq</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coding.com.br/unifei/calourada-livre-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter @hashunifei</title>
		<link>http://www.coding.com.br/programacao/twitter-hashunifei/</link>
		<comments>http://www.coding.com.br/programacao/twitter-hashunifei/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 04:37:12 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[programação]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[unifei]]></category>

		<guid isPermaLink="false">http://www.coding.com.br/?p=570</guid>
		<description><![CDATA[
Sempre tive curiosidade de fazer um agregador para o Twitter, ou seja, criar um usuário que fizesse o retwitt de todos os termos que aparecem sobre determinada palavra. Para fazer um teste resolvi criar um usuário chamado @hashunifei que irá agregar o que pessoal escrever sobre a UNIFEI (Universidade Federal de Itajubá) incluindo o nome antigo [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">
Sempre tive curiosidade de fazer um agregador para o Twitter, ou seja, criar um usuário que fizesse o <em>retwitt</em> de todos os termos que aparecem sobre determinada palavra. Para fazer um teste resolvi criar um usuário chamado <a href="http://www.twitter.com/hashunifei">@hashunifei</a> que irá agregar o que pessoal escrever sobre a <a href="http://www.unifei.edu.br">UNIFEI</a> (Universidade Federal de Itajubá) incluindo o nome antigo <img src='http://www.coding.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Seguindo a filosofia <em>code less, create more</em> decidi fazer um <em>script</em> em Python que acessa a <a href="http://apiwiki.twitter.com/">API</a> do Twitter. Depois só configurar algum agendador de tarefas (ex.: <a href="http://en.wikipedia.org/wiki/Cron">cron</a>) para executar o programa de tempos em tempos. Para evitar que a cada busca os mesmos <em>twitts</em> sejam publicados há um arquivo chamado <em>.hashunifei</em> que grava o número de identificação (id) das mensagens publicadas.
</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
<span style="color: #808080; font-style: italic;"># Tiago Maluta &lt;maluta@unifei.edu.br&gt; </span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> simplejson, <span style="color: #dc143c;">urllib</span>
<span style="color: #ff7700;font-weight:bold;">import</span> twitter 
&nbsp;
list_id = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
api = twitter.<span style="color: black;">Api</span><span style="color: black;">&#40;</span>username=<span style="color: #483d8b;">'USUARIO'</span>, password=<span style="color: #483d8b;">'SENHA'</span><span style="color: black;">&#41;</span>
&nbsp;
SEARCH_BASE = <span style="color: #483d8b;">'http://search.twitter.com/'</span>
url = SEARCH_BASE + <span style="color: #483d8b;">&quot;search.json?q=UNIFEI+OR+efei&quot;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> publish<span style="color: black;">&#40;</span><span style="color: #dc143c;">user</span>,text<span style="color: black;">&#41;</span>:
	twitt = <span style="color: #483d8b;">&quot;RT @&quot;</span>+<span style="color: #dc143c;">user</span>+<span style="color: #483d8b;">&quot; &quot;</span>+text
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>twitt<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #ff4500;">140</span>:
		twitt = twitt<span style="color: black;">&#91;</span>:<span style="color: #ff4500;">140</span><span style="color: black;">&#93;</span>
	api.<span style="color: black;">PostUpdates</span><span style="color: black;">&#40;</span>twitt<span style="color: black;">&#41;</span>
&nbsp;
result = simplejson.<span style="color: black;">load</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">urllib</span>.<span style="color: black;">urlopen</span><span style="color: black;">&#40;</span>url<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'results'</span><span style="color: black;">&#93;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">with</span> <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;.hashunifei&quot;</span>,<span style="color: #483d8b;">&quot;r+&quot;</span><span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">as</span> f:
    data = f.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    list_id = data.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;,&quot;</span><span style="color: black;">&#41;</span> 
&nbsp;
f = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;.hashunifei&quot;</span>,<span style="color: #483d8b;">&quot;a&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">for</span> twitt <span style="color: #ff7700;font-weight:bold;">in</span> result:
&nbsp;
	text = twitt<span style="color: black;">&#91;</span><span style="color: #483d8b;">'text'</span><span style="color: black;">&#93;</span>
	<span style="color: #dc143c;">user</span> = twitt<span style="color: black;">&#91;</span><span style="color: #483d8b;">'from_user'</span><span style="color: black;">&#93;</span>
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">user</span> <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">&quot;hashunifei&quot;</span>:
		<span style="color: #008000;">id</span> = <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>twitt<span style="color: black;">&#91;</span><span style="color: #483d8b;">'id'</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">id</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #ff7700;font-weight:bold;">in</span> list_id:	
			list_id.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #008000;">id</span><span style="color: black;">&#41;</span>
			f.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #008000;">id</span>+<span style="color: #483d8b;">','</span><span style="color: black;">&#41;</span>
			publish<span style="color: black;">&#40;</span><span style="color: #dc143c;">user</span>,text<span style="color: black;">&#41;</span>
f.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Se quiser testar o código-fonte (lembre-se de mudar o usuário e senha e a palavra da busca)</p>
<blockquote><p>
$ touch .hashunifei<br />
$ wget <a href="http://github.com/maluta/junk/raw/master/hashunifei.py">http://github.com/maluta/junk/raw/master/hashunifei.py</a>
</p></blockquote>
<p>Limitações: A mensagem é truncada em 140 caracteres (limite do twitter). </p>
<p>Eu sinceramente não sei se é assim que o pessoal faz, foi a primeira idéia que tive&#8230;, se o pessoal que entende de <em>web</em> quiser colaborar seria ótimo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coding.com.br/programacao/twitter-hashunifei/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Salvando o ensino de engenharia</title>
		<link>http://www.coding.com.br/blog/salvando-o-ensino-de-engenharia/</link>
		<comments>http://www.coding.com.br/blog/salvando-o-ensino-de-engenharia/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 18:10:05 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[unifei]]></category>

		<guid isPermaLink="false">http://www.coding.com.br/?p=64</guid>
		<description><![CDATA[
Fiz a tradução do artigo Climbing the Pyramid &#8211; Saving Engineering Education publicado no FPGA and Structured ASIC Journal. Que faz uma breve análise da engenharia destes &#8220;novos tempos&#8221;.
download (pdf)
]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="aligncenter size-full wp-image-65" title="Engenharia" src="http://www.coding.com.br/wp-content/uploads/2009/07/engenharia.png" alt="Engenharia" width="475" height="336" /><a title="Salvando o ensino de engenharia" href="http://www.coding.com.br/wp-content/uploads/2009/07/salvando_o_ensino_de_engenharia.pdf" target="_blank"></a></p>
<p style="text-align: justify;">Fiz a tradução do artigo <em><a title="Climbing the Pyramid " href="http://www.fpgajournal.com/articles_2009/20090616_pyramid.htm" target="_blank">Climbing the Pyramid</a> &#8211; <span>Saving Engineering Education </span></em><span>publicado no <em>FPGA and Structured ASIC Journal. </em></span>Que faz uma breve análise da engenharia destes &#8220;novos tempos&#8221;.</p>
<p style="text-align: center;"><a title="Salvando o ensino de engenharia" href="http://www.coding.com.br/wp-content/uploads/2009/07/salvando_o_ensino_de_engenharia.pdf" target="_blank">download</a> (pdf)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coding.com.br/blog/salvando-o-ensino-de-engenharia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erro no Portal Academico Unifei</title>
		<link>http://www.coding.com.br/unifei/erro-no-portal-academico-unifei/</link>
		<comments>http://www.coding.com.br/unifei/erro-no-portal-academico-unifei/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 23:22:37 +0000</pubDate>
		<dc:creator>Celso Fernandes</dc:creator>
				<category><![CDATA[unifei]]></category>

		<guid isPermaLink="false">http://www.coding.com.br/?p=18</guid>
		<description><![CDATA[Erro no sistema acadêmico da Universidade Federal de Itajubá]]></description>
			<content:encoded><![CDATA[<p>Noite de domingo, vou checar minhas notas no sistemas acadêmico da universidade quando&#8230;</p>
<div id="attachment_19" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.coding.com.br/wp-content/uploads/2009/06/portalacademico_shot.png"><img class="size-medium wp-image-19" title="Erro no Portal Acadêmico da Unifei" src="http://www.coding.com.br/wp-content/uploads/2009/06/portalacademico_shot-300x176.png" alt="Erro no Portal Acadêmico da Unifei" width="300" height="176" /></a><p class="wp-caption-text">Erro no Portal Acadêmico da Unifei</p></div>
<p style="text-align: right;">acesso dia 28/06/2009 as 20:05</p>
<p>é, no space left on device.. armazenamento ta caro hoje em dia.. isso porque nem é época de matrícula (ou será que domingo a noite da pico de acesso no sistema?!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coding.com.br/unifei/erro-no-portal-academico-unifei/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
