<?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>Boteco Digital &#187; Java</title>
	<atom:link href="http://www.botecodigital.info/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.botecodigital.info</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 20:33:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Manipulando datas em Java</title>
		<link>http://www.botecodigital.info/java/manipulando-datas-em-java/</link>
		<comments>http://www.botecodigital.info/java/manipulando-datas-em-java/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 19:59:39 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[datas]]></category>
		<category><![CDATA[desenvolvimento]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=959</guid>
		<description><![CDATA[Para quem está começando, trabalhar com datas em Java pode ser um pouco complicado, já que a classe Date não fornece todos os recursos necessários. Para completá-la é também utilizada a classe Calendar, que é uma classe abstrata que permite a manipulação de datas de forma mais fácil. Date(java.util.Date) A classe Date armazena uma data e hora, que internamente é armazenada com um inteiro long que é o numero de milissegundos que se passou desde 01/01/1970. Esta classe é bem [...]]]></description>
			<content:encoded><![CDATA[<p>Para quem está começando, trabalhar com datas em Java pode ser um pouco complicado, já que a classe <strong>Date</strong> não fornece todos os recursos necessários. Para completá-la é também utilizada a classe <strong>Calendar</strong>, que é uma classe abstrata que permite a manipulação de datas de forma mais fácil.</p>
<h3>Date(java.util.Date)</h3>
<p>A classe <strong>Date</strong> armazena uma data e hora, que internamente é armazenada com um inteiro long que é o numero de milissegundos que se passou desde 01/01/1970. </p>
<p>Esta classe é bem simples de se trabalhar, mas muitos de seus métodos foram depreciados por não trabalhar muito bem com internacionalização e etc.  </p>
<p>Para obter a data atual se basta criar um objeto <strong>Date</strong> sem nenhum parâmetro.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Date</span> d <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h3>Calendar(java.util.Calendar)</h3>
<p>A classe <strong>Calendar</strong> sendo uma classe abstrata não pode ser instanciada com o operador new, ela deve ser criada utilizando um operador estático sobrecarregado <strong>getInstance()</strong>. Na maioria das vezes você vai receber uma instância de Java.util.GregorianCalendar.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Calendar</span> c <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getIntance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Com a instância de <strong>Calendar</strong> devemos configurar uma data e podemos fazer isso de duas formas: </p>
<h6>Métodos set</h6>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">c.<span style="color: #006633;">set</span><span style="color: #009900;">&#40;</span>ano,mes,dia<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
c.<span style="color: #006633;">set</span><span style="color: #009900;">&#40;</span>ano,mês,dia,hora,minuto<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
c.<span style="color: #006633;">set</span><span style="color: #009900;">&#40;</span>ano,mês,dia,hora,minuto,segundo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h6>Método setTime</h6>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">c.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>A classe <strong>Calendar</strong> também nos fornece  várias constantes que utilizaremos para manipular uma data entre elas.</p>
<p>Com a data devidamente configurada podemos realizar diversas operações com a data:</p>
<p>Para adicionar ou subtrair um dia, hora, mês ou ano utilizamos o método <strong>add</strong>. O método <strong>add</strong> aceita dois parâmetros, sendo o primeiro um constante inteira que representa a unidade da data que queremos modificar(dia, mês , ano, etc&#8230;) e o segundo quantas vezes será adicionada/subtraída esta unidade.</p>
<p>A unidade é informada utilizando constantes fornecidas pela classe <strong>Calendar</strong> que pode ser:</p>
<h6>Dia:</h6>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_MONTH</span>
<span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_WEEK</span>
<span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_YEAR</span></pre></div></div>

<h6>Mês:</h6>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">MONTH</span></pre></div></div>

<h6>Ano:</h6>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">YEAR</span></pre></div></div>

<h6>Hora:</h6>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">HOUR</span>
<span style="color: #003399;">Calendar</span>.<span style="color: #006633;">HOUR_OF_DAY</span></pre></div></div>

<h6>Segundos:</h6>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">SECOND</span></pre></div></div>

<p>Veja o exemplo abaixo:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Date</span> d<span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">Calendar</span> c <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
c.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">DAY_OF_YEAR</span>,<span style="color: #cc66cc;">5</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//adicionamos 5 dias a data aual</span>
c.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">MONTH</span>,<span style="color: #cc66cc;">3</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//adicionamos 3 mêses a data atual</span>
c.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Calendar</span>.<span style="color: #006633;">YEAR</span>,<span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//adicionamos 1 ano a data atual</span></pre></div></div>

<h3>DateFormat(java.text.DateFormat)</h3>
<p>Bom agora sabemos como manipula datas, agora precisamos formatar a data para apresentação. A classe <strong>DateFormat</strong> nos fornece uma maneira simples de formatá-la e permite a internacionalização a partir da classe <strong>Locale</strong>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">        <span style="color: #003399;">Date</span> d <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">Calendar</span> c <span style="color: #339933;">=</span> <span style="color: #003399;">Calendar</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        c.<span style="color: #006633;">setTime</span><span style="color: #009900;">&#40;</span>d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #003399;">DateFormat</span> df <span style="color: #339933;">=</span> <span style="color: #003399;">DateFormat</span>.<span style="color: #006633;">getDateInstance</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">DateFormat</span>.<span style="color: #006633;">SHORT</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> df.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>c.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Para obtermos uma String da data utilizamos o método <strong> format</strong> que retorna uma String no formato especificado no método <strong>getDateInstance()</strong>. A saída do exemplo acima será algo como 03/04/10.</p>
<p>A classe <strong>DateForma</strong> nos fornece vários tipos de formato para data como:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">Dateformat.<span style="color: #006633;">SHORT</span> <span style="color: #666666; font-style: italic;">// 03/04/10</span>
Dateformat.<span style="color: #006633;">MEDIUM</span> <span style="color: #666666; font-style: italic;">// 03/04/2010</span>
Dateformat.<span style="color: #006633;">LONG</span> <span style="color: #666666; font-style: italic;">//3 de Abril de 2010</span>
Dateformat.<span style="color: #006633;">FULL</span> <span style="color: #666666; font-style: italic;">//Sábado, 3 de Abril de 2010</span></pre></div></div>

<p>Embora para muitos casos estes formatos serão suficientes algumas vezes necessitamos de uma formato vem personalizado. Isso pode ser feio através de um subclasse de <strong>DateFormat</strong> a <strong>SimpleDateFormat</strong>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">        <span style="color: #003399;">Date</span> hoje  <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">SimpleDateFormat</span> sdf <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;dd/MM/yyyy HH:mm:ss&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> sdf.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>hoje<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>O construtor de <strong>SimpleDateFormat</strong> recebe uma String que representa o formato da data. Os símbolos utilizados para cada campo da data pode ser visto na tabela abaixo abaixo:</p>
<table>
<tr>
<th>Símbolo</th>
<th>Significado</th>
<th>Apresentação</th>
<th>Exemplo</th>
</tr>
<tr>
<td>G</td>
<td>era designator</td>
<td>(Text)</td>
<td>AD</td>
</tr>
<tr>
<td>y</td>
<td>year</td>
<td>(Number)</td>
<td>1996</td>
</tr>
<tr>
<td>M</td>
<td>month in year</td>
<td>(Text &#038; Number)</td>
<td>July &#038; 07      </td>
</tr>
<tr>
<td>d</td>
<td>day in month</td>
<td>(Number)</td>
<td>10    </td>
</tr>
<tr>
<td>h</td>
<td>hour in am/pm (1~12)</td>
<td>(Number)</td>
<td>12</td>
</tr>
<tr>
<td>H</td>
<td>hour in day (0~23)</td>
<td>(Number)</td>
<td>0</td>
</tr>
<tr>
<td>m</td>
<td>minute in hour</td>
<td>(Number)</td>
<td>30</td>
</tr>
<tr>
<td>s</td>
<td>second in minute</td>
<td>(Number)</td>
<td>55</td>
</tr>
<tr>
<td>S</td>
<td>millisecond</td>
<td>(Number)</td>
<td>978</td>
</tr>
<tr>
<td>E</td>
<td>day in week</td>
<td>(Text)</td>
<td>Tuesday</td>
</tr>
<tr>
<td>D</td>
<td>day in year</td>
<td>(Number)</td>
<td>189</td>
</tr>
<tr>
<td>F</td>
<td>day of week in month</td>
<td>(Number)</td>
<td>2 (2nd Wed in July)</td>
</tr>
<tr>
<td>w</td>
<td>week in year</td>
<td>(Number)</td>
<td>27</td>
</tr>
<tr>
<td>W</td>
<td>week in month</td>
<td>(Number)</td>
<td>2</td>
</tr>
<tr>
<td>a</td>
<td>am/pm marker</td>
<td>(Text)</td>
<td>PM</td>
</tr>
<tr>
<td>k</td>
<td>hour in day (1~24)</td>
<td>(Number)</td>
<td>24</td>
</tr>
<tr>
<td>K</td>
<td>hour in am/pm (0~11)</td>
<td>(Number)</td>
<td>0</td>
</tr>
<tr>
<td>z</td>
<td>time zone</td>
<td>(Text)</td>
<td>Pacific Standard Time</td>
</tr>
</table>
<p>Como vimos o dia da semana pode ser escrito por extenso, que língua ele será utilizada? Normalmente o inglês, mas se quisermos que seja na língua de um local diferente?</p>
<p>Para isso utilizaremos a internacionalização com a classe <strong>Locate</strong> que recebe em seu construtor a língua e o país que queremos utilizar:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Locale</span> brasil <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Locale</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;pt&quot;</span>,<span style="color: #0000ff;">&quot;br&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//portugues do brasil</span>
<span style="color: #003399;">Locale</span> japao <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Locale</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ja&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">// japao</span></pre></div></div>

<p>O objeto locale de <strong>Locale</strong> pode ser utilizado tanto com a classe <strong>DateFormat</strong> quanto com a classe <strong>SimpleDateFormat</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Date</span> hoje  <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">SimpleDateFormat</span> sdf <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;E dd &quot;</span>,<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Locale</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;pt&quot;</span>,<span style="color: #0000ff;">&quot;br&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> sdf.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>hoje<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #003399;">DateFormat</span> df <span style="color: #339933;">=</span> <span style="color: #003399;">DateFormat</span>.<span style="color: #006633;">getDateInstance</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">DateFormat</span>.<span style="color: #006633;">FULL</span>,<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Locale</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;pt&quot;</span>,<span style="color: #0000ff;">&quot;br&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> df.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>hoje<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Para finalizar como covertermos uma String em um objeto <strong>Date</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">        <span style="color: #003399;">Date</span> d  <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">SimpleDateFormat</span> df <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DD/MM/yyyy&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
            d <span style="color: #339933;">=</span> df.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;25/03/2010&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">ParseException</span> ex<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            ex.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> df.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span>d<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>O métdo <strong>parse </strong> da classe <strong>DateFormat</strong> e <strong.SimpleDateFormat</strong> recebe uma string e convertepara um objeto <strong>Date</strong></p>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/manipulando-datas-em-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Código espartano</title>
		<link>http://www.botecodigital.info/java/codigo-espartano/</link>
		<comments>http://www.botecodigital.info/java/codigo-espartano/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 23:33:27 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=838</guid>
		<description><![CDATA[Sexta-feira a noite, aula de programação e muita &#8220;classe&#8221; para fazer piada. package sparta; &#160; public class Warrior &#123; &#160; public static void main&#40;String args&#91;&#93;&#41;&#123; Warrior w = new Warrior&#40;&#41;; w.run&#40;&#41;; &#160; &#125; private void run&#40;&#41;&#123; //atenção humor nerd!!! boolean motherFucker = this.isSparta&#40;&#41;; &#160; if&#40; motherFucker &#41;&#123; this.kickBastard&#40;&#41;; &#125;else&#123; this.die&#40;&#41;; &#125; &#125; &#160; private boolean isSparta&#40;&#41; &#123; return true; &#125; &#160; private void kickBastard&#40;&#41; &#123; System.out.println&#40;&#34;ahhhhhhh!!!!!&#34;&#41;; &#125; &#160; private void die&#40;&#41; &#123; System.out.println&#40;&#34;...&#34;&#41;; &#125; &#125; Boa sacada Henrico e Luciano! [...]]]></description>
			<content:encoded><![CDATA[<p>Sexta-feira a noite, aula de programação e muita &#8220;classe&#8221; para fazer piada.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">sparta</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Warrior <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> args<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        Warrior w <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Warrior<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        w.<span style="color: #006633;">run</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">//atenção humor nerd!!!</span>
        <span style="color: #000066; font-weight: bold;">boolean</span> motherFucker <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">isSparta</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> motherFucker <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">kickBastard</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> isSparta<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> kickBastard<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ahhhhhhh!!!!!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> die<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Boa sacada Henrico e Luciano!</p>
<p>[UPDATE]</p>
<p>Equipe de desenvolvimento do <strong>código espartano</strong>!</p>
<div style="text-align:center">
<img src="http://www.botecodigital.info/wp-content/uploads/2009/12/THIS.IS.SPARTA-300x266.png" alt="Programadores espartanos - this.isSparta" title="Programadores espartanos - this.isSparta" width="300" height="266" class="size-medium wp-image-851" />
</div>
<p>Se notarem o horário do relógio irão perceber que tinha que entregar um trabalho na segunda!</p>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/codigo-espartano/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>UruguaianaTech</title>
		<link>http://www.botecodigital.info/php/uruguaianatech/</link>
		<comments>http://www.botecodigital.info/php/uruguaianatech/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 01:27:42 +0000</pubDate>
		<dc:creator>Thiago Finardi</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[cidão]]></category>
		<category><![CDATA[humberto moura]]></category>
		<category><![CDATA[jose inoue]]></category>
		<category><![CDATA[rodrigo aramburu]]></category>
		<category><![CDATA[senac uruguaiana]]></category>
		<category><![CDATA[Thiago Finardi]]></category>
		<category><![CDATA[ti uruguaiana]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=798</guid>
		<description><![CDATA[Chegamos ao fim do 1º Uruguaiana Tech, foram três dias de evento onde podemos colaborar de alguma forma com a nossa comunidade. Fiquei extremamante satisfeito com o resultado do evento, era muito prazeroso conversar com os participantes após as palestras, podendo assim os conhecer melhor e principalmente constatar que muitas pessoas estão testando softwares livre. Várias pessoas elogiaram a iniciativa e principalmente a qualidade do evento como um todo. A idéia da realização do UruguaianaTECH surgiu a partir da necessidade [...]]]></description>
			<content:encoded><![CDATA[<p>Chegamos ao fim do 1º Uruguaiana Tech, foram três dias de evento onde podemos colaborar de alguma forma com a nossa comunidade. Fiquei extremamante satisfeito com o resultado do evento, era muito prazeroso conversar com os participantes após as palestras, podendo assim os conhecer melhor e principalmente constatar que muitas pessoas estão testando softwares livre. Várias pessoas elogiaram a iniciativa e principalmente a qualidade do evento como um todo.</p>
<p>A idéia da realização do UruguaianaTECH surgiu a partir da necessidade de eventos na área de tecnologia da informação em nossa região, e principalmente para difundir a utilização do Software Livre em todos os setores de nossa comunidade.</p>
<p>O constante crescimento da utilização do software livre nas organizações nos últimos anos, demonstram que o reconhecimento dos benefícios é algo concreto, nosso país é considerado um dos maiores utilizadores desta tecnologia, onde também existem diversos colaboradores e mantenedores de aplicativos Livres.</p>
<p>Vemos na fronteira oeste, um mercado a ser explorado pois muitas organizações locais não fazem o uso de um Software Livre pelo fato de desconhecerem suas vantagens e benefícios.</p>
<p>Cabe a nós profissionais e estudantes da área de TI mudar este cenário, pois a evolução esta acontecendo, é nossa obrigação contribuir para que ela aconteça também em nossa cidade.</p>
<p>As vezes pensamos que em nossa cidade não há um mercado para os profissinais de TI, isto faz com que muitos estudantes recém formados acabem saindo de nossa cidade em busca de oportunidades, com isso nossa comunidade acaba perdendo qualidade nos serviços prestados. Com esta iniciativa esperamos demosntrar a nossa comunidade que dentro dela mesmo é possível encontrar profissionais qualificados e preparados para os desafios da área de TI.</p>
<p>Gostaria muito de agradecer a participação dos Professores Cidão e Humberto Moura que trouxeram um brilho a mais em nosso evento, a área de TI do Senac Uruguaiana, aos colaboradores voluntários que nos ajudaram na organização e principalmente aos nossos apoiadores, pois sem eles esta edição do Uruguaiana Tech não seria possível.</p>
<p>Agora fica a saudade dos bons momentos compartilhados durante o evento, o conhecimento que foi recebido e retribuido, pois como mencionei no evento: &#8220;O conhecimento é universal, nós aprendemos com alguém e é nossa OBRIGAÇÃO ensinar alguém&#8221;.</p>
<p>Nós nos comprometemos em levar esta causa adiante e faremos o que for necessário para alavancar nossa área de TI em nossa cidade, o sol nasce para todos e juntos faremos com que esta mudança aconteça.</p>
<p><div id="galeria"><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01143.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01143.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01151.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01151.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01159.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01159.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01160.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01160.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01161.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01161.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01162.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01162.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01164.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01164.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01165.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01165.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01171.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01171.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01177.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01177.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01179.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01179.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01180.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01180.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01184.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01184.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01186.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01186.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01187.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01187.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01190.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01190.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01196.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01196.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01199.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01199.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01200.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01200.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01207.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01207.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01208.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01208.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01212.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01212.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01213.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01213.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01214.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01214.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01215.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01215.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01217.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01217.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01219.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01219.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01222.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01222.jpg" /></a><a href="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/g/DSC01225.jpg" rel="prettyPhoto[uruguaianatech]" class="prettyPhoto"><img src="http://www.botecodigital.info/wp-content/uploads/galerias/uruguaianatech/p/DSC01225.jpg" /></a><div style="clear:both;"></div></div></p>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/uruguaianatech/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>1º UruguaianaTech</title>
		<link>http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/</link>
		<comments>http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 02:50:35 +0000</pubDate>
		<dc:creator>Thiago Finardi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[senac uruguaiana]]></category>
		<category><![CDATA[ti uruguaiana]]></category>
		<category><![CDATA[uruguaiana tech]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=778</guid>
		<description><![CDATA[Com a missão de educar para o trabalho em atividades do comércio de bens, serviços e turismo, o SENAC Uruguaiana promove nos dias 26, 27 e 28 de novembro o 1° UruguaianaTech, evento que visa difundir a utilização do Software Livre nos diversos setores de nossa comunidade. Sempre conectado às inovações do mercado e atento às novas tendências em tecnologia, o núcleo de TI do Senac Uruguaiana, ministrará palestras sobre os temas: Linux, Servidores, Segurança, Desenvolvimento de Aplicações Web e [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-777" title="logo" src="http://www.botecodigital.info/wp-content/uploads/2009/11/logo.png" alt="logo" width="423" height="174" /></p>
<p>Com a missão de educar para o trabalho em atividades do comércio de bens, serviços e turismo, o SENAC Uruguaiana promove nos dias <strong>26, 27 e 28</strong> de novembro o <a href="http://www.uruguaianatech.info" target="_blank"><strong>1° UruguaianaTech</strong></a>, evento que visa difundir a utilização do Software Livre nos diversos setores de nossa comunidade.</p>
<p>Sempre conectado às inovações do mercado e atento às novas tendências em tecnologia, o núcleo de<strong> TI do Senac Uruguaiana</strong>, ministrará palestras sobre os temas: Linux, Servidores, Segurança, Desenvolvimento de Aplicações Web e Móvel.</p>
<p>Esta edição contará com a presença de profissionais de destaque no mercado da Tecnologia da Informação, com ampla experiência na utilização de Software Livre em ambientes corporativos, educacionais e domésticos.</p>
<p>O evento será realizado no auditório do Colégio Marista Sant’Ana. As inscrições podem ser realizadas através do <a href="http://www.uruguaianatech.info/inscricaos/">site</a> ou na unidade do Senac, mediante a colaboração com um alimento não-perecível. Aos interessados na emissão do certificado, o investimento será de R$10,00.</p>
<p>Vejam abaixo a programação do evento. Destaque para o 1º e 2º dia onde os editores deste blog, <strong>Thiago Finardi</strong> e <strong>Rodrigo Aramburu</strong>, ministrarão palestras no evento.</p>
<p><img class="aligncenter size-full wp-image-782" title="Cartaz_RGB_peq" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cartaz_RGB_peq.png" alt="Cartaz_RGB_peq" width="454" height="642" /></p>
<p>Vamos lá pessoal, participem e ajudem no crescimento da área de TI em nossa cidade.</p>
<h1>
<p style="text-align: center;"><a href="http://www.uruguaianatech.info" target="_blank"><strong>http://www.uruguaianatech.info</strong></a></p>
</h1>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Conectando Java com HSQLDB</title>
		<link>http://www.botecodigital.info/java/conectando-java-com-hsqldb/</link>
		<comments>http://www.botecodigital.info/java/conectando-java-com-hsqldb/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 11:11:39 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[hsqldb]]></category>
		<category><![CDATA[jdbc]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=732</guid>
		<description><![CDATA[Muitas vezes desenvolvemos aplicações simples que necessitam de armazenamento de dados sem nenhum grande desempenho mas que seja feita de forma rápida. Uma boa saída é utilizar um banco de dados(SGDB) bem simples como o HSQLDB O HSQLDB é um SGDB de código aberto, escrito totalmente e Java o que torna-o portável. Em termos de desempenho, segurança e recursos não podemos compará-lo a outro bancos de dados como Oracle, Postgres e Microsoft SQL, mas para aplicações pequenas em desktop pode [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas vezes desenvolvemos aplicações simples que necessitam de armazenamento de dados sem nenhum grande desempenho mas que seja feita de forma rápida. Uma boa saída é utilizar um banco de dados(SGDB) bem simples como o <a href="http://hsqldb.org/" target="_blank">HSQLDB</a></p>
<p>O HSQLDB é um SGDB de código aberto, escrito totalmente e Java o que torna-o portável. Em termos de desempenho, segurança e recursos não podemos compará-lo a outro bancos de dados como Oracle, Postgres e Microsoft <acronym title="Structured Query Language">SQL</acronym>, mas para aplicações pequenas em desktop pode ser uma excelente pedida.</p>
<p>Uma das vantagens do HSQLDB é sua simplicidade, a capacidade de poder ser rodado em modo cliente-servidor ou standalone, armazenando os dados em memória, arquivo de texto ou banco de dados.</p>
<p>Veremos agora então como executar, criar um banco de dados e acessá-lo:</p>
<p>Primeiramente <a href="http://sourceforge.net/projects/hsqldb/files/hsqldb/hsqldb_1_8_1/" target="_blank">baixamos o HSQLDB</a> depois basta descompactá-lo. Depois de descompactado teremos desde o código fonte até alguns scripts,  mas que nos interessa é o arquivo <strong>hsqldb.jar</strong> que é o pacote do HSQLDB que possui desde o  driver JDBC até ferramentas para o gerenciamento do banco de dados.</p>
<p>Antes de começarmos a trabalhos com o HSQLDB devemos adicioná-lo ao CLASSPATH:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">CLASSPATH = <span style="color: #000000; font-weight: bold;">%</span>CLASSPATH<span style="color: #000000; font-weight: bold;">%</span>;C:<span style="color: #000000; font-weight: bold;">/</span>hsqldb<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>hsqldb.jar</pre></div></div>

<p>A interface de gerenciamento em Swing pode ser aberta pelo comando:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">java org.hsqldb.util.DatabaseManagerSwing</pre></div></div>

<p>Ok, agora vamos conectar/criar um banco standalone para ser armazenado na pasta &#8220;c:\banco&#8221; com o nome do banco &#8220;dbteste&#8221;</p>
<div style="text-align:center">
<img src="http://www.botecodigital.info/wp-content/uploads/2009/10/conectar-hsqld-300x236.jpg" alt="Parâmetros para a conexão title="Parâmetros para a conexão" width="300" height="236" class="aligncenter size-medium wp-image-734" /><br />
<br />Parâmetros para a conexão</div>
<p>Agora vamos criar nossa tabela:<br />
</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span>  usuarios<span style="color: #66cc66;">&#40;</span>
        id IDENTITY <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span><span style="color: #66cc66;">,</span>
        nome VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
        email VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>O HSQLDB aceita os comando básicos de <acronym title="Structured Query Language">SQL</acronym>, com algumas pequenas diferenças, por exemplo o tipo de dado inteiro auto-incrementável é IDENTITY e ele começa a contar de 0(atenção). Com a tabela criada vamos inserir alguns dados:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> usuarios<span style="color: #66cc66;">&#40;</span>nome<span style="color: #66cc66;">,</span>email<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Boteco Digital'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'blogbotecodigital@gmail.com'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> usuarios<span style="color: #66cc66;">&#40;</span>nome<span style="color: #66cc66;">,</span>email<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Rodrigo'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'rodrigo@algumacoisa.com'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> usuarios<span style="color: #66cc66;">&#40;</span>nome<span style="color: #66cc66;">,</span>email<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Thiago'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'thiago@algumacoisa.com'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> usuarios<span style="color: #66cc66;">&#40;</span>nome<span style="color: #66cc66;">,</span>email<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Joao'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'joao@algumacoisa.com'</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>** DETALHE IMPORTANTE **<br />
Antes de fechar o gerenciador lembre-se de executar o seguinte comando:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">SHUTDOWN;</pre></div></div>

<p>Para os dados serem gravados corretamente.</p>
<p>Para conferir se os dados foram inseridos com êxito execute o seguinte comando:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> usuarios</pre></td></tr></table></div>

<p>Nosso banco está criado e populado agora basta conectá-lo pelo Java:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">Class</span>.<span style="color: #006633;">forName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;org.hsqldb.jdbcDriver&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">Connection</span> con <span style="color: #339933;">=</span> <span style="color: #003399;">DriverManager</span>.<span style="color: #006633;">getConnection</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;jdbc:hsqldb:file:/banco/dbteste&quot;</span>, <span style="color: #0000ff;">&quot;sa&quot;</span>, <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003399;">Statement</span> stm<span style="color: #339933;">=</span> con.<span style="color: #006633;">createStatement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">ResultSet</span> rs <span style="color: #339933;">=</span> stm.<span style="color: #006633;">executeQuery</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT * FROM usuarios&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>rs.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">String</span> nome <span style="color: #339933;">=</span> rs.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;nome&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">String</span> email <span style="color: #339933;">=</span> rs.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;email&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>nome<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot; - &quot;</span><span style="color: #339933;">+</span>email<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    stm.<span style="color: #006633;">execute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SHUTDOWN&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">ClassNotFoundException</span> e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Erro ao carregar o driver JDBC. &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">SQLException</span> e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Erro de SQL: &quot;</span><span style="color: #339933;">+</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Na linha 2 carregamos o driver JDBC, este driver está no  no pacote <strong>hsqldb.jar</strong> então não esqueça de colocá-lo no seu CLASSPATH.</p>
<p>Na linha criamos uma conexão através da String <strong>&#8220;jdbc:hsqldb:file:/banco/dbteste&#8221;</strong>. Esta String contém as seguintes informações de conexão:</p>
<ul>
<li><strong>jdbc</strong> tipo de driver a ser utilizado para conexão</li>
<li><strong>hsqldb</strong> este é o driver que utilizaremos para conectar. Ele já foi carregado na memória  através da instrução &#8220;Class.forName(&#8220;org.hsqldb.jdbcDriver&#8221;);&#8221;<;li>
<li><strong>file</strong> informa que o banco está  armazenado em arquivo(standalone)</li>
<li><strong>/banco/dbteste</strong> ando nosso banco está armazendo, no caso na em um pasta na raiz de diretório chamada banco, que terá arquivox com o nome de dbteste.( c:\banco)
</ul>
<p>Na linha 5 criamos um objeto Statment para realizar um consulto, na linha 6 executamos a consulta e recuperamos seu retorno.</p>
<p>Da linha 8 até 13 iteramos pelo resultado da consulta e exibimos os valores na tela. Na linha 14 executamos o comando SHUTDOW.</p>
<p>Como vimos este exemplo cria uma banco de dados standalone para uma aplicação local. O HSQLDB também pode funcionar no modo servidor para isso temos que executá-lo através   do seguinte comando.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">java org.hsqldb.Server -database.0 dbteste2 -dbname.0 dbteste2</pre></div></div>

<p><strong>Detalhe importante:</strong> ele irá criar o banco de dados dentro da pasta que foi executado o comando acima!</p>
<p>Para conecta-lo pelo Java utilizamos o seguinte código:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">Connection</span> con <span style="color: #339933;">=</span> <span style="color: #003399;">DriverManager</span>.<span style="color: #006633;">getConnection</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;jdbc:hsqldb:hsql://localhost/dbteste2&quot;</span>, <span style="color: #0000ff;">&quot;sa&quot;</span>, <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Bom isso é tudo pessoal!</p>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/conectando-java-com-hsqldb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baixando e instalando JDK 1.6</title>
		<link>http://www.botecodigital.info/video-tutorial/baixando-e-instalando-jdk-1-6/</link>
		<comments>http://www.botecodigital.info/video-tutorial/baixando-e-instalando-jdk-1-6/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 11:30:06 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Video-Tutorial]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=718</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div style="text-align:center"><objetct><br />
<embed src='http://www.videolog.tv/ajax/codigoPlayer.php?id_video=485147&#038;relacionados=S&#038;default=S&#038;lang=PT_BR&#038;cor_fundo=000000&#038;swf=1&#038;width=424&#038;height=318' width='424' height='318' type='application/x-shockwave-flash' allowFullScreen='true' AllowScriptAccess='always'></embed><br />
</object>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/video-tutorial/baixando-e-instalando-jdk-1-6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fibonacci  com Recursão</title>
		<link>http://www.botecodigital.info/algoritmos/fibonacci-com-recursao/</link>
		<comments>http://www.botecodigital.info/algoritmos/fibonacci-com-recursao/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 13:01:27 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Algoritmos]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[fibonnaci]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=630</guid>
		<description><![CDATA[Recursão ou método recursivo nada mais é do que um método que, em sua implementação, chama a si mesmo. Mas você deve estar se perguntando para que isso me serve? Bom tecnicamente você pode fazer com iteração tudo o que você pode fazer com recursão, mas para alguns problemas computacionais as soluções recursivas tornam-se mais simples. Em geral quando você pode simplificar um problema, sem deixar de ser o mesmo problema, até que ele se torne menor e de mais [...]]]></description>
			<content:encoded><![CDATA[<p>Recursão ou método recursivo nada mais é do que um método que, em sua implementação, chama a si mesmo.</p>
<p>Mas você deve estar se perguntando para que isso me serve? Bom tecnicamente você pode fazer com iteração tudo o que você pode fazer com recursão, mas para alguns problemas computacionais as soluções recursivas tornam-se mais simples. Em geral quando você pode simplificar um problema, sem deixar de ser o mesmo problema, até que ele se torne menor e de mais fácil resolução é um problema que pode ser resolvido com recursão.</p>
<p>Um exemplo clássico de Recursão é a <a href="http://pt.wikipedia.org/wiki/Seq%C3%BC%C3%AAncia_de_Fibonacci" target="_blank">Seqüência de Fibonacci</a> que é uma seqüência que se obtém somando os dois últimos números da seqüência para chegar ao próximo. Vejamos uma implementação recursiva do problema onde mostramos na tela o 6º elemento da seqüência.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Fibonacci<span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> fiboRecursivo<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> n <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> Fibonacci.<span style="color: #006633;">fiboRecursivo</span><span style="color: #009900;">&#40;</span>n <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> Fibonacci.<span style="color: #006633;">fiboRecursivo</span><span style="color: #009900;">&#40;</span>n <span style="color: #339933;">-</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> args<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> Fibonacci.<span style="color: #006633;">fiboRecursivo</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>O problema da seqüência de Fibonacci pode ser resolvido pela fórmula F(n-1)+F(n-2) sendo que </strong>n</strong> é posição do elemento dentro da seqüência. Como sabemos o primeiro e o segundo elementos da seqüência são <strong>1</strong> chegamos a seguinte simplificação do problema.</p>
<ul>
<li>SE a posição for menor ou igual a 2 retornamos <strong>1</strong></li>
<li>SENÂO simplificamos o problema, tentamos descobrir os dois elementos anteriores ao elemento que queremos, fazemos isso<br />
    chamando o método fiboRecursivo e somamos suas saídas.</li>
</ul>
<p>Ok, o código fica simples, mas e ai? Como ele é executado?</p>
<p>Toda chamada de um método é empilhada em um estrutura de pilha (memória Stack) que isola a área de memória de cada método. Quando fazemos uma chamada a um método a seqüência de execução é parada e passa a executar as instruções que o método chamado contem. O método chamado é empilhado na memória Stack(pilha) e após sua execução é retirado da memória Stack e seqüência de execução volta ao método que o chamou  e a execução prossegue normalmento. Note que o método que está sendo executado sempre estará no topo da memória Stack.</p>
<p>Quando utilizamos chamadas recursivas estamos colocando métodos na memória Stack, para cada chamada ao método <em>fiboRecursivo()</em> uma &#8220;cópia&#8221; dele é colocada na memória e só será retirada quando as chamadas do topo da pilha parar de chamar o métodos e retornar algum valor.</p>
<p>Essa &#8220;cópia&#8221; é totalmente independente das outras, tem seu próprio escopo, variáveis locais e como qualquer método podem manipular atributos.</p>
<div style="text-align:center">
<img src="http://www.botecodigital.info/wp-content/uploads/2009/09/chamda_metodos-300x283.png" alt="chamada_metodos" title="chamada_metodos" width="300" height="283" class="aligncenter size-medium wp-image-638" />
</div>
<p>Um outro exemplo(mais prático) em que podemos utilizar a recursão é para <strong>listar os arquivos de um diretório e de seus subdiretórios </strong>como no exemplo abaixo.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.File</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Iterator</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Diretorios <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> ArrayList<span style="color: #339933;">&lt;</span>File<span style="color: #339933;">&gt;</span> arquivos <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;</span>File<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> leDiretorio<span style="color: #009900;">&#40;</span><span style="color: #003399;">File</span> dir<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">File</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> names <span style="color: #339933;">=</span> dir.<span style="color: #006633;">listFiles</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> names <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span> <span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span>names.<span style="color: #006633;">length</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>names<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">isDirectory</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">arquivos</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>names<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
                    leDiretorio<span style="color: #009900;">&#40;</span>names<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
&nbsp;
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> args<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        Diretorios d <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Diretorios<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">File</span> f<span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">File</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;teste&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        d.<span style="color: #006633;">leDiretorio</span><span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
        <span style="color: #003399;">Iterator</span> i <span style="color: #339933;">=</span> d.<span style="color: #006633;">arquivos</span>.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>i.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> i.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>O código do método leDiretorio faz o seguinte, ele recebe por parâmetro um File que deve ser um diretório, após isso ele lê todos os arquivos do diretório com o método <strong>listFiles()</strong>, após isso ele verifica se foi retornado algum arquivo(File), se sim ele percorre esse <em>array</em> testando se o arquivo não é um diretório ele armazena em um <em>ArrayList</em> se for ele faz chama uma chamada ao próprio método passando por parâmetro esse diretório.</p>
<p>Recursão é uma ferramenta bastante poderosa que pode simplificar muita coisa, embora tenha um custo computacional um pouco mais elevado permite a criação de códigos mais simples e por conseqüência de mais fácil manutenção.</p>
<p>Uma dica é que recursão é uma boa saída para percorrer qualquer estrutura no formato de árvore.</p>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/algoritmos/fibonacci-com-recursao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FISL 10, Primeiro Dia</title>
		<link>http://www.botecodigital.info/web/fisl-10-primeiro-dia/</link>
		<comments>http://www.botecodigital.info/web/fisl-10-primeiro-dia/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 16:14:45 +0000</pubDate>
		<dc:creator>Thiago Finardi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Ailton Soares da Rocha]]></category>
		<category><![CDATA[Arquiteturas Enterprise Web 2.0]]></category>
		<category><![CDATA[boteco no fisl]]></category>
		<category><![CDATA[Configurações práticas IPv6]]></category>
		<category><![CDATA[E-Commerce seguro com PagSeguro]]></category>
		<category><![CDATA[Elcio Ferreira]]></category>
		<category><![CDATA[Felipe Santos]]></category>
		<category><![CDATA[fisl10]]></category>
		<category><![CDATA[fisl10 primeiro dia]]></category>
		<category><![CDATA[Forense computacional]]></category>
		<category><![CDATA[Forense computacional em Linux for dummies]]></category>
		<category><![CDATA[João Eriberto Mota Filho]]></category>
		<category><![CDATA[Rede Mesh]]></category>
		<category><![CDATA[Rodrigo Troian]]></category>
		<category><![CDATA[Vinicius John]]></category>
		<category><![CDATA[Vinicius Senger]]></category>

		<guid isPermaLink="false">http://botecodigital.g8si.com/?p=438</guid>
		<description><![CDATA[Como anunciei no blog, participei do 10º Fórum Internacional de Software Livre (FISL) em Porto Alegre, que aconteceu de 24/06 a 27/06, e estava muito bom como era de se esperar. Nos dias que antecede o evento sempre fico com aquela expectativa dos assuntos abordados nas palestras, e a cada ano que passa o FISL consegue satisfazer uma quantidade enorme de participantes. A causa deste ano do Fórum foi “Compartilhar não é crime. Contra a vigilância e o controle na [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-443" title="tux" src="http://www.botecodigital.info/wp-content/uploads/2009/06/tux-150x150.jpg" alt="tux" width="130" height="130" />Como anunciei no blog, participei do <a href="http://fisl.softwarelivre.org/10/www/">10º Fórum Internacional de Software Livre (FISL)</a> em Porto  Alegre, que aconteceu de 24/06 a 27/06, e estava muito bom como era de se esperar. Nos dias que antecede o evento sempre fico com aquela expectativa dos assuntos abordados nas palestras, e a cada ano que passa o FISL consegue satisfazer uma quantidade enorme de participantes. A causa deste ano do Fórum foi<strong><em> “Compartilhar não é crime. Contra a vigilância e o controle na internet”</em></strong>, isto devido é claro ao projeto de lei do senador <a href="http://g1.globo.com/Noticias/Tecnologia/0,,MUL651929-6174,00-ENTENDA+A+POLEMICA+SOBRE+O+IMPACTO+DA+LEI+DE+CRIMES+CIBERNETICOS.html" target="_blank">Eduardo Azeredo</a>, que tira completamente nossa privacidade na internet.</p>
<p>Neste post, estarei fazendo um resumo de alguns itens importantes que presenciei no evento.</p>
<p><span id="more-438"></span><strong>Primeiro Dia &#8211; 24/06</strong></p>
<p>Como era de se esperar o evento estava contanto com mais de 8.000 participantes, foi aquela correria inicial de todos<img class="alignright size-thumbnail wp-image-444" title="fisl_1" src="http://www.botecodigital.info/wp-content/uploads/2009/06/fisl_1-150x150.jpg" alt="fisl_1" width="150" height="150" /> os anos, todo mundo correndo para poder pegar seu crachá e olhar as palestras iniciais. Devido ao tumulto, as palestras das 9:00 foram transferidas de horário.</p>
<p><strong><em>(10:00) E-Commerce seguro com PagSeguro &#8211; Elcio Ferreira</em></strong></p>
<p>Esta foi a primeira palestra que acompanhei, muito interessante por sinal. O palestrante mostrou as falhas de segurança mais comuns em comércio eletrônico, e como proteger seu e-commerce de invasores e fraudadores. Também apresentou como PagSeguro pode ajudar a tornar sua loja virtual segura.</p>
<p>Foi uma palestra muito boa para quem pensa em implementar uma loja virtual.</p>
<p><strong><em>(11:00) Arquiteturas Enterprise Web 2.0 &#8211; Vinicius Senger</em></strong></p>
<p>Nesta palestra foram apresentados vários assuntos, dentre eles:</p>
<ul>
<li>Web 2.0, Ajax, OSGi, SOA,      segurança, alta performance, escalabilidade: Seu projeto esta na direção      certa? A palestra apresentou uma visão atualizada de aplicativos      enterprise e frameworks Java EE propondo 5 diferentes arquiteturas:
<ol>
<li>Arquitetura Java EE 5       básica: JSF, Facelets, JPA, Richfaces</li>
<li>Arquitetura Java EE       avançada: JSF, Facelets, JPA, Richfaces, EJB e JMS</li>
<li>Spring com JSF, JPA,       Richfaces</li>
<li>Seam</li>
<li>Spring + Seam       integrqdos</li>
</ol>
</li>
</ul>
<p>Em cada arquitetura foram pontuados quesitos técnicos e de negócio, incluindo em quais cenários reais aplicamos estas arquiteturas em casos reais nos últimos 2 anos. Os seguintes quesitos são considerados:</p>
<ul>
<li>Performance e      escalabilidade</li>
<li>Ní­vel técnico de equipe</li>
<li>Ferramentas e produtividade</li>
<li>Suporte de comunidade e      comercial</li>
<li>Ajax e RIA</li>
<li>Segurança</li>
<li>OSGi</li>
<li>SOA</li>
<li>Mashup, REST, CAPTCHA, conversation, e      multitab support</li>
</ul>
<p>Ao término foi apresentado o projeto www.supercrud.com onde você poderá gerar via Web seus próprios aplicativos CRUD (create, read, update, delete) para bancos de dados, usando as diferentes arquiteturas propostas.</p>
<p><strong><em>(12:00) Rede Mesh &#8211; </em>Felipe Santos, Rodrigo Troian, Vinicius John</strong></p>
<p>Esta foi uma palestra introdutória sobre tecnologias de rede wireless, em especial a rede em malha mesh, seus impactos sociais, políticos e tecnológicos. Uma breve visão sobre os projetos existentes, observando seus objetivos e modos de funcionamento. Introdução aos hardwares de rede, firmwares e protocolos para redes mesh.</p>
<p><strong><em>(13:00) Forense computacional em Linux for dummies &#8211; uma rápida visão introdutória &#8211; João Eriberto Mota Filho</em></strong></p>
<p>Pra mim, esta foi a melhor palestra do 1º dia do evento<strong><em>, </em></strong>para mim as palestras do Eriberto são sempre muito boas, e esta não poderia ser diferente. Na palestra foi mostrado como se processa uma forense computacional. Foram abordados aspectos relevantes como o que fazer e o que não fazer logo após uma intrusão, a coleta de informações da memória, dos discos e dos logs. Também foi demonstrado, ao vivo, como recuperar logs e dados apagados. Também houve uma abordagem sobre a utilização de live CDs ou pendrive em todo o processo.</p>
<p><strong><em>(14:00) Configurações práticas IPv6 no Linux e FreeBSD &#8211; Firewall, Túneis, <acronym title="Domain Name Server">DNS</acronym> e outros serviços &#8211; Ailton Soares da Rocha</em></strong></p>
<p>O IPv6 está gradativamente sendo implantado na Internet e nas redes, por isso é importante conhecer seu funcionamento e saber como fazer a configuração de equipamentos de rede e computadores. Nesta apresentação foi feita uma breve introdução ao protocolo IPv6 e foram abordados importantes aspectos práticos de configuração em  máquinas Linux e FreeBSD, desde as configurações mais básicas, até aspectos mais complexos, como a criação de túneis, a configuração de firewalls iptables e <acronym title="Domain Name Server">DNS</acronym> com Bind. No meu ponto de vista se você ainda não leu nada sobre o assunto esta mais do que na hora, pois o prazo para a troca no Brasil é em 2010.</p>
<p><strong><em>(15:00) Fui almoçar, informação alimenta o cérebro mas não a barriga =P</em></strong></p>
<p><strong><em>(16:00) Abertura do FISL</em></strong></p>
<p>Eu aproveitei este horário para conseguir algumas camisetas e brindes nos estandes das empresas XD</p>
<p><strong><em>(16:00) Entrevista coletiva com jornalistas e blogueiros cadastrados (NÓS) &#8211; Peter Sunde</em></strong></p>
<p>Entrevista Coletiva do Hacker do The Pirate Bay Peter Sunde com Jornalistas e Blogueiros Cadastrados. Este vai ganhar um post só pra ele.</p>
<p>Bom pessoal, este foi o primeiro dia do evento e quis colocar um resumo sobre as palestras que acompanhei. Vou separar cada dia em um post e mesmo assim vai ficar impossível contar tudo de interessante que pude ver e acompanhar nesta 10ª edição do evento.</p>
<p>aguardem os próximos post&#8217;s.</p>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/web/fisl-10-primeiro-dia/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Java &#8211; Console Colorido</title>
		<link>http://www.botecodigital.info/java/java-console-colorido/</link>
		<comments>http://www.botecodigital.info/java/java-console-colorido/#comments</comments>
		<pubDate>Sat, 16 May 2009 19:51:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[classes]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[Enigma Console]]></category>

		<guid isPermaLink="false">http://botecodigital.g8si.com/?p=342</guid>
		<description><![CDATA[Este dias um aluno me perguntou como mudar a cor da saida de um programa JAVA no console pensei um pouco e disse nunca vi nada sobre isso, em nenhum livro ou site, acredito que não seja possível vou dar uma olhada e depois te respondo. Bom pesquisando, descobri que a API do JAVA não fornece métodos para escrever no console utilizando cores, para isso é preciso inserir códigos de cor que pode variar conforme o S.O. ou mesmo de [...]]]></description>
			<content:encoded><![CDATA[<p>Este dias um aluno me perguntou como mudar a cor da saida de um programa JAVA no console pensei um pouco e disse nunca vi nada sobre isso, em nenhum livro ou site, acredito que não seja possível vou dar uma olhada e depois te respondo.</p>
<p>Bom pesquisando, descobri que a <acronym title="Application Programming Interface">API</acronym> do JAVA não fornece métodos para escrever no console utilizando cores, para isso é preciso inserir códigos de cor que pode variar conforme o S.O. ou mesmo de terminal para terminal.</p>
<p>Isto obviamente não é uma solução portável, então não é condizente com JAVA.</p>
<p>A solução que achei foi utilizar uma biblioteca <a href="http://sourceforge.net/projects/enigma-shell" target="_blank"> <strong>Enigma Console</strong></a> que nada mais é do que um console feito em JAVA utilizando <strong>Swing</strong>.</p>
<p>Primeiramente vamos baixar a biblioteca <a href="http://sourceforge.net/project/showfiles.php?group_id=88079" target="_blank"> Enigma Console</a>. Descompacte o arquivo em uma pasta de sua escolha e adicione à variável de ambiente <strong>CLASSPATH</strong> o caminho absoluto para a biblioteca <strong>Enigma Console</strong> por exemplo:</p>
<p>Variavél de ambiente <strong>CLASSPATH</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.;c:\enigma\enigma-all_en_US.jar;</pre></div></div>

<p>Agora basta utiliza-la no código como no exemplo abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.Color</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">enigma.console.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">enigma.core.Enigma</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Cor<span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        Console s_console <span style="color: #339933;">=</span> Enigma.<span style="color: #006633;">getConsole</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
        TextAttributes attrs<span style="color: #339933;">;</span>
        attrs <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> TextAttributes<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Color</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">96</span>,<span style="color: #cc66cc;">223</span>,<span style="color: #cc66cc;">79</span><span style="color: #009900;">&#41;</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Color</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">76</span>,<span style="color: #cc66cc;">62</span>,<span style="color: #cc66cc;">175</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        s_console.<span style="color: #006633;">setTextAttributes</span><span style="color: #009900;">&#40;</span>attrs<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Fundo azul com letras verdes&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
        attrs <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> TextAttributes<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Color</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">255</span>,<span style="color: #cc66cc;">90</span>,<span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Color</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">234</span>,<span style="color: #cc66cc;">255</span>,<span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        s_console.<span style="color: #006633;">setTextAttributes</span><span style="color: #009900;">&#40;</span>attrs<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Fundo amarelo com letras vermelhas&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Na linha 1 à 3 importamos os objetos que iremos utilizar tanto o objeto do console como a classe Color para podermos definir as cores.</p>
<p>Na linha 8 é onde chamamos o método que cria um novo console e muda a saída padrão para ele, ou seja a partir de agora tudo que escrevermos na saída padrão( <strong>System.out</strong> ) será escrito no novo console!</p>
<p>Na linha 10 é onde definimos os atributos do nosso texto, ou seja, a cor de fundo e a cor do texto, o construtor os parâmetros nesta mesma ordem. Note que utilizamos objetos Color para representar as cores, o construtor deste objeto recebe 3 valores inteiros de 0-255 no sistema <a href="http://pt.wikipedia.org/wiki/RGB" target="_blank">RGB</a>(Vermelho,Verde,Azul) para representar a cor, se precisar use um editor de imagem para descobrir os valores da cor que você deseja.</p>
<p>Na linha 11 configuramos o console com as configurações feitas na linha 10. A partir de agora todo texto escrito no console terá as cores definidas.</p>
<p>Para mudar as cores novamente basca configurar o console novamente com as novas cores desejadas.</p>
<p>Veja como vai ficar o exemplo acima:</p>
<p><img src="http://www.botecodigital.info/wp-content/uploads/2009/05/console.jpg" alt="console" title="console" width="450" height="204" class="aligncenter size-full wp-image-347" /></p>
<p>E por hoje é só pessoal!</p>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/java-console-colorido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
