<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>.::Escovando Bits::. &#187; unifei</title>
	<atom:link href="http://escovandobits.wordpress.com/tag/unifei/feed/" rel="self" type="application/rss+xml" />
	<link>http://escovandobits.wordpress.com</link>
	<description>Programação, Linux, tecnologia da informação, dicas, artigos</description>
	<lastBuildDate>Sun, 05 Jul 2009 15:42:47 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='escovandobits.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/ac8d2c79730f1bc1a6ebab006a3670da?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>.::Escovando Bits::. &#187; unifei</title>
		<link>http://escovandobits.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://escovandobits.wordpress.com/osd.xml" title=".::Escovando Bits::." />
		<item>
		<title>Motorola 6800 &#8211; Divisão Inteira</title>
		<link>http://escovandobits.wordpress.com/2009/04/05/motorola-6800-divisao-inteira/</link>
		<comments>http://escovandobits.wordpress.com/2009/04/05/motorola-6800-divisao-inteira/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 14:25:11 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[programação]]></category>
		<category><![CDATA[6800]]></category>
		<category><![CDATA[efei]]></category>
		<category><![CDATA[microprocessadores]]></category>
		<category><![CDATA[unifei]]></category>

		<guid isPermaLink="false">http://escovandobits.wordpress.com/?p=322</guid>
		<description><![CDATA[O Motorola 6800 não possui uma instrução específica para divisão de dois números. Uma solução simples é fazer a divisão através de múltiplas subtrações. Contudo, podemos pensar mecanismos mais eficientes. Uma solução  esta descrita no código-abaixo. Esse algoritmo é mais eficiente na maiora dos casos, pois com apenas 8 deslocamentos efetua a divisão de dois [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=322&subd=escovandobits&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:justify;">O <a href="http://en.wikipedia.org/wiki/Motorola_6800" target="_blank">Motorola 6800</a> não possui uma instrução específica para divisão de dois números. Uma solução simples é fazer a divisão através de múltiplas subtrações. Contudo, podemos pensar mecanismos mais eficientes. Uma solução  esta descrita no código-abaixo. Esse algoritmo é mais eficiente na maiora dos casos, pois com apenas 8 deslocamentos efetua a divisão de dois números de 8 bits.</p>
<p style="text-align:justify;"><span id="more-322"></span>O primeiro caso é quando temos números absolutos.</p>
<pre style="text-align:justify;">                <strong>LDAA</strong> Divisor       
<strong>                BEQ</strong> __end       <span style="color:#ff0000;"> ; caso Divisor = 0</span>

               <span style="color:#ff0000;"> ; o contador ira deslocar 8 vezes,
                ; mas como já começo decrementando
                ; carrego com 9.</span>

                <strong>LDAA</strong> #$09      
                <strong>STAA</strong> Contador
                <strong>CLRA</strong>
                <strong>BRA</strong> <span style="color:#0000ff;">loop_div</span>

<span style="color:#0000ff;">empurra_zero:</span>   <strong>ASL</strong> Resposta  

<span style="color:#0000ff;">loop_div:</span>       <strong>DEC</strong> Contador  <span style="color:#ff0000;">; decrementa contador</span>
                <strong>BEQ</strong> <span style="color:#0000ff;">__end</span>

                <strong>ASL</strong> Dividendo <span style="color:#ff0000;">; desloca o dividendo p/ Carry</span>
                <strong>ROLA</strong>          <span style="color:#ff0000;">; desloga do Carry p/ ACCA</span>
                <strong>CMPA</strong> Divisor  <span style="color:#ff0000;">;</span><span style="color:#ff0000;"> Acumulador - Dividor &gt; 0</span>

                <strong>BCS</strong> <span style="color:#0000ff;">empurra_zero</span>

                <strong>SEC</strong>           <span style="color:#ff0000;">; set carry </span>
                <strong>ROL</strong> Resposta  <span style="color:#ff0000;">; empurra '1' na resposta</span>
                <strong>SUBA</strong> Divisor
                <strong>BRA</strong> <span style="color:#0000ff;">loop_div</span>

<span style="color:#0000ff;">__end</span>:          <strong>NOP</strong></pre>
<p style="text-align:justify;">Se os números forem sinalizados precisamos considerar isso na conta, portanto antes de dividir o número devemos verificar seu sinal. O código abaixo utiliza duas posições de memória para o sinal do número.  No final é feito uma OU-Exclusivo para definir qual sinal da resposta.</p>
<pre>            <strong>CLR</strong> Neg_Divisor
            <strong>CLR</strong> Neg_Dividendo               <strong>
            LDAA</strong> Divisor
            <strong>BEQ</strong> __end       <span style="color:#ff0000;"> ; caso Divisor = 0</span>
            <strong>BPL</strong> skip

            <strong>NEG</strong> Divisor
            <strong>DEC</strong> Neg_Divisor  <span style="color:#ff0000;">; Neg_Divisor = 1 (0xff)</span>

<span style="color:#0000ff;">skip:</span>       <strong>LDAA</strong> Dividendo
            <strong>BPL</strong> <span style="color:#0000ff;">__div</span>        <span style="color:#ff0000;">; Neg_Dividendo = 1 (0xff)</span>

            <strong>NEG</strong> Dividendo
            <strong>DEC</strong> Neg_Dividendo

         <span style="color:#ff0000;">   ; o contador ira deslocar 8 vezes, mas
            ; como já começo decrementando
            ; carrego com 9.</span>

<span style="color:#0000ff;">__div:</span>          <strong>LDAA</strong> #$09      
                <strong>STAA</strong> Contador
                <strong>CLRA</strong>
                <strong>BRA</strong> <span style="color:#0000ff;">loop_div</span>

<span style="color:#0000ff;">empurra_zero:</span>   <strong>ASL</strong> Resposta  

<span style="color:#0000ff;">loop_div: </span>      <strong>DEC</strong> Contador  <span style="color:#ff0000;"> ; decrementa contador</span>
                <strong>BEQ</strong> <span style="color:#0000ff;">__end</span>

                <strong>ASLA</strong> Dividendo <span style="color:#ff0000;">; desloca o dividendo p/ Carry</span>
                <strong>ROLA</strong>           <span style="color:#ff0000;">; desloga do Carry p/ ACCA</span>
                <strong>CMPA</strong> Divisor   <span style="color:#ff0000;">; Acumulador - Dividor &gt; 0</span>

                <strong>BCS</strong> <span style="color:#0000ff;">empurra_zero</span>

                <strong>SEC</strong>          <span style="color:#ff0000;"> ; set carry </span>
                <strong>ROL</strong> Resposta  <span style="color:#ff0000;">; empurra '1' na resposta</span>
                <strong>SUB</strong> Divisor
                <strong>BRA</strong> <span style="color:#0000ff;">loop_div</span>

<span style="color:#0000ff;">__end:   </span>       <strong>LDAA</strong> Neg_Divisor
                <strong>EORA</strong> Neg_Dividendo 
              <span style="color:#ff0000;">  ; a lógica da XOR garante o estudo dos sinais</span>
                <strong>BPL</strong> <span style="color:#0000ff;">_end</span> 

                <strong>NEG</strong> Resposta          
<span style="color:#0000ff;">_end: </span>         <strong> NOP    </strong></pre>
Posted in programação Tagged: 6800, efei, microprocessadores, unifei <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escovandobits.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escovandobits.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escovandobits.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escovandobits.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escovandobits.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escovandobits.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escovandobits.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escovandobits.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escovandobits.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escovandobits.wordpress.com/322/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=322&subd=escovandobits&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escovandobits.wordpress.com/2009/04/05/motorola-6800-divisao-inteira/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f615d34c675bc325d78631c8077f0187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Tiago Maluta</media:title>
		</media:content>
	</item>
		<item>
		<title>ARM na UNIFEI</title>
		<link>http://escovandobits.wordpress.com/2008/09/20/arm-na-unifei/</link>
		<comments>http://escovandobits.wordpress.com/2008/09/20/arm-na-unifei/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 21:59:04 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[embedded]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[unifei]]></category>

		<guid isPermaLink="false">http://escovandobits.wordpress.com/?p=172</guid>
		<description><![CDATA[A ARM visitou a Universidade Federal de Itajubá no último dia 18 de Setembro. Eles ficaram apenas um dia, no qual dois funcionários &#8211; um engenheiro de aplicações e um engenheiro de design &#8211; falaram sobre alguns temas, tais como: características dos processadores ARM, grupo de instruções, design do sistema, pipelines e um apanhado das [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=172&subd=escovandobits&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:justify;">A ARM visitou a Universidade Federal de Itajubá no último dia 18 de Setembro. Eles ficaram apenas um dia, no qual dois funcionários &#8211; um engenheiro de aplicações e um engenheiro de design &#8211; falaram sobre alguns temas, tais como: características dos processadores ARM, grupo de instruções, <em>design</em> do sistema, <em>pipelines</em> e um apanhado das ferramentas de desenvolvimento.</p>
<div id="attachment_167" class="wp-caption aligncenter" style="width: 310px"><a href="http://escovandobits.files.wordpress.com/2008/09/arm_legenda.jpg"><img class="size-medium wp-image-167" title="arm_legenda" src="http://escovandobits.files.wordpress.com/2008/09/arm_legenda.jpg?w=300&#038;h=226" alt="" width="300" height="226" /></a><p class="wp-caption-text">Joe Bungo</p></div>
<p><span id="more-172"></span></p>
<p style="text-align:justify;">O prof. Dr. Otávio Carpinteiro e eu fomos almoçar com eles. Nesse tempo eu pude fazer algumas perguntas, por exemplo, por que uma unidade JTAG é tão caro? Bill me respondeu que não é necessário utilizar um JTAG de um fabricante específicos. Eu posso usar um JTAG &#8220;<em>feito em casa</em>&#8220;. O alto preço é devido a eletrônica para acelerar a comunicação.</p>
<p style="text-align:justify;">Eu gostaria de enfatizar alguns pontos da apresentação:</p>
<ul>
<li><strong>Grupo de instruções 16-bit Thumb</strong>: uma grande conquista na briga por baixo consumo elétrico.</li>
<li><strong>Jazelle</strong>: permite rodar o bytecode Java direto no processador (todos o processadores ARM com<strong> J</strong> no seu nome utiliza essa característica)</li>
<li><strong>Barrel Shifter</strong>: uma técncia para aperfeiçoar a multiplicação por algumas constantes. (constantes 2^n +- 1 são multiplicadas com um ciclo de clock apenas)</li>
<li><strong>AMBA</strong> (Advanced Microcontroller Bus Architecture): Uma arquitetura de barramento para comunicação muito interessante.</li>
</ul>
<p style="text-align:justify;">Com o objetivo de fomentar outros pontos de vista, recomendo ler um artigo publicado no  site Embedded.com intitulado <a href="http://www.embedded.com/story/OEG20030610S0041" target="_blank">Ten lies about microprocessors</a> (Dez mentiras sobre os processadores) no qual o autor comenta assuntos como consumo de energia e o crescimento do processadores baseados em Java.</p>
<p style="text-align:justify;">O modelo de negócios da ARM é outro ponto interessante. Eles não fabricam os processadores apenas licenciam a propriedade intelectual para um cliente (parceiro ARM) que então produz o <em>chip</em>. Mais informações <span class="ccbnTxt"><a href="http://ir.arm.com/phoenix.zhtml?c=197211&amp;p=irol-homeprofile#business_model" target="_blank">aqui</a> (em inglês).<a href="http://ir.arm.com/phoenix.zhtml?c=197211&amp;p=irol-homeprofile#business_model" target="_blank"><br />
</a></span></p>
<p style="text-align:justify;">
<div id="attachment_164" class="wp-caption aligncenter" style="width: 310px"><a href="http://escovandobits.files.wordpress.com/2008/09/foto_arm_legenda.jpg"><img class="size-medium wp-image-164" title="foto_arm_legenda" src="http://escovandobits.files.wordpress.com/2008/09/foto_arm_legenda.jpg?w=300&#038;h=226" alt="" width="300" height="226" /></a><p class="wp-caption-text">Tiago Maluta, Joe Bungo, Bill, Otávio Carpinteiro</p></div>
<p style="text-align:justify;">Os processadores ARM rodam em muitos dispositivos atuais tais como celulares e dispositivos portáteis para <em>internet</em> (MIDs). Uma curiosidade: na apresentação Joe Bungo arriscou dizer que o <a href="http://www.apple.com/iphone/" target="_blank">iphone</a> roda onze processadores baseados em ARM (bluetooth, wi-fi, etc) <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:justify;">Você pode fazer o download da apresentação <strong><a href="http://escovandobits.files.wordpress.com/2008/09/armwksp.pdf">aqui</a>.</strong></p>
Posted in embedded, eventos Tagged: arm, unifei <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escovandobits.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escovandobits.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escovandobits.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escovandobits.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escovandobits.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escovandobits.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escovandobits.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escovandobits.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escovandobits.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escovandobits.wordpress.com/172/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=172&subd=escovandobits&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escovandobits.wordpress.com/2008/09/20/arm-na-unifei/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f615d34c675bc325d78631c8077f0187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Tiago Maluta</media:title>
		</media:content>

		<media:content url="http://escovandobits.files.wordpress.com/2008/09/arm_legenda.jpg?w=300" medium="image">
			<media:title type="html">arm_legenda</media:title>
		</media:content>

		<media:content url="http://escovandobits.files.wordpress.com/2008/09/foto_arm_legenda.jpg?w=300" medium="image">
			<media:title type="html">foto_arm_legenda</media:title>
		</media:content>
	</item>
		<item>
		<title>ARM at UNIFEI</title>
		<link>http://escovandobits.wordpress.com/2008/09/20/arm-at-unifei/</link>
		<comments>http://escovandobits.wordpress.com/2008/09/20/arm-at-unifei/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 21:58:25 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[embedded]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[unifei]]></category>

		<guid isPermaLink="false">http://escovandobits.wordpress.com/?p=162</guid>
		<description><![CDATA[ARM visited Federal University of Itajuba last September 18th. They stayed only one day where two employees &#8211; one application engineer and other design engineer &#8211; talked about some topics such as: basics of ARM processors, the ARM Instruction Set Architecture, system design, pipelines, and an overview of the development tools.

Prof. Dr. Otavio Carpinteiro and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=162&subd=escovandobits&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:justify;">ARM visited Federal University of Itajuba last September 18th. They stayed only one day where two employees &#8211; one application engineer and other design engineer &#8211; talked about some topics such as: basics of ARM processors, the ARM Instruction Set Architecture, system design, pipelines, and an overview of the development tools.</p>
<div id="attachment_167" class="wp-caption aligncenter" style="width: 310px"><a href="http://escovandobits.files.wordpress.com/2008/09/arm_legenda.jpg"><img class="size-medium wp-image-167" title="arm_legenda" src="http://escovandobits.files.wordpress.com/2008/09/arm_legenda.jpg?w=300&#038;h=226" alt="" width="300" height="226" /></a><p class="wp-caption-text">Joe Bungo</p></div>
<p><span id="more-162"></span></p>
<p style="text-align:justify;">Prof. Dr. Otavio Carpinteiro and I lunched with them. In this time I could ask some questions, for example, why JTAG unit is so expensive? Bill answered that the JTAG from a specific vendor isn&#8217;t really necessary. I can use a <a href="http://en.wikipedia.org/wiki/DIY" target="_blank"><em>home made</em></a> JTAG. The high price comes from electronic circuits to speed up communication.</p>
<p style="text-align:justify;">I&#8217;d like to emphasize some points on presentation:</p>
<ul>
<li><strong>16-bit Thumb Instruction Set</strong>: one great achievement on battle to low power consumptions. Running 16 bits instructions on a 32-bit processor.</li>
<li><strong>Jazelle Cores</strong>: running Java bytecode (all ARM processors with <strong>J</strong> on his name uses this feature)</li>
<li><strong>Barrel Shifter</strong>: to improve multiplication of some constants (constants      2^n +- 1 will be able to be executed in a single cycle guaranteed, some constants can use the barrel shifter and be executed in 2 or 3 cycles).</li>
<li><strong>AMBA</strong> (Advanced Microcontroller Bus Architecture)</li>
</ul>
<p style="text-align:justify;">In order to foment another points of view, I recommend and Embeeded.com article called <a href="http://www.embedded.com/story/OEG20030610S0041" target="_blank">Ten lies about microprocessors</a> where the author comments issues like power consumption and the rising of Java chips.</p>
<p style="text-align:justify;">The ARM business model is another interesting issue. They did not produce silicon but <span class="ccbnTxt">ARM license its <a href="http://en.wikipedia.org/wiki/Intellectual_property" target="_blank">IP</a> (</span><span class="ccbnTxt">intellectual property)</span><span class="ccbnTxt"> to a direct customer (ARM Partner) that produces it. More information <a href="http://ir.arm.com/phoenix.zhtml?c=197211&amp;p=irol-homeprofile#business_model" target="_blank">here</a>.</span></p>
<p style="text-align:justify;">
<div id="attachment_164" class="wp-caption aligncenter" style="width: 310px"><a href="http://escovandobits.files.wordpress.com/2008/09/foto_arm_legenda.jpg"><img class="size-medium wp-image-164" title="foto_arm_legenda" src="http://escovandobits.files.wordpress.com/2008/09/foto_arm_legenda.jpg?w=300&#038;h=226" alt="" width="300" height="226" /></a><p class="wp-caption-text">Tiago Maluta, Joe Bungo, Bill, Otávio Carpinteiro</p></div>
<p style="text-align:justify;">ARM processors runs on a lot of bleeding edge devices such as mobile phones and <a href="http://en.wikipedia.org/wiki/Mobile_Internet_Device" target="_blank">MIDs</a> (Mobile Internet Devices). One curiosity: on presentation Joe Bungo guess that iphone runs eleven ARM-based processor (bluetooth, wi-fi, etc) <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align:justify;">You can <strong>download</strong> the presentation <strong><a href="http://escovandobits.files.wordpress.com/2008/09/armwksp.pdf">here.</a></strong></p>
Posted in embedded, eventos Tagged: arm, unifei <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escovandobits.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escovandobits.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escovandobits.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escovandobits.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escovandobits.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escovandobits.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escovandobits.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escovandobits.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escovandobits.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escovandobits.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=162&subd=escovandobits&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escovandobits.wordpress.com/2008/09/20/arm-at-unifei/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f615d34c675bc325d78631c8077f0187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Tiago Maluta</media:title>
		</media:content>

		<media:content url="http://escovandobits.files.wordpress.com/2008/09/arm_legenda.jpg?w=300" medium="image">
			<media:title type="html">arm_legenda</media:title>
		</media:content>

		<media:content url="http://escovandobits.files.wordpress.com/2008/09/foto_arm_legenda.jpg?w=300" medium="image">
			<media:title type="html">foto_arm_legenda</media:title>
		</media:content>
	</item>
		<item>
		<title>Convertendo o horário do &#8216;Portal Acadêmico&#8217; da UNIFEI para o Google Calendar</title>
		<link>http://escovandobits.wordpress.com/2008/08/05/convertendo-o-horario-do-portal-academico-da-unifei-para-o-google-calendar/</link>
		<comments>http://escovandobits.wordpress.com/2008/08/05/convertendo-o-horario-do-portal-academico-da-unifei-para-o-google-calendar/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 05:59:49 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[programação]]></category>
		<category><![CDATA[unifei]]></category>

		<guid isPermaLink="false">http://escovandobits.wordpress.com/?p=128</guid>
		<description><![CDATA[Na Universidade Federal de Itajubá os alunos de graduação e pós-graduação acessam o regristro acadêmico através do Portal Acadêmico. Dentre as opções, há como acessar o horário em curso. Este post apresenta um pequeno script para converter o horário apresentado na página do Portal Acadêmico no formato utilizado pelo Google Calendar
DOWNLOAD
.Update: A opção de importar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=128&subd=escovandobits&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:justify;">Na <a title="Site da Universidade Federal de Itajubá." href="http://www.unifei.edu.br" target="_blank">Universidade Federal de Itajubá</a> os alunos de <a title="Site da pró-reitoria de graduaçao da UNIFEI." href="http://www.prg.unifei.edu.br" target="_blank">graduação</a> e <a title="Sita da Pró-Reitoria de Pesquisa e Pós-Graduação da UNIFEI" href="http://www.prppg.unifei.edu.br/" target="_blank">pós-graduação</a> acessam o regristro acadêmico através do <a title="Portal Acadêmico" href="http://www.portalacademico.unifei.edu.b" target="_blank">Portal Acadêmico</a>. Dentre as opções, há como acessar o horário em curso. Este <em>post</em> apresenta um pequeno <em>script</em> para converter o horário apresentado na página do Portal Acadêmico no formato utilizado pelo <a title="Google Calendar" href="http://www.google.com/calendar" target="_blank">Google Calendar</a></p>
<p style="text-align:center;"><strong><a title="Download do Programa para Converter o Horário da UNIFEi (formato tar.gz)" href="http://br.geocities.com/maluta_tiago/blog/escovandobits/pycalendar/horario.tar.gz" target="_blank">DOWNLOAD</a></strong></p>
<p style="text-align:justify;"><span style="color:#ff0000;">.<strong>Update</strong>: A opção de importar do Google Calendar não está disponível já alguns dias, portanto não puder fazer mais testes, embora na última versão do código não tenha tido problemas. Se alguém conseguir, por favor, comente.</span></p>
<p><span id="more-128"></span></p>
<p><strong>Observação</strong></p>
<p style="text-align:justify;">Eu fiz e testei esse programa em uma distribuição GNU/Linux (Ubuntu 8.04.1). Acredito que os usuários do Microsoft Windows não terão problemas em executá-lo, contudo problemas podem acontecer. Se houver algum reportem nos comentários ou por email (dentro do código-fonte há meu endereço).</p>
<p><strong>Instalação</strong></p>
<p style="text-align:justify;">O programa utiliza a linguagem Python na sua versão 2.5. Além disso é preciso instalar alguns pacotes adicionais, se você estiver em alguma distribuição baseada no <a title="Distribuições baseadas no Debian" href="http://www.debian.org/misc/children-distros" target="_blank">Debian</a>, utilize:</p>
<p style="padding-left:30px;"># sudo apt-get install python2.5</p>
<p style="padding-left:30px;"># sudo apt-get install python-html5lib</p>
<p style="padding-left:30px;"># sudo apt-get install python-optcomplete</p>
<p style="text-align:justify;">Faça o download do programa. Para ver as opções utilize o parametro -h.</p>
<p style="padding-left:30px;"># python pycalendar.py -h</p>
<p style="padding-left:30px;">
<pre style="padding-left:30px;">Usage: pycalendar [options] FILE</pre>
<pre style="padding-left:60px;">Converts UNIFEI's grade from 'Portal Academico' to Google Calendar (iCal) or a
simple HTML table.</pre>
<pre style="padding-left:30px;">Options:
  --version   show program's version number and exit
  -h, --help  show this help message and exit
  -t, --html  Convert to a simple tabeled HTML file
  -i, --ical  Convert to iCal (Google Calendar format)
<span style="color:#ffffff;">.</span></pre>
<p>Como o Portal Academico possui um mecanismo de usuário/senha + <a title="About CAPTCHA mecanism" href="http://en.wikipedia.org/wiki/CAPTCHA" target="_blank">CAPTCHA</a> portanto é preciso logar no site através do navegador.</p>
<p><a href="http://escovandobits.files.wordpress.com/2008/08/snapshot1.png"><img class="aligncenter size-medium wp-image-133" src="http://escovandobits.files.wordpress.com/2008/08/snapshot1.png?w=300&#038;h=291" alt="" width="300" height="291" /></a></p>
<p style="text-align:justify;">Após o <em>login</em>, acesse o <strong>MENU -&gt; Registro Acadêmico GRADUAÇÃO -&gt; Matrícula: Verificação/Confirmação</strong>.  Com a grade de horário aparencendo na tela, vá na opção <em>File </em>ou Arquivo no <a title="Get Firefox" href="http://www.getfirefox.com" target="_blank">Firefox</a> e escolha a opção <em>Save Page As&#8230;</em> (Salvar Página Como&#8230;).</p>
<p style="text-align:justify;">
<div class="wp-caption aligncenter" style="width: 206px"><a href="http://escovandobits.files.wordpress.com/2008/08/snapshot2.png"><img class="size-medium wp-image-135" src="http://escovandobits.files.wordpress.com/2008/08/snapshot2.png?w=196&#038;h=300" alt="Salvando a página" width="196" height="300" /></a></dt>
</dl>
</div>
<p>Escolha um nome qualquer (se quiser deixe o padrão index.php.html).</p>
<p><strong>Pronto! </strong></p>
<p>Agora é só executar o programa:</p>
<p>Para gerar uma tabela no formato HTML, a saida será o arquivo chamado: &#8220;<strong>horario.html</strong>&#8220;:</p>
<p style="padding-left:30px;"># python pycalendar.py -t index.php.html</p>
<p>Para gerar uma tabela no formato do Google Calendar, a saida será o arquivo chamado &#8220;<strong>horario.ical&#8221;</strong>:</p>
<p style="padding-left:30px;"># python pycalendar.py -i index.php.html</p>
<p><strong>Google Calendar</strong></p>
<div class="mceTemp mceIEcenter">
<dl class="wp-caption aligncenter">
<dt class="wp-caption-dt"><a href="http://escovandobits.files.wordpress.com/2008/08/snapshot4.png"><img class="size-medium wp-image-136" src="http://escovandobits.files.wordpress.com/2008/08/snapshot4.png?w=243&#038;h=142" alt="Criando uma nova agenda" width="243" height="142" /></a><p class="wp-caption-text">Criando uma nova agenda</p></div>
<p>Preenchar os campos necessários, colocando o <span style="text-decoration:underline;">país</span> e <span style="text-decoration:underline;">fuso horário</span> da agenda:</p>
<div id="attachment_137" class="wp-caption aligncenter" style="width: 310px"><a href="http://escovandobits.files.wordpress.com/2008/08/snapshot3.png"><img class="size-medium wp-image-137" src="http://escovandobits.files.wordpress.com/2008/08/snapshot3.png?w=300&#038;h=237" alt="Preenchendo os dados da nova agenda" width="300" height="237" /></a><p class="wp-caption-text">Preenchendo os dados da nova agenda</p></div>
<p style="text-align:justify;">Nas mesmas opções que você selecionou para criar uma nova agenda, marque agora a opção <strong>Importar Agenda</strong>, na Etapa1 selecione o arquivo <strong>horario.ical</strong>, na Etapa 2 escolha o horário na nova agenda e clique em &#8220;Importar&#8221;.</p>
<div id="attachment_139" class="wp-caption aligncenter" style="width: 310px"><a href="http://escovandobits.files.wordpress.com/2008/08/snapshot5.png"><img class="size-medium wp-image-139" src="http://escovandobits.files.wordpress.com/2008/08/snapshot5.png?w=300&#038;h=113" alt="Importando os dados do pycalendar" width="300" height="113" /></a><p class="wp-caption-text">Importando os dados do pycalendar</p></div>
<p>Agora é só aproveitar o seu horário no Google Calendar <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/escovandobits.wordpress.com/128/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/escovandobits.wordpress.com/128/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escovandobits.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escovandobits.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escovandobits.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escovandobits.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escovandobits.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escovandobits.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escovandobits.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escovandobits.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escovandobits.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escovandobits.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=128&subd=escovandobits&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escovandobits.wordpress.com/2008/08/05/convertendo-o-horario-do-portal-academico-da-unifei-para-o-google-calendar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f615d34c675bc325d78631c8077f0187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Tiago Maluta</media:title>
		</media:content>

		<media:content url="http://escovandobits.files.wordpress.com/2008/08/snapshot1.png?w=300" medium="image" />

		<media:content url="http://escovandobits.files.wordpress.com/2008/08/snapshot2.png?w=196" medium="image">
			<media:title type="html">Salvando a página</media:title>
		</media:content>

		<media:content url="http://escovandobits.files.wordpress.com/2008/08/snapshot4.png?w=243" medium="image">
			<media:title type="html">Criando uma nova agenda</media:title>
		</media:content>

		<media:content url="http://escovandobits.files.wordpress.com/2008/08/snapshot3.png?w=300" medium="image">
			<media:title type="html">Preenchendo os dados da nova agenda</media:title>
		</media:content>

		<media:content url="http://escovandobits.files.wordpress.com/2008/08/snapshot5.png?w=300" medium="image">
			<media:title type="html">Importando os dados do pycalendar</media:title>
		</media:content>
	</item>
		<item>
		<title>Facilitando as pesquisas no acervo da BIM-UNIFEI</title>
		<link>http://escovandobits.wordpress.com/2008/03/13/facilitando-as-pesquisas-no-acervo-da-bim-unifei/</link>
		<comments>http://escovandobits.wordpress.com/2008/03/13/facilitando-as-pesquisas-no-acervo-da-bim-unifei/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 16:25:04 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[programação]]></category>
		<category><![CDATA[bim]]></category>
		<category><![CDATA[efei]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[itajuba]]></category>
		<category><![CDATA[opensearch]]></category>
		<category><![CDATA[unifei]]></category>

		<guid isPermaLink="false">http://escovandobits.wordpress.com/?p=51</guid>
		<description><![CDATA[Update: Depois de alguma atualização no sistema da biblioteca esse plugin parou de funcionar. Clique aqui e selecione para instalar versão 2. Essa versão é um remendo pois busca na base de dados integrada do PHL e não apenas na UNIFEI,  para filtrar e resultados digite Ctrl+F &#8220;UNIFEI&#8221;
O Firefox permite uma série de personalizações interessantes, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=51&subd=escovandobits&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p align="justify"><span style="color:#ff0000;">Update: Depois de alguma atualização no sistema da biblioteca esse plugin parou de funcionar. Clique <a href="http://mycroft.mozdev.org/search-engines.html?author=Tiago+Maluta" target="_blank">aqui</a> e selecione para instalar versão 2. Essa versão é um <em>remendo</em> pois busca na base de dados integrada do PHL e não apenas na UNIFEI,  para filtrar e resultados digite Ctrl+F &#8220;UNIFEI&#8221;</span></p>
<p align="justify">O <a title="Get Firefox!" href="http://www.getfirefox.com" target="_blank">Firefox</a> permite uma série de personalizações interessantes, uma delas é a possibilidade de adicionar mecanismos de buscas (<em>search plugin</em>) do lado da barra de endereços.</p>
<p align="center"><img src="http://escovandobits.files.wordpress.com/2008/03/bim.png" alt="Firefox Search Plugin" /></p>
<p>Esse <em>post</em> irá apresentar um exemplo para facilitar as pesquisas no acervo da <a title="Biblioteca Mauá" href="http://www.bim.unifei.edu.br" target="_blank">Biblioteca</a> da Universidade Federal de Itajubá.  Para instalar,  vá até a página de <strong><a title="Download BIM UNIFEI" href="http://mycroft.mozdev.org/developer/devlist.html?email=maluta_tiago%40yahoo.com.br" target="_blank">&lt;&lt; download &gt;&gt;</a></strong> e clique no link <strong>BIM UNIFEI</strong>.</p>
<p align="justify">O resto do post, é uma descrição dos problemas encontrados, então se você não tem interesse pare por aqui.</p>
<p><span id="more-51"></span></p>
<p align="justify">Caso esteja no GNU/Linux, o plugin será instalado no diretório padrão do seu usuário, normalmente definido em: ~/.mozilla/firefox/<span style="color:#ff0000;">9ymqvxal</span>.default/searchplugins (a parte em vermelho provavelmente será diferente). O codigo-fonte encontra-se no arquivo bim-unifei.xml, um arquivo XML, fácil de entender. Já no Microsoft Windows: C:\Documents and Settings\<span style="color:#ff0000;">&lt;usuario&gt;</span>\Dados de aplicativos\Mozilla\Firefox\Profiles\<span style="color:#ff0000;">&lt;sowsjqep&gt;</span>.default\searchplugin. Caso você não encontre nenhum desses diretórios procure pelo nome do arquivo (bim-unifei.xml). Se você quiser testar, brincar com o script: edite, salve e reinicie o Firefox, se não aparecer nada na barra é porque há algum erro, então é preciso abrir o arquivo (pelo Firefox mesmo) e ver a saída.</p>
<p align="left"><strong>Bugs conhecidos</strong></p>
<ul>
<li>
<div><span style="text-decoration:line-through;">Após fazer algumas buscas, percebe-se que ele oculta o texto dos <a href="http://www.echoecho.com/htmlforms10.htm" target="_blank">radiobutton</a> e do <a href="http://www.echoecho.com/htmlforms12.htm" target="_blank">button</a> do formulário HTML.</span> <span style="color:#ff0000;">(Agradecimentos: <a href="http://www.fabioricotta.com/" target="_blank">Fabio Ricotta</a>, que viu que eu não estava passando todos os parâmetros no arquivo XML)</span></div>
</li>
<li>
<div>A página da BIM funciona com frames, ainda não descobri como carregar esses frames no resultado.</div>
</li>
</ul>
<p align="justify">Basicamente estou utilizando a documentação do <a href="http://www.opensearch.org" target="_blank">OpenSearch</a> para estudar. Se você tem alguma dica ou sugestão, não exite em comentar aqui no blog ou enviar fax, carta, e-mail, etc; Ainda considero uma versão de desenvolvimento, pois faltam algumas funcionalidades que acredito serem importantes,  de qualquer forma estou compartilhando para quem quiser. O código-fonte é GPL, então não se preocupe com restrições a sua liberdade em executar, estudar e adaptar, redistribuir, distribuir modificações.</p>
<p align="justify"><strong>Propaganda <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </strong></p>
<p align="justify">Também há como fazer as buscas por livros na Unicamp, com search plugin <a href="http://mycroft.mozdev.org/download.html?name=SBU+UNICAMP&amp;sherlock=yes&amp;opensearch=yes&amp;submitform=Search" target="_blank">SBU UNICAMP</a>. (adicionado pelo comentário do capi)</p>
<p align="center">O repositório (Mycroft) do <em>Search Plugin</em> BIM UNIFEI é projeto da comunidade</p>
<p align="center"><a title="mozdev.org - free project hosting for the mozilla community" href="http://www.mozdev.org"><img src="http://www.mozdev.org/sharedimages/mozdev37.png" border="0" alt="mozdev.org" width="125" height="37" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/escovandobits.wordpress.com/51/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/escovandobits.wordpress.com/51/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escovandobits.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escovandobits.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escovandobits.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escovandobits.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escovandobits.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escovandobits.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escovandobits.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escovandobits.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escovandobits.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escovandobits.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escovandobits.wordpress.com&blog=2186857&post=51&subd=escovandobits&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escovandobits.wordpress.com/2008/03/13/facilitando-as-pesquisas-no-acervo-da-bim-unifei/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f615d34c675bc325d78631c8077f0187?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Tiago Maluta</media:title>
		</media:content>

		<media:content url="http://escovandobits.files.wordpress.com/2008/03/bim.png" medium="image">
			<media:title type="html">Firefox Search Plugin</media:title>
		</media:content>

		<media:content url="http://www.mozdev.org/sharedimages/mozdev37.png" medium="image">
			<media:title type="html">mozdev.org</media:title>
		</media:content>
	</item>
	</channel>
</rss>