<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atomfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" version="0.3" xml:lang="en">
	<title>Rafael Quines</title>
	<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog" />
	<tagline>Blog do Rafael Quines</tagline>
	<modified>2009-07-14T02:03:14Z</modified>
	<copyright>Copyright 2009</copyright>
	<generator url="http://wordpress.org/" version="2.0.7">WordPress</generator>
			<link rel="start" href="http://feeds.feedburner.com/rafaelquines-atom" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[ProtoShieldBR no FISL 10 (Fórum do Software Livre)]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2009/06/protoshieldbr-no-fisl-10/" />
		<id>http://www.rafaelquines.com/blog/2009/06/protoshieldbr-no-fisl-10/</id>
		<modified>2009-06-15T18:22:54Z</modified>
		<issued>2009-06-15T18:22:54Z</issued>
		
		<dc:subject>Sem Categoria</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[É com grande satisfação que anuncio que a ProtoShielBR será exposta no Fórum do Software Livre 10, que acontecerá nos dias 24 a 27 de Junho, no Centro de Eventos da PUCRS (Porto Alegre-RS). No Fórum, haverá o I Festival Internacional de Robótica Livre, onde a ProtoShieldBR será brinde para alguns participantes, além de ser [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2009/06/protoshieldbr-no-fisl-10/"><![CDATA[<p>É com grande satisfação que anuncio que a ProtoShielBR será exposta no <a href="http://www.fisl.org.br">Fórum do Software Livre 10</a>, que acontecerá nos dias 24 a 27 de Junho, no Centro de Eventos da PUCRS (Porto Alegre-RS). No Fórum, haverá o <a href="http://www.fisl.org.br/10/www/festival-internacional-de-robotica-livre">I Festival Internacional de Robótica Livre</a>, onde a ProtoShieldBR será brinde para alguns participantes, além de ser mostrada por mim, Rafael Quines, com um exemplo simples de uso com leds, botões, e etc.</p>
<p><a href="http://www.fisl.org.br" border="0"><img src="http://www.arduinors.net/blog/wp-content/uploads/2009/06/fisl10banner-300x214.png" alt="FISL 10" /></a></p>
<p><a id="more-33"></a></p>
<p>A Olimpíada de Robótica Livre terá um caráter de oficina, cujo objetivo é desenvolver um ambiente de criatividade, colaboração e desafio, onde grupos construirão artefatos robóticos usando sucata eletrônica e softwares livres.</p>
<p>A Olimpíada será composta por 24 participantes organizados em 2 categorias: básica e avançada. No primeiro dia, terá uma etapa de nivelamento, onde os participantes terão contato com a filosofia da robótica livre e também com técnicas de soldagem e eletrônica básica. Na categoria básica , os participantes serão desafiados a construir “artefatos técnicos” usando uma Interface de Hardware Livre (IHL). Na categoria avançada, os participantes utilizarão placas controladoras Freeduino para desenvolvimento de seus projetos.</p>
<p>Contato para maiores informações, através do e-mail <a href="mailto:roboticalivre@softwarelivre.org">roboticalivre@softwarelivre.org</a>
</p>
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[ProtoShieldBR - Lançada versão brasileira da ProtoShield pro Arduino]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2009/01/protoshieldbr-lancada-versao-brasileira-da-protoshield-pro-arduino/" />
		<id>http://www.rafaelquines.com/blog/2009/01/protoshieldbr-lancada-versao-brasileira-da-protoshield-pro-arduino/</id>
		<modified>2009-01-29T11:39:41Z</modified>
		<issued>2009-01-29T11:39:41Z</issued>
		
		<dc:subject>Eletrônica</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[Foi liberada no dia 25 de janeiro, os primeiros kits a venda da ProtoShieldBR. Primeira protoshield pro arduino com fabricação 100% brasileira, desenvolvida em Porto Alegre - RS.


ProtoShieldBR é um projeto desenvolvido por Rafael Quines e Celso Fraga que tem como objetivo facilitar a integração do Arduino com outros hardwares. Disponibiliza trilhas semelhantes a uma [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2009/01/protoshieldbr-lancada-versao-brasileira-da-protoshield-pro-arduino/"><![CDATA[<p>Foi liberada no dia 25 de janeiro, os primeiros kits a venda da ProtoShieldBR. Primeira protoshield pro arduino com fabricação 100% brasileira, desenvolvida em Porto Alegre - RS.</p>
<p style="text-align: center;"><a href="http://www.arduinors.net/blog/wp-content/uploads/2009/01/stack_one1.jpg"><img class="aligncenter size-medium wp-image-84" src="http://www.arduinors.net/blog/wp-content/uploads/2009/01/stack_one1-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><a id="more-32"></a></p>
<p>ProtoShieldBR é um projeto desenvolvido por <a href="http://rafaelquines.com">Rafael Quines</a> e Celso Fraga que tem como objetivo facilitar a integração do Arduino com outros hardwares. Disponibiliza trilhas semelhantes a uma <a href="http://en.wikipedia.org/wiki/Protoboard">protoboard</a> (ou <a href="http://en.wikipedia.org/wiki/Breadboard">breadboard</a>) e se encaixa facilmente por cima do Arduino.</p>
<p>A ProtoShield é vendida em forma de kit pelo Mercado Livre: <a href="http://produto.mercadolivre.com.br/MLB-99775201-protoshieldbr-kit-protoshield-para-arduino-_JM">CLIQUE AQUI</a></p>
<p style="text-align: center;"><a href="http://www.arduinors.net/blog/wp-content/uploads/2009/01/example1.jpg"><img class="aligncenter size-medium wp-image-86" src="http://www.arduinors.net/blog/wp-content/uploads/2009/01/example1-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Para mais informações, visite a página oficial: <a href="http://www.arduinors.net/blog/protoshieldbr/">ProtoShieldBR</a></p>
<p style="text-align: center;"><a href="http://www.arduinors.net/blog/wp-content/uploads/2009/01/stack_two1.jpg"><img class="aligncenter size-medium wp-image-85" src="http://www.arduinors.net/blog/wp-content/uploads/2009/01/stack_two1-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;"><a href="http://www.arduinors.net/blog/wp-content/uploads/2009/01/barras_bot1.jpg"><img class="aligncenter size-medium wp-image-88" src="http://www.arduinors.net/blog/wp-content/uploads/2009/01/barras_bot1-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;"><a href="http://www.arduinors.net/blog/wp-content/uploads/2009/01/barras_top1.jpg"><img class="aligncenter size-medium wp-image-87" src="http://www.arduinors.net/blog/wp-content/uploads/2009/01/barras_top1-300x225.jpg" alt="" width="300" height="225" /></a></p>
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[Seminário Freescale em Porto Alegre]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2008/10/seminario-freescale-em-porto-alegre/" />
		<id>http://www.rafaelquines.com/blog/2008/10/seminario-freescale-em-porto-alegre/</id>
		<modified>2008-10-29T11:48:55Z</modified>
		<issued>2008-10-29T11:48:55Z</issued>
		
		<dc:subject>Eletrônica</dc:subject>

		<dc:subject>Eventos</dc:subject>

		<dc:subject>freescale</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[
Acontece nesse próximo dia 21 de Novembro (sexta-feira) o seminário da Freescale que terá como foco os novos microcontroladores da família Flexis. A grande vantagem dessa família de processadores é que chips de 8 bits e 32 bits são compatíveis pino a pino, facilitando uma possível migração.

Flexis é o ponto de conexão entre 8 e [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2008/10/seminario-freescale-em-porto-alegre/"><![CDATA[<p><img src="http://rafaelquines.com/img/freescale_logo.jpg" alt="Freescale" /></p>
<p>Acontece nesse próximo dia 21 de Novembro (sexta-feira) o seminário da Freescale que terá como foco os novos microcontroladores da família <a href="http://www.freescale.com/webapp/sps/site/homepage.jsp?nodeId=016246233A235A&#038;tid=tev">Flexis</a>. A grande vantagem dessa família de processadores é que chips de 8 bits e 32 bits são compatíveis pino a pino, facilitando uma possível migração.</p>
<p><a id="more-31"></a></p>
<p><strong>Flexis é o ponto de conexão entre 8 e 32 bits  do conceito “Controller Continuum” da Freescale, no qual os microcontroladores  S08 e ColdFire® V1  são pino a pino compatíveis e compartilham as mesmas ferramentas de desenvolvimento e perifericos para uma migração totalmente flexível.</strong></p>
<p><img src="http://rafaelquines.com/img/flexis_family.jpg" alt="Família Flexis" /></p>
<p><strong>Conteúdo e agenda do Seminário:</strong></p>
<p>1. <strong>Família Flexis JM com interface USB</strong>: Curso para iniciantes em USB, aborda a teoría básica do protocolo e as características de operação do módulo USB da família Flexis JM. Também explica o  software que esta disponível para ser utilizado para desenvolvimento de aplicações USB. Além disso, são indicadas as diferenças entre as versões de 8 e 32 bits da família JM e as diferenças nos respectivos módulos USB.</p>
<p>2. <strong>Família Flexis AC</strong>:  Introdução as novidades da família Flexis AC de 8 e 32 bits. Aborda os módulos básicos que estes dispositivos possuem, aprofundando sobre as propriedades do novo módulo de timer, Flex timer  e suas aplicações em controle de motor. </p>
<p><strong>Data</strong>:      21 de Novembro de 2008</p>
<p><strong>Horário</strong>:  8:00h as 18:00h</p>
<p><strong>Local</strong>:    InterCity Premium Porto Alegre<br />
              Av. Borges de Medeiros, 2105 - Bairro Praia de Belas<br />
              Porto Alegre/RS </p>
<p><strong>Investimento</strong>: Pelo preço promocional de R$389,00, você receberá o treinamento e duas (2) ferramentas de desenvolvimento: <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=DEMOJM&#038;fsrch=1"><strong>DEMOJM</strong></a> e <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=DEMOAC&#038;fsrch=1"><strong>DEMOACKIT</strong></a> (Cód FN KIT00040). A confirmação de sua inscrição será feita após recebermos a validação de compra/pagamento da ferramenta de desenvolvimento. <strong>As vagas são limitadas para as primeiras 20 pessoas que fizerem a aquisição da ferramenta para cada localidade</strong>. </p>
<p>Não perca, faça sua inscrição agora mesmo comprando as ferramentas de desenvolvimento pelo custo promocional. <a href="http://www.farnellnewark.com.br/u_Catalogo.apw?VerProd=1&#038;cCodPro=KIT00040"><strong>CLIQUE AQUI</strong></a> !!!
</p>
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[Arduino Placa de Desenvolvimento Open-Source]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2008/09/arduino-open-source/" />
		<id>http://www.rafaelquines.com/blog/2008/09/arduino-open-source/</id>
		<modified>2008-09-13T13:41:04Z</modified>
		<issued>2008-09-13T13:41:04Z</issued>
		
		<dc:subject>Eletrônica</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[Arduino é um projeto de circuito baseado em microprocessador de código aberto, da indústria Atmel. Uma placa física em código aberto baseada em um circuito de entradas/saídas simples. É também um ambiente de desenvolvimento do software Arduino. Sua linguagem de programação Arduino é uma implementação do Wiring, construída em Processing.


O Arduino pode ser usado para [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2008/09/arduino-open-source/"><![CDATA[<p>Arduino é um projeto de circuito baseado em microprocessador de código aberto, da indústria Atmel. Uma placa física em código aberto baseada em um circuito de entradas/saídas simples. É também um ambiente de desenvolvimento do software Arduino. Sua linguagem de programação Arduino é uma implementação do Wiring, construída em Processing.</p>
<p><img src="http://rafaelquines.com/img/arduino.jpg"></p>
<p><a id="more-30"></a></p>
<p>O Arduino pode ser usado para desenvolver objetos interativos, tomando entradas de vários switches ou sensores, e controlando uma variedade de luzes, motores, mecanismos, entre outras saídas. Os projetos do Arduino podem tanto ser autônomos, como se comunicar com softwares.<br />
As placas podem ser montadas à mão ou compradas; o código fonte IDE é livre, podendo ser baixado no próprio site do <a href="http://www.arduino.cc">Arduino</a>.</p>
<p>Como o Arduino é um produto dos EUA, por ser de código aberto, as empresas de desenvolvimento de hardware muitas vezes desenvolvem as suas. Por exemplo, eu comprei a <a href="http://www.tato.ind.br/detalhesproduto.asp?id=91">Tatuino</a> que é a versão fabricada pela <a href="http://www.tato.ind.br">Tato</a> 100% compatível com o Arduino. Como o Tatuino, existem Severino, Freeduino, etc.</p>
<p>É uma excelente placa de desenvolvimento para quem precisa fazer projetos de hardware, e muitas vezes não tem tanto conhecimento de eletrônica. Já tem na internet uma série de bibliotecas (C++) que podem ser incluídas no seu código fonte p/ as mais variadas funções, ex: Serial, Interrupção de Timer, Manchester (RF), etc. Segue as especificações:</p>
<p>Microcontroller	ATmega168<br />
Operating Voltage	5V<br />
Input Voltage (recommended)	7-12 V<br />
Input Voltage (limits)	6-20 V<br />
Digital I/O Pins	14 (of which 6 provide PWM output)<br />
Analog Input Pins	6<br />
DC Current per I/O Pin	40 mA<br />
DC Current for 3.3V Pin	50 mA<br />
Flash Memory	16 KB (of which 2 KB used by bootloader)<br />
SRAM	1 KB<br />
EEPROM	512 bytes<br />
Clock Speed	16 MHz</p>
<p>E o mais interessante é que não necessita de nenhum hardware adicional para fazer a gravação no microcontrolador. Ele já vem com um BootLoader, capaz de receber todo o seu programa via serial (no caso do Arduino, ele vem com um CI da FTDI que transforma USB x Serial, assim pode conectar na USB do PC). Mas com essas especificações, já dá pra brincar um pouquinho neh&#8230;
</p>
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[Novo Projeto Pessoal - Acionando Relés s/ Fio]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2008/05/novo-projeto-pessoal-acionando-reles-s-fio/" />
		<id>http://www.rafaelquines.com/blog/2008/05/novo-projeto-pessoal-acionando-reles-s-fio/</id>
		<modified>2008-05-21T01:59:38Z</modified>
		<issued>2008-05-21T01:59:38Z</issued>
		
		<dc:subject>Sem Categoria</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[Todos os dias, tento cada vez mais pensar em produtos e serviços que possam vir a tornar mais prática a vida das pessoas. Acho que toda empresa de tecnologia deve pensar isso, sempre tentando desenvolver softwares para simplificar o dia-a-dia. Atualmente, junto com meu amigo Matheus Zeuch, estamos planejando um sistema onde o usuário possa [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2008/05/novo-projeto-pessoal-acionando-reles-s-fio/"><![CDATA[<p>Todos os dias, tento cada vez mais pensar em produtos e serviços que possam vir a tornar mais prática a vida das pessoas. Acho que toda empresa de tecnologia deve pensar isso, sempre tentando desenvolver softwares para simplificar o dia-a-dia. Atualmente, junto com meu amigo <a href="http://webhorizon.com.br/matheus">Matheus Zeuch</a>, estamos planejando um sistema onde o usuário possa controlar qualquer lâmpada, janela, ar-condicionado, etc. Tudo através de um celular, ou um browser utilizando a internet, de qualquer lugar do mundo.</p>
<p>Uma grande vantagem de nosso projeto é a capacidade de instalarmos os hadware no cliente sem o uso de fios. Não precisa ir fio da placa de comunicação, até a lâmpada a ser controlada. Esse é um grande argumento na hora de sugerir o processo a um cliente.</p>
<p><a id="more-28"></a></p>
<p>Mas a pergunta que fica no ar: &#8220;Como diabos os caras vão bater um relé que controlará uma lâmpada, sem no mínimo 2 fios que vá da placa de comunicação até a lâmpada?&#8221;. A resposta é simples: usando rádio-frequência.</p>
<p>Imagine que na lâmpada, tenho um equipamento que contém um receptor RF e um relé. Claro, além de um processadorzinho pra tratar o que é recebido pelo RF. Bom, digo pra essa plaquinha o seguinte: Fulana, qnd vc receber o valor &#8220;123123&#8243; por rádio, inverta o estado do relé. Ae posso instalar 1 milhão de plaquinhas dessas, cada uma com o seu código, e uma em cada coisa que quero controlar, ex: lâmpadas, ar-condicionado, motores de aquário, janela a motor, abajour, qualquer periférico que seja acionado por um contato físico.</p>
<p><img src="http://rafaelquines.com/img/diagrama_home.jpg" alt="Ilustração" /><br />
Imagem: <a href="http://www.airwire.com.br">http://www.airwire.com.br</a></p>
<p>Com isso, já posso ativar/desativar esses equipamentos via um controle-remoto. Pois o que o controle de garagem, alarme de carro, etc; fazem, é exatamente isso: mandam um código. Se este código estiver no alarme do seu carro, por exemplo, o carro acionará o alarme.</p>
<p>Depois, para fazer a parte da comunicação com o PC, precisariamos de um equipamento com uma interface de rede, e que de alguma maneira (seria mta bondade minha se eu desse todo o caminho das pedras neh) eu possa simular um controle remoto, e enviar por RF o código de cada um dos relés no momento em que eu quero acionar cada um deles.</p>
<p>Bom, é nisso que estou envolvido nesse momento, nos tempos livres. Se alguém quiser compartilhar experi}ências, ou fazer perguntas sobre o projeto, e se interessar para dar idéias, estamos abertos a novas opiniões. Estou desenvolvendo um primeiro protótipo na minha protoboard. Não tá muito bonito, com um monte de fios misturados, mas o mais importante é que funciona&#8230;.
</p>
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[Estou de volta]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2008/05/estou-de-volta/" />
		<id>http://www.rafaelquines.com/blog/2008/05/estou-de-volta/</id>
		<modified>2008-05-05T04:06:24Z</modified>
		<issued>2008-05-05T04:06:24Z</issued>
		
		<dc:subject>Pessoal</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[Bom, devo um milhão de desculpas para os fiéis leitores do meu blog. Estou sempre tentando inventar equipamentos, ou inventar serviços WEB, ou até inventar soluções que ainda não tenham sido bem exploradas, mas nesse início de ano, minha vida virou de pernas pro ar. Aconteceram tantas coisas que o blog foi uma das coisas [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2008/05/estou-de-volta/"><![CDATA[<p>Bom, devo um milhão de desculpas para os fiéis leitores do meu blog. Estou sempre tentando inventar equipamentos, ou inventar serviços WEB, ou até inventar soluções que ainda não tenham sido bem exploradas, mas nesse início de ano, minha vida virou de pernas pro ar. Aconteceram tantas coisas que o blog foi uma das coisas que ficaram sem atualização.<br />
<a id="more-29"></a></p>
<p>O início da história triste é que fiquei tão indignado com a desorganização da empresa em que eu estava trabalhando que comecei a procurar outro emprego. Fui parar numa empresa (não vale a pena citar nomes) em uma cidade a 40km aqui da capital. Como já estava pensando em sair da casa dos meus pais, fui atras de um JK nessa cidade e acabei me mudando. O emprego não estava legal. Eu estava acostumado com essa parte de desenvolvimento para integração de hardware e software, imaginem como me senti fazendo telinhas HTML com JSP durante as demoradas 8 horas de cada dia da semana.</p>
<p>Passados 3 dias, já estava morando há 1 min da empresa. E no 15º dia, estava quase me atirando da janela do prédio, pois não estava mais aguentando aquela vida rotineira, sem conquistas e nem desafios diários. E nessa mesma época, adivinha quem me ligou pra me chamar pra trabalhar pra eles? A Commbox, empresa que eu já fazia serviços terceirizados, no qual gostava bastante, e agora queriam que eu fosse o responsável pela área de TI da empresa. Saí correndo e fui trabalhar pra Commbox.</p>
<p>Bom, quando voltei pra Porto Alegre, já resolvi que ia morar com minha namorada, e tive que fazer mudanças novamente. Hoje, estou levando vida de casado com minha noiva, trabalhando numa área muito legal, q eu gosto bastante, e de bem com a vida. Estou de volta para escrever os posts técnicos, tanto na área de Java quanto na área de integração geral de hardware e software.
</p>
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[Varargs - Mais um recurso do Java 5]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2007/12/varargs-mais-um-recurso-do-java-5/" />
		<id>http://www.rafaelquines.com/blog/2007/12/varargs-mais-um-recurso-do-java-5/</id>
		<modified>2007-12-11T23:19:38Z</modified>
		<issued>2007-12-11T23:19:38Z</issued>
		
		<dc:subject>Java</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[Varargs é um dos novos recursos do Java 5, que como o nome já diz, lhe permite fazer com que um método de uma classe receba parâmetros variáveis. Por exemplo, você quer que o seu método receba 1 int, ou um array. Nas versões anteriores ao Java 5, você teria duas maneiras de fazer:

class Varargs1 [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2007/12/varargs-mais-um-recurso-do-java-5/"><![CDATA[<p>Varargs é um dos novos recursos do Java 5, que como o nome já diz, lhe permite fazer com que um método de uma classe receba parâmetros variáveis. Por exemplo, você quer que o seu método receba 1 int, ou um array. Nas versões anteriores ao Java 5, você teria duas maneiras de fazer:</p>
<pre name="code" class="java">
class Varargs1 {
    public void metodoTeste(int a) {
        //a implementação tratará um único int
    }
    public void metodoTeste(int[] a) {
        //a implementação tratará o array
    }
}
</pre>
<p><a id="more-26"></a><br />
ou então, teria um método apenas, que recebesse um array, e quando quisesse passar um elemento apenas, deveria fazer o seguinte:</p>
<pre name="code" class="java">
...
int x = 4;
metodoTeste(new int[]{x});
...
</pre>
<p>Este problema foi completamente resolvido na versão 5. Para usar o varargs, você coloca o tipo acompanhado de reticiências &#8220;&#8230;&#8221; e depois o nome da variável, como mostra o exeplo:</p>
<pre name="code" class="java">
class Varargs1 {
    public void metodoTeste(int... a) {
        /*
        a implementação tratará da variável a como
        um array, tendo ou não valores...
        */
    }
}
</pre>
<p>Dessa maneira, o método pode ser chamado assim:</p>
<pre name="code" class="java">
metodoTeste();
metodoTeste(5);
metodoTeste(1, 23, 56, 10);
metodoTeste(new int[]{5, 6, 7, 8});
</pre>
<p>Para manipular os dados que o método recebeu, sempre será um vetor, e é fácil de identificar através da propriedade length:</p>
<pre name="code" class="java">
class Varargs1 {
    public void metodoTeste(int... a) {
        if(a.length == 0) {
            //Não recebeu nenhum valor
        } else {
            //Recebeu 1 um mais ints
        }
    }
}
</pre>
<p><strong>ATENÇÃO: </strong>quando se combina o varargs com outros parâmetros num método, é imprescindível que a variável que use as reticiências fique como <strong>último parâmetro</strong>. Notem que isto é questão de certificação.</p>
<pre name="code" class="java">
class Varargs1 {
    /* CORRETO */
    public void metodoTeste(String str, int x, double... d) {
        ...
    }
    /* INCORRETO */
    public void metodoTeste(String str, double... d, int x) {
        ...
    }
}
</pre>
<p>Para acessar a documentação oficial da SUN, clique <a href="http://java.sun.com/developer/JDCTechTips/2005/tt0104.html#1">AQUI</a>.
</p>
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[Covariant, o que é e para que serve?!?]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2007/12/covariant-o-que-e-e-para-que-serve/" />
		<id>http://www.rafaelquines.com/blog/2007/12/covariant-o-que-e-e-para-que-serve/</id>
		<modified>2007-12-11T02:19:16Z</modified>
		<issued>2007-12-11T02:19:16Z</issued>
		
		<dc:subject>Desenvolvimento</dc:subject>

		<dc:subject>Java</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[No decorrer dos meus estudos, me deparei com esse tal de covariant, segue o exercício (pág 17, Certificação Java 5):
5. O tipo de retorno Covariant permite o método da subclasse retornar uma ______(subclasse/superclasse) do tipo de retorno do método da superclasse.
Resposta (pág 20):  &#8220;subclasse&#8221;. Explicação: &#8220;Tipo de retorno Covariant&#8221; é uma nova característica (Java [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2007/12/covariant-o-que-e-e-para-que-serve/"><![CDATA[<p>No decorrer dos meus estudos, me deparei com esse tal de covariant, segue o exercício (pág 17, Certificação Java 5):</p>
<p>5. O tipo de retorno Covariant permite o método da subclasse retornar uma ______(subclasse/superclasse) do tipo de retorno do método da superclasse.</p>
<p><strong>Resposta (pág 20):  &#8220;subclasse&#8221;. Explicação: &#8220;Tipo de retorno Covariant&#8221; é uma nova característica (Java 5) que permite a você declarar um tipo de retorno que seja subclasse do tipo de retorno do método sobrescrito</strong>.<br />
<a id="more-25"></a></p>
<p>Confuso não!?!?</p>
<p>Vamos entender então.</p>
<p>Vamos supor que vc faça uma classe como a seguinte:</p>
<pre name="code" class="java">
class A { };
</pre>
<pre name="code" class="java">
class B extends A {};
</pre>
<p>Agora, uma classe Super, que contém um método que retorna um objeto tipo A:</p>
<pre name="code" class="java">
class Super {
    public A nomeMetodo() {
        return new A();
    }
}
</pre>
<p>Agora, vamos definir uma classe Sub, que extende Super. No Java até 1.4, você não pode sobrescrever o método “nomeMetodo()”, mudando seu tipo de retorno. O código a seguir não compilaria:</p>
<pre name="code" class="java">
class Sub {
    public B nomeMetodo() {
        return new B();
    }
}
</pre>
<p>E é exatamente isso que agora, no Java 5, funciona. Mas há uma condição: o tipo de retorno do método sobrescrito deve ser do mesmo nível, ou filho, do tipo de retorno do método da classe pai, ou seja, o método “nomeMetodo()” da classe Sub só funciona, no Java 5, porque a classe B extende a classe A. Portanto, agora é possível sobrescrever um método herdado e alterar seu tipo de retorno, desde que seja filho do tipo de retorno da classe pai.</p>
<p>Bom, é isso ae. Espero ter sanado as dúvidas sobre mais essa nova implementação do Java 5. Para você que ficou com alguma dúvida, segue o link da SUN que trata desse assunto: <a title="Covariant Return Type" target="_blank" href="http://java.sun.com/developer/JDCTechTips/2005/tt0104.html#2">AQUI</a>.
</p>
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[Certificação Java 5]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2007/12/certificacao-java-5/" />
		<id>http://www.rafaelquines.com/blog/2007/12/certificacao-java-5/</id>
		<modified>2007-12-11T00:19:27Z</modified>
		<issued>2007-12-11T00:19:27Z</issued>
		
		<dc:subject>Desenvolvimento</dc:subject>

		<dc:subject>Java</dc:subject>

		<dc:subject>Linguagens</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[Bom, como um programador e amante da linguagem Java, também quero tirar minha certificação Java. Tenho mais ou menos 2 anos de experiência com Java. Porém, é muito importante sempre sabermos que não basta experiência na linguagem, pois na prova de certificação cai muito mais que isso. Cai muito essa parte de definição, o que [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2007/12/certificacao-java-5/"><![CDATA[<p>Bom, como um programador e amante da linguagem Java, também quero tirar minha certificação Java. Tenho mais ou menos 2 anos de experiência com Java. Porém, é muito importante sempre sabermos que não basta experiência na linguagem, pois na prova de certificação cai muito mais que isso. Cai muito essa parte de definição, o que é possível fazer, e o que é proibido. Então, para quem conhece java e pretende, como eu, tirar a certificação SCJP, estude, pois sem esse estudo específico para a certificação, não passará.</p>
<p><a id="more-24"></a> Comprei o livro <a title="Certificação Java 5" target="_blank" href="http://www.submarino.com.br/books_productdetails.asp?Query=ProductPage&#038;ProdTypeId=1&#038;ProdId=1479838&#038;ST=SR">&#8220;Certificação Java 5&#8243;</a> e estou usando-o para testar meus conhecimentos e estar aprendendo cada vez mais. O livro tem inúmeras questões, agrupadas por assunto e por nível de dificuldade, e para cada questão, existe a resposta da questão, inclusive com uma boa explicação de o porquê aquela resposta é a certa, e porque as outras estão erradas. Isso está sendo muito bom, pelo menos pra mim, que não estou muito familiarizado com essa parte que o programador não usa muito no dia-a-dia.</p>
<p>Estarei a partir de hoje, postando aqui assuntos que eu ache interessante, que não são assuntos muito comuns, mas imporantes para quem deseja estudar para a certificação. &#8220;Covariant&#8221; é uma das coisas que aprendi nos estudos para a certificação. Nem sabia que isso existia antes de começar a estudar, e quando vi, fui atrás para me interar do assunto. Esse é um bom exemplo de assuntos não tão conhecidos, de Java, que caem na certificação.
</p>
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>Rafael Quines</name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[Conversor Serial =&gt; Infra-Vermelho]]></title>
		<link rel="alternate" type="text/html" href="http://www.rafaelquines.com/blog/2007/10/conversor-serial-infra-vermelho/" />
		<id>http://www.rafaelquines.com/blog/2007/10/conversor-serial-infra-vermelho/</id>
		<modified>2007-10-23T10:45:53Z</modified>
		<issued>2007-10-23T10:45:53Z</issued>
		
		<dc:subject>Eletrônica</dc:subject>

		<dc:subject>Porta Serial</dc:subject>

		<dc:subject>Java</dc:subject>
 
		<summary type="text/plain" mode="escaped"><![CDATA[Esta semana tive que fazer um projeto para a feira de ciências do curso de eletrônica na Escola Técnica Sto Inácio, aqui em Porto Alegre-RS. Pensei direto na porta serial. Por ser algo que já tenho um certo conhecimento, e para aproveitar a oportunidade de mostrar cada vez mais como o PC, com suas portas [...]]]></summary>
		<content type="text/html" mode="escaped" xml:base="http://www.rafaelquines.com/blog/2007/10/conversor-serial-infra-vermelho/"><![CDATA[<p>Esta semana tive que fazer um projeto para a feira de ciências do curso de eletrônica na Escola Técnica Sto Inácio, aqui em Porto Alegre-RS. Pensei direto na porta serial. Por ser algo que já tenho um certo conhecimento, e para aproveitar a oportunidade de mostrar cada vez mais como o PC, com suas portas de comunicação, podem fazer coisas impressionantes.</p>
<p>Estava lendo revistas, projetos de eletrônica, até que achei uma Elektor, que tinha um projeto na capa &#8220;Emissor/Receptor de Infra-Vermelho para PC&#8221;. Na mesma hora eu já tinha decidido, seria esse o projeto. Comecei a ler e vi que era exatamente o que eu estava pensando sobre o projeto, seria possível trocar quaisquer tipos de informações entre os dois PCs envolvidos. Seria só o trabalho de montar as duas placas idênticas, uma para cada PC, e fazer o software para ler e escrever na serial. Imaginei em fazer um bate-papo, estilo MSN, com transferência de arquivos.</p>
<p><a id="more-23"></a></p>
<p>Segue o esquemático do projeto:</p>
<p><a target="_blank" title="Esquemático" href="http://rafaelquines.com/img/esq_infra.jpg"><img width="474" height="363" border="0" align="middle" title="Esquemático" alt="Esquemático" src="http://rafaelquines.com/img/esq_infra.jpg" /></a></p>
<p>Tive um pequeno problema nesse circuito. Como podem notar, o circuito utiliza a fonte da própria porta serial para alimentar, porém, quando eu ia escrever qualquer coisa no TX, a fonte &#8220;arriava&#8221;, não aguentava, consumia mta corrente para a porta. Então, para o TX, usei fonte externa. Outra coisa, depois disso, foi que quando eu escrevia qualquer coisa, o receptor (RX) da mesma máquina recebia tudo que eu mandava, e como o RX continuava sendo alimentado pelo pino RTS/DTR, cada vez que eu iria escrever qualquer coisa, desabilitava esse pinos, afim de impedir o recebimento do que estava enviando. O objetivo era apenas que o outro pc recebesse.</p>
<p>Para dificuldades na escrita da porta serial, sugiro meu outro post, que fala justamente da configuração do ambiente para possibilitar a escreta na serial, usando a API Comm da Sun, <a title="Escrevendo na porta serial com java" target="_blank" href="http://www.rafaelquines.com/blog/2007/01/escrevendo-na-porta-serial-com-java/">segue o link</a>.</p>
<p>E aqui, estou disponibilizando o código fonte do software que fiz. Pode ter alguns bugs, mas o que importava, nesse caso, era o perfeito funcionamento do mesmo. <strong>Lembrete</strong>: por limitação do infra, a velocidade da serial (baudrate) deve ser de até 2400 bps.</p>
<p><strong>Final da história: </strong>Para a minha surpresa, tirei 1º lugar na categoria &#8220;Eletrônica&#8221; da Feira de Ciências e Técnologia da Escola Sto Inácio. Isso que estou no primeiro semestre, e ainda comecei no curso meio atrasado, depois de 2 meses de aulas que perdi. Fiquei muito feliz com a premiação, que não foi grande coisa - 1 multímetro, 1 ferro de solda, 1 jogo de chaves Taurus e uma medalha - mas valeu a pena passar tanto trabalho pra fazer esse circuito funcionar. Na apresentação, ficaram 2 computadores, um ao lado do outro, há uns 3 metros de distância, e usando bate-papo, porém, sem fio nenhum. Todas as informações passavam pelo infra, que para quem não sabe, é parecido com <a title="Código Morse" target="_blank" href="http://pt.wikipedia.org/wiki/C%C3%B3digo_Morse">Código Morse</a>, só que ao invés de ser por som, é por luminosidade.
</p>
]]></content>
	</entry>
	</feed>
