<?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>Rafael Cambuí &#187; Tecnologia &#8211; Info</title>
	<atom:link href="http://www.gilix.com.br/rafael_cambui/wordpress_2.7/category/tecnologia/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gilix.com.br/rafael_cambui/wordpress_2.7</link>
	<description>Desenvolvimento web &#38; Coluna Informativa</description>
	<lastBuildDate>Fri, 13 Aug 2010 14:24:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Como devo tratar a bateria do meu notebook?</title>
		<link>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/08/19/como-devo-tratar-a-bateria-do-meu-notebook/</link>
		<comments>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/08/19/como-devo-tratar-a-bateria-do-meu-notebook/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 17:29:17 +0000</pubDate>
		<dc:creator>Rafael</dc:creator>
				<category><![CDATA[Tecnologia - Info]]></category>

		<guid isPermaLink="false">http://www.gilix.com.br/rafael_cambui/wordpress_2.7/?p=146</guid>
		<description><![CDATA[Pensando na crescente popularização dos notebooks, e conseqüente demanda por informações a respeito dos cuidados com a bateria, resolvi criar esse pequeno FAQ para ajudar os novatos na área. O tutorial é fruto de muita pesquisa e saudável troca de informações com os colegas do fórum. Por favor, sintam-se a vontade para fazer alguma observação, [...]]]></description>
			<content:encoded><![CDATA[<p>Pensando na crescente popularização dos notebooks, e conseqüente demanda por informações a respeito dos cuidados com a bateria, resolvi criar esse pequeno FAQ para ajudar os novatos na área.</p>
<p>O tutorial é fruto de muita pesquisa e saudável troca de informações com os colegas do fórum. Por favor, sintam-se a vontade para fazer alguma observação, caso julguem necessária.</p>
<p>Tentei fazê-lo o menos entediante possível, por isso abordo os assuntos de maneira um tanto superficial, de forma que não canse a leitura, caso alguém queira se aprofundar basta uma pesquisa mais detalhada pela internet. Recomendo para iniciar o link: http://www.batteryuniversity.com/</p>
<p>1 – Meu note acabou de chegar. Devo dar uma carga de quantas horas antes de usá-lo?<br />
R – Não é necessário dar carga inicial nos notes atuais, já que a maioria esmagadora possui baterias de íons de lítio, que não possui efeito memória. A famosa carga inicial era um requisito das antigas baterias a níquel-metal-hidreto.</p>
<p>2 – Por que a bateria não vem completamente carregada de fábrica?<br />
R – Apesar de não possuir efeito memória as baterias de íons de lítio não devem ser guardadas totalmente carregadas ou totalmente vazias por longos períodos de tempo. Isto se deve ao processo interno de armazenamento de energia das células.</p>
<p>3 – Como funciona esse processo?<br />
R – Os íons de lítio &#8220;liberam&#8221; energia quando passam do estado sólido para o líquido, sendo que normalmente eles ficam alternando de estado entre eles, mesmo com o note desligado. Quando guardamos a bateria completamente carregada ou vazia, a grande maioria dos íons ficam em um estado estático (sólido ou líquido), pois não tem &#8220;espaço energético&#8221; suficiente para mudar de estado, sendo assim eles acabam &#8220;congelando&#8221; naquele estado e perdem a capacidade de reter e/ou liberar corrente.</p>
<p>4 – Isso não seria o efeito memória?<br />
R – Não, nas baterias de níquel-metal-hidreto o processo de recarga da bateria deveria ser efetuado praticamente no final da carga, para que ela “aprendesse” que poderia armazenar carga até aquele nível. Nas de íons de lítio isso não ocorre, na verdade é recomendável nunca deixá-las esgotar a carga por completo, recomenda-se carregá-la antes de se esgotar a carga.</p>
<p>5 – Então devo usá-la apenas até a metade?<br />
R – Não precisa exagerar, vez ou outra não há problema em deixar a carga terminar. O problema é quando isso se torna o padrão de uso.</p>
<p>6 – Isso é muito complicado. Não seria então melhor usar o note o tempo todo na tomada?<br />
R – Esse é um erro comum. Muitos deixam o note por meses na tomada e quando vão usá-lo apenas com a bateria, ela dura somente alguns minutos. A bateria tem de ser &#8220;ensinada&#8221; de tempos em tempos, não deve ficar 100% do tempo na tomada. Ela foi feita para ser usada.</p>
<p>7 – Então não seria melhor retirar a bateria do note e usá-lo apenas na tomada?<br />
R – Apensar de uma corrente de pensamento defender que a bateria deve estar sempre no note para servir como descarga de corrente excedente, os notes atuais possuem fontes inteligentes associadas com circuitos que detectam as variações e as corrigem sem necessidade de mandá-las para a bateria. Mas pense bem, se um dos equipamentos mais desejados pelos usuários de computadores é um nobreak, por que retirar o nobreak natural do note, a bateria? Você não a estará poupando ao retirá-la.</p>
<p>8 – E seu eu for viajar por muito tempo sem o note? Como devo guardar a bateria?<br />
R – Nesse caso retire a bateria e guarde-a entre 40 e 50% de carga, para que os íons possam se movimentar livremente entre os diferentes estados energéticos. Mas se realmente passar muito tempo sem o note, peça para alguém utilizá-lo vez ou outra.</p>
<p>9 – Posso dar várias cargas seguidas? Por exemplo. Usá-la no sofá, depois ligá-la na tomada, retirar da tomada e tornar a ligar?<br />
R – Não, evite retirar e colocar na tomada em curtos intervalos de tempo.</p>
<p>10 – Qual o indicativo que a bateria está terminando sua vida útil? E de quanto tempo é essa vida útil?<br />
R – Apesar de totalmente carregada ela passa a durar cada vez menos. A vida útil é de, em média, 2 anos, apesar de alguns usuários conseguirem mantê-la funcionando satisfatoriamente por até 4 anos, isso em raríssimos casos. É normal a bateria perder alguma capacidade de carga com o tempo, ou seja, uma bateria que segurava um note por 2 horas, pode segurá-lo por 1 hora e 40 minutos após alguns meses de uso.</p>
<p>11 &#8211; Quando for rodar softs pesados, devo usar a bateria ou o carregador? (sugestão do Matheusos)<br />
R &#8211; Quanto mais rápido for o consumo da bateria, menor sua vida útil, por isso se puder evitar de rodar softs que exijam muito da máquina através da bateria você estará aumentando a vida útil dela.</p>
<p>12 – Resumindo: Devo sempre manter a bateria no note e utilizá-la de vez em quando, mas qual seria o prazo de tempo para usar o note na bateria ou tomada?<br />
R – Como tudo na vida use o bom censo. Quando estiver em casa e tiver uma tomada por perto, use-o na tomada. Caso queira utilizá-lo na varanda, sofá ou cama, ou ainda em locais externos, use a bateria, sem stress. Chega uma hora que sua bateria vai acabar mesmo, por isso não adianta “poupa-la” em demasia.</p>
<p>13 – Existe alguma forma de manter a bateria sempre perto de sua carga nominal?<br />
R – Sim, de tempos em tempos é necessário educar a bateria fazendo ciclos de calibragem.</p>
<p>14 – Como faço a calibragem da bateria?<br />
R – Faça o procedimento abaixo a cada 60 a 90 dias.</p>
<p>a &#8211; Ligue o carregador e após a luz de carga indicar que a carga foi concluída deixe o carregador conectado por pelo menos mais duas horas, você pode usar o micro normalmente durante esse tempo.<br />
b &#8211; Com o micro ainda ligado, desconecte o carregador e use o note até ele desligar sozinho, evite FORÇAR o descarregamento rápido rodando programas com esse intuito, faça o uso normal do note.<br />
c &#8211; Após o desligamento, deixe o note &#8220;descansar&#8221; por pelo menos 5 horas com a bateria descarregada.<br />
d &#8211; Carregue normalmente até a luz indicar que a carga foi concluída. Pronto, bateria calibrada.</p>
<p>Depois de tentar fazer minha esposa decorar esses procedimentos, ela, leiga no assunto, me veio com uma tirada sensacional: &#8211; Não vou ficar neurótica com isso. Vou usar do jeito que achar mais conveniente e se acabar, compro outra!<br />
Ou seja, tente seguir esses passos, mas não se desespere por vez ou outra não conseguir.</p>
<p>Abraços</p>
<p>OBSERVAÇÃO: Os procedimentos acima valem para toda e qualquer bateria de íons de lítio, porém caso o fabricante de sua bateria/notebook recomende um procedimento diferente, utilize-o.</p>
<p>EDIT: A título de curiosidade, ou para aqueles que tem coragem e sabem das consequências que tal ato pode causar, estou adicionando um pequeno vídeo ensinando a &#8220;recondicionar&#8221; baterias de notebooks.</p>
<p>Quero deixar BEM claro que não me responsabilizo por nada.</p>
<p>Vídeo: http://www.youtube.com/watch?v=BtqRv&#8230;eature=channel</p>
<p>Vale lembrar que se o procedimento for feito de forma errada pode causar queimaduras, explosões ou danificar o notebook.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/08/19/como-devo-tratar-a-bateria-do-meu-notebook/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rede Máscaras / Netmasks para modelos</title>
		<link>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/06/04/rede-mascaras-netmasks-para-modelos/</link>
		<comments>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/06/04/rede-mascaras-netmasks-para-modelos/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 19:07:31 +0000</pubDate>
		<dc:creator>Rafael</dc:creator>
				<category><![CDATA[Tecnologia - Info]]></category>
		<category><![CDATA[mascara de rede]]></category>

		<guid isPermaLink="false">http://www.gilix.com.br/rafael_cambui/wordpress_2.7/?p=140</guid>
		<description><![CDATA[As máscaras de rede é uma notação para o grupo de endereços IP. Let’s take a familiar analogy. Vamos fazer uma analogia familiar. My phone in US was 510-595-3830. Meu telefone na E.U. foi 510-595-3830. 510 was the area code which included a large group of phone numbers in San Francisco-Oakland-Emeryville area. 510 foi o [...]]]></description>
			<content:encoded><![CDATA[<p> As máscaras de rede é uma notação para o grupo de endereços IP. Let’s take a familiar analogy. Vamos fazer uma analogia familiar. My phone in US was 510-595-3830. Meu telefone na E.U. foi 510-595-3830. 510 was the area code which included a large group of phone numbers in San Francisco-Oakland-Emeryville area. 510 foi o código de área, que incluiu um grande grupo de números de telefone em San Francisco-Oakland-Emeryville área. Similarly IP addresses are also grouped by their network prefix. Do mesmo modo os endereços IP também estão agrupados pela sua rede de prefixo.</p>
<p>Netmasks are important for allocating sub-networks to individuals or organizations. Netmasks são importantes para a atribuição de sub-redes de indivíduos ou organizações. They are also used to identify networks for routing purposes. Eles também são utilizados para identificar redes de roteamento fins.</p>
<p>Each (IPv4) IP address contains a 4 8-bit integers in the form abcd So an IPv4 IP address contains 32 bits. Cada (IPv4) contém um endereço IP 4 8-bit inteiros, sob a forma ABCD Portanto, um endereço IP IPv4 contém 32 bits. A netmask indicates the number of bits which are fixed for all IP addresses within the network. Uma máscara indica o número de bits que são fixas para todos os endereços IP dentro da rede.</p>
<p>Let’s take a network which contains IP addresses between 72.31.32.0 &#8211; 72.31.32.255. Vamos ter uma rede que contém os endereços IP entre 72.31.32.0 &#8211; 72.31.32.255. In this network the first 24 bits (first 3 8-bit integers) are constant for all IP addresses. Nesta rede os primeiros 24 bits (3 primeiras 8-bit inteiros) são constantes para todos os endereços IP. So the network mask for this network will be denoted as /24 . Portanto, a máscara de rede para esta rede será denominado / 24.</p>
<p>There is a longer notation to describe network masks which is used in Windows and also Linux to specify the netmask of your own computer. Existe já uma notação para descrever a rede de máscaras que é usado no Windows e Linux também especificar a máscara de seu próprio computador. Here instead of writing the number of constant bits in the IP address in decimal format you need to specify it in the IP address format. Aqui, em vez de escrever o número de bits constante no endereço IP no formato decimal é necessário especificar que o endereço IP no formato. So /24 becomes 255.255.255.0. Então / 24 passa a 255.255.255.0. The first three 255 represents the 24 bits of the address. Os três primeiros 255 representa os 24 bits do endereço.</p>
<p>Each network specified by the netmask can contain a maximum number of computers or IP address bearing devices (like routers) as limited by the netmask. Cada rede especificado pela máscara pode conter um número máximo de computadores ou dispositivos que ostentem o endereço IP (como roteadores) como limitada pela máscara. For example a /24 network can contain a maximum of 2 8 -1 (255) computers. Por exemplo, um / 24 de rede pode conter um máximo de 2 8 -1 (255) computadores. One of the address (highest one) is reserved for broadcast address of the network. Um dos endereços (uma mais alta) é reservado para broadcast da rede. The number 8 is derived by subtracting 24 from 32. O número 8 é derivado, subtraindo 24 de 32.</p>
<p>Refer to the table below for network masks in both forms and maximum number of machines for quick reference: Consulte a tabela abaixo para ver as máscaras de rede em ambas as formas eo número máximo de máquinas para referência rápida:<br />
Short Form Short Form 	Full Form Formulário Completo 	Maximum number of machines O número máximo de máquinas 	Comment Comentário<br />
/8 / 8 	/255.0.0.0 / 255.0.0.0 	16, 777, 215 16, 777, 215 	Class A address Classe A morada<br />
/16 / 16 	/255.255.0.0 / 255.255.0.0 	65, 535 65, 535 	Class B address Classe B endereço<br />
/17 / 17 	/255.255.128.0 / 255.255.128.0 	32, 767 32, 767<br />
/18 / 18 	/255.255.192.0 / 255.255.192.0 	16, 383 16, 383<br />
/19 / 19 	/255.255.224.0 / 255.255.224.0 	8, 191 8, 191<br />
/20 / 20 	/255.255.240.0 / 255.255.240.0 	4, 095 4, 095<br />
/21 / 21 	/255.255.248.0 / 255.255.248.0 	2, 047 2, 047<br />
/22 / 22 	/255.255.252.0 / 255.255.252.0 	1, 023 1, 023<br />
/23 / 23 	/255.255.254.0 / 255.255.254.0 	511<br />
/24 / 24 	/255.255.255.0 / 255.255.255.0 	255 	Class C address Classe C endereço<br />
/25 / 25 	/255.255.255.128 / 255.255.255.128 	127<br />
/26 / 26 	/255.255.255.192 / 255.255.255.192 	63<br />
/27 / 27 	/255.255.255.224 / 255.255.255.224 	31<br />
/28 / 28 	/255.255.255.240 / 255.255.255.240 	15<br />
/29 / 29 	/255.255.255.248 / 255.255.255.248 	7<br />
/30 / 30 	/255.255.255.252 / 255.255.255.252 	3<br />
Fonte: http://blog.taragana.com/index.php/archive/network-masks-netmasks-for-dummies/pt/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/06/04/rede-mascaras-netmasks-para-modelos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O essencial para programar a porta paralela (C/C++) 1</title>
		<link>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/05/28/o-essencial-para-programar-a-porta-paralela-cc-1/</link>
		<comments>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/05/28/o-essencial-para-programar-a-porta-paralela-cc-1/#comments</comments>
		<pubDate>Thu, 28 May 2009 05:49:52 +0000</pubDate>
		<dc:creator>Rafael</dc:creator>
				<category><![CDATA[Tecnologia - Info]]></category>
		<category><![CDATA[a]]></category>
		<category><![CDATA[b]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[componentes]]></category>
		<category><![CDATA[dispositivos eletronicos]]></category>
		<category><![CDATA[e]]></category>
		<category><![CDATA[porta paralela]]></category>
		<category><![CDATA[programar]]></category>
		<category><![CDATA[ps]]></category>

		<guid isPermaLink="false">http://www.gilix.com.br/rafael_cambui/wordpress_2.0/?p=108</guid>
		<description><![CDATA[Tabela de conteúdos O essencial para programar a porta paralela (C/C++) 1 Entendendo a Porta Paralela Aplicando nossos conhecimentos Manipulando a porta paralela O essencial para programar a porta paralela (C/C++) 1 ALERTA! Mecher na porta paralela causa dependência (vício). E também é perigoso. A porta paralela está ligada diretamente à placa mãe. Qualquer curto [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript" charset="utf-8" src="http://www.temadigital.com.br/lib/exe/js.php?edit=0&amp;write=0" ></script><br />
<script type="text/javascript" charset="utf-8" ><!--//--><![CDATA[//><!--plugin_statistics.init('artigos%3Aprogramando_a_porta_paralela_em_c');//--><!]]&gt;</script><br />
<script type="text/javascript" charset="utf-8" src="http://www.temadigital.com.br/lib/plugins/indexmenu/jsmenu/menu.js" ></script><br />
<script type="text/javascript" charset="utf-8" src="http://www.temadigital.com.br/lib/plugins/indexmenu/indexmenu.js" ></script><br />
<script type="text/javascript" charset="utf-8" ><!--//--><![CDATA[//><!--var indexmenu_ID='artigos:programando_a_porta_paralela_em_c'//--><!]]&gt;</script><br />
Tabela de conteúdos</p>
<div class="toc">
<div id="toc__inside">
<ul class="toc">
<li class="level1">
<div class="li"><span class="li"><a href="#o_essencial_para_programar_a_porta_paralela_c_c_1" class="toc">O essencial para programar a porta paralela (C/C++) 1</a></span></div>
</li>
<li class="level1">
<div class="li"><span class="li"><a href="#entendendo_a_porta_paralela" class="toc">Entendendo a Porta Paralela</a></span></div>
</li>
<li class="level1">
<div class="li"><span class="li"><a href="#aplicando_nossos_conhecimentos_manipulando_a_porta_paralela" class="toc">Aplicando nossos conhecimentos Manipulando a porta paralela</a></span></div>
</li>
</ul>
</div>
</div>
<p><!-- TOC END --></p>
<h1><a name="o_essencial_para_programar_a_porta_paralela_c_c_1" id="o_essencial_para_programar_a_porta_paralela_c_c_1">O essencial para programar a porta paralela (C/C++) 1</a></h1>
<div class="level1">
<p><strong>ALERTA!</strong>
</p>
<p>
Mecher na porta paralela causa dependência (vício). E também é <strong>perigoso</strong>. A porta paralela está ligada diretamente à placa mãe. Qualquer curto ou uso indevido pode comprometer todo o computador. Não nos responsabilizamos por qualquer dano que você possa vir a causar ao seu computador. Seguindo a risca as orientações do tutorial, você minimizará as chances de qualquer defeito.
</p>
<p>
Boa diversão!
</p>
</div>
<h1><a name="entendendo_a_porta_paralela" id="entendendo_a_porta_paralela">Entendendo a Porta Paralela</a></h1>
<div class="level1">
<p>
A porta paralela foi inventada pela IBM originalmente com o intuito de controlar impressoras. Por esse motivo, a porta paralela ficou conhecida como a porta de conexão de impressoras. Porém, existem uma infinidade de dispositivos que podem ser controlados por essa interface de comunicação, como exemplo: Scanners, máquinas fotográficas digitais, dispositivos de armazenamento, e até mesmo outros computadores. Por ser uma porta de entrada e saída de dados, podemos controlar e receber informações por meio da porta paralela, desde que sigamos algumas regras. Tendo uma noção de eletrônica básica, poderemos então controlar (ligar, desligar, receber informações) qualquer dispositivo, tornando a porta paralela em um meio de exportar o seu programa do mundo virtual, para o mundo real. E é a este propósito que se destina este tutorial.
</p>
<p>
A porta paralela, encontrada no padrão PC IBM, tem um conector padrão chamado DB25. Como podemos ver nas figuras 1.1 e 1.2.
</p>
<div class="gallery"><a href="file:///C|/Documents%20and%20Settings/Rafael%20Cambu%ED/Desktop/http://www.gilix.com.br/rafael_cambui/imagens/fetch_003.jpeg?media=temadigital:sistemas_de_computacao:db25_femea.jpg" title="" class="lightbox JSnocheck" rel="lightbox" ><span title="caption" style="display: none;"></span><img src="http://www.gilix.com.br/rafael_cambui/imagens/fetch_003.jpeg" width="150" height="112" border="0" alt="" class="tn"  /></a></div>
<p>Fig. 1.1: Conector fêmea encontrado na parte traseira do pc.
</p>
<div class="gallery"><span title="caption" style="display: none;"></span><a href="http://www.gilix.com.br/rafael_cambui/imagens/fetch_002.jpeg"><img src="http://www.gilix.com.br/rafael_cambui/imagens/fetch_002.jpeg" alt="db25_m.jpg" width="150" height="150" border="0" class="tn"  /></a></div>
<p>Fig. 1.2: Conector macho
</p>
<p>
Como tudo, a porta paralela sofreu algumas modificações ao passar do tempo, visando sempre a melhoria do seu sistema. Por conta disso, surgiram novos padrões de porta paralela. Hoje existem 3 padrões diferentes de porta paralela estão no mercado. São eles: SPP, EPP e ECP. Existem também variações dentro destes padrões. Eles diferem em comportamento. Na maioria dos computadores atuais, podemos ter os 3 modos, que podem ser escolhidos no “Setup” do computador. Para acessarmos o setup temos que reiniciar o computador e teclar alguma tecla na inicialização. Normalmente F2, F8 ou Delete (depende da placa mãe).
</p>
<p>
O Setup é Programa onde o operador, pode fazer algumas personalizações sobre como vai funcionar o seu computador. Está residente, juntamente com o BIOS, numa memória ROM, que fica na placa mãe, suas determinações ficam guardadas numa outra memória a CMOS (Complementary Metal/Oxide Semiconductor), memória volátil de baixo consumo que guarda as informações relevantes ao processo de boot do sistema.
</p>
<p>Vamos uma rápida explicação sobre os 3 padrões.
</p>
<ul>
<li class="level1">
<div class="li"> <strong>SPP – Standard Parallel Port</strong>: É um padrão de comunicação UNIDIRECIONAL, ou seja existe apenas um sentido de comunicação na sessão de dados, cuja a capacidade máxima de trafego de dados é a 150 KB/s. Você pode receber alguns sinais de periféricos nesse modo, porem não tem uma seção própria para trafego de dados, por isso é dito unidirecional.</div>
</li>
</ul>
<ul>
<li class="level1">
<div class="li"> <strong>EPP (Enhaced Parallel Port)</strong>: É um padrão bidirecional, onde a sessão de dados tem trafego bidirecional (em ambos os sentidos)a mesma pode atingir até a velocidade de 2MB/s. Enquanto que o modo SPP foi feito com alvo em impressoras, esse modo, criado pela Intel, Xircom &amp; Zenith Data Systems, para prover uma comunicação mais rápida entre os dispositivos. Com alvo em geral em dispositivos de armazenamento.</div>
</li>
</ul>
<ul>
<li class="level1">
<div class="li"> <strong>ECP (Extended Capabilities Port)</strong>: Trata-se de um padrão perfeitamente idêntico ao EPP, com a vantagem de possuir DMA (Direct Memory Access)- Acesso direto a memória. Ou seja, ele não precisa passar pelo processador para acessar o dado residente na memória.</div>
</li>
</ul>
<p>
Vejamos então uma diagrama com a pinagem do conector DB25 no padrão SPP na figura 2.
</p>
<div class="gallery"><a href="http://www.gilix.com.br/rafael_cambui/imagens/fetch.gif" title="fig2.gif" class="lightbox JSnocheck" rel="lightbox" ><span title="caption" style="display: none;"></span><img src="http://www.gilix.com.br/rafael_cambui/imagens/fetch.gif" alt="fig2.gif" width="150" height="78" border="0" class="tn"  /></a></div>
<p>fig2</p>
<div class="gallery"><span title="caption" style="display: none;"></span><a href="http://www.gilix.com.br/rafael_cambui/imagens/fetch_005.jpeg"><img src="http://www.gilix.com.br/rafael_cambui/imagens/fetch_005.jpeg" alt="tabela_1.jpg" width="150" height="90" border="0" class="tn"  /></a></div>
<p>Tabela 1
</p>
<p>
Tabela de endereços das portas paralelas.
</p>
<div class="gallery"><span title="caption" style="display: none;"></span><a href="http://www.gilix.com.br/rafael_cambui/imagens/fetch.jpeg"><img src="http://www.gilix.com.br/rafael_cambui/imagens/fetch.jpeg" alt="tabela_2.jpg" width="150" height="36" border="0" class="tn"  /></a></div>
<p>Tabela 2
</p>
<p>Esses endereços serão de suma importância para o que vem mais a frente neste tutorial. Sendo que o endereço de controle deve ser usado com muita cautela, pois os bits mais significativos, quando operados de forma indevida, podem causar danos ao computador, sugiro que para início de estudo, não use o endereço de controle.
</p>
</div>
<h1><a name="aplicando_nossos_conhecimentos_manipulando_a_porta_paralela" id="aplicando_nossos_conhecimentos_manipulando_a_porta_paralela">Aplicando nossos conhecimentos Manipulando a porta paralela</a></h1>
<div class="level1">
<p>
Cada linguagem de programação terá suas funções para a manipulação da porta paralela. A linguagem que estudaremos será a linguagem C em ambiente windows, usando o compilador    Dev-C++.
</p>
<p>
Por motivo de segurança, as versões mais novas do windows não permitem que um programa acesse recursos de hardware de forma direta. Mais precisamente, todos os sistemas baseados na tecnologia NT (New Tecnology). Exemplo os windows 2000 e XP. Os demais não tem qualquer entrave nesse quesito, ex: windows 95, 98, ME. Para que o nosso programa possa, então, acessar a porta paralela, que é um recurso de hardware, teremos de fazer uma “ponte” com uma dll. A dll inpout32.dll .
</p>
<p>
Ela será responsável por resolver este nosso “problema”.
</p>
<p>
Muito bem, vamos a explicação. Usaremos a função outportB(). Esta função recebe dois atributos. O primeiro é o endereço da porta que você vai utilizar. O segundo é o dado que você vai enviar. Se eu quiser ligar um led que está conectado  ao  pino 2 (Bit0 de dados) da porta LPT1 eu devo escrever a linha ? outportB(0&times;378,1);<br />
No caso, eu estou dizendo para a minha função outportB que mande para o endereço de dados (0&times;378) o byte que representa o numero decimal 1 (0000 0001 em binário). Se eu quiser ligar o led do bit1 a mesma coisa. outportB(endereço,dado); ? outportB(0&times;378,2). Na linguagem C, quando entramos um dado Hexadecimal, colocamos o prefixo “0x”. Quando entramos um dado decimal, não precisamos colocar prefixos.
</p>
<p>
Uma breve explicação sobre BIT. A palavra <strong>Bit</strong> significa <strong>B</strong>ibary Dig<strong>it</strong>, ou seja, Digito que representa apenas dois estados. No caso: Nível alto (Ou ligado) e Nível Baixo(Ou desligado). Pois bem, na nossa porta paralela nós temos, na saída de dados, 8 Bits que podem ser definidos no nosso programa como (Ligados ou desligados). Convencionou-se a leitura de um dado binário da direita para a esquerda, como se faz a leitura de um número decimal! Na esquerda estão os números mais significativos, e na direita os menos significativos. Então, quando mandamos um dado à saída de dados, estamos dizendo: Ligue tal bit, desligue tal bit, ligue aquele outro… Vamos a uma tabela bem intuitiva, onde temos o dado e o bit que ele vai ligar dentro do endereço de dados de LPT1 (0&times;378).</p>
<div class="gallery"><span title="caption" style="display: none;"></span><a href="http://www.gilix.com.br/rafael_cambui/imagens/fetch_006.jpeg"><img src="http://www.gilix.com.br/rafael_cambui/imagens/fetch_006.jpeg" alt="tabela_bit.jpg" width="150" height="44" border="0" class="tn"  /></a></div>
<p>tabela 3
</p>
<p>
Exemplo de código em C no Dev-C++ que usa a porta paralela para ligar e desligar leds e que usa a inpout32.dll.
</p>
<pre class="code">
/*
 BBBB  RRRR  W   W N   N  OOO
 B   B R   R W   W NN  N O   O
 BBBB  RRR   W W W N N N O   O    Tutorial Porta Paralela
 B   B R  R  W W W N  NN O   O          Dev-C++
 BBBB  R   R  W W  N   N  OOO      brunofgc@gmail.com
*/
#include &lt;stdio.h&gt;   // Biblioteca Standard Input/Output
#include &lt;conio.h&gt;   // Biblioteca necessária para o uso da função getch();
#include &lt;windows.h&gt; // Biblioteca necessária para o carregamento da inpout32.dll

/*Inpout32*/
//Declaração dos ponteiros para função.
typedef short _stdcall (*PtrInp)(short EndPorta);
typedef void _stdcall (*PtrOut)(short EndPorta, short datum);
HINSTANCE hLib; //Instância para a DLL inpout32.dll.
PtrInp inportB;     //Instância para a função Imp32().
PtrOut outportB;  //Instância para a função Out32().
/*Inpout32*/

int main()
{
/*Inpout32*/
   //Carrega a DLL na memória.
   hLib = LoadLibrary(&quot;inpout32.dll&quot;);
   if(hLib == NULL)
   {
      printf(&quot;\n\aErro. O arquivo inpout32.DLL nao foi encontrado.\nO programa vai terminar apos digitar qualquer tecla.&quot;);
      getch();
   }
else {//Todo o programa só será executado apenas se a dll for carregada.
   //Obtém o endereço da função Inp32 contida na DLL.
   inportB = (PtrInp) GetProcAddress(hLib, &quot;Inp32&quot;);
   if(inportB == NULL)
   {
      printf(&quot;\n\aErro. Erro ao endereçar a função Inp32.&quot;);
   }
   //Obtém o endereço da função Out32 contida na DLL.
   outportB = (PtrOut) GetProcAddress(hLib, &quot;Out32&quot;);
   if(outportB == NULL)
   {
      printf(&quot;\n\aErro. Erro ao endereçar a função Out32.&quot;);

   }
/*Inpout32*/    

char teclado=&#039; &#039;;
puts(&quot;Vamos ao teste da porta paralela.&quot;);
puts(&quot;Para ligar cada um dos bits da porta paralela\naperte as teclas referentes aos bits\n0,1,2,3,4,5,6,7. Quando quiser terminar o programa\ndigite p para parar.&quot;);
teclado=getch();
while(teclado!=&#039;p&#039;)
    {
     switch(teclado)
          {
           case &#039;0&#039;:
           outportB(0x378,1);  /* A função que manda um byte para a porta paralela no caso o número 1 ou 0000 0001 em binário*/
              break;
           case &#039;1&#039;:
           outportB(0x378,2); /* Novamente a função que manda um dado a porta paralela*/
              break;
           case &#039;2&#039;:
           outportB(0x378,4);
              break;
           case &#039;3&#039;:
           outportB(0x378,8);
              break;
           case &#039;4&#039;:
           outportB(0x378,16);
              break;
           case &#039;5&#039;:
           outportB(0x378,32);
              break;
           case &#039;6&#039;:
           outportB(0x378,64);
              break;
           case &#039;7&#039;:
           outportB(0x378,128);
              break;
          }
          teclado=getch();
    }

outportB(0x378,0);
}//fim do else pertencente ao if que testa se carregou a dll

}//fim da função main e do programa
</pre>
<p>
Para que o programa funcione, temos que colocar a inpout32.dll dentro da mesma pasta que o arquivo executável. Caso tentemos rodar o programa sem a dll na pasta, o programa irá informar o erro e irá finalizar.
</p>
<p>
Compilando e executando o programa veremos que os leds acendem de acordo com a entrada no teclado de 0 a 7. Vamos então ao esboço eletrônico para ligar os leds na porta paralela.
</p>
<p>
Receitinha de bolo: 8 Leds, 8 resistores 470 ohm (amarelo, violeta e marrom), 1 cabo paralelo, 1 ferro de soldar, solda à gosto, fios à gosto, uma pitada de conhecimento em eletrônica básica e um pouco de paciência.<br />
Modo de preparo: Misture tudo e leve ao computador, por algumas horas de estudo.
</p>
<div class="gallery"><span title="caption" style="display: none;"></span><a href="http://www.gilix.com.br/rafael_cambui/imagens/fetch_004.jpeg"><img src="http://www.gilix.com.br/rafael_cambui/imagens/fetch_004.jpeg" alt="esquema_eletrico_8_leds.jpg" width="150" height="143" border="0" class="tn"  /></a></div>
<p>fig3</p>
<p>
Como visto na figura 3, basta ligarmos os leds em série com um resistor ao terra e ao pino referente para que possamos fazer nossos testes, sempre respeitando a polaridade dos leds. Para identificar a polaridade do led em Anodo e Katodo (Positivo e negativo respectivamente) utiliza-se um código. No invólucro do led temos um pequeno chanfro identificando o lado negativo, ou a perna mais curta é também do lado negativo. Como visto também os pinos 19-25 são terra, então temos que unir todos eles. Uma forma simples á utilizar um cabo paralelo e desmontar a ponta do lado que vamos fazer nossa montagem, deixando o lado que vamos conectar ao computador intacto. Dentro do cabo teremos uma barra de metal condutor unindo os pinos 19-25. Então basta pegar qualquer um dos pinos, neste caso.
</p>
<p>
Temos ainda a possibilidade de entrada de dados para o nosso programa pela porta paralela através do endereço de status. Mais, por hora, vamos deixar isso de lado. Pois será necessário um pouco mais de conhecimento em eletrônica para não causar danos ao computador. (Devemos sempre lembrar que, a porta paralela está conectada diretamente à placa mãe do computador. E qualquer deslize pode ser fatal.)
</p>
<p>Fonte: TemaDigital.com.br</p>
</div></div>
</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/05/28/o-essencial-para-programar-a-porta-paralela-cc-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bug no Teclado &#8211; Fedora 10</title>
		<link>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/05/25/firewall-com-iptables-2/</link>
		<comments>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/05/25/firewall-com-iptables-2/#comments</comments>
		<pubDate>Mon, 25 May 2009 12:53:30 +0000</pubDate>
		<dc:creator>Rafael</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Php + Mysql]]></category>
		<category><![CDATA[Tecnologia - Info]]></category>
		<category><![CDATA[bud]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[fedora 10]]></category>
		<category><![CDATA[remapear]]></category>
		<category><![CDATA[teclado]]></category>
		<category><![CDATA[teclas]]></category>
		<category><![CDATA[xev]]></category>

		<guid isPermaLink="false">http://www.gilix.com.br/rafael_cambui/wordpress_2.0/?p=36</guid>
		<description><![CDATA[Eu já havia visto algo a respeito do bug do Fedora 10 que afeta a tecla . no teclado numérico, mas tal problema não havia me afetado… até hoje! Nesta última atualização do dia 20/05 tudo correu bem, exceto que fiquei sem ponto final, tanto no teclado numérico quanto no alfa-numérico, corri no fórum, canal [...]]]></description>
			<content:encoded><![CDATA[<p>Eu já havia visto algo a respeito do bug do Fedora 10 que afeta a tecla . no teclado numérico, mas tal problema não havia me afetado… até hoje!</p>
<p>Nesta última atualização do dia 20/05 tudo correu bem, exceto que fiquei sem ponto final, tanto no teclado numérico quanto no alfa-numérico, corri no fórum, canal no irc e nada… muitos com o mesmo problema. Demorou um pouco, dai pesquisei no google como fazer o remapeamento das teclads e consegui chegar a soluçao:</p>
<p>1. Crie um arquivo para ser inicializado toda vez com o sistema:</p>
<p>rafael@srv01:~$ sudo  vim /etc/init.d/keymap_modifier-abnt_numpad_dot.sh</p>
<p>2. Dentro dele cole o seguinte código:</p>
<p>#!/bin/bash<br />
xmodmap -e “keycode 129 =  period”</p>
<p>3. Salve-o e torne-o executável:</p>
<p>rafael@srv01:~$ sudo chmod +x /etc/init.d/keymap_modifier-abnt_numpad_dot.sh</p>
<p>4. Execute-o:</p>
<p>rafael@srv01:~$ sudo /etc/init.d/./keymap_modifier-abnt_numpad_dot.sh</p>
<p>5. Faça os testes!</p>
<p>O que o arquivo acima faz? Ele remapeia algumas teclas suas, a princípio meu problema estava com a tecla &#8220;.&#8221; tanto do teclado numérico quanto do alfanumérico, para isso, tive que remapeá-las com a linha 1 do script!.</p>
<p>Para saber o código das teclas, utilizei o comando “xev” no terminal.</p>
<p>Há outras formas de corrigir o problema, mas falando a verdade, quando eu estava testando este script que fiz, eu não havia reiniciado a máquina, então o problema persistia mesmo colocando ele no /etc/init.d/rc.local.</p>
<p>Solucionei ‘definitivamente’ o problema copiando o script para minha pasta pessoal e através do menu Sistema &#8211; Preferências &#8211; Sessões adicionei ele para iniciar junto com o sistema. Agora todas minhas teclas estão funcionando; e pelo jeito o bug persiste.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2009/05/25/firewall-com-iptables-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando o Samba de forma simples e funcional.</title>
		<link>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2008/06/09/configurando-o-samba-de-forma-simples-e-funcional/</link>
		<comments>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2008/06/09/configurando-o-samba-de-forma-simples-e-funcional/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 20:16:30 +0000</pubDate>
		<dc:creator>Rafael</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Softwares]]></category>
		<category><![CDATA[Tecnologia - Info]]></category>
		<category><![CDATA[Configurando o Samba de forma simples e funcional.]]></category>

		<guid isPermaLink="false">http://www.gilix.com.br/rafael_cambui/wordpress_2.0/?p=37</guid>
		<description><![CDATA[Esse artigo mostra de maneira bem simples como configurar um samba para compartilhar arquivos em qualquer sistema linux, o meu no exemplo é Slackware mas sem dúvidas em qualquer outra distro é a mesma coisa. Em poucas linhas resumi como compartilhar pastas com direito a adcionar usuarios. O aquivo de configuração fica em /etc/samba/smb.conf , [...]]]></description>
			<content:encoded><![CDATA[<p>Esse artigo mostra de maneira bem simples como configurar um samba para compartilhar arquivos em qualquer sistema linux, o meu no exemplo é Slackware mas sem dúvidas em qualquer outra distro é a mesma coisa.</p>
<p>Em poucas linhas resumi como compartilhar pastas com direito a adcionar usuarios.</p>
<p>O aquivo de configuração fica em  /etc/samba/smb.conf , o mesmo é separado em duas seções uma é a Global que define as configurações da máquina como rede grupo de trabalho e essas coisas, e a outra parte define a configuração do compartilhamento ou seja da pasta.</p>
<p>[Global]</p>
<p>workgroup: grupo de trabalho ou domínio de que esta máquina  fará parte:<br />
<font color="#ff0000">workgroup = GILIX</font></p>
<p>Server string: breve comentário sobre o servidor:<br />
<font color="#ff0000"> server string = Servidor Samba </font></p>
<p>NetBios Name: O nome da sua máquina de compartilhamento<br />
<font color="#ff0000">netbios name= Srv01</font></p>
<p>NetBios Aliases: O apelido por qual ela pode atender na rede no caso de digitar no executar o do windows \\servidor-fedora<br />
<font color="#ff0000">netbios aliases = servidor-fedora </font></p>
<p>Log File: O proprio nome ja diz é o arquivo de log do samba<br />
<font color="#ff0000">log file=/var/log/samba/%m.log </font></p>
<p>Aqui deixei a configuração padrão<br />
<font color="#ff0000">os level = 64     </font></p>
<p>Com esses parametros acima ja é possivel compartilhar qualquer arquivo porém falta apenas uma linha necessária, é ela a linha que define se a segurança do compartilhamento vai ser USER ou SHARE, ou seja se vai exigir usuário e senha pra qualquer outra estação acessar o compartilhamento ou se o nivel de segurança vai ser definido por chmod e qualquer um por acessar.</p>
<p><font color="#ff0000">security=user</font> #podendo ser share ou user</p>
<p>Deixei a opção acima como user pois se ficar como share acabou ai os parametros e ja pode compartilhar uma pasta, mas como user vc vai precisar das linhas abaixo apenas + 3 linhas.</p>
<p>encrypt password: O protocolo SMB originalmente não usava  criptografia na transmissão de senhas entre as máquinas da rede.  O NT 4.0, service pack 3 e o Windows 2000 passaram a usar  senhas criptografadas. Outras versões do Windows acessando  servidores NT ou Windows 2000 podem estar configuradas para  utilizar criptografia na transmissão de senhas. Para que um  servidor Linux possa ser acessado pela rede, ele deve adotar o  mesmo padrão utilizado na rede. É possível retirar a  criptografia das máquinas Windows editando o registro ou  configurar a criptografia no servidor Samba.  <font color="#ff0000"><br />
encrypt passwords = yes</font></p>
<p><font color="#000000">Smb Passwd File= É o arquivo onde iram ficar os passwords dos usuários cadastrados no samba.</font><br />
<font color="#ff0000"> smb passwd file = /etc/samba/smbpasswd</font></p>
<p>Username Map: É o arquivo onde vão está os usuários cadastrados no samba<br />
<font color="#ff0000">username map = /etc/samba/smbusers </font></p>
<p>Vamos agora compartilhar uma pasta veja como é simples</p>
<p><font color="#ff0000">[arquivos]                                     #Titulo da pasta<br />
comment = Arquivos               #Comentário da pasta<br />
path = /home/rede                  #Caminho da pasta<br />
available = yes                          #Disponivel sim | não<br />
browseable = yes                     #Visualização sim | não<br />
writeable = Yes                        #Direito a escrita sim | nao<br />
ready only = no                                #Somente leitura sim | nao<br />
force create mode = 0777         #forcar ao criar diretorios com essa permissão<br />
force directory mode = 0777  #configuração padrão<br />
guest only = yes                        #Leitura pra qualquer um sim | nao</font></p>
<p>Simples assim e a sua pasta /home/rede já vai está compartilhada, e se vc compartilhou ela no modo usuário como eu fiz tem mais essa opção pra dizer os usuários que vão ter acesso a ela.</p>
<p><font color="#ff0000"> valid users = rafael,mario,tonho</font></p>
<p>Agora é so criar os usuários no samba lembrando de criar o root primeiro e os comandos são:<br />
smbpasswd -a   usuario //Para criar um usuário<br />
smbpasswd -x usuario //Para deletar um usuário</p>
<p>agora crie o root smbpasswd -a root e tudo certo basta usar o copiar e colar na seção share do arquivo e compartilhar quantas pastas quiser ao modo que quiser, espero ter sido o mais claro possivel.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2008/06/09/configurando-o-samba-de-forma-simples-e-funcional/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bug no ORKUT</title>
		<link>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2007/12/14/bug-no-orkut/</link>
		<comments>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2007/12/14/bug-no-orkut/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 02:39:12 +0000</pubDate>
		<dc:creator>Rafael</dc:creator>
				<category><![CDATA[Tecnologia - Info]]></category>
		<category><![CDATA[Bug no ORKUT]]></category>

		<guid isPermaLink="false">http://www.gilix.com.br/rafael_cambui/wordpress/?p=14</guid>
		<description><![CDATA[Talvez muitos ja ouviram falar ou até ja descobriram também mas eu vim compartilhar um bug que achei no orkut. Como sabemos é permitido comentar em HTML na pagina de recados dos contatos amigos e com isso há diversas maneiras de fazer arte e uma delas eu descobri é que você trava a página do [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gilix.com.br/rafael_cambui/wordpress/wp-content/uploads/2007/12/orkut.jpg" title="orkut"><img src="http://www.gilix.com.br/rafael_cambui/wordpress/wp-content/uploads/2007/12/orkut.jpg" alt="orkut" border="0" /><br />
</a>Talvez muitos ja ouviram falar ou até ja descobriram também mas eu vim compartilhar um bug que achei no orkut.<br />
Como sabemos é permitido comentar em HTML na pagina de recados dos contatos amigos e com isso há diversas maneiras de fazer arte e uma delas eu descobri é que você trava a página do usuário colocando um embed. Seguinte o codigo é</p>
<p><strong>&lt;embed src=&#8221;http://www.orkut.com/GLogin.aspx?cmd=logout&#8221; /&gt;<br />
</strong>com isso irá carregar a página de logout fazendo com que o usuário precise de logar a cada vez que o browser ler esse codigo. Faça um teste e confira você mesmo, copie o codigo e cole na pagina de recados dos amigos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilix.com.br/rafael_cambui/wordpress_2.7/2007/12/14/bug-no-orkut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
			<div id="jquery_pagebar">
		
			<div id="pages">  <span id="number"> Navigation</span> <a href="http://www.gilix.com.br/rafael_cambui/wordpress_2.7/category/tecnologia/feed/page/2/" title="Older Entries" >&raquo;</a></div>
			<div id="slider"></div>
		</div>
		
		</channel>
</rss>

