<?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>Thu, 26 Jan 2012 18:36:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Lendo e escrevendo XML em Java com JDOM</title>
		<link>http://www.botecodigital.info/java/lendo-e-escrevendo-xml-em-java-com-jdom/</link>
		<comments>http://www.botecodigital.info/java/lendo-e-escrevendo-xml-em-java-com-jdom/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 18:36:46 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[arquivos]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1976</guid>
		<description><![CDATA[JDOM é uma biblioteca que visa ser um modo simples de ler e escrever documentos XML. Vamos ver neste tutorial como criar um documento XML e como lê-lo de forma bastante simples. Primeiramente vamos as classes chaves desta biblioteca: Document: Esta classe representa o documento inteiro, esta classe pode ter apenas um elemento que seria o elemento raiz do documento(elemento root), comentários e outros elementos de definição. Element: Esta classe representa um elemento do documento XML(também chamado de nó), são [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jdom.org/">JDOM</a> é uma biblioteca que visa ser um modo simples de ler e escrever documentos XML. Vamos ver neste tutorial como criar um documento XML e como lê-lo de forma bastante simples.</p>
<p>Primeiramente vamos as classes chaves desta biblioteca:</p>
<p><strong>Document: </strong> Esta classe representa o documento inteiro, esta classe pode ter apenas um elemento que seria o elemento raiz do documento(elemento root), comentários e outros elementos de definição.</p>
<p><strong>Element: </strong> Esta classe representa um elemento do documento XML(também chamado de nó), são os elementos que compõem o documento ele pode conter outros elementos, atributos, comentários e valores.</p>
<p><strong>Attribute: </strong> Esta classe representa um atributo de um elemento XML.</p>
<p>Vamos ao código então! <b>Só não esqueça de <a href="http://www.jdom.org/downloads/index.html">baixar a biblioteca JDOM</a> e incluí-la no seu CLASSPATH.<b> </p>
<pre class="brush: java; title: ; notranslate">
Document doc = new Document();

Element root = new Element(&quot;turma&quot;);

Element pessoa = new Element(&quot;pessoa&quot;);
Attribute sexo = new Attribute(&quot;sexo&quot;,&quot;Masculino&quot;);
pessoa.setAttribute(sexo);

Element nome = new Element(&quot;nome&quot;);
nome.setText(&quot;Rodrigo&quot;);
pessoa.addContent(nome);

Element sobrenome = new Element(&quot;sobrenome&quot;);
sobrenome.setText(&quot;sobrenome&quot;);
pessoa.addContent(sobrenome);

Element notas = new Element(&quot;notas&quot;);
pessoa.addContent(notas);

Element teste1 = new Element(&quot;teste1&quot;);
teste1.setText(&quot;8.3&quot;);
Element teste2 = new Element(&quot;teste2&quot;);
teste2.setText(&quot;7.8&quot;);
Element prova = new Element(&quot;prova&quot;);
prova.setText(&quot;9.2&quot;);

notas.addContent(teste1);
notas.addContent(teste2);
notas.addContent(prova);

root.addContent(pessoa);

doc.setRootElement(root);

XMLOutputter xout = new XMLOutputter();
xout.output(doc , System.out);
</pre>
<p>Na linha 1 é criado o objeto que representa o documento XML, na linha 3 é criado o elemento raiz do documento e é passado para o construtor o nome do elemento, neste caso &#8220;turma&#8221;, é dentro deste elemento que iremos inserir cada elemento XML que irá representar uma pessoa, assim, dentro do elemento &#8220;turma&#8221; pode haver um ou vários elementos &#8220;pessoa&#8221;.</p>
<p>Na linha 5 é criado um elemento &#8220;pessoa&#8221; e nele será inserido as informações sobre a pessoa, como o sexo que será inserido  como um atributo do elemento pessoa e para isso é criado um objeto de atributo na linha 6 e passado para o construtor como parâmetros o nome do atributo e seu valor. Na linha 7 é adicionado o atributo ao elemento &#8220;pessoa&#8221;.</p>
<p>Na linha 9 é criado um elemento nome, é definido um valor para ele na linha 10 e adicionamos este elemento &#8220;nome&#8221; ao elemento &#8220;pessoa&#8221; utilizando  o método <em>addContent</em>, é importante lembrar a diferença deste método com o <em>setContent</em>, o método <em>addContent</em> adiciona o elemento passado por parâmetro ao conteúdo já existente dentro do elemento pai e o método <em>setContent</em> irá substituir o conteúdo anterior do elemento pai se houver.</p>
<p>Nas linhas 13, 14 e 15 é criado e atribuído o elemento de &#8220;sobrenome&#8221; da pessoa.</p>
<p>Na linha 17 é criado um elemento &#8220;notas&#8221; que irá conter outros elementos, que serão as notas da pessoa.</p>
<p>Da linha 20 até 25 é criado três elementos(&#8220;teste1&#8243;,&#8221;teste2&#8243; e &#8220;prova&#8221;) e atribuído valores para eles. Nas linhas 27, 28 e 29 é inserido os elementos &#8220;teste1&#8243;, &#8220;teste2&#8243; e &#8220;prova&#8221;, dentro do elemento &#8220;notas&#8221;.</p>
<p>Na linha 31 adicionamos o elemento &#8220;pessoa&#8221; ao elemento raiz do documento(elemento &#8220;turma&#8221;)  e na linha 33 é adicionado o  elemento turma como elemento root do documento através do método <em> setRootElement</em>.</p>
<p>Na linha 35 é criado um objeto <em>XMLOutputter</em> que é responsável por gerar o XML através do método <em>output</em> que  recebe como parâmetro o objeto do documento a ser escrito e um <em>OutputStream</em> onde será enviado o XML, que no caso foi utilizado a saida padrão. Também poderia criar um outro <em>OutputStream</em> para um arquivo como no exemplo abaixo:</p>
<pre class="brush: java; title: ; notranslate">
XMLOutputter xout = new XMLOutputter();
OutputStream out = new FileOutputStream( new File(&quot;exemplo.xml&quot;));
xout.output(doc , out);
</pre>
<p>A saida do exemplo será a seguinte:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;turma&gt;
	&lt;pessoa sexo=&quot;Masculino&quot;&gt;
		&lt;nome&gt;Rodrigo&lt;/nome&gt;
		&lt;sobrenome&gt;sobrenome&lt;/sobrenome&gt;
		&lt;notas&gt;
			&lt;teste1&gt;8.3&lt;/teste1&gt;
			&lt;teste2&gt;7.8&lt;/teste2&gt;
			&lt;prova&gt;9.2&lt;/prova&gt;
		&lt;/notas&gt;
	&lt;/pessoa&gt;
&lt;/turma&gt;
</pre>
<p>Utilizando a mesma estrutura de documento XML veremos um exemplo de leitura:</p>
<pre class="brush: java; title: ; notranslate">
File f = new File(&quot;exemplo.xml&quot;);

SAXBuilder builder = new SAXBuilder();

Document doc = builder.build(f);

Element root = (Element) doc.getRootElement();

List pessoas = root.getChildren();

Iterator i = pessoas.iterator();

while( i.hasNext() ){
		Element pessoa = (Element) i.next();
		System.out.println(&quot;Nome: &quot; + pessoa.getChildText(&quot;nome&quot;));
		System.out.println(&quot;Sobrenome: &quot; + pessoa.getChildText(&quot;sobrenome&quot;));
		System.out.println(&quot;Sexo: &quot; + pessoa.getAttributeValue(&quot;sexo&quot;));
		System.out.println(&quot;Nota( teste1 ): &quot;+pessoa.getChild(&quot;notas&quot;).getChildText(&quot;teste1&quot;));
		System.out.println(&quot;Nota( teste2 ): &quot;+pessoa.getChild(&quot;notas&quot;).getChildText(&quot;teste2&quot;));
		System.out.println(&quot;Nota( prova ): &quot;+pessoa.getChild(&quot;notas&quot;).getChildText(&quot;prova&quot;));
		System.out.println();
}
</pre>
<p>Na linha 1 é criado um objeto representando o arquivo XML a ser lido, na linha 3 é criado o objeto <em>SAXBuilder</em> que é responsável por converter o arquivo em um objeto do tipo <em>Document</em> da biblioteca JDOM.</p>
<p>Na linha 5 é construído o objeto <em>Document</em> através do método <em>builder</em> do <em>SAXBuilder</em>.</p>
<p>Na linha 7 é pego o elemento raiz do documento(elemento &#8220;turma&#8221;) utilizando o método <em>getRootElement</em>. Utilizando este objeto é chamado o método <em>getChildren</em>(linha 9) que retorna um objeto <em>List</em> com todos os elementos filhos, que no caso serão objetos pessoa.</p>
<p>Na linha 11 é definido um iterador para percorrer os elementos &#8220;pessoas&#8221; da lista. </p>
<p>Na linha 14 é utilizado a variável pessoa para armazenar cada objeto pessoa.</p>
<p>Na Linha 15 é utilizado o método <em>getChildText</em> do elemento &#8220;pessoa&#8221; que retorna o valor do elemento filho selecionado, no caso o elemento nome.</p>
<p>Na linha 17 é utilizado po método <em>getAttributeValue</em> que retorna o valor do atributo selecionado, no caso sexo.</p>
<p>Na linha 18 para pegar o valor do elemento &#8220;teste1&#8243; é necessário primeiro selecionar o elemento &#8220;notas&#8221; já que o elemento &#8220;teste1&#8243; se encontra dentro deste, para isso é utilizado o método <em>getChild</em> para somente depois utilizar o método  <em>getChildText</em> para pegar o valor de &#8220;teste1&#8243;.</p>
<p>Como vimos é uma biblioteca bem simples de utilizar e quem já lidou um pouco com XML não deve ter nenhuma dificuldade.</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/java/conectando-java-com-mongodb/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2011/10/java.png" class="crp_thumb wp-post-image" alt="Conectando Java com MongoDB" title="Conectando Java com MongoDB" /></a> <a href="http://www.botecodigital.info/java/conectando-java-com-mongodb/" rel="bookmark" class="crp_title">Conectando Java com MongoDB</a></li><li><a href="http://www.botecodigital.info/jquery/menu-sanfona-com-jquery/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Menu Sanfona com JQuery" title="Menu Sanfona com JQuery" /></a> <a href="http://www.botecodigital.info/jquery/menu-sanfona-com-jquery/" rel="bookmark" class="crp_title">Menu Sanfona com JQuery</a></li><li><a href="http://www.botecodigital.info/php/criando-um-feed-com-simplexml/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/php.png" class="crp_thumb wp-post-image" alt="Criando um FEED com SimpleXML" title="Criando um FEED com SimpleXML" /></a> <a href="http://www.botecodigital.info/php/criando-um-feed-com-simplexml/" rel="bookmark" class="crp_title">Criando um FEED com SimpleXML</a></li><li><a href="http://www.botecodigital.info/jquery/trocando-dados-utilizando-json/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Trocando dados utilizando JSON" title="Trocando dados utilizando JSON" /></a> <a href="http://www.botecodigital.info/jquery/trocando-dados-utilizando-json/" rel="bookmark" class="crp_title">Trocando dados utilizando JSON</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/lendo-e-escrevendo-xml-em-java-com-jdom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conectando Java com MongoDB</title>
		<link>http://www.botecodigital.info/java/conectando-java-com-mongodb/</link>
		<comments>http://www.botecodigital.info/java/conectando-java-com-mongodb/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 03:12:24 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[BD]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[dados]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1606</guid>
		<description><![CDATA[Vimos em um post passado o MongoDB e agora vamos ver como conectamos a ele em Java. Antes de qualquer coisa temos de baixar o driver e para isso basta baixá-lo da área de drivers do site do MongoDB e adicioná-lo ao seu classpath. Conectar ao MongoDB é bastante simples, basta instanciar a classe Mongo e depois selecionar o banco. Acredito que a parte mais complicada é transformar um documento no estilo JSON em um objeto BasicDBObject que a maioria [...]]]></description>
			<content:encoded><![CDATA[<p>Vimos em um <a href="http://www.botecodigital.info/bd-2/nosql-mongodb/">post passado o MongoDB</a> e agora vamos ver como conectamos a ele em Java.</p>
<p>Antes de qualquer coisa temos de baixar o driver e para isso basta baixá-lo da <a href="http://www.mongodb.org/display/DOCS/Java+Language+Center">área de drivers do site do MongoDB</a> e adicioná-lo ao seu classpath.</p>
<p>Conectar ao MongoDB é bastante simples, basta instanciar a classe Mongo e depois selecionar o banco.</p>
<pre class="brush: java; title: ; notranslate">
Mongo m = new Mongo();
// ou
Mongo m = new Mongo( &quot;localhost&quot; );
// ou
Mongo m = new Mongo( &quot;localhost&quot; , 27017 );

DB db = m.getDB( &quot;meu_banco&quot; );
</pre>
<p>Acredito que a parte mais complicada é transformar um documento no estilo JSON em um objeto <strong>BasicDBObject</strong> que a maioria dos métodos da API recebe. Vamos fazer um exemplo:</p>
<pre class="brush: jscript; title: ; notranslate">
{
	nome : &quot;Rodrigo&quot;,
	sobrenome : &quot;Aramburu&quot;,
	telefone : &quot;1234-5678&quot;,
	endereco : {
				rua : &quot;Rua Fulano&quot;,
				numero : &quot;221B&quot;,
				bairro : &quot;Centro&quot;
			}
}
</pre>
<p>Convertendo este objeto JSON para objeto Java ficaria assim:</p>
<pre class="brush: java; title: ; notranslate">
BasicDBObject pessoa = new BasicDBObject();
pessoa.put(&quot;nome&quot;, &quot;Rodrigo&quot;);
pessoa.put(&quot;sobrenome&quot;, &quot;Aramburu&quot;);
pessoa.put(&quot;telefone&quot;, &quot;1234-5678&quot;);

BasicDBObject end = new BasicDBObject();
end.put(&quot;rua&quot;, &quot;Rua Fulano&quot;);
end.put(&quot;numero&quot;,&quot;221B&quot;);
end.put(&quot;bairro&quot;, &quot;Centro&quot;);

pessoa.put(&quot;endereco&quot;, end);
</pre>
<p>Na linha 1 criamos um objeto <strong>BasicDBObject</strong>, na linhas 2 , 3 e 4 adicionamos os campos nome, sobrenome e telefone e seus valores. O campo endereco é um campo que o valor é um objeto incorporado então antes de adicionarmos ele devemos criar este objeto(linha 6) e incluir seus campos(linhas 7, 8 e 9). Com o objeto endereco podemos inserir no campo endereco do objeto pessoa.</p>
<p>Se você se perguntou e se tivesse vários telefones? Simples!</p>
<pre class="brush: java; title: ; notranslate">
String[] tels = { &quot;1234-5678&quot;,&quot;9898-9898&quot; };
pessoa.put(&quot;telefone&quot;, tels);
</pre>
<p>Com o Objeto criado, inserir no MongoDB é muito simples :</p>
<pre class="brush: java; title: ; notranslate">
DBCollection colecaoPessoas = db.getCollection(&quot;pessoas&quot;);
colecaoPessoas.insert(pessoa);
</pre>
<p>Bom depois de inserir sempre é bom buscar então vamos lá:</p>
<pre class="brush: java; title: ; notranslate">
DBCursor cursor = coll.find();
while( cursor.hasNext() ){
        BasicDBObject pessoa = (BasicDBObject) cursor.next();
        System.out.println( &quot;Nome: &quot;+pessoa.getString(&quot;nome&quot;) );
        System.out.println(&quot;Sobrenome: &quot;+pessoa.getString(&quot;sobrenome&quot;) );
        System.out.println(&quot;Telefone: &quot;+pessoa.getString(&quot;telefone&quot;) );

        BasicDBObject end = (BasicDBObject) pessoa.get(&quot;endereco&quot;);
        System.out.println( &quot;Rua: &quot;+end.getString(&quot;rua&quot;) );
        System.out.println( &quot;Numero: &quot;+end.getString(&quot;numero&quot;) );
        System.out.println( &quot;Bairro: &quot;+end.getString(&quot;bairro&quot;) );
        System.out.println( &quot;======================================&quot; );

}
</pre>
<p>Para fazer uma consulta se utiliza o método <strong>find</strong> que retorna um <strong>DBCursor</strong> que permite iterar sobre o resultado, os métodos mais importantes são <strong>hasNext()</strong> que retorna true se tiver o próximo documento e falso se não tiver mais. E o método <strong>next()</strong> que retorna o próximo <strong>DBObjetc</strong> do qual utilizamos o método <strong>getString(“nome_campo&#8221;)</strong> ou <strong>getInteger(“nome_campo&#8221;)</strong> ,  <strong>getBoolean(“nome_campo&#8221;)</strong>, <strong>getDouble(“nome_campo&#8221;)</strong> para pegar os dados.</p>
<p>E como colocamos alguns critério de busca?</p>
<pre class="brush: java; title: ; notranslate">
BasicDBObject query = new BasicDBObject();
query.put(&quot;telefone&quot;,&quot;9898-9898&quot;);

DBCursor cursor = coll.find(query);
</pre>
<p>Para filtrar basta passar por parâmetro um objeto <strong>BasicDBObject</strong> para o método <strong>find()</strong> e podemos utilizar todos os tipos de filtros, <strong>“$in&#8221;</strong>, <strong>“$lte&#8221;</strong>, <strong>“$gt&#8221;</strong>, <strong>“$or&#8221;</strong>, <strong>“$regex&#8221;</strong>, etc&#8230;</p>
<pre class="brush: java; title: ; notranslate">
BasicDBObject query = new BasicDBObject();

query.put(&quot;idade&quot;, new BasicDBObject().append(&quot;$gt&quot;, 18));

DBCursor cursor = coll.find(query);
</pre>
<p>O interessante no filtro $in é que podemos utilizar uma coleção:</p>
<pre class="brush: java; title: ; notranslate">
BasicDBObject query = new BasicDBObject();
List&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;();
list.add(9);
list.add(10);
query.put(&quot;idade&quot;, new BasicDBObject().append(&quot;$in&quot;, list));
</pre>
<p>Bom agora vamos deletar</p>
<pre class="brush: java; title: ; notranslate">
BasicDBObject obj = new BasicDBObject();
obj.put(&quot;_id&quot;, new ObjectId( &quot;4e827ca3d6340373c65e4e99&quot; )  );
colecaoPessoas.remove(obj);
</pre>
<p>Normalmente eu prefiro deletar pelo _id e o valor deste campo é um objeto do tipo <strong>ObjectId(“id&#8221;)</strong>, criar um objeto <strong>BasicDBObject</strong> para depois  passá-lo de parâmetro para o método <strong>remove()</strong>.</p>
<p>Só falta atualizar </p>
<pre class="brush: java; title: ; notranslate">
BasicDBObject ant = new BasicDBObject();
ant.put(&quot;_id&quot;, new ObjectId( &quot;4e8279f7d63465f846d5cea9&quot; )  );
BasicDBObject novo =  new BasicDBObject();
novo.put(&quot;$set&quot;,  new BasicDBObject().append(&quot;idade&quot;, 16));

colecaoPessoas.update(ant, novo);
</pre>
<p>Bom era isso, até mais e obrigado pelos peixes!!!</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/bd-2/nosql-mongodb/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2011/09/Icon_MongoDB_by_xkneo.png" class="crp_thumb wp-post-image" alt="NoSQL: MongoDB" title="NoSQL: MongoDB" /></a> <a href="http://www.botecodigital.info/bd-2/nosql-mongodb/" rel="bookmark" class="crp_title">NoSQL: MongoDB</a></li><li><a href="http://www.botecodigital.info/java/lendo-e-escrevendo-xml-em-java-com-jdom/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2012/01/java-duke-xml1.png" class="crp_thumb wp-post-image" alt="Lendo e escrevendo XML em Java com JDOM" title="Lendo e escrevendo XML em Java com JDOM" /></a> <a href="http://www.botecodigital.info/java/lendo-e-escrevendo-xml-em-java-com-jdom/" rel="bookmark" class="crp_title">Lendo e escrevendo XML em Java com JDOM</a></li><li><a href="http://www.botecodigital.info/jquery/trocando-dados-utilizando-json/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Trocando dados utilizando JSON" title="Trocando dados utilizando JSON" /></a> <a href="http://www.botecodigital.info/jquery/trocando-dados-utilizando-json/" rel="bookmark" class="crp_title">Trocando dados utilizando JSON</a></li><li><a href="http://www.botecodigital.info/java/dojo-senac/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2011/07/dojo_sp-300x263-150x150.png" class="crp_thumb wp-post-image" alt="Dojo SENAC-Uruguaiana" title="Dojo SENAC-Uruguaiana" /></a> <a href="http://www.botecodigital.info/java/dojo-senac/" rel="bookmark" class="crp_title">Dojo SENAC-Uruguaiana</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/conectando-java-com-mongodb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TchêLinux Uruguaiana</title>
		<link>http://www.botecodigital.info/php/tchelinux-uruguaiana/</link>
		<comments>http://www.botecodigital.info/php/tchelinux-uruguaiana/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 15:47:22 +0000</pubDate>
		<dc:creator>Thiago Finardi</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[tchelinux]]></category>
		<category><![CDATA[uruguaiana]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1576</guid>
		<description><![CDATA[É com grande satisfação que anunciamos o 1º Seminário de Software Livre TcheLinux Uruguaiana. O TcheLinux é um grupo de voluntários que desde 2006 trabalha na divulgação do Software Livre no estado do Rio Grande do Sul, através de palestras e workshops gratuitos para estudantes e demais interessados. O evento será realizado na Escola SENAC de Uruguaiana nos dias 16 e 17 de Setembro de 2011 (sexta e Sábado). As inscrições estão abertas: http://tchelinux.uruguaianatech.info/ Confira as listas das palestras aqui: http://tchelinux.org/site/doku.php?id=evento_uruguaiana_2011 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>É com grande satisfação que anunciamos o 1º Seminário de Software Livre TcheLinux Uruguaiana.</strong></p>
<p>O <strong>TcheLinux</strong> é um grupo de voluntários que desde 2006 trabalha na divulgação do Software Livre no estado do Rio Grande do Sul, através de palestras e workshops gratuitos para estudantes e demais interessados.</p>
<p>O evento será realizado na Escola SENAC de Uruguaiana nos dias 16 e 17 de Setembro de 2011 (sexta e Sábado).</p>
<p>As inscrições estão abertas: <a href="http://tchelinux.uruguaianatech.info/">http://tchelinux.uruguaianatech.info/</a></p>
<p>Confira as listas das palestras aqui: <a href="http://tchelinux.org/site/doku.php?id=evento_uruguaiana_2011">http://tchelinux.org/site/doku.php?id=evento_uruguaiana_2011</a></p>
<p>A entrada no evento é gratuita, aos interessados em certificado é solicitado a doação de 2Kg de alimentos.</p>
<p>Não perca esta oportunidade.</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/linux/4%c2%ba-seminario-de-software-livre-tchelinux-pelotas/" rel="bookmark"><img width="39" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/08/tchelinux_p.png" class="crp_thumb wp-post-image" alt="4º Seminário de Software Livre TcheLinux Pelotas" title="4º Seminário de Software Livre TcheLinux Pelotas" /></a> <a href="http://www.botecodigital.info/linux/4%c2%ba-seminario-de-software-livre-tchelinux-pelotas/" rel="bookmark" class="crp_title">4º Seminário de Software Livre TcheLinux Pelotas</a></li><li><a href="http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cuia11.png" class="crp_thumb wp-post-image" alt="1º UruguaianaTech" title="1º UruguaianaTech" /></a> <a href="http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/" rel="bookmark" class="crp_title">1º UruguaianaTech</a></li><li><a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark"><img width="50" height="33" src="http://www.botecodigital.info/wp-content/uploads/2011/11/uruguaianaTECH_.jpg" class="crp_thumb wp-post-image" alt="UruguaianaTECH – Capacitando profissionais" title="UruguaianaTECH – Capacitando profissionais" /></a> <a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark" class="crp_title">UruguaianaTECH – Capacitando profissionais</a></li><li><a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cuia11.png" class="crp_thumb wp-post-image" alt="2º UruguaianaTech" title="2º UruguaianaTech" /></a> <a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark" class="crp_title">2º UruguaianaTech</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/tchelinux-uruguaiana/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dojo SENAC-Uruguaiana</title>
		<link>http://www.botecodigital.info/java/dojo-senac/</link>
		<comments>http://www.botecodigital.info/java/dojo-senac/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 21:13:09 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1558</guid>
		<description><![CDATA[Depois de muito tempo esperando, saiu o Coding Dojo da turma de Desenvolvimento de Aplicações. Como foi a primeira experiencia de Dojo do pessoal demorou um pouco para engrenarem mas na minha opinião foi bem legal, deu para entender o básico sobre TDD. Foi utilizada a linguagem Java já que é a que utilizamos no componente de Desenvolvimento. O Problema foi o clássico janken-pon(Pedra Papel e tesoura) ou como chamamos &#8220;JokenPO&#8221; (pura preguiça de buscar o nome certo). Vamos então [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de muito tempo esperando, saiu o <a href="http://apoie.org/Dojo.html">Coding Dojo</a> da turma de Desenvolvimento de Aplicações. Como foi a primeira experiencia de Dojo do pessoal demorou um pouco para engrenarem mas na minha opinião foi bem legal, deu para entender o básico sobre <a href="http://dojofloripa.wordpress.com/2007/09/10/tudo-sobre-tdd/">TDD</a>.</p>
<p>Foi utilizada a linguagem Java já que é a que utilizamos no componente de Desenvolvimento.</p>
<p>O Problema foi o clássico  janken-pon(Pedra Papel e tesoura) ou como chamamos &#8220;JokenPO&#8221; (pura preguiça de buscar o nome certo).</p>
<p>Vamos então para a retrospectiva;</p>
<h3>PRÓS </h3>
<p>trabalho em equipe<br />
todo mundo participou<br />
aula sem piadas idiotas(quase)</p>
<h3>CONTRAS</h3>
<p>o projetor<br />
a mancha do projetor</p>
<p>Para complementar segue o código produzido</p>
<pre class="brush: java; title: ; notranslate">
public class TesteJokenPO {

        JokenPO joken = new JokenPO();

     @Test
     public void quandoPedraPapel() {
         String retorno = joken.vencedor(&quot;pedra&quot;, &quot;papel&quot;);
         assertEquals(&quot;papel&quot;, retorno);
     }

     @Test
     public void quandoPedraTesoura() {
         String retorno = joken.vencedor(&quot;pedra&quot;, &quot;tesoura&quot;);
         assertEquals(&quot;pedra&quot;, retorno);
     }

     @Test
     public void quandoPapelTesoura() {
         String retorno = joken.vencedor(&quot;papel&quot;, &quot;tesoura&quot;);
         assertEquals(&quot;tesoura&quot;, retorno);
     } 

     @Test
     public void quandoTesouraPedra(){
         String retorno = joken.vencedor(&quot;tesoura&quot;, &quot;pedra&quot;);
         assertEquals(&quot;pedra&quot;, retorno);
     }

     @Test
     public void quandoTesouraPapel() {
         String retorno = joken.vencedor(&quot;tesoura&quot;, &quot;papel&quot;);
         assertEquals(&quot;tesoura&quot;, retorno);
     }
     @Test
     public void quandoPapelPedra() {
         String retorno = joken.vencedor(&quot;papel&quot;, &quot;pedra&quot;);
         assertEquals(&quot;papel&quot;, retorno);
     }
}
</pre>
<pre class="brush: java; title: ; notranslate">
public class JokenPO {

    public String vencedor(String j1,String j2){

        if (((j1 == &quot;pedra&quot;)&amp;&amp;(j2 == &quot;papel&quot;))||
            ((j1 == &quot;papel&quot;)&amp;&amp;(j2 == &quot;pedra&quot; )))
               return &quot;papel&quot;;  

        if(((j1 == &quot;tesoura&quot;)&amp;&amp;(j2 == &quot;pedra&quot;))||
           ((j1 == &quot;pedra&quot;) &amp;&amp; (j2==&quot;tesoura&quot;)) )
               return &quot;pedra&quot;;  

        if(((j1 == &quot;tesoura&quot;)&amp;&amp;( j2== &quot;papel&quot;))||
           ((j1 == &quot;papel&quot;)&amp;&amp;( j2== &quot;tesoura&quot;)))
              return &quot;tesoura&quot;;        

              return &quot;&quot;;

    }
}
</pre>
<div style="text-align:center">
<a rel="prettyPhoto" href="http://www.botecodigital.info/wp-content/uploads/2011/07/2011-07-19-21.46.14.jpg" class="cboxModal" title="dojo1"><img src="http://www.botecodigital.info/wp-content/uploads/2011/07/2011-07-19-21.46.14-300x180.jpg" alt="" title="dojo1" width="300" height="180" class="aligncenter size-medium wp-image-1560" /></a>
</div>
<div style="text-align:center">
<a rel="prettyPhoto" href="http://www.botecodigital.info/wp-content/uploads/2011/07/2011-07-19-21.46.46.jpg" class="cboxModal" title="SAMSUNG"><img src="http://www.botecodigital.info/wp-content/uploads/2011/07/2011-07-19-21.46.46-300x180.jpg" alt="" title="SAMSUNG" width="300" height="180" class="aligncenter size-medium wp-image-1561" /></a>
</div>
<p>Bom pessoal espero que esse o primeiro de muitos. Andei vendo que um pessoal esta fazendo <a href="http://dojorio.wordpress.com/2011/06/27/dojo-online/">Dojo Online</a> quem sabe dá para fazer algo assim.</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/java/codigo-espartano/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/12/java2.png" class="crp_thumb wp-post-image" alt="Código espartano" title="Código espartano" /></a> <a href="http://www.botecodigital.info/java/codigo-espartano/" rel="bookmark" class="crp_title">Código espartano</a></li><li><a href="http://www.botecodigital.info/css/zen-coding-uma-manira-diferente-de-escrever-html/" rel="bookmark"><img width="48" height="48" src="http://www.botecodigital.info/wp-content/uploads/2010/10/zen-coding-logo.png" class="crp_thumb wp-post-image" alt="Zen-Coding, uma maneira diferente de escrever HTML" title="Zen-Coding, uma maneira diferente de escrever HTML" /></a> <a href="http://www.botecodigital.info/css/zen-coding-uma-manira-diferente-de-escrever-html/" rel="bookmark" class="crp_title">Zen-Coding, uma maneira diferente de escrever HTML</a></li><li><a href="http://www.botecodigital.info/css/font-face-utilizando-fontes-alem-do-basico/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/11/css3.jpg" class="crp_thumb wp-post-image" alt="Font-Face, utilizando fontes além do básico!" title="Font-Face, utilizando fontes além do básico!" /></a> <a href="http://www.botecodigital.info/css/font-face-utilizando-fontes-alem-do-basico/" rel="bookmark" class="crp_title">Font-Face, utilizando fontes além do básico!</a></li><li><a href="http://www.botecodigital.info/jquery/trocando-dados-utilizando-json/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Trocando dados utilizando JSON" title="Trocando dados utilizando JSON" /></a> <a href="http://www.botecodigital.info/jquery/trocando-dados-utilizando-json/" rel="bookmark" class="crp_title">Trocando dados utilizando JSON</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/dojo-senac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vídeo Java</title>
		<link>http://www.botecodigital.info/java/video-java/</link>
		<comments>http://www.botecodigital.info/java/video-java/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 12:34:43 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Vídeo]]></category>
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1283</guid>
		<description><![CDATA[Java o Filme!!! from charlesmessias on Vimeo. Eu sei que é meio antigo mas só hoje que fui achar um com legenda Posts Relacionados: Zen-Coding, uma maneira diferente de escrever HTML Os segredos da próxima geração de vídeo games O Passado e o Futuro se encontram TV Digital revoluciona maneira de assistir televisão]]></description>
			<content:encoded><![CDATA[<div style="text-align:center"><iframe src="http://player.vimeo.com/video/15445712" width="400" height="225" frameborder="0"></iframe>
<p><a href="http://vimeo.com/15445712">Java o Filme!!!</a> from <a href="http://vimeo.com/user4486043">charlesmessias</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
</div>
<p>Eu sei que é meio antigo mas só hoje que fui achar um com legenda <img src='http://www.botecodigital.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/css/zen-coding-uma-manira-diferente-de-escrever-html/" rel="bookmark"><img width="48" height="48" src="http://www.botecodigital.info/wp-content/uploads/2010/10/zen-coding-logo.png" class="crp_thumb wp-post-image" alt="Zen-Coding, uma maneira diferente de escrever HTML" title="Zen-Coding, uma maneira diferente de escrever HTML" /></a> <a href="http://www.botecodigital.info/css/zen-coding-uma-manira-diferente-de-escrever-html/" rel="bookmark" class="crp_title">Zen-Coding, uma maneira diferente de escrever HTML</a></li><li><a href="http://www.botecodigital.info/noticias/os-segredos-da-proxima-geracao-de-video-games/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/10/video.png" class="crp_thumb wp-post-image" alt="Os segredos da próxima geração de vídeo games" title="Os segredos da próxima geração de vídeo games" /></a> <a href="http://www.botecodigital.info/noticias/os-segredos-da-proxima-geracao-de-video-games/" rel="bookmark" class="crp_title">Os segredos da próxima geração de vídeo games</a></li><li><a href="http://www.botecodigital.info/noticias/o-passado-e-o-futuro-se-encontram/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/07/noticia2.png" class="crp_thumb wp-post-image" alt="O Passado e o Futuro se encontram" title="O Passado e o Futuro se encontram" /></a> <a href="http://www.botecodigital.info/noticias/o-passado-e-o-futuro-se-encontram/" rel="bookmark" class="crp_title">O Passado e o Futuro se encontram</a></li><li><a href="http://www.botecodigital.info/noticias/tv-digital-revoluciona-maneira-de-assistir-televisao/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/07/noticia2.png" class="crp_thumb wp-post-image" alt="TV Digital revoluciona maneira de assistir televisão" title="TV Digital revoluciona maneira de assistir televisão" /></a> <a href="http://www.botecodigital.info/noticias/tv-digital-revoluciona-maneira-de-assistir-televisao/" rel="bookmark" class="crp_title">TV Digital revoluciona maneira de assistir televisão</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/video-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validando dados com expressões regulares em Java</title>
		<link>http://www.botecodigital.info/java/validando-dados-com-expressoes-regulares-em-java/</link>
		<comments>http://www.botecodigital.info/java/validando-dados-com-expressoes-regulares-em-java/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 11:00:31 +0000</pubDate>
		<dc:creator>Rodrigo Aramburu</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[expressoes regulares]]></category>
		<category><![CDATA[validar dados]]></category>

		<guid isPermaLink="false">http://www.botecodigital.info/?p=1140</guid>
		<description><![CDATA[O que é validar dados? Podemos dizer que validar dados é verificar se os dados informados pelos usuários( insira aqui seu apelido carinhoso ) estão em um formato que não irá danificar nosso programa,ou seja, que os dados informados terão a forma e os valores desejados( acredite o usuário vai digitar letras em um campo numérico). Como você pode ver no titulo deste post vamos utilizar expressões regulares para validar nossos dados, mas que diabos é uma expressão regular? Simplificando [...]]]></description>
			<content:encoded><![CDATA[<p>O que é validar dados? Podemos dizer que validar dados é verificar se os dados informados pelos usuários( insira aqui seu apelido carinhoso ) estão em um formato que não irá danificar nosso programa,ou seja,  que os dados informados terão a forma e os valores desejados( acredite o usuário vai digitar letras em um campo numérico).</p>
<p>Como você pode ver no titulo deste post vamos utilizar expressões regulares para validar nossos dados, mas que diabos é uma expressão regular? Simplificando uma expressão regular é uma série de caracteres capaz de descrever outras séries de caracteres. Complicado? Um pouco no inicio talvez, mas vamos com calma analisando um exemplo simples, um telefone por exemplo</p>
<pre class="brush: plain; title: ; notranslate">
3412-1234
</pre>
<p>Como podemos ver este dado é composto somente de caracteres numéricos e é formatado com quatro caracteres numéricos, um caractere “-” e mais quatro caracteres numéricos. Vejamos como ficaria a expressão regular que expressaria essa regra:</p>
<pre class="brush: plain; title: ; notranslate">
\d{4,4}-\d{4,4}
</pre>
<p>Esta expressão poderia descrever diversos telefones que seguirem esta regra de formatação, por exemplo os telefones abaixo:</p>
<pre class="brush: plain; title: ; notranslate">
3414-4974
9698-1101
3412-1234
</pre>
<p>e não encontraria os seguintes.</p>
<pre class="brush: plain; title: ; notranslate">
12902398
13244-54452
asdf-hjkl
</pre>
<p>Então vamos destrinchar a expressão </p>
<p><strong>\d</strong>: É um meta caractere do tipo representante, que no caso representa um caractere numérico, ou  seja de 0-9<br />
<strong>{4,4}</strong>: É um quantificador ele representa quantas vezes o caractere anterior pode ser repetido, no caso no minimo quatro e no máximo quatro.<br />
<strong>-</strong> : o caractere “-” mesmo!</p>
<h5>Meta caractere, quantificador? </h5>
<p>Calma não criemos pânico! Um representante é um caractere que representa uma série de outros caracteres. </p>
<h6>Meta caracteres</h6>
<p><strong>\d</strong>: Um dígito<br />
<strong>\s</strong>: Um caractere de espaço em branco<br />
<strong>\w</strong>: Um caractere de palavra(letras, dígitos ou “_”)<br />
<strong>.</strong> : Qualquer caractere</p>
<p>Um aviso importante é que para utilizá-los em uma aplicação dentro de uma <em>String</em> devemos escapar as barras com mais uma barra. Então para validar um número inteiro devemos utilizar a seguinte expressão:</p>
<pre class="brush: plain; title: ; notranslate">
&quot;\\d&quot;
</pre>
<p>Se nos interessar pesquisar por um grupo limitado de caracteres podemos especificar uma lista através de colchetes. Por exemplo a lista <em>[abc]</em> irá somente encontrar os caracteres “a”, “b” ou “c”</p>
<p><strong>“[bcf]aixa”</strong>  irá encontrar as seguintes palavras “baixa”, “caixa” e “faixa”</p>
<p><strong>“Texto[1234]”</strong> irá encontrar as seguintes palavras “Texto1”, “Texto2”, “Texto3”</p>
<p>Também podemos especificar um intervalo de valores utilizando um hífen dentro do colchete.</p>
<p><strong>“[a-z]teste”</strong> irá encontrar as seguintes palavras “ateste”, “dteste”, ”oteste”, “pteste”</p>
<p>Bom  até agora vimos como encontrar um caractere, mas se quisermos que este caractere pudesse ser repetido inúmeras vezes? Utilizaríamos um quantificador, que é um caractere que informa quantas vezes um meta caractere pode/deve ser repetido.</p>
<h6>Quanificadores</h6>
<p><strong>?</strong>: Pode se repetir 0 ou 1  vez<br />
<strong>*</strong>: Pode se repetir uma ou várias vezes<br />
<strong>+</strong>: Pode se repetir uma ou várias vezes<br />
{n,m}: Pode se repetir de n até m vezes</p>
<p>Agora podemos criar algumas expressões um pouco mais rebuscadas, como uma para validar placas de carros:</p>
<pre class="brush: plain; title: ; notranslate">
“[a-zA-Z]{3,3}-\\d{4,4}”
</pre>
<p>Vamos analisar a expressão, temos entre colchetes duas listas que informam que só será aceito caractere de &#8220;a&#8221; até &#8220;z&#8221; tanto maiúsculo como minusculo que podem ser repetido no minimo 3 vezes e no máximo 3 vezes. Seguido deve possuir um traço e após um caractere numérico que pode se repetir no minimo 4 vezes e no máximo 4 vezes.</p>
<p>Agora vamos ao código Java para validar:</p>
<pre class="brush: java; title: ; notranslate">
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ValidaPlaca {

    public static void main(String args[]){
        Pattern pattern = Pattern.compile(&quot;[a-zA-Z]{3,3}-\\d{4,4}&quot;);
        Matcher matcher = pattern.matcher(&quot;ETE-1234&quot;);

        if( matcher.find() ){
            System.out.println(&quot;Encontrou&quot;);
        }else{
            System.out.println(&quot;Não encontrou&quot;);
        }
    }
}
</pre>
<p>Na linha 8 criamos um objeto <em>Pattern</em> que é responsável por armazenar uma expressão regular que será utilizado pelo objeto <em>Matcher</em> que é responsável pelas buscar. </p>
<p>O método <em>find()</em>(linha 11) retorna <em>true</em> se encontrar o padrão de caracteres especificado pelas expressões regulares na <em>String</em> passada na linha 12.</p>
<p>O objeto <em>Matcher</em> pode buscar várias ocorrências do padrão em sua <em>String</em> possuindo métodos para retornar estas ocorrências e e suas posições. Veja o exemplo abaixo:</p>
<pre class="brush: java; title: ; notranslate">
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ValidaPlaca {

    public static void main(String args[]){
        Pattern pattern = Pattern.compile(&quot;[a-zA-Z]{3,3}-\\d{4,4}&quot;);
        Matcher matcher = pattern.matcher(&quot;ETE-1234 ZXC-4567 cdr-0987&quot;);

        boolean b = false;
        while( b = matcher.find() ){
            if( b ){
                System.out.println( matcher.group()+&quot; - Posição: &quot;+matcher.start() );
            }else{
                System.out.println(&quot;Não encontrou&quot;);
            }
        }
    }
}
</pre>
<p>Você pode fazer mais uns teste com outras expressões como:</p>
<h6>CEP</h6>
<pre class="brush: plain; title: ; notranslate">
&quot;^\\d{5,5}-?\\d{3,3}$&quot;
</pre>
<p></p>
<h6>E-mail(não está 100% mas dá para ter uma idéia)</h6>
<pre class="brush: plain; title: ; notranslate">
&quot;^[a-zA-Z0-9_\\.-]+@([a-zA-Z0-9]\\.)*([a-zA-Z0-9])*\\.&quot;
</pre>
<p>Uma ótima referência para aprender mais é através do <a href="http://guia-er.sourceforge.net/index.html">Expressões Regulares &#8211; Guia de Consulta Rápida por Aurélio Marinho Jargas </a></p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/java/conectando-java-com-mongodb/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2011/10/java.png" class="crp_thumb wp-post-image" alt="Conectando Java com MongoDB" title="Conectando Java com MongoDB" /></a> <a href="http://www.botecodigital.info/java/conectando-java-com-mongodb/" rel="bookmark" class="crp_title">Conectando Java com MongoDB</a></li><li><a href="http://www.botecodigital.info/jquery/validando-formularios-com-jquery-plugin-validation/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Validando formulários com JQuery-Plugin-Validation" title="Validando formulários com JQuery-Plugin-Validation" /></a> <a href="http://www.botecodigital.info/jquery/validando-formularios-com-jquery-plugin-validation/" rel="bookmark" class="crp_title">Validando formulários com JQuery-Plugin-Validation</a></li><li><a href="http://www.botecodigital.info/java/manipulando-datas-em-java/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/04/java.png" class="crp_thumb wp-post-image" alt="Manipulando datas em Java" title="Manipulando datas em Java" /></a> <a href="http://www.botecodigital.info/java/manipulando-datas-em-java/" rel="bookmark" class="crp_title">Manipulando datas em Java</a></li><li><a href="http://www.botecodigital.info/java/codigo-espartano/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/12/java2.png" class="crp_thumb wp-post-image" alt="Código espartano" title="Código espartano" /></a> <a href="http://www.botecodigital.info/java/codigo-espartano/" rel="bookmark" class="crp_title">Código espartano</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/validando-dados-com-expressoes-regulares-em-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<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>
<pre class="brush: java; title: ; notranslate">
Date d = new Date();
</pre>
<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>
<pre class="brush: java; title: ; notranslate">
Calendar c = Calendar.getIntance();
</pre>
<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>
<pre class="brush: java; title: ; notranslate">
c.set(ano,mes,dia);
c.set(ano,mês,dia,hora,minuto);
c.set(ano,mês,dia,hora,minuto,segundo);
</pre>
<h6>Método setTime</h6>
<pre class="brush: java; title: ; notranslate">
c.setTime(new Date() );
</pre>
<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>
<pre class="brush: java; title: ; notranslate">
Calendar.DAY_OF_MONTH
Calendar.DAY_OF_WEEK
Calendar.DAY_OF_YEAR
</pre>
<h6>Mês:</h6>
<pre class="brush: java; title: ; notranslate">
Calendar.MONTH
</pre>
<h6>Ano:</h6>
<pre class="brush: java; title: ; notranslate">
Calendar.YEAR
</pre>
<h6>Hora:</h6>
<pre class="brush: java; title: ; notranslate">
Calendar.HOUR
Calendar.HOUR_OF_DAY
</pre>
<h6>Segundos:</h6>
<pre class="brush: java; title: ; notranslate">
Calendar.SECOND
</pre>
<p>Veja o exemplo abaixo:</p>
<pre class="brush: java; title: ; notranslate">
Date d= new Date();
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_YEAR,5 );//adicionamos 5 dias a data aual
c.add(Calendar.MONTH,3 );//adicionamos 3 mêses a data atual
c.add(Calendar.YEAR,1 );//adicionamos 1 ano a data atual
</pre>
<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>
<pre class="brush: java; title: ; notranslate">
        Date d = new Date();
        Calendar c = Calendar.getInstance();
        c.setTime(d);

        DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
        System.out.println( df.format(c.getTime()) );
</pre>
<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>
<pre class="brush: java; title: ; notranslate">
Dateformat.SHORT // 03/04/10
Dateformat.MEDIUM // 03/04/2010
Dateformat.LONG //3 de Abril de 2010
Dateformat.FULL //Sábado, 3 de Abril de 2010
</pre>
<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>
<pre class="brush: java; title: ; notranslate">
        Date hoje  = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(&quot;dd/MM/yyyy HH:mm:ss&quot;);
        System.out.println( sdf.format(hoje));
</pre>
<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>
<pre class="brush: java; title: ; notranslate">
Locale brasil = new Locale(&quot;pt&quot;,&quot;br&quot;);//portugues do brasil
Locale japao = new Locale(&quot;ja&quot;);// japao
</pre>
<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>
<pre class="brush: java; title: ; notranslate">
Date hoje  = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(&quot;E dd &quot;,new Locale(&quot;pt&quot;,&quot;br&quot;));
System.out.println( sdf.format(hoje));

DateFormat df = DateFormat.getDateInstance(DateFormat.FULL,new Locale(&quot;pt&quot;,&quot;br&quot;));
System.out.println( df.format(hoje));
</pre>
<p>Para finalizar como covertermos uma String em um objeto <strong>Date</strong></p>
<pre class="brush: java; title: ; notranslate">
        Date d  = new Date();
        SimpleDateFormat df = new SimpleDateFormat(&quot;DD/MM/yyyy&quot;);
        try {
            d = df.parse(&quot;25/03/2010&quot;);
        } catch (ParseException ex) {
            ex.printStackTrace();

        }
        System.out.println( df.format(d));
</pre>
<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>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/java/conectando-java-com-mongodb/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2011/10/java.png" class="crp_thumb wp-post-image" alt="Conectando Java com MongoDB" title="Conectando Java com MongoDB" /></a> <a href="http://www.botecodigital.info/java/conectando-java-com-mongodb/" rel="bookmark" class="crp_title">Conectando Java com MongoDB</a></li><li><a href="http://www.botecodigital.info/jquery/validando-formularios-com-jquery-plugin-validation/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/05/jquery.png" class="crp_thumb wp-post-image" alt="Validando formulários com JQuery-Plugin-Validation" title="Validando formulários com JQuery-Plugin-Validation" /></a> <a href="http://www.botecodigital.info/jquery/validando-formularios-com-jquery-plugin-validation/" rel="bookmark" class="crp_title">Validando formulários com JQuery-Plugin-Validation</a></li><li><a href="http://www.botecodigital.info/java/lendo-e-escrevendo-xml-em-java-com-jdom/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2012/01/java-duke-xml1.png" class="crp_thumb wp-post-image" alt="Lendo e escrevendo XML em Java com JDOM" title="Lendo e escrevendo XML em Java com JDOM" /></a> <a href="http://www.botecodigital.info/java/lendo-e-escrevendo-xml-em-java-com-jdom/" rel="bookmark" class="crp_title">Lendo e escrevendo XML em Java com JDOM</a></li><li><a href="http://www.botecodigital.info/java/java-console-colorido/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/12/java2.png" class="crp_thumb wp-post-image" alt="Java &#8211; Console Colorido" title="Java &#8211; Console Colorido" /></a> <a href="http://www.botecodigital.info/java/java-console-colorido/" rel="bookmark" class="crp_title">Java &#8211; Console Colorido</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/java/manipulando-datas-em-java/feed/</wfw:commentRss>
		<slash:comments>5</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. Boa sacada Henrico e Luciano! [UPDATE] Equipe de desenvolvimento do código espartano! Se notarem o horário do relógio irão perceber que tinha que entregar um trabalho na segunda! Posts Relacionados: Dojo SENAC-Uruguaiana Fibonacci com Recursão Validando dados com expressões regulares em Java Java &#8211; Console Colorido]]></description>
			<content:encoded><![CDATA[<p>Sexta-feira a noite, aula de programação e muita &#8220;classe&#8221; para fazer piada.</p>
<pre class="brush: java; title: ; notranslate">
package sparta;

public class Warrior {

    public static void main(String args[]){
        Warrior w = new Warrior();
        w.run();

    }
    private void run(){
        //atenção humor nerd!!!
        boolean motherFucker = this.isSparta();

        if( motherFucker ){
            this.kickBastard();
        }else{
            this.die();
        }
    }

    private boolean isSparta() {
        return true;
    }

    private void kickBastard() {
        System.out.println(&quot;ahhhhhhh!!!!!&quot;);
    }

    private void die() {
        System.out.println(&quot;...&quot;);
    }
}
</pre>
<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>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/java/dojo-senac/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2011/07/dojo_sp-300x263-150x150.png" class="crp_thumb wp-post-image" alt="Dojo SENAC-Uruguaiana" title="Dojo SENAC-Uruguaiana" /></a> <a href="http://www.botecodigital.info/java/dojo-senac/" rel="bookmark" class="crp_title">Dojo SENAC-Uruguaiana</a></li><li><a href="http://www.botecodigital.info/algoritmos/fibonacci-com-recursao/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/09/algoritmos.png" class="crp_thumb wp-post-image" alt="Fibonacci  com Recursão" title="Fibonacci  com Recursão" /></a> <a href="http://www.botecodigital.info/algoritmos/fibonacci-com-recursao/" rel="bookmark" class="crp_title">Fibonacci  com Recursão</a></li><li><a href="http://www.botecodigital.info/java/validando-dados-com-expressoes-regulares-em-java/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/10/java3.png" class="crp_thumb wp-post-image" alt="Validando dados com expressões regulares em Java" title="Validando dados com expressões regulares em Java" /></a> <a href="http://www.botecodigital.info/java/validando-dados-com-expressoes-regulares-em-java/" rel="bookmark" class="crp_title">Validando dados com expressões regulares em Java</a></li><li><a href="http://www.botecodigital.info/java/java-console-colorido/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/12/java2.png" class="crp_thumb wp-post-image" alt="Java &#8211; Console Colorido" title="Java &#8211; Console Colorido" /></a> <a href="http://www.botecodigital.info/java/java-console-colorido/" rel="bookmark" class="crp_title">Java &#8211; Console Colorido</a></li></ul></div>]]></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>#galeria pasta=&#8221;uruguaianatech&#8221;#</p>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cuia11.png" class="crp_thumb wp-post-image" alt="1º UruguaianaTech" title="1º UruguaianaTech" /></a> <a href="http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/" rel="bookmark" class="crp_title">1º UruguaianaTech</a></li><li><a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cuia11.png" class="crp_thumb wp-post-image" alt="2º UruguaianaTech" title="2º UruguaianaTech" /></a> <a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark" class="crp_title">2º UruguaianaTech</a></li><li><a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark"><img width="50" height="33" src="http://www.botecodigital.info/wp-content/uploads/2011/11/uruguaianaTECH_.jpg" class="crp_thumb wp-post-image" alt="UruguaianaTECH – Capacitando profissionais" title="UruguaianaTECH – Capacitando profissionais" /></a> <a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark" class="crp_title">UruguaianaTECH – Capacitando profissionais</a></li><li><a href="http://www.botecodigital.info/php/tchelinux-uruguaiana/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/08/tchelinux-150x150.png" class="crp_thumb wp-post-image" alt="TchêLinux Uruguaiana" title="TchêLinux Uruguaiana" /></a> <a href="http://www.botecodigital.info/php/tchelinux-uruguaiana/" rel="bookmark" class="crp_title">TchêLinux Uruguaiana</a></li></ul></div>]]></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>
<div id="crp_related"><h4>Posts Relacionados:</h4><ul><li><a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/Cuia11.png" class="crp_thumb wp-post-image" alt="2º UruguaianaTech" title="2º UruguaianaTech" /></a> <a href="http://www.botecodigital.info/noticias/2%c2%ba-uruguaianatech/" rel="bookmark" class="crp_title">2º UruguaianaTech</a></li><li><a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark"><img width="50" height="33" src="http://www.botecodigital.info/wp-content/uploads/2011/11/uruguaianaTECH_.jpg" class="crp_thumb wp-post-image" alt="UruguaianaTECH – Capacitando profissionais" title="UruguaianaTECH – Capacitando profissionais" /></a> <a href="http://www.botecodigital.info/noticias/uruguaianatech-%e2%80%93-capacitando-profissionais/" rel="bookmark" class="crp_title">UruguaianaTECH – Capacitando profissionais</a></li><li><a href="http://www.botecodigital.info/php/tchelinux-uruguaiana/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2010/08/tchelinux-150x150.png" class="crp_thumb wp-post-image" alt="TchêLinux Uruguaiana" title="TchêLinux Uruguaiana" /></a> <a href="http://www.botecodigital.info/php/tchelinux-uruguaiana/" rel="bookmark" class="crp_title">TchêLinux Uruguaiana</a></li><li><a href="http://www.botecodigital.info/php/uruguaianatech/" rel="bookmark"><img width="50" height="50" src="http://www.botecodigital.info/wp-content/uploads/2009/11/urutech1.png" class="crp_thumb wp-post-image" alt="UruguaianaTech" title="UruguaianaTech" /></a> <a href="http://www.botecodigital.info/php/uruguaianatech/" rel="bookmark" class="crp_title">UruguaianaTech</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.botecodigital.info/php/1%c2%ba-uruguaianatech/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

