<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Loiane Groner</title><link>http://www.loiane.com</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Loiane" /><description>Java, desenvolvimento e tecnologia</description><language>en</language><lastBuildDate>Mon, 08 Mar 2010 05:31:13 PST</lastBuildDate><generator>http://wordpress.org/?v=2.9.2</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Loiane" /><feedburner:info uri="loiane" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:emailServiceId>Loiane</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Como Importar Arquivo Excel para um ExtJS DataGrid usando DataDrop Grid Plugin</title><link>http://feedproxy.google.com/~r/Loiane/~3/5e3Aq2BC-MM/</link><category>Ext JS</category><category>excel</category><category>ExtJS</category><category>grid extjs</category><category>importar excel</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 08 Mar 2010 05:31:13 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1619</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2010/03/extjs_datadrop_excel_grid_plugin.jpg"><img class="aligncenter size-full wp-image-1621" title="extjs_datadrop_excel_grid_plugin" src="http://www.loiane.com/wp-content/uploads/2010/03/extjs_datadrop_excel_grid_plugin.jpg" alt="" width="749" height="396" /></a></p>
<p style="text-align: justify;">Este tutorial mostra como importar dados de uma planilha excel para um grid/tabela do ExtJS usando o plugin DataDrop (por <a href="http://www.vinylfox.com/" target="_blank">Shea Freaderick</a>) &#8211; selecionar, clicar e arrastar.</p>
<p style="text-align: justify;">Semana passada estava procurando um plugin que permite importar dados do excel diretamente para um grid.</p>
<p style="text-align: justify;">Não achei nenhum plugin que fizesse isso no <a href="http://www.extjs.com/forum/" target="_blank">forum ExtJS</a> que funcione como o <a href="http://www.loiane.com/2010/02/extjs-exportar-de-grid-para-excel/" target="_blank">plugin para exportar dados do grid para excel</a>; isto é, em plugin que não precise de nenhum código no lado servidor –  bem, se quisesse algum código do lado servidor eu poderia simplesmente usar o <a href="http://www.loiane.com/2010/03/tutorial-upload-de-arquivo-com-extjs-e-spring-framework/" target="_blank">plugin para fazer upload de arquivo</a> e fazer toda a parte da lógica no lado servidor (com Java, PHP ou qualquer outra linguagem), mas não era isso que eu estava procurando.</p>
<p style="text-align: justify;">Entretanto, achei um plugin muito interessante. Na verdade, esse plugin é tudo de bom. Até agora, é o plugin mais legal que já vi para data grid do ExtJS! Realmente é incrível e virei super fã dos envolvidos no desenvolvimento deste.</p>
<p style="text-align: justify;"><strong>Ok, mas o que é este plugin de que tanto estou falando?</strong></p>
<p style="text-align: justify;">É chamado de <a href="http://www.vinylfox.com/datadrop-drag-grid-data-from-spreadsheet/" target="_blank">DataDrop</a> desenvolvido por <a href="http://www.vinylfox.com/" target="_blank">Shea Frederick</a> (também conhecido como <a href="http://www.vinylfox.com/" target="_blank">VinylFox</a> no fórum do ExtJS) e você pode fazer drag e drop a partir de uma planilha excel. Muito legal!</p>
<p style="text-align: justify;">Esse plugin é muito útil se você precisa importar dados do excel de maneira super rápida. Mas no meu ponto de vista, se você precisar importar uma quantidade grande de dados de uma planilha, esse plugin não é muito prático, quer dizer, não é prático selecionar várias linhas e colunas da planilha (digamos, umas 10 mil linhas &#8211; isso vai ser um pouco chato de fazer). Bem, de qualquer maneira, o plugin funciona!</p>
<p style="text-align: justify;"><strong>O que é preciso para usar o plugin?</strong></p>
<p style="text-align: justify;"><strong>1 &#8211; Download do plugin do repositório do autor (</strong><a href="http://code.google.com/p/ext-ux-datadrop/" target="_blank"><strong>Google code</strong></a><strong>)</strong></p>
<p style="text-align: justify;"><strong>2 &#8211; Adicionar os imports dos arquivos javascript na sua página html (juntamente com os outros imports de outros arquivos ExtJS)</strong></p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
	&lt;script src=&quot;/extjs-grid-dragdrop-excel/js/datadrop-plugin/Override.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/extjs-grid-dragdrop-excel/js/datadrop-plugin/Ext.ux.DataDrop.js&quot;&gt;&lt;/script&gt;
</pre>
<p style="text-align: justify;"><strong>3 &#8211; Adicionar o “</strong><em><strong>Ext.ux.grid.DataDrop</strong></em><strong>” na declaração de plugins do datagrid:</strong></p>
<pre class="brush: jscript; collapse: false; first-line: 1; highlight: [11]; toolbar: true; wrap-lines: false;">
    // create grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            {header: &quot;NAME&quot;, width: 170, sortable: true, dataIndex: 'name'},
            {header: &quot;PHONE #&quot;, width: 150, sortable: true, dataIndex: 'phone'},
            {header: &quot;EMAIL&quot;, width: 150, sortable: true, dataIndex: 'email'},
            {header: &quot;BIRTHDAY&quot;, width: 100, sortable: true, dataIndex: 'birthday',
            	renderer: Ext.util.Format.dateRenderer('m/d/Y')}
        ],
        plugins: [Ext.ux.grid.DataDrop],
        title: 'My Contacts',
        autoHeight:true,
        width:590,
		renderTo: document.body,
		frame:true
    });
</pre>
<p style="text-align: justify;">Você pode fazer o donwload do exemplo que fiz a partir do meu respositório GitHub: <a href="http://github.com/loiane/extjs-grid-dragdrop-excel" target="_blank">http://github.com/loiane/extjs-grid-dragdrop-excel</a></p>
<p style="text-align: justify;"><strong>Outras observações:</strong></p>
<p style="text-align: justify;">No <a href="http://www.vinylfox.com/datadrop-drag-grid-data-from-spreadsheet/" target="_blank">website do VinylFox</a>, tem um vídeo que demonstra como o plugin funciona, e ele usa o Open Office.</p>
<p style="text-align: justify;">Na minha primeira tentativa para fazer o plugin funcionar, tentei selecionar dados do Microsoft Excel e fazer o drag e drop no grid, mas não sabia como arrastar os dados do excel (sim, eu sei, sou totalmente newbie quando se trata de M$ Excel– só sei fazer matemática básica – realmente vergonhoso! <img src='http://www.loiane.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  ) – Com Open Office e Lotus Symphony é tão simples, você pode selecionar e clicar em qualquer lugar da seleção para arrastar!</p>
<p style="text-align: justify;">If you are newbie just like me, Bem, se você for um newbie como eu, fiz um pequeno vídeo demonstrando como fazer (tem que clicar na borda da seleção para arrastar):</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Seq7rQgILvg&amp;hl=pt_BR&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/Seq7rQgILvg&amp;hl=pt_BR&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: justify;">Bons códigos!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1619&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F03%2Fcomo-importar-arquivo-excel-para-um-extjs-datagrid-usando-datadrop-grid-plugin%2F&amp;linkname=Como%20Importar%20Arquivo%20Excel%20para%20um%20ExtJS%20DataGrid%20usando%20DataDrop%20Grid%20Plugin"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/qjWWJx5nOlebRs_OkEnuVq7BUNk/0/da"><img src="http://feedads.g.doubleclick.net/~a/qjWWJx5nOlebRs_OkEnuVq7BUNk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qjWWJx5nOlebRs_OkEnuVq7BUNk/1/da"><img src="http://feedads.g.doubleclick.net/~a/qjWWJx5nOlebRs_OkEnuVq7BUNk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=5e3Aq2BC-MM:HGx6RSJk9Rg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=5e3Aq2BC-MM:HGx6RSJk9Rg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=5e3Aq2BC-MM:HGx6RSJk9Rg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=5e3Aq2BC-MM:HGx6RSJk9Rg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=5e3Aq2BC-MM:HGx6RSJk9Rg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=5e3Aq2BC-MM:HGx6RSJk9Rg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=5e3Aq2BC-MM:HGx6RSJk9Rg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=5e3Aq2BC-MM:HGx6RSJk9Rg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/5e3Aq2BC-MM" height="1" width="1"/>]]></content:encoded><description>Este tutorial mostra como importar dados de uma planilha excel para um grid/tabela do ExtJS usando o plugin DataDrop (por Shea Freaderick) &amp;#8211; selecionar, clicar e arrastar.
Semana passada estava procurando um plugin que permite importar dados do excel diretamente para um grid.
Não achei nenhum plugin que fizesse isso no forum ExtJS que funcione como o [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/03/como-importar-arquivo-excel-para-um-extjs-datagrid-usando-datadrop-grid-plugin/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2010/03/como-importar-arquivo-excel-para-um-extjs-datagrid-usando-datadrop-grid-plugin/</feedburner:origLink></item><item><title>Tutorial: Upload de Arquivo com ExtJS e Spring Framework</title><link>http://feedproxy.google.com/~r/Loiane/~3/DRtt58B7u8U/</link><category>Ext JS</category><category>Spring</category><category>ExtJS</category><category>ExtJS + JEE</category><category>file upload</category><category>upload arquivo</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 01 Mar 2010 03:30:59 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1583</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: center;"><a href="http://www.loiane.com/wp-content/uploads/2010/02/file_upload_spring_extjs_loiane.png"><img class="aligncenter size-full wp-image-1587" style="border: 1px solid black;" title="file_upload_spring_extjs_loiane" src="http://www.loiane.com/wp-content/uploads/2010/02/file_upload_spring_extjs_loiane.png" alt="" width="513" height="149" /></a></p>
<p>Esse tutorial aborda como implementar um form para upload de arquivo usando o form ExtJS no lado cliente e Spring Framework no lado servidor.</p>
<p>O que você precisa antes de começar esse tutorial?</p>
<ul>
<li><a href="http://www.extjs.com/" target="_blank">ExtJS</a></li>
<li><a href="http://www.springsource.com/download/community" target="_blank">Spring Framework</a> (MVC) e dependências (há uma opção com dependência para download)</li>
<li><a href="http://commons.apache.org/downloads/download_io.cgi" target="_blank">commons-io-1.4.jar</a></li>
<li><a href="http://commons.apache.org/downloads/download_fileupload.cgi" target="_blank">commons-fileupload-1.2.jar</a></li>
</ul>
<p>Primeiro precisa implementar o form de upload. você pode usar o que está disponível na página de exemplo do ExtJS (<a href="http://www.extjs.com/deploy/dev/examples/form/file-upload.html" target="_blank">File Upload example</a>) para ver as opções disponíveis (Estou usando o terceiro form).<br />
Abaixo está o código que implementei (ou melhor, copiei da página de exemplo do ExtJS e adaptei de acordo com minha necessidade &#8211; Spring):</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
Ext.onReady(function(){

    Ext.QuickTips.init();

    var msg = function(title, msg){
        Ext.Msg.show({
            title: title,
            msg: msg,
            minWidth: 200,
            modal: true,
            icon: Ext.Msg.INFO,
            buttons: Ext.Msg.OK
        });
    };

    var fp = new Ext.FormPanel({
        renderTo: 'fi-form',
        fileUpload: true,
        width: 500,
        frame: true,
        title: 'File Upload Form',
        autoHeight: true,
        bodyStyle: 'padding: 10px 10px 0 10px;',
        labelWidth: 50,
        defaults: {
            anchor: '95%',
            allowBlank: false,
            msgTarget: 'side'
        },
        items: [{
            xtype: 'fileuploadfield',
            id: 'form-file',
            emptyText: 'Select a File to import',
            fieldLabel: 'File',
            name: 'file',
            buttonCfg: {
                text: '',
                iconCls: 'upload-icon'
            }
        }],
        buttons: [{
            text: 'Upload',
            handler: function(){
                if(fp.getForm().isValid()){
	                fp.getForm().submit({
	                    url: 'fileUpload/import.action',
	                    waitMsg: 'Uploading your file...',
	                    success: function(fp, o){
	                        msg('Success', 'Processed file on the server');
	                    }
	                });
                }
            }
        },{
            text: 'Reset',
            handler: function(){
                fp.getForm().reset();
            }
        }]
    });

});
</pre>
<p>E aqui tem o exemplo de como usar (página HTML):</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Spring FileUpload Example with ExtJS Form&lt;/title&gt;

    &lt;!-- Ext JS files --&gt;
	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/extjs-file-import-spring/ext-3.1.1/resources/css/ext-all.css&quot; /&gt;

	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/extjs-file-import-spring/ext-3.1.1/examples/shared/examples.css&quot; /&gt;
    &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/extjs-file-import-spring/ext-3.1.1/examples/ux/fileuploadfield/css/fileuploadfield.css&quot;/&gt;

	&lt;style type=text/css&gt;
        .upload-icon {
            background: url('/extjs-file-import-spring/ext-3.1.1/examples/shared/icons/fam/image_add.png') no-repeat 0 0 !important;
        }
    &lt;/style&gt;

	&lt;script src=&quot;/extjs-file-import-spring/ext-3.1.1/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/extjs-file-import-spring/ext-3.1.1/ext-all.js&quot;&gt;&lt;/script&gt;

	&lt;script src=&quot;/extjs-file-import-spring/ext-3.1.1/examples/ux/fileuploadfield/FileUploadField.js&quot;&gt;&lt;/script&gt;

	&lt;!-- file upload form --&gt;
	&lt;script src=&quot;/extjs-file-import-spring/js/file-upload.js&quot;&gt;&lt;/script&gt;

&lt;/head&gt;
&lt;body&gt;

	&lt;h1&gt;Spring File Upload Example Integrated with ExtJS FileUpload Form&lt;/h1&gt;
	&lt;p&gt;Click on &quot;Browse&quot; button (image) to select a file and click on Upload button&lt;/p&gt;
	&lt;div id=&quot;fi-form&quot;&gt;&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Antes de começar a codificar o Controoler, é necessário ter um FileUploadBean (não é obrigatório, mas para deixar mais organizado):</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
package com.loiane.beans;

import org.springframework.web.multipart.MultipartFile;

public class FileUploadBean {

	private MultipartFile file;

	public MultipartFile getFile() {
		return file;
	}

	public void setFile(MultipartFile file) {
		this.file = file;
	}

}
</pre>
<p>E aqui está o FileUploadController (apenas estou gravando o arquivo que foi feito upload para o diretório C:). Você pode adicionar alguma validação ou processar o arquivo nesta classe (mas por favor, adicione uma classe de serviço para isso &#8211; controller é apenas para redirecionar o request! <img src='http://www.loiane.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Você também pode retornar mensagens para o ExtJS dizendo que foi um sucesso ou alguma mensagem de erro.</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
package com.loiane.web;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.support.ByteArrayMultipartFileEditor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

import com.loiane.beans.FileUploadBean;

public class FileUploadController extends SimpleFormController  {

	protected ModelAndView onSubmit(
			HttpServletRequest request,
			HttpServletResponse response,
			Object command,
			BindException errors) throws ServletException, IOException {

		// cast the bean
		FileUploadBean bean = (FileUploadBean) command;

		MultipartFile file = bean.getFile();
		String fileName = null;

		if (file == null) {
			System.out.println(&quot;User Did not upload file&quot;);
		}
		else {
			System.out.println(&quot;Uploaded File Name is :&quot; + file.getOriginalFilename());
		}

		InputStream inputStream = null;
		OutputStream outputStream = null;
		if (file.getSize() &gt; 0) {
			inputStream = file.getInputStream();
			String root = &quot;C:\\&quot;;
			fileName = root + file.getOriginalFilename();
			outputStream = new FileOutputStream(fileName);
			int readBytes = 0;
			byte[] buffer = new byte[10000];
			while ((readBytes = inputStream.read(buffer, 0 , 10000))!=-1){

				outputStream.write(buffer, 0, readBytes);
			}
			outputStream.close();
			inputStream.close();
		}

		return null;

	}

	protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder)
	throws ServletException {
		// to actually be able to convert Multipart instance to byte[]
		// we have to register a custom editor
		binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
		// now Spring knows how to handle multipart object and convert them
	}

}
</pre>
<p>Também é preciso adicionar esse bloco de código no arquivo servlet.xml:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
	&lt;!-- max upload size in bytes --&gt;
     &lt;bean id=&quot;multipartResolver&quot; class=&quot;org.springframework.web.multipart.commons.CommonsMultipartResolver&quot;&gt;
     	&lt;property name=&quot;maxUploadSize&quot; value=&quot;1000000&quot;/&gt;
     &lt;/bean&gt;
</pre>
<p>Bem simples!</p>
<p>Você pode fazer o download do projeto de exemplo do meu github: <a href="http://github.com/loiane/extjs-file-import-spring" target="_blank">http://github.com/loiane/extjs-file-import-spring</a></p>
<p>Bons códigos!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1583&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F03%2Ftutorial-upload-de-arquivo-com-extjs-e-spring-framework%2F&amp;linkname=Tutorial%3A%20Upload%20de%20Arquivo%20com%20ExtJS%20e%20Spring%20Framework"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/NVP7CdN6cty91PONg9PJMKeOXhU/0/da"><img src="http://feedads.g.doubleclick.net/~a/NVP7CdN6cty91PONg9PJMKeOXhU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/NVP7CdN6cty91PONg9PJMKeOXhU/1/da"><img src="http://feedads.g.doubleclick.net/~a/NVP7CdN6cty91PONg9PJMKeOXhU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=DRtt58B7u8U:Bc_3TcjOn7w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=DRtt58B7u8U:Bc_3TcjOn7w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=DRtt58B7u8U:Bc_3TcjOn7w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=DRtt58B7u8U:Bc_3TcjOn7w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=DRtt58B7u8U:Bc_3TcjOn7w:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=DRtt58B7u8U:Bc_3TcjOn7w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=DRtt58B7u8U:Bc_3TcjOn7w:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=DRtt58B7u8U:Bc_3TcjOn7w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/DRtt58B7u8U" height="1" width="1"/>]]></content:encoded><description>Esse tutorial aborda como implementar um form para upload de arquivo usando o form ExtJS no lado cliente e Spring Framework no lado servidor.
O que você precisa antes de começar esse tutorial?

ExtJS
Spring Framework (MVC) e dependências (há uma opção com dependência para download)
commons-io-1.4.jar
commons-fileupload-1.2.jar

Primeiro precisa implementar o form de upload. você pode usar o que está [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/03/tutorial-upload-de-arquivo-com-extjs-e-spring-framework/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2010/03/tutorial-upload-de-arquivo-com-extjs-e-spring-framework/</feedburner:origLink></item><item><title>Concurso de Mainframes IBM</title><link>http://feedproxy.google.com/~r/Loiane/~3/kRQIBnF3EGk/</link><category>IBM</category><category>IBM Academic Initiative</category><category>developerWorks</category><category>concurso</category><category>mainframe</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Thu, 25 Feb 2010 05:45:14 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1564</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p>Os participantes do concurso deverão desenvolver aplicações em linguagem EGL para Mainframe e para isso poderão utilizar a versão gratuita do IBM Rational EGL Community Edition, disponível no <a href="http://www.ibm.com/developerworks/downloads/r/eglcommunity/index.html?S_TACT=105AGX15&amp;S_CMP=LP">portal developerWorks</a>.</p>
<p>Os projetos apresentados deverão ter uma proposta detalhada de uma aplicação Mainframe, que serão posteriormente analisadas e avaliadas por um painel de juízes qualificados. A IBM também irá disponibilizar para <a href="http://download.boulder.ibm.com/ibmdl/pub/software/rational/mainframecontest/sbc_template.doc">download</a> um modelo de abstract, que poderá ajudar os estudantes na composição de seus projetos.</p>
<p>As aplicações desenvolvidas serão julgadas quanto a sua complexidade, funcionalidade e usabilidade das aplicações propostas. Ao todo serão 4 critérios de avaliação, em que cada item terá uma nota de 1 a 25 pontos.</p>
<h2>Critérios de avaliação:</h2>
<p>1. Objetividade da documentação<br />
2. Entendimento técnico<br />
3. Usabilidade real da aplicação de acordo com os benefícios propostos<br />
4. Conjunto de funcionalidades apresentadas pela aplicação (de acordo com os requisitos submetidos e com a documentação proposta)</p>
<p>Vale lembrar que os participantes poderão desenvolver seus projetos em duplas. Os vencedores serão premiados com notebook Lenovo (1º lugar), GPS (2º lugar) e MP3 Players (3º lugar), de acordo com o ranking de classificação.</p>
<p>O abstract de cada projeto deverá ser enviado para análise até o dia 20 de Março de 2010.</p>
<table>
<tbody>
<tr>
<td bgcolor="white"><img class="aligncenter size-full wp-image-1569" title="Banner - Developer Works" src="http://www.loiane.com/wp-content/uploads/2010/02/ibm_concurso_mainframe01.jpeg" alt="Banner - Developer Works" width="600" height="89" /></td>
</tr>
<tr>
<td bgcolor="white"><img class="aligncenter size-full wp-image-1570" title="Concorra a prêmios participando do Concurso de Mainframes! Subtitle: Proponha uma aplicação inovadora para um Planeta mais Inteligente." src="http://www.loiane.com/wp-content/uploads/2010/02/ibm_concurso_mainframe02.jpeg" alt="Concorra a prêmios participando do Concurso de Mainframes! Subtitle: Proponha uma aplicação inovadora para um Planeta mais Inteligente." width="600" height="120" /></td>
</tr>
<tr>
<td bgcolor="white"><img class="aligncenter size-full wp-image-1571" title="Prove seu talento ao propor a criação de uma aplicação para uso na plataforma Mainframe que traga benefícios reais para o nosso planeta. Que tipo de aplicativo poderia ajudar profissionais ou mesmo uma empresa ao usar toda a potência desse servidor? Reúna seus colegas, pensem em desafios reais e desafie sua criatividade!" src="http://www.loiane.com/wp-content/uploads/2010/02/ibm_concurso_mainframe03.jpeg" alt="Prove seu talento ao propor a criação de uma aplicação para uso na plataforma Mainframe que traga benefícios reais para o nosso planeta. Que tipo de aplicativo poderia ajudar profissionais ou mesmo uma empresa ao usar toda a potência desse servidor? Reúna seus colegas, pensem em desafios reais e desafie sua criatividade!" width="600" height="120" /></td>
</tr>
<tr>
<td bgcolor="white"><img class="aligncenter size-full wp-image-1572" title="As duplas vencedoras poderão ganhar: 1º lugar: 2 Notebooks Lenovo; 2º lugar: 2 GPS; 3º lugar: 2 MP3 Players." src="http://www.loiane.com/wp-content/uploads/2010/02/ibm_concurso_mainframe04.jpeg" alt="As duplas vencedoras poderão ganhar: 1º lugar: 2 Notebooks Lenovo; 2º lugar: 2 GPS; 3º lugar: 2 MP3 Players." width="600" height="120" /></td>
</tr>
<tr>
<td bgcolor="white"><a href="http://www.ibm.com/software/br/rational/mainframecontest" target="_blank"><img class="aligncenter size-full wp-image-1573" title="Faça a sua inscrição agora mesmo" src="http://www.loiane.com/wp-content/uploads/2010/02/ibm_concurso_mainframe05.jpeg" alt="Faça a sua inscrição agora mesmo" width="600" height="120" /></a></td>
</tr>
</tbody>
</table>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1564&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F02%2Fconcurso-de-mainframes-ibm%2F&amp;linkname=Concurso%20de%20Mainframes%20IBM"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/Mq22-bKGRBXFPtA0LRMADsqdsnU/0/da"><img src="http://feedads.g.doubleclick.net/~a/Mq22-bKGRBXFPtA0LRMADsqdsnU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Mq22-bKGRBXFPtA0LRMADsqdsnU/1/da"><img src="http://feedads.g.doubleclick.net/~a/Mq22-bKGRBXFPtA0LRMADsqdsnU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=kRQIBnF3EGk:Eu4sHw-WXDs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=kRQIBnF3EGk:Eu4sHw-WXDs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=kRQIBnF3EGk:Eu4sHw-WXDs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=kRQIBnF3EGk:Eu4sHw-WXDs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=kRQIBnF3EGk:Eu4sHw-WXDs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=kRQIBnF3EGk:Eu4sHw-WXDs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=kRQIBnF3EGk:Eu4sHw-WXDs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=kRQIBnF3EGk:Eu4sHw-WXDs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/kRQIBnF3EGk" height="1" width="1"/>]]></content:encoded><description>Os participantes do concurso deverão desenvolver aplicações em linguagem EGL para Mainframe e para isso poderão utilizar a versão gratuita do IBM Rational EGL Community Edition, disponível no portal developerWorks.
Os projetos apresentados deverão ter uma proposta detalhada de uma aplicação Mainframe, que serão posteriormente analisadas e avaliadas por um painel de juízes qualificados. A IBM também [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/02/concurso-de-mainframes-ibm/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2010/02/concurso-de-mainframes-ibm/</feedburner:origLink></item><item><title>Carreira em TI: Currículo para Primeiro Estágio</title><link>http://feedproxy.google.com/~r/Loiane/~3/mg_756vEJmg/</link><category>carreira</category><category>currículo</category><category>currículo estágio</category><category>currículo estudante</category><category>estágio</category><category>primeiro currículo</category><category>primeiro emprego</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 22 Feb 2010 05:33:32 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1503</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2010/02/curriculum_ti_primeiro_estagio.jpg"><img class="aligncenter size-medium wp-image-1561" title="curriculum_ti_primeiro_estagio" src="http://www.loiane.com/wp-content/uploads/2010/02/curriculum_ti_primeiro_estagio-300x123.jpg" alt="" width="300" height="123" /></a>Fazer um bom currículo é considerado uma tarefa difícil. Fazer um currículo para o primeiro estágio ou primeiro emprego é considerado por muitos uma tarefa impossível. Este post tem como objetivo apresentar algumas dicas para deixar essa tarefa mais fácil.</p>
<p style="text-align: justify;">Mesmo em início de carreira, o estudante e o profissional recém-formado devem ter os mesmos cuidados de um profissional ao elaborar o seu currículo. Apesar de muitas vezes não ter atuado na área de interesse, ele deve enfatizar o seu potencial, mencionando os conhecimentos que adquiriu durante a fase de faculdade.</p>
<p style="text-align: justify;">Um ponto importante é escrever o currículo em <strong>3ª pessoa</strong>. Lembre-se que currículo é um documento, e não uma cartinha que está escrevendo.</p>
<p style="text-align: justify;">Um bom currículo deve começar com seu nome seguido ou não dos seus dados pessoais (pode colocar no final do currículo). Pausa para explicação: dados pessoais são os seus dados de contato. N<strong>ão coloque RG, CPF, endereço</strong>. Se o empregador quiser saber esses dados, ou vai te perguntar na entrevista ou vai pedir isso explicitamente no anúncio da vaga. Se o empregador não pedir explicitamente, não coloque. Só vai deixar o currículo mais feio. Coloque <strong>apenas nome, telefone de contato e email</strong>.</p>
<p style="text-align: justify;">Logo após o seu nome ou dados pessoais, vem o <strong>sumário</strong>. O sumário é um resumo da sua carreira profissional. Por exemplo: <em>Desenvolvedor Java com X anos de experiência, etc.</em></p>
<p style="text-align: justify;">No próprio sumário (ou após ele), você deve colocar os seus <em>conhecimentos técnicos</em>:<br />
<em>Linguagens: Java, C++;</em><em><br />
<em>IDEs: Eclipse, Netbeans, etc.</em><br />
</em><em>Frameworks: JSF, Struts, Spring</em></p>
<p style="text-align: justify;"><em>Se for o seu primeiro currículo, ou seja, se você não tem nenhuma experiência, coloque as ferramentas e linguages que viu/trabalhou na faculdade.</em></p>
<p style="text-align: justify;">Após o sumário e conhecimento técnicos, coloque quais são as <strong>experiências/empresas</strong> pelas quais já passou. Além disso, coloque um resumo das suas responsabilidade e/ou projetos relevantes nos quais participou.</p>
<p style="text-align: justify;">O que fazer se não tiver nenhuma experiência nesse caso?</p>
<p style="text-align: justify;">A graduação, apesar de parecer ser apenas graduação, é uma fonte de oportunidades. Quem estudou, teve iniciativa, participou de ONGs ou outras atividades — até grêmio escolar — ou seja, se mexeu, tem boas chances de fazer um bom currículo e ter um bom diferencial. Quem nunca fez nada, vai ter um pouco de problema (essa é uma boa hora para começar a fazer e não ficar para trás).</p>
<p style="text-align: justify;"><em>Trabalhar em ONGs, projetos voluntários, grêmio estudantil, ser presidente/líder de turma é uma boa forma de mostrar que tem iniciativa, liderança e capacidade de comunicação, características que toda empresa procura em um profissional.</em></p>
<p style="text-align: justify;"><em>É importante destacar que não se deve fazer auto elogios no currículo: “Tenho espírito de equipe e liderança, etc”. Isso deve ficar implícito pelas atividades que descrever.</em></p>
<p style="text-align: justify;">Os próximos ítens são Formação Acadêmica e Idiomas. Algumas informações como escola de primeira linha e idiomas fluentes são utilizados como critério de seleção, portanto, são características que merecem destaque no currículo.</p>
<p style="text-align: justify;">No item de formação, reforce seu desempenho nos estudos. Se tirava boas notas, deixe isso claro. Se seu resultado foi excepcional em uma determinada disciplina ou grupo de disciplinas, fale sobre este assunto e explique o que o motivou a ter este resultado exemplar. Por outro lado, se sua notas não são tão boas, não escreva no currículo, mas esteja preparado para ser questionado sobre o assunto na entrevista. Muitas empresas pedem para anexar o histórico/boletim. É bom estar preparado para isso.</p>
<p style="text-align: justify;"><strong>Proefiência em línguas estrangeiras</strong>. Ah, essa é uma parte importantíssima e que a maioria das pessoas não organizam muito bem.</p>
<p style="text-align: justify;">Muitos colocam:</p>
<p style="text-align: justify;">Inglês: leitura: intermediário; conversão: bom, escrita: bom</p>
<p style="text-align: justify;">Não coloque isso no seu currículo profissional. Isso é para bolsas escolares ou outras posições acadêmicas (como professor). <strong>Para mercado de trabalho: NÃO</strong>!</p>
<p style="text-align: justify;">Então como se deve colocar: existem 4 níveis de proeficiência: <em>básico</em>, <em>intermediário</em>, <em>avançado </em>e <em>fluente</em>. Como cada um “acha” que está em um nível, muitas vezes, o empregador não sabe interpretar o que cada nível significa. Se quiser (e deve), é bom colocar uma <strong><em>legenda</em></strong>, assim, o empregador não terá dúvidas:</p>
<ul style="text-align: justify;">
<li><strong>Fluente</strong>: está apto para trabalhar no      exterior</li>
<li><strong>Avançado</strong>: apto para viajar para o      exterior desacompanhado</li>
<li><strong>Intermediário</strong>: leitura e escrita com      conhecimentos verbais limitados (apto para viajar para o exterior com um      assistente)</li>
<li><strong>Básico</strong>: capaz de se comunicar com      pessoas de outros países a um nível mínimo.</li>
</ul>
<p style="text-align: justify;">Depois, se for necessário, pode colocar uma parte de outras informações/atividades complementares, como por exemplo: <strong>prêmios </strong>que ganhou, se tem experiência internacional (<strong>intercâmbio</strong>), se é palestrante, cursos que participou, etc.</p>
<p style="text-align: justify;">Outros pontos importantes para primeiro currículo de estágio:</p>
<p style="text-align: justify;"><strong>Seminários e congressos.</strong> Outro item importante para o primeiro currículo é a participação em seminários e congressos. Mesmo que não sejam diretamente ligados à vaga que está se candidatando, servem para mostrar que é uma pessoa interessada e ávida por conhecimento. Muitos congressos também oferecem mini-cursos que ser citados, desde que tenha participado deles.</p>
<p style="text-align: justify;"><strong>Iniciação científica, monitoria, estágios e programas de trainee.</strong> Muitas pessoas com pouca experiência profissional já participaram de programas de estágio ou trainee. Outras fizeram iniciação científica ou monitoria de disciplinas durante o curso universitário. Se este é o seu caso, reforce sua participação, mesmo que tenha sido em uma área diferente da pretendida. Artigos publicados em congressos também são interessantes.</p>
<p style="text-align: justify;"><strong>Cursos, Palestras, concursos do Academic Initiative</strong> ou outro programa acadêmico (ex: SAI): ótima oportunidade de adquirir novos conhecimentos, aumentar seu networking e um novo item para seu currículo!</p>
<p style="text-align: justify;"><strong>Maratona de Programação ICPC</strong>: torneio de programação organizado pela SBC (Sociedade Brasileira de Computação) no Brasil, e pela ACM (Association for Computinger Machinery – um dos maiores órgãos de computação mundial) a nível mundial, além de ser patrocinado pela IBM. Uma atividade que vale outro para o currículo e que é super bem vista por grandes empresas, como IBM.</p>
<p style="text-align: justify;"><strong>Ter um blog</strong> e escrever notas de aula, pequenos tutoriais sobre tópicos que está aprendendo ou até mesmo publicar a monografia/trabalhos acadêmicos é uma forma legal de mostrar seu desempenho acadêmico e que domina a linguagem ou tecnologia que citou no currículo. Após o contato, pode citar o link do seu blog/wesite.</p>
<p style="text-align: justify;">E o mais importante de todos: <strong>Não minta. Nunca</strong>!</p>
<p style="text-align: justify;">Outra dica valiosa: se for enviar seu currículo por email, nunca envie em formato .doc ou outro formato de editor de texto. Sempre envie em <strong>pdf</strong>, que é o formato de troca de arquivos mundialmente. Isso pode pegar mal, pois você pode enviar formato open office e o empregador que só usa o Micorosft Office não vai conseguir abrir. Já com pdf, seu documento poderá ser lido em qualquer plataforma.</p>
<p style="text-align: justify;">E se quiser ter uma base, segue um modelo de currículo para primeiro estágio (fiz baseado em experiência própria):</p>
<p style="text-align: justify;">
<p><a style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;" title="View Currículo para Primeiro Estágio em TI on Scribd" href="http://www.scribd.com/doc/26881071/Curriculo-para-Primeiro-Estagio-em-TI">Currículo para Primeiro Estágio em TI</a> <object id="doc_12416" style="outline: none;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="600" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="doc_12416" /><param name="data" value="http://d1.scribdassets.com/ScribdViewer.swf" /><param name="wmode" value="opaque" /><param name="bgcolor" value="#ffffff" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="FlashVars" value="document_id=26881071&amp;access_key=key-1gwg0tnv6ak9lsx7qqhp&amp;page=1&amp;viewMode=list" /><param name="src" value="http://d1.scribdassets.com/ScribdViewer.swf" /><param name="allowfullscreen" value="true" /><param name="flashvars" value="document_id=26881071&amp;access_key=key-1gwg0tnv6ak9lsx7qqhp&amp;page=1&amp;viewMode=list" /><embed id="doc_12416" style="outline: none;" type="application/x-shockwave-flash" width="100%" height="600" src="http://d1.scribdassets.com/ScribdViewer.swf" flashvars="document_id=26881071&amp;access_key=key-1gwg0tnv6ak9lsx7qqhp&amp;page=1&amp;viewMode=list" allowscriptaccess="always" allowfullscreen="true" bgcolor="#ffffff" wmode="opaque" data="http://d1.scribdassets.com/ScribdViewer.swf" name="doc_12416"></embed></object></p>
<p style="text-align: justify;">Boa sorte e sucesso!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1503&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F02%2Fcarreira-em-ti-curriculo-para-primeiro-estagio%2F&amp;linkname=Carreira%20em%20TI%3A%20Curr%C3%ADculo%20para%20Primeiro%20Est%C3%A1gio"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/bqHBpTt1LJ5kmu-ApXvj7wQeCXM/0/da"><img src="http://feedads.g.doubleclick.net/~a/bqHBpTt1LJ5kmu-ApXvj7wQeCXM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bqHBpTt1LJ5kmu-ApXvj7wQeCXM/1/da"><img src="http://feedads.g.doubleclick.net/~a/bqHBpTt1LJ5kmu-ApXvj7wQeCXM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=mg_756vEJmg:DRv7CW81LK0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mg_756vEJmg:DRv7CW81LK0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=mg_756vEJmg:DRv7CW81LK0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mg_756vEJmg:DRv7CW81LK0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=mg_756vEJmg:DRv7CW81LK0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mg_756vEJmg:DRv7CW81LK0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mg_756vEJmg:DRv7CW81LK0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mg_756vEJmg:DRv7CW81LK0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/mg_756vEJmg" height="1" width="1"/>]]></content:encoded><description>Fazer um bom currículo é considerado uma tarefa difícil. Fazer um currículo para o primeiro estágio ou primeiro emprego é considerado por muitos uma tarefa impossível. Este post tem como objetivo apresentar algumas dicas para deixar essa tarefa mais fácil.
Mesmo em início de carreira, o estudante e o profissional recém-formado devem ter os mesmos cuidados [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/02/carreira-em-ti-curriculo-para-primeiro-estagio/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.loiane.com/2010/02/carreira-em-ti-curriculo-para-primeiro-estagio/</feedburner:origLink></item><item><title>Meu Primeiro Projeto em Java</title><link>http://feedproxy.google.com/~r/Loiane/~3/iBCl2n1twH8/</link><category>java</category><category>hangman</category><category>jogo da forca</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 15 Feb 2010 03:00:47 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1495</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;">Nesse post vou descrever sobre como foi meu primeiro contato e projeto desenvolvido em Java.</p>
<p style="text-align: justify;">Aproveitando o fato que todo mundo faz uma pausa durante o carnaval, resolvi postar algo mais light essa semana. E  também atendendo à pedidos, vou comentar como foi meu primeiro contato com java e postar o código fonte do meu primeiro projeto desenvolvido em java (esses projeto que a gente faz para aprender mais a linguagem).</p>
<p style="text-align: justify;">Meu primeiro contato com uma linguagem de programação foi <a href="http://pt.wikipedia.org/wiki/Pascal_%28linguagem_de_programa%C3%A7%C3%A3o%29" target="_blank">Pascal</a>, se é que se pode considerar <a href="http://pt.wikipedia.org/wiki/Pascal_%28linguagem_de_programa%C3%A7%C3%A3o%29" target="_blank">Pascal</a> uma linguagem. Na época, todo mundo falava em Java e uma professora (Cinthia Caliari) nos convidou para começar um grupo de estudos fora do horário escolar.</p>
<p style="text-align: justify;">O grupo era formado pela professora e mais 5 pessoas. Três vezes por semana, ficávamos uma hora a mais na faculdade para aprender os conceitos básicos de OO e os comandos básicos em Java. Dois meses de estudo depois, a professora sugeriu um projeto para ver se tínhamos aprendido mesmo. O projeto era um <a href="http://pt.wikipedia.org/wiki/Jogo_da_forca" target="_blank">jogo da forca</a> voltado para crianças que estão aprendendo a ler/escrever. Usamos swing para contruir a interface gráfica e várias figuras bonitinhas para ser bem intuitivo para as crianças.</p>
<p style="text-align: justify;">Não me lembro muito bem, mas acho que demorei quase um mês para fazer esse projeto (Janeiro de 2006). Valeu muito a pena ter colocado a mão na massa e valeu ter participado do grupo de estudos, pois 4 meses depois consegui meu primeiro estágio, e os conceitos que aprendemos ajudaram muito na entrevista.</p>
<p style="text-align: justify;">Screenshot do joguinho:</p>
<p style="text-align: justify;">
<div class="mceTemp mceIEcenter" style="text-align: justify;">
<dl id="attachment_1496" class="wp-caption aligncenter" style="width: 583px;">
<dt class="wp-caption-dt"><a href="http://www.loiane.com/wp-content/uploads/2010/02/jogodaforca.png" target="_blank"><img class="size-full wp-image-1496 " style="border: 1px solid black;" title="jogodaforca" src="http://www.loiane.com/wp-content/uploads/2010/02/jogodaforca.png" alt="" width="573" height="400" /></a></dt>
<dd class="wp-caption-dd">Clique para ampliar</dd>
</dl>
</div>
<p style="text-align: justify;">
<p style="text-align: justify;">Código fonte: <a href="http://github.com/loiane/JogoDaForca" target="_blank">http://github.com/loiane/JogoDaForca</a></p>
<p style="text-align: justify;">Olhando esse código novamente, dá pra perceber que não tinha noção nenhuma de documentação (tudo é comentário! rs). Percebo que melhorei bastante, tanto no quesito de lógica, quanto na beleza do código (que tá horrível).</p>
<p style="text-align: justify;">Esse tipo de coisa é legal pra gente ver o quanto a gente melhorou e o quanto a gente ainda precisa melhorar. É legal acompanhar o progresso que você fez.</p>
<p style="text-align: justify;">E uma dica: tá aprendendo uma nova linguagem? Estude a parte básica, faça aqueles probleminhas de lógica de programação com a nova linguagem para aprender bem os comandos básicos e depois desenvolva um projeto para treinar. Vai perceber que isso faz uma diferença danada!</p>
<p style="text-align: justify;">Até a próxima e um ótimo carnaval para aqueles que estão curtindo!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1495&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F02%2Fmeu-primeiro-projeto-em-java%2F&amp;linkname=Meu%20Primeiro%20Projeto%20em%20Java"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/6-lIWLAMX9wBcw2Im6ixOBnlxSQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/6-lIWLAMX9wBcw2Im6ixOBnlxSQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6-lIWLAMX9wBcw2Im6ixOBnlxSQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/6-lIWLAMX9wBcw2Im6ixOBnlxSQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=iBCl2n1twH8:Ox-XxnI6mT4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=iBCl2n1twH8:Ox-XxnI6mT4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=iBCl2n1twH8:Ox-XxnI6mT4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=iBCl2n1twH8:Ox-XxnI6mT4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=iBCl2n1twH8:Ox-XxnI6mT4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=iBCl2n1twH8:Ox-XxnI6mT4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=iBCl2n1twH8:Ox-XxnI6mT4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=iBCl2n1twH8:Ox-XxnI6mT4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/iBCl2n1twH8" height="1" width="1"/>]]></content:encoded><description>Nesse post vou descrever sobre como foi meu primeiro contato e projeto desenvolvido em Java.
Aproveitando o fato que todo mundo faz uma pausa durante o carnaval, resolvi postar algo mais light essa semana. E  também atendendo à pedidos, vou comentar como foi meu primeiro contato com java e postar o código fonte do meu primeiro [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/02/meu-primeiro-projeto-em-java/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.loiane.com/2010/02/meu-primeiro-projeto-em-java/</feedburner:origLink></item><item><title>Entrevista para o Jornal A Tribuna Jan/2010: Profissões em que Sobram Vagas de Emprego</title><link>http://feedproxy.google.com/~r/Loiane/~3/7SNxEXjf2nA/</link><category>carreira</category><category>pessoal</category><category>A Tribuna</category><category>FAESA</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Thu, 11 Feb 2010 03:30:53 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1484</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2009/05/materia_loiane_tribuna_2010.png" target="_blank"><img class="size-full wp-image-1476 alignleft" title="materia_loiane_tribuna_2010" src="http://www.loiane.com/wp-content/uploads/2009/05/materia_loiane_tribuna_2010.png" alt="" width="244" height="145" /></a>Na última de semana de janeiro tive a honra de conceder mais uma entrevista para o jornal <a href="http://www.redetribuna.com.br" target="_blank">A Tribuna</a> &#8211; vendido no Espírito Santo, meu estado natal &#8211; sobre mercado de trabalho na área de TI.</p>
<p style="text-align: justify;">A reportagem fala sobre os profissionais que são difíceis de achar, o que fazer para se destacar no mercado. Tem uma outra página também sobre quais são as profissões mais procuradas e qual o salário médio destas.</p>
<p style="text-align: justify;">Foi matéria de capa do jornal do dia 31 de janeiro de 2010, e matéria chefe do caderno de economia do jornal.</p>
<p style="text-align: justify;">A entrevista que dei foi sobre como está o mercado de trabalho na área de TI; na matéria destaquei a importância do profissional que possui <strong>inglês</strong>. Outro ponto foram as <strong>atividades extras</strong> durante a graduação, que podem ajudar a alavancar a sua carreira.</p>
<p style="text-align: justify;">Agradeço mais uma vez à coordenação de computação e ao núcleo de comunicação da <a href="http://www.faesa.br" target="_blank">Faesa</a> pela indicação para participar da matéria.</p>
<p style="text-align: center;"><object width="500" height="410"><param name="movie" value="http://static.slideshare.net/swf/ssplayerd.swf?doc=no31011034-100209133140-phpapp02"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayerd.swf?doc=no31011034-100209133140-phpapp02"  type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="410"></embed></object><!-- ysttest:Array
(
    [id] => 3116685&amp;doc=no31011034-100209133140-phpapp02&amp;type=d
)
--></p>
<p style="text-align: justify;"><strong>Aproveite as oportunidades</strong></p>
<p style="text-align: justify;">Aproveito o post para deixar algumas dicas para aqueles que fazem faculdade. Quase todas as oportunidades que tive nos primeiros 3 anos de carreira foi a faculdade que proporcionou de alguma forma:</p>
<ul style="text-align: justify;">
<li> Meu primeiro estágio foi pela indicação do coordenador do curso;</li>
<li>convite para participar da <a href="http://maratona.ime.usp.br" target="_blank">Maratona de Programação</a> &#8211; fomos pra final nacional (primeiro time capixaba a conseguir isso), o que rendeu <a href="http://www.loiane.com/nerdices/" target="_blank">propaganda no site da faculdade e propaganda nos dois jornais do estado</a> (isso nos deu bastante destaque na faculdade)</li>
<li>saí do estágio para o primeiro emprego, indicação de um colega de monitoria</li>
<li>algumas <a href="http://www.loiane.com/nerdices/" target="_blank">outras matérias</a> para o jornal e no próprio site da faculdade</li>
</ul>
<p style="text-align: justify;">O que estou querendo dizer é: a faculdade apenas não nos fornace parte do conteúdo que precisamos saber para começar nossa carreira. O seu networking começa na sala de aula, com seus futuros colegas de profissão, que poderão te ajudar a conseguir um emprego depois. Os professores não são apenas professores, podem se tornar amigos, que também te ajudam fora da sala de aula (e até participam da cervejada!). E essa parceria não precisa terminar quando você se formar!</p>
<p style="text-align: justify;">Aproveite também os eventos na sua área! São ótimos para conhecer novas pessoas e trocar idéias com os mais experientes.</p>
<p style="text-align: justify;">São as pequenas coisas, que às vezes nem damos a devida importância, que fazem muita diferença na nossa carreira!</p>
<p style="text-align: justify;">Até a próxima!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1484&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F02%2Fentrevista-para-o-jornal-a-tribuna-jan2010-profissoes-em-que-sobram-vagas-de-emprego%2F&amp;linkname=Entrevista%20para%20o%20Jornal%20A%20Tribuna%20Jan%2F2010%3A%20Profiss%C3%B5es%20em%20que%20Sobram%20Vagas%20de%20Emprego"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/50fYvFh6gIpLLBeqyuTKuVW06QI/0/da"><img src="http://feedads.g.doubleclick.net/~a/50fYvFh6gIpLLBeqyuTKuVW06QI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/50fYvFh6gIpLLBeqyuTKuVW06QI/1/da"><img src="http://feedads.g.doubleclick.net/~a/50fYvFh6gIpLLBeqyuTKuVW06QI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=7SNxEXjf2nA:2ckIVMNd7z8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=7SNxEXjf2nA:2ckIVMNd7z8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=7SNxEXjf2nA:2ckIVMNd7z8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=7SNxEXjf2nA:2ckIVMNd7z8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=7SNxEXjf2nA:2ckIVMNd7z8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=7SNxEXjf2nA:2ckIVMNd7z8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=7SNxEXjf2nA:2ckIVMNd7z8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=7SNxEXjf2nA:2ckIVMNd7z8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/7SNxEXjf2nA" height="1" width="1"/>]]></content:encoded><description>Na última de semana de janeiro tive a honra de conceder mais uma entrevista para o jornal A Tribuna &amp;#8211; vendido no Espírito Santo, meu estado natal &amp;#8211; sobre mercado de trabalho na área de TI.
A reportagem fala sobre os profissionais que são difíceis de achar, o que fazer para se destacar no mercado. Tem [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/02/entrevista-para-o-jornal-a-tribuna-jan2010-profissoes-em-que-sobram-vagas-de-emprego/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.loiane.com/2010/02/entrevista-para-o-jornal-a-tribuna-jan2010-profissoes-em-que-sobram-vagas-de-emprego/</feedburner:origLink></item><item><title>ExtJS: Exportar de GRID para Excel</title><link>http://feedproxy.google.com/~r/Loiane/~3/mO7VzgCfE88/</link><category>Ext JS</category><category>excel</category><category>exportar grid excel</category><category>grid</category><category>grid extjs</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 08 Feb 2010 04:01:30 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1114</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2010/01/extjs_export_gridpanel_excel.png"><img class="aligncenter size-full wp-image-1450" title="extjs_export_gridpanel_excel" src="http://www.loiane.com/wp-content/uploads/2010/01/extjs_export_gridpanel_excel.png" alt="" width="599" height="340" /></a></p>
<p style="text-align: justify;">Esse tutorial irá abordar como exportar dados de um ExtJS DataGrid para um arquivo Excel.</p>
<p style="text-align: justify;">Às vezes, o usuário deseja exportar os dados de um graid para um arquivo excel (.xls ou .csv).<br />
Existe um <a title="plugin ExtJS" href="http://www.extjs.com/forum/showthread.php?t=32400">plugin ExtJS</a> desenvolvido por terceiros que faz isso para você.</p>
<p style="text-align: justify;">Existem alguns &#8220;probleminhas&#8221; que você deve saber antes de começar:</p>
<ul style="text-align: justify;">
<li>Só funciona em browsers que suportam <a title="data URLs" href="http://en.wikipedia.org/wiki/Data_URI_scheme">data URLs</a> (URL com dados), como Firefox, Opera e IE<strong>8</strong>.</li>
<li>Testei com as seguintes versões do ExtJS: 2.2.1, 3.0, 3.0.3 e 3.1, mas só funcionou na versão 3.0. Se alguém estiver usando alguma outra versão e conseguir fazer funcionar, me avise, pois posso ter esquecido de algum detalhe.</li>
<li>Só funcionad com os dados que estão no data Store &#8211; se você usar paginação, então crie um método para exportar no lado servidor. Esse plugin apenas é útil para quem desejar exportar uma pequena tabela para o Excel (todos os dados visíveis na tela).</li>
<li>Se os dados no Store forem voláteis (podem mudar, sofrer update, etc), a URL para exportação deve ser recalculada.</li>
</ul>
<p style="text-align: justify;">Vamos começar:</p>
<p style="text-align: justify;">Primeiro, crie um arquivo javascript no projeto e cole o seguinte código (criei um arquivo exporter.js): <a href="http://github.com/loiane/extjs-export-excel/blob/master/WebContent/js/exporter.js" target="_blank">http://github.com/loiane/extjs-export-excel/blob/master/WebContent/js/exporter.js</a> (esse arquivo tem muitas linhas, por isso não coloquei/colei o conteúdo aqui).</p>
<p style="text-align: justify;">E no código que contém o grid, adiciona o seguinte código:</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
var linkButton = new Ext.LinkButton({
        id: 'grid-excel-button',
        text: 'Export to Excel'
});

//create the Grid
var grid = new Ext.grid.GridPanel({
    bbar: new Ext.Toolbar({
        buttons: [linkButton]
    })
});

linkButton.getEl().child('a', true).href = 'data:application/vnd.ms-excel;base64,' +
Base64.encode(grid.getExcelXml());
</pre>
<p style="text-align: justify;">Se tentar exportar a tabela da figura (por exemplo) para o arquivo excel, vai ficar mais ou menos assim:</p>
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2010/01/extjs_export_gridpanel_excel_file.png"><img class="aligncenter size-full wp-image-1451" title="extjs_export_gridpanel_excel_file" src="http://www.loiane.com/wp-content/uploads/2010/01/extjs_export_gridpanel_excel_file.png" alt="" width="627" height="359" /></a></p>
<p style="text-align: justify;">Você também pode trocar as cores, fontes, etc. Dê uma olhada no código do exporter.js, tente enterder e faça a mudanças que desejar.</p>
<p style="text-align: justify;"><a title="Ed Spencer" href="http://edspencer.net/">Ed Spencer</a> também desenvolveu um <a title="similar plugin" href="http://github.com/edspencer/Ext.ux.Exporter">plugin similar</a>. O código fonte dele está mais limpo que este. Porém, o arquivo Excel gerado será o mesmo.</p>
<p style="text-align: justify;">Você pode fazer o donwload do projeto exemplo (JEE) do meu repositório GitHub: <a href="http://github.com/loiane/extjs-export-excel" target="_blank">http://github.com/loiane/extjs-export-excel</a></p>
<p style="text-align: justify;">Bons códigos!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1114&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F02%2Fextjs-exportar-de-grid-para-excel%2F&amp;linkname=ExtJS%3A%20Exportar%20de%20GRID%20para%20Excel"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/WxH5Tw-4oyXp2zrD_XCs_PLk1kI/0/da"><img src="http://feedads.g.doubleclick.net/~a/WxH5Tw-4oyXp2zrD_XCs_PLk1kI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WxH5Tw-4oyXp2zrD_XCs_PLk1kI/1/da"><img src="http://feedads.g.doubleclick.net/~a/WxH5Tw-4oyXp2zrD_XCs_PLk1kI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=mO7VzgCfE88:UAUnATF2wH8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mO7VzgCfE88:UAUnATF2wH8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=mO7VzgCfE88:UAUnATF2wH8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mO7VzgCfE88:UAUnATF2wH8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=mO7VzgCfE88:UAUnATF2wH8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mO7VzgCfE88:UAUnATF2wH8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mO7VzgCfE88:UAUnATF2wH8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=mO7VzgCfE88:UAUnATF2wH8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/mO7VzgCfE88" height="1" width="1"/>]]></content:encoded><description>Esse tutorial irá abordar como exportar dados de um ExtJS DataGrid para um arquivo Excel.
Às vezes, o usuário deseja exportar os dados de um graid para um arquivo excel (.xls ou .csv).
Existe um plugin ExtJS desenvolvido por terceiros que faz isso para você.
Existem alguns &amp;#8220;probleminhas&amp;#8221; que você deve saber antes de começar:

Só funciona em browsers [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/02/extjs-exportar-de-grid-para-excel/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.loiane.com/2010/02/extjs-exportar-de-grid-para-excel/</feedburner:origLink></item><item><title>Integrando Spring Security com a página de Login do ExtJS</title><link>http://feedproxy.google.com/~r/Loiane/~3/gNWAZGYKzqw/</link><category>Ext JS</category><category>Spring</category><category>Spring Security</category><category>ExtJS + JEE</category><category>ExtJS Login</category><category>spring</category><category>Spring Security login</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 01 Feb 2010 03:09:40 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1429</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p><a href="http://www.loiane.com/wp-content/uploads/2010/01/spring_security_extjs_login.png"><img class="aligncenter size-full wp-image-1434" title="spring_security_extjs_login" src="http://www.loiane.com/wp-content/uploads/2010/01/spring_security_extjs_login.png" alt="" width="445" height="257" /></a></p>
<p>Esse tutorial irá abordar como configurar o form de login da biblioteca ExtJS (Ajax) ao invés de utilizar a página de login (login.jsp) padrão do Spring Security..</p>
<p>Em vez de usar a página de login do Spring Security, por que não usar um form feito com Ajax?</p>
<p>E como integrar a página de login do ExtJS com o framework Spring Security?</p>
<p>Ok, você já tentou fazer isso, o usuário foi autenticado com sucesso, mas o usuário não é redirecionado para a página principal da aplicação. Como consertar isso?</p>
<p>Não importa de você setou a opção default-target-url no arquivo applicationContext-security.xml, ou setou uma URL para redirecionamento no lado do servidor. Não vai funcionar.</p>
<p>O problema é que o ExtJS faz uma chamada/request Ajax, e nenhum redirecionamento irá funcionar no lado servidor (spring). Você deve fazer esse redirecionamento no lado cliente, que é no código ExtJS/javascript.</p>
<p>Primeiro, você precisa crier o form do login. Você pode utilizar o código de exemplo disponibilizado pelo ExtJS: <a href="http://www.extjs.com/learn/Tutorial:Basic_Login" target="_blank">http://www.extjs.com/learn/Tutorial:Basic_Login</a> e customizá-lo/modificá-lo para funcinoar com o Spring Security.</p>
<p>Se der uma olhada no arquivo login.jsp (padrão do Spring Security), você irá perceber três pontos chaves do form:</p>
<ol>
<li>URL / form action: <strong>j_spring_security_check</strong></li>
<li>Username input name: <strong>j_username</strong></li>
<li>Password input name: <strong>j_password</strong></li>
</ol>
<p>É isso que precisa customizar no login do ExtJS para fazê-lo funcinar com o Spring Security. Mas não pense que é assim tão fácil, ainda tem um pequeno detalhe que precisa consertar para funcionar perfeitamente.</p>
<p>O login.js irá ficar assim após as moficações:</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
Ext.onReady(function(){
	Ext.QuickTips.init();

	// Create a variable to hold our EXT Form Panel.

	// Assign various config options as seen.
	var login = new Ext.FormPanel({
		labelWidth:80,
		url:'j_spring_security_check',
		frame:true,
		title:'Please Login',

		defaultType:'textfield',
		width:300,
		height:150,
		monitorValid:true,
		// Specific attributes for the text fields for username / password.
		// The &quot;name&quot; attribute defines the name of variables sent to the server.

		items:[{
			fieldLabel:'Username',
			name:'j_username',
			allowBlank:false
		},{
			fieldLabel:'Password',

			name:'j_password',
			inputType:'password',
			allowBlank:false
		}],

		// All the magic happens after the user clicks the button
		buttons:[{

			text:'Login',
			formBind: true,
			// Function that fires when user clicks the button
			handler:function(){
			login.getForm().submit({

				method:'POST',

				// Functions that fire (success or failure) when the server responds.
				// The server would actually respond with valid JSON,
				// something like: response.write &quot;{ success: true}&quot; or

				// response.write &quot;{ success: false, errors: { reason: 'Login failed. Try again.' }}&quot;
				// depending on the logic contained within your server script.
				// If a success occurs, the user is notified with an alert messagebox,

				// and when they click &quot;OK&quot;, they are redirected to whatever page
				// you define as redirect.

				success:function(){
				Ext.Msg.alert('Status', 'Login Successful!', function(btn, text){

					if (btn == 'ok'){
						window.location = 'main.action';
					}
				});

			},

			// Failure function, see comment above re: success and failure.
			// You can see here, if login fails, it throws a messagebox
			// at the user telling him / her as much.

			failure:function(form, action){
				if(action.failureType == 'server'){
					obj = Ext.util.JSON.decode(action.response.responseText);

					Ext.Msg.alert('Login Failed!', obj.errors.reason);
				}else{
					Ext.Msg.alert('Warning!', 'Authentication server is unreachable : ' + action.response.responseText);

				}
				login.getForm().reset();
			}

			});
		}
		}]
	});

	login.render('login');

});
</pre>
<p>O que está faltando?</p>
<p>É necessário customizar a classe AuthenticationProcessingFilter para o Spring Security executar a ação no login.</p>
<p>Os métodos “onSuccessfulAuthentication” e “onUnsuccessfulAuthentication” precisam retornar algum conteúdo JSON. Se o usuário for autenticado com sucesso, então redireciona-o para a página principal da aplicação, senão, a aplicação irá mostrar uma mensagem de erro.</p>
<p>Essa é a classe MyAuthenticationProcessingFilter customizada:</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
package com.loiane.security;

import java.io.IOException;
import java.io.Writer;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException;
import org.springframework.security.ui.webapp.AuthenticationProcessingFilter;

public class MyAuthenticationProcessingFilter extends AuthenticationProcessingFilter {

	protected void onSuccessfulAuthentication(HttpServletRequest request,
			HttpServletResponse response, Authentication authResult)
	throws IOException {
		super.onSuccessfulAuthentication(request, response, authResult);

		HttpServletResponseWrapper responseWrapper = new HttpServletResponseWrapper(response);

		Writer out = responseWrapper.getWriter();

		String targetUrl = determineTargetUrl( request );
		out.write(&quot;{success:true, targetUrl : \'&quot; + targetUrl + &quot;\'}&quot;);
		out.close();

	}

	protected void onUnsuccessfulAuthentication( HttpServletRequest request,
			HttpServletResponse response, AuthenticationException failed )
	throws IOException {

		HttpServletResponseWrapper responseWrapper = new HttpServletResponseWrapper(response);

		Writer out = responseWrapper.getWriter();

		out.write(&quot;{ success: false, errors: { reason: 'Login failed. Try again.' }}&quot;);
		out.close();

	}

}
</pre>
<p>E o arquivo applicationContext-security.xml ficará assim:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
	xmlns:security=&quot;http://www.springframework.org/schema/security&quot;
	xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
	xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd&quot;&gt;

	&lt;security:global-method-security /&gt;

	&lt;security:http auto-config=&quot;false&quot; entry-point-ref=&quot;authenticationProcessingFilterEntryPoint&quot;&gt;
		&lt;security:intercept-url pattern=&quot;/index.jsp&quot; filters=&quot;none&quot; /&gt;
		&lt;security:intercept-url pattern=&quot;/*.action&quot; access=&quot;ROLE_USER&quot; /&gt;
	&lt;/security:http&gt;

	&lt;bean id=&quot;authenticationProcessingFilter&quot; class=&quot;com.loiane.security.MyAuthenticationProcessingFilter&quot;&gt;
		&lt;security:custom-filter position=&quot;AUTHENTICATION_PROCESSING_FILTER&quot; /&gt;
		&lt;property name=&quot;defaultTargetUrl&quot; value=&quot;/main.html&quot; /&gt;
		&lt;property name=&quot;authenticationManager&quot; ref=&quot;authenticationManager&quot; /&gt;
	&lt;/bean&gt;

	&lt;security:authentication-manager alias=&quot;authenticationManager&quot; /&gt;

	&lt;bean id=&quot;authenticationProcessingFilterEntryPoint&quot;
		class=&quot;org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint&quot;&gt;
		&lt;property name=&quot;loginFormUrl&quot; value=&quot;/index.jsp&quot; /&gt;
		&lt;property name=&quot;forceHttps&quot; value=&quot;false&quot; /&gt;
	&lt;/bean&gt;

    &lt;!--
    Usernames/Passwords are
        rod/koala
        dianne/emu
        scott/wombat
        peter/opal
    These passwords are from spring security app example
    --&gt;
    &lt;security:authentication-provider&gt;
        &lt;security:password-encoder hash=&quot;md5&quot;/&gt;
        &lt;security:user-service&gt;
            &lt;security:user name=&quot;rod&quot; password=&quot;a564de63c2d0da68cf47586ee05984d7&quot; authorities=&quot;ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER&quot; /&gt;
            &lt;security:user name=&quot;dianne&quot; password=&quot;65d15fe9156f9c4bbffd98085992a44e&quot; authorities=&quot;ROLE_USER,ROLE_TELLER&quot; /&gt;
            &lt;security:user name=&quot;scott&quot; password=&quot;2b58af6dddbd072ed27ffc86725d7d3a&quot; authorities=&quot;ROLE_USER&quot; /&gt;
            &lt;security:user name=&quot;peter&quot; password=&quot;22b5c9accc6e1ba628cedc63a72d57f8&quot; authorities=&quot;ROLE_USER&quot; /&gt;
	    &lt;/security:user-service&gt;
	&lt;/security:authentication-provider&gt;
&lt;/beans&gt;
</pre>
<p>Agora irá logar normalmente com o form de login do ExtJS.</p>
<p>Fiz uma pequena aplicação de exemplo. Se desejar, pode fazer o download do meu repositório no GitHub: <a href="http://github.com/loiane/spring-security-extjs-login" target="_blank">http://github.com/loiane/spring-security-extjs-login</a></p>
<p>Bons códigos!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1429&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F02%2Fintegrando-spring-security-com-a-pagina-de-login-do-extjs%2F&amp;linkname=Integrando%20Spring%20Security%20com%20a%20p%C3%A1gina%20de%20Login%20do%20ExtJS"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/3hn8ub1gp_p7qqYiVrjwO6T1Zeg/0/da"><img src="http://feedads.g.doubleclick.net/~a/3hn8ub1gp_p7qqYiVrjwO6T1Zeg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3hn8ub1gp_p7qqYiVrjwO6T1Zeg/1/da"><img src="http://feedads.g.doubleclick.net/~a/3hn8ub1gp_p7qqYiVrjwO6T1Zeg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=gNWAZGYKzqw:QMhXT642yXs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=gNWAZGYKzqw:QMhXT642yXs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=gNWAZGYKzqw:QMhXT642yXs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=gNWAZGYKzqw:QMhXT642yXs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=gNWAZGYKzqw:QMhXT642yXs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=gNWAZGYKzqw:QMhXT642yXs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=gNWAZGYKzqw:QMhXT642yXs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=gNWAZGYKzqw:QMhXT642yXs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/gNWAZGYKzqw" height="1" width="1"/>]]></content:encoded><description>Esse tutorial irá abordar como configurar o form de login da biblioteca ExtJS (Ajax) ao invés de utilizar a página de login (login.jsp) padrão do Spring Security..
Em vez de usar a página de login do Spring Security, por que não usar um form feito com Ajax?
E como integrar a página de login do ExtJS com [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/02/integrando-spring-security-com-a-pagina-de-login-do-extjs/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://www.loiane.com/2010/02/integrando-spring-security-com-a-pagina-de-login-do-extjs/</feedburner:origLink></item><item><title>Spring Security: Página login.jsp e Logout</title><link>http://feedproxy.google.com/~r/Loiane/~3/YMLsoZB-FOI/</link><category>Spring</category><category>Spring Security</category><category>spring</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 25 Jan 2010 03:00:18 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1390</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2010/01/spring_security_login.jpg"><img class="aligncenter size-full wp-image-1425" title="spring_security_login" src="http://www.loiane.com/wp-content/uploads/2010/01/spring_security_login.jpg" alt="" width="360" height="289" /></a></p>
<p style="text-align: justify;">Quando você faz a configuração do Spring Security na sua aplicação, você tem a opção de dizer qual é a sua página de login (<strong><em>login.jsp</em></strong>) no arquivo <strong>applicationContext-security.xml</strong>.</p>
<p style="text-align: justify;">Mas como esse arquivo login.jsp se parece? Como faço para a página ser reconhecida pelo framework no processo de autenticação? Se você fizer uma busca pelo Google, não irá encontrar tão facilmente. Há muitos artigos sobre como configurar o framework, mas poucos (poucos mesmo) que mostram a tal página. Devido a dificuldade que tive quando comecei a estudar, resolvi compartilhar aqui no blog.</p>
<p style="text-align: justify;">A verdade é: basta olhar nos arquivos .jar de exemplo que vem quando faz o download do spring security. Você vai encontrar tanto a página de login (login.jsp) quando o link de logout:</p>
<h3>login.jsp</h3>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;%@ taglib prefix='c' uri='http://java.sun.com/jstl/core_rt' %&gt;
&lt;%@ page import=&quot;org.springframework.security.ui.AbstractProcessingFilter&quot; %&gt;
&lt;%@ page import=&quot;org.springframework.security.ui.webapp.AuthenticationProcessingFilter&quot; %&gt;
&lt;%@ page import=&quot;org.springframework.security.AuthenticationException&quot; %&gt;

&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;Login&lt;/title&gt;
  &lt;/head&gt;

  &lt;body&gt;
    &lt;h1&gt;Login&lt;/h1&gt;

    &lt;c:if test=&quot;${not empty param.login_error}&quot;&gt;
      &lt;font color=&quot;red&quot;&gt;
        Your login attempt was not successful, try again.&lt;br/&gt;&lt;br/&gt;
        Reason: &lt;c:out value=&quot;${SPRING_SECURITY_LAST_EXCEPTION.message}&quot;/&gt;.
      &lt;/font&gt;
    &lt;/c:if&gt;

    &lt;form name=&quot;f&quot; action=&quot;&lt;c:url value='j_spring_security_check'/&gt;&quot; method=&quot;POST&quot;&gt;
      &lt;table&gt;
        &lt;tr&gt;&lt;td&gt;User:&lt;/td&gt;&lt;td&gt;&lt;input type='text' name='j_username' value='&lt;c:if test=&quot;${not empty param.login_error}&quot;&gt;&lt;c:out value=&quot;${SPRING_SECURITY_LAST_USERNAME}&quot;/&gt;&lt;/c:if&gt;'/&gt;&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td&gt;Password:&lt;/td&gt;&lt;td&gt;&lt;input type='password' name='j_password'&gt;&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td&gt;&lt;input type=&quot;checkbox&quot; name=&quot;_spring_security_remember_me&quot;&gt;&lt;/td&gt;&lt;td&gt;Don't ask for my password for two weeks&lt;/td&gt;&lt;/tr&gt;

        &lt;tr&gt;&lt;td colspan='2'&gt;&lt;input name=&quot;submit&quot; type=&quot;submit&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td colspan='2'&gt;&lt;input name=&quot;reset&quot; type=&quot;reset&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
      &lt;/table&gt;
    &lt;/form&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p style="text-align: justify;">Observação muito importante: o nome do campos de input DEVEM continuar os mesmos. NÃO MUDE! Caso mudar, o processo de autenticação irá falhar.</p>
<p style="text-align: justify;">E para o logout, a única coisa que deve fazer é enviar o usuário para um determindado servlet definido pelo framework spring security.</p>
<h3>logout link:</h3>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;a href=&quot;&lt;c:url value=&quot;/j_spring_security_logout&quot;/&gt;&quot;&gt;Logout&lt;/a&gt;
</pre>
<p>Bons códigos e até a próxima!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1390&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F01%2Fspring-security-login-e-logout-form-jsp%2F&amp;linkname=Spring%20Security%3A%20P%C3%A1gina%20login.jsp%20e%20Logout"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/Uj2sFIfzwcKFZedBYCkXFutbs4E/0/da"><img src="http://feedads.g.doubleclick.net/~a/Uj2sFIfzwcKFZedBYCkXFutbs4E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Uj2sFIfzwcKFZedBYCkXFutbs4E/1/da"><img src="http://feedads.g.doubleclick.net/~a/Uj2sFIfzwcKFZedBYCkXFutbs4E/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=YMLsoZB-FOI:1xF8qRJLXfc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=YMLsoZB-FOI:1xF8qRJLXfc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=YMLsoZB-FOI:1xF8qRJLXfc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=YMLsoZB-FOI:1xF8qRJLXfc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=YMLsoZB-FOI:1xF8qRJLXfc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=YMLsoZB-FOI:1xF8qRJLXfc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=YMLsoZB-FOI:1xF8qRJLXfc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=YMLsoZB-FOI:1xF8qRJLXfc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/YMLsoZB-FOI" height="1" width="1"/>]]></content:encoded><description>Quando você faz a configuração do Spring Security na sua aplicação, você tem a opção de dizer qual é a sua página de login (login.jsp) no arquivo applicationContext-security.xml.
Mas como esse arquivo login.jsp se parece? Como faço para a página ser reconhecida pelo framework no processo de autenticação? Se você fizer uma busca pelo Google, não [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/01/spring-security-login-e-logout-form-jsp/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2010/01/spring-security-login-e-logout-form-jsp/</feedburner:origLink></item><item><title>Tutorial: Começando com Spring Security</title><link>http://feedproxy.google.com/~r/Loiane/~3/wdNWBLP5nYg/</link><category>Spring Security</category><category>Acegi</category><category>spring</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 18 Jan 2010 03:00:41 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1381</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2010/01/spring-security.jpg"><img class="aligncenter size-full wp-image-1420" title="spring security" src="http://www.loiane.com/wp-content/uploads/2010/01/spring-security.jpg" alt="" width="360" height="232" /></a></p>
<p style="text-align: justify;">Esse tutorial vai cobrir um cenário básico onde integra um módulo do framework Spring &#8211; <a href="http://static.springsource.org/spring-security/site/index.html" target="_blank">Spring Security</a>, utilizando autenticação via banco de dados, em uma aplicação web que já utiliza o Spring.</p>
<p style="text-align: justify;">Como qualquer outro assunto relacionado à Spring, a curva de aprendizado em um pouco grande. Mas como qualquer outro assunto Spring, uma vez que você faz a primeira configuração e aprende, pode usá-la sempre em outras aplicações, ou seja, o famoso Ctrl C + Ctrl V.</p>
<p style="text-align: justify;">Quando comecei a estudar Spring Security no final de dezembro, encontrei esses <a href="http://static.springsource.org/spring-security/site/start-here.html" target="_blank">primeiros passos sugeridos</a> na página do Spring Security.</p>
<p style="text-align: justify;">E se você quiser configurar a parte de segurança na sua aplicação web utilizando Spring Security, segia os seguintes passos:</p>
<p style="text-align: justify;">A primeira coisa que precisa fazer é adicionar os arquivos do framework no classpath da aplicação. Faça o <a href="http://static.springsource.org/spring-security/site/downloads.html" target="_blank">download do Spring Security</a>, e copie os seguintes arquivos da pasta dist; cole-os na pasta lib da sua aplicação:</p>
<ul>
<li>spring-security-core-2.0.4.jar</li>
<li>spring-security-core-tiger-2.0.4.jar</li>
<li>spring-security-acl-2.0.4.jar</li>
<li>spring-security-taglibs-2.0.4.jar</li>
</ul>
<p>Também é necessário fazer o download do <a href="http://commons.apache.org/codec/download_codec.cgi" target="_blank">Apache Commons Codec</a>:  <em>commons-codec-1.3.jar</em></p>
<p>Vamos começar com a configuração dos XMLs:</p>
<h3><strong><span style="color: #800000;">Web.xml</span></strong></h3>
<p>Cole o seguinte código no arquivo web.xml. Deve ser inserido logo após ao final da tag /context-param.</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;context-param&gt;
	&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
	&lt;param-value&gt;
           /WEB-INF/applicationContext-security.xml
	&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;filter&gt;
	&lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;
	&lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;/filter-class&gt;
&lt;/filter&gt;

&lt;filter-mapping&gt;
	&lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;
	&lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
</pre>
<h3><span style="color: #800000;"><strong>applicationContext-security.xml</strong></span></h3>
<p style="text-align: justify;">Foi feita uma referência ao arquivo applicationContext-security.xml dentro do web.xml. Vamos criá-lo.</p>
<p style="text-align: justify;">Seguindo o tutorial da página do Spring Security, sugiro começar com o XML encontrado no tutorial de exemplo, e incrementá-lo aos poucos. Esse é o arquivo básico:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;!--
  - Sample namespace-based configuration
  -
  - $Id: applicationContext-security.xml 3019 2008-05-01 17:51:48Z luke_t $
  --&gt;

&lt;beans:beans xmlns=&quot;http://www.springframework.org/schema/security&quot;
    xmlns:beans=&quot;http://www.springframework.org/schema/beans&quot;
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-2.0.1.xsd&quot;&gt;

	&lt;global-method-security secured-annotations=&quot;enabled&quot;&gt;
	&lt;/global-method-security&gt;

    &lt;http auto-config=&quot;true&quot;&gt;
        &lt;intercept-url pattern=&quot;/**&quot; access=&quot;IS_AUTHENTICATED_ANONYMOUSLY&quot; /&gt;
    &lt;/http&gt;

    &lt;!--
    Usernames/Passwords are
        rod/koala
        dianne/emu
        scott/wombat
        peter/opal
    --&gt;
    &lt;authentication-provider&gt;
        &lt;password-encoder hash=&quot;md5&quot;/&gt;
        &lt;user-service&gt;
            &lt;user name=&quot;rod&quot; password=&quot;a564de63c2d0da68cf47586ee05984d7&quot; authorities=&quot;ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER&quot; /&gt;
            &lt;user name=&quot;dianne&quot; password=&quot;65d15fe9156f9c4bbffd98085992a44e&quot; authorities=&quot;ROLE_USER,ROLE_TELLER&quot; /&gt;
            &lt;user name=&quot;scott&quot; password=&quot;2b58af6dddbd072ed27ffc86725d7d3a&quot; authorities=&quot;ROLE_USER&quot; /&gt;
            &lt;user name=&quot;peter&quot; password=&quot;22b5c9accc6e1ba628cedc63a72d57f8&quot; authorities=&quot;ROLE_USER&quot; /&gt;
	    &lt;/user-service&gt;
	&lt;/authentication-provider&gt;
&lt;/beans:beans&gt;
</pre>
<p>Agora você pode tentar executar a aplicação.</p>
<p>Após tentar executar a sua app, e se a seguinte <strong>exception for lançada</strong>:</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext-security.xml]; nested exception is java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
</pre>
<p>Download <strong><em>aspectjrt-1.5.4.jar</em></strong> e o adicione no classpath.</p>
<p><strong>Vamos então fazer algumas mudanças no arquivo applicationContext-security.xml.</strong></p>
<p>Primeira mudança: substitua o bloco de código abaixo</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http auto-config=&quot;true&quot;&gt;
        &lt;intercept-url pattern=&quot;/**&quot; access=&quot;IS_AUTHENTICATED_ANONYMOUSLY&quot; /&gt;
&lt;/http&gt;
</pre>
<p>por</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http auto-config=&quot;true&quot;&gt;

    	&lt;!-- Don't set any role restrictions on login.jsp --&gt;
    	&lt;intercept-url pattern=&quot;/login.jsp&quot; access=&quot;IS_AUTHENTICATED_ANONYMOUSLY&quot; /&gt;

    	&lt;!-- Restrict access to ALL other pages --&gt;
        &lt;intercept-url pattern=&quot;/**&quot; access=&quot;ROLE_USER&quot; /&gt;

        &lt;!-- Set the login page and what to do if login fails --&gt;
        &lt;form-login login-page=&quot;/login.jsp&quot; authentication-failure-url=&quot;/login.jsp?login_error=1&quot; /&gt;

&lt;/http&gt;
</pre>
<p style="text-align: justify;">O atributo <strong>auto-config</strong> basicamente diz para o spring-security configurar as opções padrões sozinho, ou seja, o framework faz tudo automático.</p>
<p style="text-align: justify;">A página <strong>login.jsp</strong> pode ser acessada por qualquer ROLE.</p>
<p style="text-align: justify;">Restringir acessor à página delogin siginifcaria que ninguém poderia acessá-la. Ficaria muito estranho, posi como pode autenticar um usuário se este ainda não efetuou o login?</p>
<p style="text-align: justify;">Note que a página de login é um <em>jsp, </em>e não uma action. A página de login não precisa ser acessada através de uma action.</p>
<p style="text-align: justify;">Na configuração acima, também foi restringido o acesso a todas as outras página. Apenas os usuários com a ROLE_USER podem acessá-la.</p>
<p style="text-align: justify;">Digamos que tenha mais uma role. Fazer o <strong>mapeamento das URLS para as roles</strong> é bem fácil. Dentro da tag <em>http</em>, coloque as URLS e as roles assim:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;intercept-url pattern=&quot;/admin/*.do&quot; access=&quot;ROLE_ADMIN&quot;  /&gt;
&lt;intercept-url pattern=&quot;/manager/*.do&quot; access=&quot;ROLE_MANAGER&quot;  /&gt;
&lt;intercept-url pattern=&quot;/**.do&quot; access=&quot;ROLE_USER,ROLE_ADMIN, ROLE_MANAGER&quot;  /&gt;
</pre>
<p style="text-align: justify;">É claro que você não quer colocar (nem deve) todos os <strong>usernames (usuários) </strong>e <strong>passwords (senhas) </strong>e suas respectivas <strong>roles </strong>no arquivo <em>applicationContext-security.xml</em>. Como então dizemos ao spring-security para obter essas informações do banco de dados?</p>
<p style="text-align: justify;">Coloque o seguinte bloco de código no <em>applicationContext-security.xml</em> (substitua o bloco com os usuários e senhas)</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;!-- Configure the authentication provider --&gt;
&lt;security:authentication-provider&gt;
	&lt;security:jdbc-user-service data-source-ref=&quot;dataSource&quot; /&gt;
&lt;/security:authentication-provider&gt;
</pre>
<p style="text-align: justify;">Para isso é necessário já ter um dataSource criado (não vou abordar esse assunto nesse post).</p>
<p style="text-align: justify;">Agora a pergunta: <em>para isso funcionar, como é que o framework espera que o meu banco de dados se pareça?</em></p>
<p style="text-align: justify;">A autenticação padrão do spring security requer que a estrutura do banco de dados seja dessa maneira:</p>
<p><a href="http://loianegroner.com/wp-content/uploads/2010/01/spring-security-tutorial-database.png"><img class="aligncenter size-full wp-image-169" title="spring-security-tutorial-database" src="http://loianegroner.com/wp-content/uploads/2010/01/spring-security-tutorial-database.png" alt="" width="542" height="164" /></a></p>
<pre class="brush: sql; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
CREATE TABLE users
(
  username character varying(50) NOT NULL,
  &quot;password&quot; character varying(50) NOT NULL,
  enabled boolean NOT NULL,
  CONSTRAINT users_pkey PRIMARY KEY (username)
);

CREATE TABLE authorities
(
  username character varying(50) NOT NULL,
  authority character varying(50) NOT NULL,
  CONSTRAINT fk_authorities_users FOREIGN KEY (username)
      REFERENCES users (username) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
);

CREATE UNIQUE INDEX ix_auth_username
  ON authorities
  USING btree
  (username, authority);
</pre>
<p style="text-align: justify;">Mas se desejar configurar as queries que são usadas, pode utilizar a sua própria estrutura do banco de dados, só deve tomar cuidado para que os atributos/colunas da sua query &#8220;casem&#8221; (sejam os mesmos) com os atributos esperados pelo framework.</p>
<p style="text-align: justify;">Por exemplo? você quer apenas ter uma tabela com todas essas informações no banco de dados (ou até uma tabela com nome e colunas diferentes). Vamos ver como fica a configuração do XML:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;jdbc-user-service data-source-ref=&quot;dataSource&quot;
    authorities-by-username-query=&quot;select username,authority from users where username=?&quot;/&gt;
</pre>
<p style="text-align: justify;">Talvex você ainda também queira configurar outras páginas:</p>
<p style="text-align: justify;"><strong>Access Denied</strong>: essa página será exibida caso o usuário tente acessar uma página que não pertença a sua role:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http ... access-denied-page=&quot;/accessDenied.jsp&quot;&gt;
     ...
&lt;/http&gt;
</pre>
<p style="text-align: justify;"><strong>Default Target URL:</strong> essa é a página que o usuário será redirecionado caso seja autenticado com sucesso no login:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http ... &gt;
    ...
        &lt;form-login ... default-target-url=&quot;/home.do&quot;/&gt;
    ...
&lt;/http&gt;
</pre>
<p style="text-align: justify;"><strong>Logout URL</strong>: essa é a página que o suusário será redirecionado quando fizer logout:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http ... &gt;
    ...
    	&lt;logout logout-success-url=&quot;/home.do&quot;/&gt;
    ...
&lt;/http&gt;
</pre>
<p style="text-align: justify;"><strong>Login Failure URL</strong>: essa é a página que o usuário será redirecionado caso a autenticação falhe (login). Geralmente é a própria página de login, com algum parâmetro indicando um erro:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http ... &gt;
    ...
        &lt;form-login ... authentication-failure-url=&quot;/login.jsp?login_error=1&quot;/&gt;
    ...
&lt;/http&gt;
</pre>
<p>Bem, é isso que você precisa para começar com Spring Security.</p>
<p>Na próxima semana, posto como a página <strong>login.jsp</strong> do Spring Security se parece.</p>
<p>Bons códigos!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1381&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F01%2Ftutorial-comecando-com-spring-security%2F&amp;linkname=Tutorial%3A%20Come%C3%A7ando%20com%20Spring%20Security"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/uzXO3RNh5FMWjISO_DGlqyzQb_Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/uzXO3RNh5FMWjISO_DGlqyzQb_Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/uzXO3RNh5FMWjISO_DGlqyzQb_Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/uzXO3RNh5FMWjISO_DGlqyzQb_Y/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=wdNWBLP5nYg:aRHrLg9sh1w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=wdNWBLP5nYg:aRHrLg9sh1w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=wdNWBLP5nYg:aRHrLg9sh1w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=wdNWBLP5nYg:aRHrLg9sh1w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=wdNWBLP5nYg:aRHrLg9sh1w:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=wdNWBLP5nYg:aRHrLg9sh1w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=wdNWBLP5nYg:aRHrLg9sh1w:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=wdNWBLP5nYg:aRHrLg9sh1w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/wdNWBLP5nYg" height="1" width="1"/>]]></content:encoded><description>Esse tutorial vai cobrir um cenário básico onde integra um módulo do framework Spring &amp;#8211; Spring Security, utilizando autenticação via banco de dados, em uma aplicação web que já utiliza o Spring.
Como qualquer outro assunto relacionado à Spring, a curva de aprendizado em um pouco grande. Mas como qualquer outro assunto Spring, uma vez que [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/01/tutorial-comecando-com-spring-security/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://www.loiane.com/2010/01/tutorial-comecando-com-spring-security/</feedburner:origLink></item><item><title>My DeveloperWorks: Como é a vida para um desenvolvedora Java no Brasil?</title><link>http://feedproxy.google.com/~r/Loiane/~3/ZZx62-0Fmm8/</link><category>My developerWorks</category><category>developerWorks</category><category>pessoal</category><category>IBM</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Tue, 12 Jan 2010 04:53:45 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1401</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p>Queria compartilhar com vocês a entrevista que a Valerie fez comigo e publicou no blog dela no My developerWorks (em inglês): <a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/yinmeetsyang/entry/interview_with_loiane_groner_java_developer_in_brazil7?lang=en_us&amp;ca=dth-mydw" target="_blank">Interview with Loiane Groner, Java developer in Brazil</a>.</p>
<p>Fiquei muito feliz quando vi o post publicado ontem, e mais feliz ainda quando vi que foi o post mais visto de todos os blogs do developerWorks:</p>
<div id="attachment_1404" class="wp-caption aligncenter" style="width: 657px"><a href="http://www.loiane.com/wp-content/uploads/2010/01/developerworks_loiane.png" target="_blank"><img class="size-full wp-image-1404" title="developerworks_loiane" src="http://www.loiane.com/wp-content/uploads/2010/01/developerworks_loiane.png" alt="clique para ver tamanho original" width="647" height="445" /></a><p class="wp-caption-text">clique para ver tamanho original</p></div>
<p style="text-align: center;">
<p>E se você olhar no canto, vai ser meu blog no &#8220;Featured Blogs&#8221;! <img src='http://www.loiane.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Também tem alguns status do twitter:</p>
<p>Da conta da Valerie:</p>
<blockquote>
<div id="_mcePaste">Cool new interview on my blog w/ Loiane Groner, java developer making her mark in Brazil: <a href="http://bit.ly/8FbnzL" target="_blank">http://bit.ly/8FbnzL</a> (<a href="http://twitter.com/vmichelle/status/7634056149" target="_blank">http://twitter.com/vmichelle/status/7634056149</a> )</div>
</blockquote>
<p>Da conta do developerWorks:</p>
<blockquote><p>What&#8217;s life like for a female #javadeveloper in Brazil? Interview w/ Loiane Groner<a href="http://bit.ly/8FbnzL" target="_blank">http://bit.ly/8FbnzL</a> (<a href="http://twitter.com/developerworks/status/7634404961" target="_blank">http://twitter.com/developerworks/status/7634404961</a> )</p></blockquote>
<p>Obrigada Valeria, por esta oportunidade!</p>
<p>Obrigada também a todos os meu queridos amigos e leitores aqui do blog!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1401&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F01%2Fmy-developerworks-como-e-a-vida-para-um-desenvolvedora-java-no-brail%2F&amp;linkname=My%20DeveloperWorks%3A%20Como%20%C3%A9%20a%20vida%20para%20um%20desenvolvedora%20Java%20no%20Brasil%3F"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/ZUGpdVleoXSTqwxOl2DBZPYjGL4/0/da"><img src="http://feedads.g.doubleclick.net/~a/ZUGpdVleoXSTqwxOl2DBZPYjGL4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ZUGpdVleoXSTqwxOl2DBZPYjGL4/1/da"><img src="http://feedads.g.doubleclick.net/~a/ZUGpdVleoXSTqwxOl2DBZPYjGL4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=ZZx62-0Fmm8:fuTAPu2v8CI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZZx62-0Fmm8:fuTAPu2v8CI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=ZZx62-0Fmm8:fuTAPu2v8CI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZZx62-0Fmm8:fuTAPu2v8CI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=ZZx62-0Fmm8:fuTAPu2v8CI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZZx62-0Fmm8:fuTAPu2v8CI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZZx62-0Fmm8:fuTAPu2v8CI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZZx62-0Fmm8:fuTAPu2v8CI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/ZZx62-0Fmm8" height="1" width="1"/>]]></content:encoded><description>Queria compartilhar com vocês a entrevista que a Valerie fez comigo e publicou no blog dela no My developerWorks (em inglês): Interview with Loiane Groner, Java developer in Brazil.
Fiquei muito feliz quando vi o post publicado ontem, e mais feliz ainda quando vi que foi o post mais visto de todos os blogs do developerWorks:

E se você [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/01/my-developerworks-como-e-a-vida-para-um-desenvolvedora-java-no-brail/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.loiane.com/2010/01/my-developerworks-como-e-a-vida-para-um-desenvolvedora-java-no-brail/</feedburner:origLink></item><item><title>ExtJS: Como colocar Ícone e Link nas Células do GRID</title><link>http://feedproxy.google.com/~r/Loiane/~3/y0Cn6e6oTMM/</link><category>Ext JS</category><category>grid extjs</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 11 Jan 2010 03:00:16 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1117</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;">Esse tutorial aborda como colocar/fazer o display de um ícone ou link em uma célula do componente Grid do ExtJS.</p>
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2009/12/extjs-grid-cell-with-image-and-link.png"><img class="aligncenter size-full wp-image-1370" title="extjs-grid-cell-with-image-and-link" src="http://www.loiane.com/wp-content/uploads/2009/12/extjs-grid-cell-with-image-and-link.png" alt="" width="602" height="278" /></a></p>
<p style="text-align: justify;">Para explicar isso, vamos utilizar um grid com informações básicas de uma pessoa (agenda), e ao invés de apenas mostrar o email do contato, vamos mostrar um icone (envelope), além de colocar um link do tipo <em>mailto</em>. Assim, quando o usuário clicar em cima do link, irá abrir o cliente de email, e este poderá enviar sua mensagem. Um processo bem simples.</p>
<h3>Como fazer:</h3>
<p style="text-align: justify;">Primeiro, precisamos de dados para o grid (dados ficticios):</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
//array with data - dummy data
var myData = [
    ['Meyers, Quyn R.',	    '(943) 570-5141', 'Proin@nullamagna.ca',    '05/13/1990'],
	['Whitney, Tad T.',	    '(547) 743-0343', 'vulputate@acurnaUt.org', '05/10/1987'],
	['Lawrence, Flavia J.',	'(404) 826-4553', 'dapibus.id@accumsan.ca',	'01/05/1988'],
	['Morales, Susan I.',	'(276) 707-8084', 'tristique@seacmetus.com','03/09/1992'],
	['Merrill, Desiree Q.', '(911) 546-0559', 'dictum.cursus@vel.ca',   '01/07/1981'],
	['Hampton, Willa Y.',	'(729) 562-8303', 'nascetur@stellus.ca',    '06/17/1991'],
	['Brewer, Brynne F.',	'(818) 302-4393', 'ligula@ullamcorper.org',	'04/20/1989'],
	['Marsh, Drew D.',	    '(645) 671-2779', 'et.euismod.et@eget.ca',	'02/13/1990']
];
</pre>
<p style="text-align: justify;">Depois vem a definição do Grid:</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
// create grid
var grid = new Ext.grid.GridPanel({
    store: store,
    columns: [
        {header: 'NAME', width: 170, sortable: true, dataIndex: 'name'},
        {header: 'PHONE #', width: 150, sortable: true, dataIndex: 'phone'},
        {header: 'BIRTHDAY', width: 100, sortable: true, dataIndex: 'birthday',
        	renderer: Ext.util.Format.dateRenderer('d/m/Y')},
        {header: 'EMAIL', width: 160, sortable: true, dataIndex: 'email',
        	renderer: renderIcon }
    ],
    title: 'My Contacts',
    autoHeight:true,
    width:600,
	renderTo: document.body,
	frame:true
});
</pre>
<h3>Como funciona:</h3>
<pre class="brush: jscript; collapse: false; wrap-lines: false;">
{header: 'EMAIL', width: 160, sortable: true, dataIndex: 'email', renderer: renderIcon }
</pre>
<p style="text-align: justify;">Repare a coluna <strong>email</strong>, na definição do ColumnModel do data grid. Há um atributo chamado renderer. Uma função renderer é um método/função que intercepta e que pode modificar o valor de uma célula antes que esta seja renderizada (apareça no grid).</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
//image path
var IMG_EMAIL = '/gridcell-with-image/img/email_link.png';

//renderer function
function renderIcon(val) {
    return '&lt;a href=&quot;mailto:' + val + '&quot;&gt;'+ '&lt;img src=&quot;' + IMG_EMAIL + '&quot;&gt; ' + val  +'&lt;/a&gt;';
}
</pre>
<p style="text-align: justify;">Na função, colocamos apenas um HTML básico de link com função mailto, mais o valor do email e o ícone.</p>
<p style="text-align: justify;">Muito simples né?</p>
<p style="text-align: justify;">Agora você pode ficar brincando e criar suas funções renderer!</p>
<p>Download (J2EE project):&nbsp;<a href="http://github.com/loiane/gridcell-with-image" target="_blank"><img title="public" src="http://www.loiane.com/wp-content/uploads/2009/11/public.png" alt="public" height="16" width="16"> http://github.com/loiane/gridcell-with-image</a></p>
<p>English: <a href=" http://loianegroner.com/2010/01/how-to-display-an-imagelink-inside-an-ext-js-gridpanels-cell/" target="_blank"> http://loianegroner.com/2010/01/how-to-display-an-imagelink-inside-an-ext-js-gridpanels-cell/</a></p>
<p style="text-align: justify;">Bons códigos!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1117&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F01%2Fextjs-como-colocar-icone-e-link-nas-celulas-do-grid%2F&amp;linkname=ExtJS%3A%20Como%20colocar%20%C3%8Dcone%20e%20Link%20nas%20C%C3%A9lulas%20do%20GRID"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/2AqWLVcdSwA5HXbsndTcZNg9R2E/0/da"><img src="http://feedads.g.doubleclick.net/~a/2AqWLVcdSwA5HXbsndTcZNg9R2E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2AqWLVcdSwA5HXbsndTcZNg9R2E/1/da"><img src="http://feedads.g.doubleclick.net/~a/2AqWLVcdSwA5HXbsndTcZNg9R2E/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=y0Cn6e6oTMM:cZ1Kkbeq5bU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=y0Cn6e6oTMM:cZ1Kkbeq5bU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=y0Cn6e6oTMM:cZ1Kkbeq5bU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=y0Cn6e6oTMM:cZ1Kkbeq5bU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=y0Cn6e6oTMM:cZ1Kkbeq5bU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=y0Cn6e6oTMM:cZ1Kkbeq5bU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=y0Cn6e6oTMM:cZ1Kkbeq5bU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=y0Cn6e6oTMM:cZ1Kkbeq5bU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/y0Cn6e6oTMM" height="1" width="1"/>]]></content:encoded><description>Esse tutorial aborda como colocar/fazer o display de um ícone ou link em uma célula do componente Grid do ExtJS.

Para explicar isso, vamos utilizar um grid com informações básicas de uma pessoa (agenda), e ao invés de apenas mostrar o email do contato, vamos mostrar um icone (envelope), além de colocar um link do tipo [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/01/extjs-como-colocar-icone-e-link-nas-celulas-do-grid/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://www.loiane.com/2010/01/extjs-como-colocar-icone-e-link-nas-celulas-do-grid/</feedburner:origLink></item><item><title>ExtJS: Ext.Window: hide ou close?</title><link>http://feedproxy.google.com/~r/Loiane/~3/WkMfkl9Pxaw/</link><category>Ext JS</category><category>Ext.Window</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 04 Jan 2010 03:00:22 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1353</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;">Neste curto tutorial, você vai aprender como controlar o componente Ext.Window Panel do ExtJS.<br />
<a href="http://www.loiane.com/wp-content/uploads/2009/12/ext.window_hide_or_close.png"><img class="aligncenter size-full wp-image-1354" title="ext.window_hide_or_close" src="http://www.loiane.com/wp-content/uploads/2009/12/ext.window_hide_or_close.png" alt="" width="511" height="312" /></a></p>
<p style="text-align: justify;"><strong>Problema</strong>: você criou uma janela com ExtJS, e ela funcionou perfeitamente na primeira vez. Quando a aplicação disparou o evento para abrir a janela pela segunda vez, nada aconteceu, ou você viu um erro no firebug (algum coisa is not defined ou alguma coisa is null). Como reparar isso?</p>
<p style="text-align: justify;"><strong>Solução</strong>: quando você não diz como o Ext.Window deve trabalhar, o comportamento padrão é fechar (close) o componente, e com isso, destruí-lo (destroy). Devemos então, esconder (hide) o componente, assim, poderemos reutilizá-lo nas próximas vezes.</p>
<p style="text-align: justify;">Código de Exemplo (referência: http://www.extjs.com/deploy/dev/examples/window/hello.html):</p>
<p style="text-align: justify;"><strong>HTML</strong>:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Ext.Window: close or hide&lt;/title&gt;

	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/ext-window/ext-3.0.3/resources/css/ext-all.css&quot; /&gt;

	&lt;script src=&quot;/ext-window/ext-3.0.3/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/ext-window/ext-3.0.3/ext-all.js&quot;&gt;&lt;/script&gt;

	&lt;script src=&quot;/ext-window/js/ext-window.js&quot;&gt;&lt;/script&gt;

&lt;/head&gt;
&lt;body&gt;
	&lt;input type=&quot;button&quot; id=&quot;show-btn&quot; value=&quot;Show Window&quot; /&gt;

	&lt;div id=&quot;hello-win&quot; class=&quot;x-hidden&quot;&gt;

    &lt;div class=&quot;x-window-header&quot;&gt;Hello Dialog&lt;/div&gt;
    &lt;div id=&quot;hello-tabs&quot;&gt;
        &lt;!-- Auto create tab 1 --&gt;
        &lt;div class=&quot;x-tab&quot; title=&quot;Hello World&quot;&gt;
            &lt;p&gt;Ext.Window Panel: Close or Hide?&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>JS</strong>:</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
Ext.onReady(function(){

	Ext.BLANK_IMAGE_URL = '/ext-window/ext-3.0.3/resources/images/default/s.gif';

    var win;
    var button = Ext.get('show-btn');

    var tab = new Ext.TabPanel({
        applyTo: 'hello-tabs',
        autoTabs:true,
        activeTab:0,
        deferredRender:false,
        border:false
    });

    button.on('click', function(){

        // create the window on the first click and reuse on subsequent clicks
    	//cria a janela no primeiro clique e a reusa nos próximos cliques
        if(!win){
            win = new Ext.Window({
                applyTo:'hello-win',
                layout:'fit',
                width:500,
                height:300,
                closeAction:'hide', //'close' - destroy the component
                plain: true,

                items: tab,

                buttons: [{
                    text: 'Close',
                    handler: function(){
                        win.hide();
                    }
                }]
            });
        }
        win.show(this);
    });
});
</pre>
<p>Bons códigos!</p>
<p>English Version of this post: <a href="http://loianegroner.com/2010/01/ext-window-panel-show-or-hide/" target="_blank">Ext.Window Panel: Show or Hide?</a></p>
<p>Download do projeto: <a href="http://github.com/loiane/ext-window" target="_blank"><img title="public" src="http://www.loiane.com/wp-content/uploads/2009/11/public.png" alt="public" width="16" height="16" /> http://github.com/loiane/ext-window</a></p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1353&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2010%2F01%2Fextjs-ext-window-hide-ou-close%2F&amp;linkname=ExtJS%3A%20Ext.Window%3A%20hide%20ou%20close%3F"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/QoJtxITlg0X4VNW3CUzcCtRblWo/0/da"><img src="http://feedads.g.doubleclick.net/~a/QoJtxITlg0X4VNW3CUzcCtRblWo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QoJtxITlg0X4VNW3CUzcCtRblWo/1/da"><img src="http://feedads.g.doubleclick.net/~a/QoJtxITlg0X4VNW3CUzcCtRblWo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=WkMfkl9Pxaw:S4u-56_8L-I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=WkMfkl9Pxaw:S4u-56_8L-I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=WkMfkl9Pxaw:S4u-56_8L-I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=WkMfkl9Pxaw:S4u-56_8L-I:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=WkMfkl9Pxaw:S4u-56_8L-I:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=WkMfkl9Pxaw:S4u-56_8L-I:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=WkMfkl9Pxaw:S4u-56_8L-I:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=WkMfkl9Pxaw:S4u-56_8L-I:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/WkMfkl9Pxaw" height="1" width="1"/>]]></content:encoded><description>Neste curto tutorial, você vai aprender como controlar o componente Ext.Window Panel do ExtJS.

Problema: você criou uma janela com ExtJS, e ela funcionou perfeitamente na primeira vez. Quando a aplicação disparou o evento para abrir a janela pela segunda vez, nada aconteceu, ou você viu um erro no firebug (algum coisa is not defined ou [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2010/01/extjs-ext-window-hide-ou-close/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://www.loiane.com/2010/01/extjs-ext-window-hide-ou-close/</feedburner:origLink></item><item><title>Retrospectiva 2009</title><link>http://feedproxy.google.com/~r/Loiane/~3/3o5iymkuVSs/</link><category>pessoal</category><category>carreira</category><category>git</category><category>GitHub</category><category>Google Wave</category><category>IBM</category><category>IBM Academic Initiative</category><category>java</category><category>javascript</category><category>json</category><category>spring</category><category>XML</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 28 Dec 2009 10:49:02 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1341</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;">2009 foi um ano de muitas bençãos na minha carreira profissional. Espero que 2010 continue abençoado, e cheio de conquistas maravilhosas.</p>
<p style="text-align: justify;">Aqui vai um resumo e meus planos profissionais para 2010. Bom que fica tudo registrado, assim poderei me cobrar no final de 2010! <img src='http://www.loiane.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Bem, em janeiro decidi <a href="http://www.loiane.com/2009/01/primeiro-post/" target="_blank">criar esse blog</a>, influenciada por alguns amigos blogueiros. Esse blog surgiu na idéia de fazer um log de tudo que estudo, com o objetivo de não ter que ficar estudando tudo de novo (se no futuro precisar, aí só voltar aqui e relembrar). Além do log de tutoriais, também fiz um log das notícias que julguei importante para mim.</p>
<p style="text-align: justify;">Fiquei muito feliz ao longo do ano, pois as visitas do blog aumentaram muuuito, e comecei e receber comentários e emails carinhosos. Fiquei feliz porque o conteúdo que publiquei aqui, além de me ajudar, também ajudou/ajuda outras pessoas! Não existe coisa melhor do que ter um retorno positivo do esforço que você faz.</p>
<p style="text-align: justify;">A primeira série de post que fiz foi sobre XML, e até agora, a mais comentada e elogiada aqui no blog! Muito obrigada a todos!</p>
<ul style="text-align: justify;">
<li><a title="Manipulando arquivos XML em Java com a API SAX - Parte II" href="../2009/05/manipulando-arquivos-xml-em-java-com-a-api-sax-parte-ii/" target="_blank">Manipulando arquivos XML em Java com a API SAX &#8211; Parte II</a></li>
<li><a title="Manipulando arquivos XML em Java com a API SAX - Parte I" href="../2009/05/manipulando-arquivos-xml-em-java-com-a-api-sax-parte-i/" target="_blank">Manipulando arquivos XML em Java com a API SAX &#8211; Parte I</a></li>
<li><a title="Manipulando arquivos XML em Java com a API DOM - Parte III" href="../2009/05/manipulando-arquivos-xml-em-java-com-a-api-dom-parte-iii/" target="_blank">Manipulando arquivos XML em Java com a API DOM &#8211; Parte III</a></li>
<li><a title="Manipulando arquivos XML em Java com a API DOM - Parte II" href="../2009/05/manipulando-arquivos-xml-em-java-com-a-api-dom-parte-ii/" target="_blank">Manipulando arquivos XML em Java com a API DOM &#8211; Parte II</a></li>
<li><a title="Manipulando arquivos XML em Java com a API DOM - Parte I" href="../2009/04/manipulando-arquivos-xml-em-java-com-a-api-dom-parte-i/" target="_blank">Manipulando arquivos XML em Java com a API DOM &#8211; Parte I</a></li>
<li><a title="Java e XML" href="../2009/04/java-e-xml/" target="_blank">Java e XML</a></li>
<li><a title="Validação de documentos XML com Schema – Introdução ao XML - Parte VIII" href="../2009/04/validacao-de-documentos-xml-com-schema-%e2%80%93-introducao-ao-xml-parte-viii/" target="_blank">Validação de documentos XML com Schema – Introdução ao XML &#8211; Parte VIII</a></li>
<li><a title="Validação de documentos XML com DTD – Introdução ao XML - Parte VII" href="../2009/04/validacao-de-documentos-xml-com-dtd-%e2%80%93-introducao-ao-xml-parte-vii/" target="_blank">Validação de documentos XML com DTD – Introdução ao XML &#8211; Parte VII</a></li>
<li><a title="Construindo um DTD – Introdução ao XML - Parte VI" href="../2009/04/construindo-um-dtd-%e2%80%93-introducao-ao-xml-parte-vi/" target="_blank">Construindo um DTD – Introdução ao XML &#8211; Parte VI</a></li>
<li><a title="Validação de documentos XML – Introdução ao XML - Parte V" href="../2009/03/validacao-de-documentos-xml-%e2%80%93-introducao-ao-xml-parte-v/" target="_blank">Validação de documentos XML – Introdução ao XML &#8211; Parte V</a></li>
<li><a title="Documento XML Bem Formado - Introdução ao XML: Parte IV" href="../2009/03/documento-xml-bem-formado-introducao-ao-xml-parte-iv/" target="_blank">Documento XML Bem Formado &#8211; Introdução ao XML: Parte IV</a></li>
<li><a title="Como criar um documento XML - Introdução ao XML: Parte III" href="../2009/03/como-criar-um-documento-xml-introducao-ao-xml-parte-iii/" target="_blank">Como criar um documento XML &#8211; Introdução ao XML: Parte III</a></li>
<li><a title="XML: como posso usar, vantagens e desvantagens - Introdução ao XML: Parte II" href="../2009/02/xml-como-posso-usar-vantagens-e-desvantagens-introducao-ao-xml-parte-ii/" target="_blank">XML: como posso usar, vantagens e desvantagens &#8211; Introdução ao XML: Parte II</a></li>
<li><a title="Introdução ao XML" href="../2009/02/introducao-ao-xml/" target="_blank">Introdução ao XML</a></li>
</ul>
<p style="text-align: justify;">Ainda preciso unir todos esses posts em um pdf, tá na minha lista TO DO!</p>
<p style="text-align: justify;">Em março, me <a href="http://www.loiane.com/2009/03/off-tempo-de-mudancas/" target="_blank">mudei de Vitória &#8211; ES para Campinas</a> &#8211; interior de São Paulo, por conta de uma proposta de <a href="http://www.loiane.com/2009/04/como-foi-o-processo-seletivo-na-ibm/" target="_blank">trabalho na IBM</a> de Hortolândia. Um dos meses mais feliz da minha vida, pois esse era um dos meus sonhos.  Essa proposta me fez ver que com esforço, dedicação e muita força de vontade, a gente pode realizar muitas coisas! Com a mudança de cidade, mais 10 kilos na balança também (que ainda não consegui perder =/)!</p>
<p style="text-align: justify;">Me tornei embaixadora do IBM Academic Initiative em abril, e a série sobre XML rendeu um <a href="http://www.loiane.com/2009/10/apresentacao-do-mini-curso-de-xml-pelo-ibm-academic-initiative/" target="_blank">mini-curso</a>.</p>
<p style="text-align: justify;">Desque que entrei na IBM, aprendi várias coisas novas. E isso me deu a oportunidade de fazer novos posts. Para meu primeiro projeto, aprendi Spring, ExtJS (principalmente o componente DataGrid), JQuery, iBatis (concorrente do Hibernate),  algumas ferramentas da Rational, além de ter melhorado meu inglês pra caramba! Aqui no blog, foquei mais em Spring + Extjs + JSON. Eis os posts:</p>
<ul style="text-align: justify;">
<li><a title="Impressão de GRID no EXTJS com GridPrinter" href="../2009/11/impressao-de-grid-no-extjs-com-gridprinter/" target="_blank">Impressão de GRID no EXTJS com GridPrinter</a></li>
<li><a title="Ext JS: Eventos disparados pelos componentes" href="../2009/10/ext-js-eventos-disparados-pelos-componentes/" target="_blank">Ext JS: Eventos disparados pelos componentes</a></li>
<li><a title="Ajax de primeira com ExtJS + JSON no seu projeto Spring: Minha palestra do IV EJES" href="../2009/10/ajax-de-primeira-com-extjs-json-no-seu-projeto-spring-minha-palestra-do-iv-ejes/" target="_blank">Ajax de primeira com ExtJS + JSON no seu projeto Spring: Minha palestra do IV EJES</a></li>
<li><a title="ExtJS: seleção de linha no grid" href="../2009/09/extjs-selecao-de-linha-no-grid/" target="_blank">ExtJS: seleção de linha no grid</a></li>
<li><a title="Como construir um grid dinâmico utilizando Ext JS" href="../2009/07/como-construir-um-grid-dinamico-utilizando-ext-js/" target="_blank">Como construir um grid dinâmico utilizando Ext JS</a></li>
<li><a title="Como Montar um Grid com Paginação utilizando Ext JS" href="../2009/07/como-montar-um-grid-com-paginacao-utilizando-ext-js/" target="_blank">Como Montar um Grid com Paginação utilizando Ext JS</a></li>
<li><a title="Como Montar um Grid utilizando Ext JS + Json + Spring" href="../2009/07/como-montar-um-grid-utilizando-ext-js-json-spring/" target="_blank">Como Montar um Grid utilizando Ext JS + Json + Spring</a></li>
<li><a title="Como Montar um Grid utilizando Ext JS + Json + Java" href="../2009/07/como-montar-um-grid-utilizando-ext-js-json-java/" target="_blank">Como Montar um Grid utilizando Ext JS + Json + Java</a></li>
<li><a title="Como Montar um Grid utilizando Ext JS" href="../2009/06/como-montar-um-grid-utilizando-ext-js/" target="_blank">Como Montar um Grid utilizando Ext JS</a></li>
<li><a title="Começando com Ext JS" href="../2009/06/comecando-com-ext-js/" target="_blank">Começando com Ext JS</a></li>
<li><a title="JSON + Spring" href="../2009/07/json-spring/" target="_blank">JSON + Spring</a></li>
<li><a title="JSON e Java" href="../2009/06/json-e-java/" target="_blank">JSON e Java</a></li>
<li><a title="Breve Introdução ao JSON" href="../2009/06/breve-introducao-ao-json/" target="_blank">Breve Introdução ao JSON</a></li>
</ul>
<p style="text-align: justify;">Comecei a aprender Git também, após fazer minha conta no GitHub &#8211; nova modinha nerd para compartilhar código:</p>
<ul style="text-align: justify;">
<li><a title="Tutorial: Usando o EGit Eclipse Plugin com o GitHub" href="../2009/11/tutorial-usando-o-egit-eclipse-plugin-com-o-github/" target="_blank">Tutorial: Usando o EGit Eclipse Plugin com o GitHub</a></li>
<li><a title="Egit (GitHub Eclipe Plugin): Problema com Auth Fail no Windows" href="../2009/11/egit-github-eclipe-plugin-problema-com-auth-fail-no-windows/" target="_blank">Egit (GitHub Eclipe Plugin): Problema com Auth Fail no Windows</a></li>
<li><a title="Todos os projetos do blog agora no GitHub" href="../2009/10/todos-os-projetos-do-blog-agora-no-github/" target="_blank">Todos os projetos do blog agora no GitHub</a></li>
</ul>
<p style="text-align: justify;">Publiquei alguns outros posts sobre carreira também, além de um <a href="http://www.loiane.com/2009/07/como-instalar-o-my-sql-server/" target="_blank">tutorial sobre como instalar My SQL</a>:</p>
<ul style="text-align: justify;">
<li><a title="Carreira em TI: Currículo em Inglês" href="../2009/11/carreira-em-ti-curriculo-em-ingles/" target="_blank">Carreira em TI: Currículo em Inglês</a></li>
<li><a title="Fluência no Inglês: ter ou não ter, eis a questão" href="../2009/10/fluencia-no-ingles-ter-ou-nao-ter-eis-a-questao/" target="_blank">Fluência no Inglês: ter ou não ter, eis a questão</a></li>
<li><a title="Como o Linkedin pode te ajudar a conseguir um emprego" href="../2009/08/como-o-linkedin-pode-te-ajudar-a-conseguir-um-emprego/" target="_blank">Como o Linkedin pode te ajudar a conseguir um emprego</a></li>
<li><a title="Oportunidade de trabalhar na IBM através do My developerWorks" href="../2009/08/oportunidade-de-trabalhar-na-ibm-atraves-do-my-developerworks/" target="_blank">Oportunidade de trabalhar na IBM através do My developerWorks</a></li>
<li><a title="Livro: The Adventures of an IT Leader" href="../2009/06/livro-the-adventures-of-an-it-leader/" target="_blank">Livro: The Adventures of an IT Leader</a></li>
<li><a title="10 palavras poderosas para seu currículo em inglês" href="../2009/05/10-palavras-poderosas-para-seu-curriculo-em-ingles/" target="_blank">10 palavras poderosas para seu currículo em inglês</a></li>
<li><a title="Como foi o processo seletivo na IBM" href="../2009/04/como-foi-o-processo-seletivo-na-ibm/" target="_blank">Como foi o processo seletivo na IBM</a></li>
<li><a title="Como manter-se atualizado em Java" href="../2009/01/como-manter-se-atualizado-em-java/" target="_blank">Como manter-se atualizado em Java</a></li>
</ul>
<p style="text-align: justify;">Além de outros posts, que você pode conferir a lista <a href="http://www.loiane.com/sitemap-loiane/" target="_blank">aqui</a>.</p>
<p style="text-align: justify;">No total: 100 posts publicados &#8211; 101 com esse,  10 posts ainda tem em modo rascunho (fica pra 2010 &#8211; além de mais 5 sobre Spring security &#8211; estudei nesse fim de semana do Natal &#8211; também pra 2010).</p>
<p style="text-align: justify;">Comecei também meu blog em inglês (<a href="http://loianegroner.com" target="_blank">http://loianegroner.com</a>) &#8211; para treinar mais a língua inglesa &#8211; minha conversação técnica ainda precisa melhorar bastante &#8211; são muitos termos!</p>
<p style="text-align: justify;">Projetos e metas para 2010:</p>
<ul style="text-align: justify;">
<li>Melhorar como falar em público &#8211; acho que não me sai muito bem na <a href="http://www.loiane.com/2009/10/ajax-de-primeira-com-extjs-json-no-seu-projeto-spring-minha-palestra-do-iv-ejes/" target="_blank">palestra do IV EJES</a> &#8211; até agora só me dou bem em sala de aula mesmo -vocação mais pra professora do que palestrante.</li>
<li>Investir mais na série sobre XML &#8211; levantado por alguns leitores aqui do blog.</li>
<li>Ler mais livros técnicos &#8211; li apenas 5 esse ano. Mas li livros não técnicos também.</li>
<li>Emagrecer os 10 kilos que ganhei &#8211; o <a href="http://blogs.opovo.com.br/tempodecorrer/categorias/desafio-do-christiano/" target="_blank">Milfont teve uma experiência bem legal</a>.</li>
<li>Estudar mais &#8211; perco muito tempo jogando (The Sims 3, Counter Strike, Sacred 2).</li>
<li>Casar! rs</li>
<li>Comprar um MAC! &#8211; esse não sei se vai entrar em 2010 por causa do casamento, mas meu prazo é até 2011.</li>
</ul>
<p>Bem, é isso!</p>
<p>Um Feliz 2010 e um ano cheio de realizações maravilhosas para todos nós!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1341&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F12%2Fretrospectiva-2009%2F&amp;linkname=Retrospectiva%202009"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/Rnfaa0Z06b1fnaTzWHqMvZEFHZg/0/da"><img src="http://feedads.g.doubleclick.net/~a/Rnfaa0Z06b1fnaTzWHqMvZEFHZg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Rnfaa0Z06b1fnaTzWHqMvZEFHZg/1/da"><img src="http://feedads.g.doubleclick.net/~a/Rnfaa0Z06b1fnaTzWHqMvZEFHZg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=3o5iymkuVSs:Oz7HWOEdwv4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=3o5iymkuVSs:Oz7HWOEdwv4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=3o5iymkuVSs:Oz7HWOEdwv4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=3o5iymkuVSs:Oz7HWOEdwv4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=3o5iymkuVSs:Oz7HWOEdwv4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=3o5iymkuVSs:Oz7HWOEdwv4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=3o5iymkuVSs:Oz7HWOEdwv4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=3o5iymkuVSs:Oz7HWOEdwv4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/3o5iymkuVSs" height="1" width="1"/>]]></content:encoded><description>2009 foi um ano de muitas bençãos na minha carreira profissional. Espero que 2010 continue abençoado, e cheio de conquistas maravilhosas.
Aqui vai um resumo e meus planos profissionais para 2010. Bom que fica tudo registrado, assim poderei me cobrar no final de 2010!  
Bem, em janeiro decidi criar esse blog, influenciada por alguns amigos [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/12/retrospectiva-2009/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">8</slash:comments><feedburner:origLink>http://www.loiane.com/2009/12/retrospectiva-2009/</feedburner:origLink></item><item><title>Palestras do Sun Tech Days Brasil 2009</title><link>http://feedproxy.google.com/~r/Loiane/~3/go5NGHJ_tEc/</link><category>eventos</category><category>SUN</category><category>Sun Tech Days</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Wed, 16 Dec 2009 07:50:15 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1335</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p>Se você não foi ao Sun Tech Days que aconteceu nos dias 8 e 9 desse mês em São Paulo, por motivo de trabalho ou porque mora longe, ou até mesmo porque <a href="http://www.loiane.com/2009/12/minha-aventura-sun-tech-days-2009/" target="_blank">não conseguiu chegar</a>, não tem problema! <img src='http://www.loiane.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>A Sun disponibilizou os <a href="http://developers.sun.com/events/techdays/presentations/2009/saopaulo.jsp" target="_blank">slides aprensentados</a> no evento:</p>
<ul class="icons">
<h3>Keynotes</h3>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_CountryManager_Maluf.pdf">Sun Microsystems Country Manager Introduction</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Day2Keynote_Padir.pdf">Sun Keynote: Be Agile: GlassFish, Java and MySQL &#8211; Karen Tegan Padir</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OracleKeynote_Humphrey.pdf">Oracle Keynote: Java, The Platform for the Future &#8211; Pieter Humphrey</a></li>
</ul>
<ul class="icons">
<h3>Enterprise Computing</h3>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JPA_Waite.pdf">Advanced JPA: Concurrency, Cashing and Performance</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Comet_Waite.pdf">Comet Everywhere: Building Truly Asynchronous Collaborative Web Applications</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OSGF_Karlsson.pdf">Deploying the GlassFish Application Server on OpenSolaris: Monitoring, Provisioning and Backups</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_REST_Waite.pdf">Designing and Implementing Secure RESTful Web Services</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_GlassFish_Shin.pdf">GlassFish v3: The Next Generation Application Server</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Intel_Saraiva.pdf">Intel Technical Session: Solaris &amp; Java nos processadores Intel</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaEE6Part1and2_Shin.pdf">JavaEE 6 Part 1: Themes, Managed Bean, Servlet 3.0, JPA 2.0</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaEE6Part1and2_Shin.pdf">JavaEE 6 Part 2: EJB 3.1, JSF 2.0, Bean Validation 1.0, JAX-RS 1.1</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_MySQL_Karlsson.pdf">MySQL: The World&#8217;s Most Popular Open Source Database</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OpenESB_Shin.pdf">OpenESB: Connecting the Enterprise</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OracleTS_Trent.pdf">Oracle Technical Session: Oracle WebLogic Server Architecture, OSGi, and Java Enterprise Edition</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OpenSSO_Shin.pdf">Simplify Your Single-Sign-On With OpenSSO</a></li>
</ul>
<ul class="icons">
<h3>Client Technologies</h3>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_AdvJavaFX_Ritter.pdf">Advanced JavaFX: Tips and Techniques</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_DtraceBtrace_Ritter.pdf">Debugging Java Applications with DTrace and BTrace</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Localhost_Leonard.pdf">Developing Beyond Localhost</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Ginga_Oliveria_Shabat.pdf">Ginga, LUWIT, JavaDTV and You</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaTroubleshooting_Waite.pdf">Java Troubleshooting Tips</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaFXMobile_Caicedo.pdf">JavaFX Programming for Mobile Devices</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaFXQuick_Caicedo.pdf">JavaFX: Quick and Easy Rich Internet Applications</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_LWUIT_Caicedo.pdf">JavaME: Building Cool Interfaces with the Lightweight UI Toolkit</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JDK7_Ritter.pdf">JDK7: The Future of The Java Platform</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Locaweb_Kung.pdf">Locaweb Technical Session: Cloud Computing. E eu com isso?</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_PerfTuning_Ritter.pdf">Performance Tuning Garbage Collection</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Scripting_Ritter.pdf">Scripting Languages: Options for the JVM</a></li>
</ul>
<ul class="icons">
<h3>OpenSolaris</h3>
<li class="pdficon">Application Consolidation with OpenSolaris Containers (coming soon)</li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_PowerUser_Solter.pdf">Becoming an OpenSolaris Power User</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_SunStudio_Kretsch.pdf">Building High Quality C/C++ Applications</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_HA_Solter.pdf">High Availability with OpenSolaris</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Multicore_Kretch.pdf">Mastering Your Multicore System</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_MaxAppPerf_Solter.pdf">Maximizing Application Performance</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_MovingtoOS_Leonard.pdf">Moving to OpenSolaris</a></li>
<li class="pdficon">Open Networking (coming soon)</li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_SourceJuicer_Vanoni.pdf">Porting Applications with the OpenSolaris SourceJuicer</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OSSecurity_Karlsson.pdf">Securing Networked Services with OpenSolaris Security Features</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Virt_Pronk.pdf">Virtualizing Your Application: Which Option is Right for You</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OSNewAndCool_Armes.pdf">What&#8217;s New and Cool</a></li>
</ul>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1335&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F12%2Fpalestras-do-sun-tech-days-brasil-2009%2F&amp;linkname=Palestras%20do%20Sun%20Tech%20Days%20Brasil%202009"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/9149kDofjiAt9nTNA1aQ0qi6CPQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/9149kDofjiAt9nTNA1aQ0qi6CPQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/9149kDofjiAt9nTNA1aQ0qi6CPQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/9149kDofjiAt9nTNA1aQ0qi6CPQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=go5NGHJ_tEc:bk0WaVTAU7Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=go5NGHJ_tEc:bk0WaVTAU7Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=go5NGHJ_tEc:bk0WaVTAU7Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=go5NGHJ_tEc:bk0WaVTAU7Y:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=go5NGHJ_tEc:bk0WaVTAU7Y:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=go5NGHJ_tEc:bk0WaVTAU7Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=go5NGHJ_tEc:bk0WaVTAU7Y:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=go5NGHJ_tEc:bk0WaVTAU7Y:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/go5NGHJ_tEc" height="1" width="1"/>]]></content:encoded><description>Se você não foi ao Sun Tech Days que aconteceu nos dias 8 e 9 desse mês em São Paulo, por motivo de trabalho ou porque mora longe, ou até mesmo porque não conseguiu chegar, não tem problema!  
A Sun disponibilizou os slides aprensentados no evento:

Keynotes
Sun Microsystems Country Manager Introduction
Sun Keynote: Be Agile: GlassFish, [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/12/palestras-do-sun-tech-days-brasil-2009/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.loiane.com/2009/12/palestras-do-sun-tech-days-brasil-2009/</feedburner:origLink></item><item><title>Java Campinas e CampinasJUG agora no Twitter</title><link>http://feedproxy.google.com/~r/Loiane/~3/RPwvCkF3mhw/</link><category>campinasJUG</category><category>java Campinas</category><category>jug</category><category>twitter</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Tue, 15 Dec 2009 03:34:54 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1332</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p><img class="aligncenter size-full wp-image-33" title="twitter_java_campinas_campinasjug" src="http://www.campinasjug.org/blog/wp-content/uploads/2009/12/twitter_java_campinas_campinasjug.jpg" alt="twitter_java_campinas_campinasjug" width="360" height="210" /></p>
<p>Os Grupos de Usuários Java de Campinas e região &#8211; CampinasJUG e JavaCampinas agora também estão no twitter.</p>
<p>Poderemos acompanhar as notícias mais importantes que acontecem nos JUGs e também ter em primeira mão quando vai ser o próximo encontro.</p>
<p>Follow na gente!</p>
<p>CampinasJUG: <a href="http://twitter.com/campinasjug" target="_blank">http://twitter.com/campinasjug</a></p>
<p>JavaCampinas: <a href="http://twitter.com/javacampinas" target="_blank">http://twitter.com/javacampinas</a></p>
<p>Acompanhe as novidades pelo blog também: <a href="http://www.campinasjug.org" target="_blank">http://www.campinasjug.org</a></p>
<p> <img src='http://www.loiane.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1332&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F12%2Fjava-campinas-e-campinasjug-agora-no-twitter%2F&amp;linkname=Java%20Campinas%20e%20CampinasJUG%20agora%20no%20Twitter"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/X04aPhxC7UJJJ_V-XWoDD4KSZuU/0/da"><img src="http://feedads.g.doubleclick.net/~a/X04aPhxC7UJJJ_V-XWoDD4KSZuU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/X04aPhxC7UJJJ_V-XWoDD4KSZuU/1/da"><img src="http://feedads.g.doubleclick.net/~a/X04aPhxC7UJJJ_V-XWoDD4KSZuU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=RPwvCkF3mhw:Ag9GM1trCXk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=RPwvCkF3mhw:Ag9GM1trCXk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=RPwvCkF3mhw:Ag9GM1trCXk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=RPwvCkF3mhw:Ag9GM1trCXk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=RPwvCkF3mhw:Ag9GM1trCXk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=RPwvCkF3mhw:Ag9GM1trCXk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=RPwvCkF3mhw:Ag9GM1trCXk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=RPwvCkF3mhw:Ag9GM1trCXk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/RPwvCkF3mhw" height="1" width="1"/>]]></content:encoded><description>Os Grupos de Usuários Java de Campinas e região &amp;#8211; CampinasJUG e JavaCampinas agora também estão no twitter.
Poderemos acompanhar as notícias mais importantes que acontecem nos JUGs e também ter em primeira mão quando vai ser o próximo encontro.
Follow na gente!
CampinasJUG: http://twitter.com/campinasjug
JavaCampinas: http://twitter.com/javacampinas
Acompanhe as novidades pelo blog também: http://www.campinasjug.org</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/12/java-campinas-e-campinasjug-agora-no-twitter/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2009/12/java-campinas-e-campinasjug-agora-no-twitter/</feedburner:origLink></item><item><title>Para o Ciclo de Manutenção, Agilidade Já!</title><link>http://feedproxy.google.com/~r/Loiane/~3/zGwEFTyOJ-o/</link><category>IBM Academic Initiative</category><category>agile</category><category>Scrum</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Fri, 11 Dec 2009 05:28:37 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1329</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;">Enquanto todos querem agilidade e a maioria ainda discute a agilidade, sem buscá-la realmente, alguns já iniciaram o caminho que levará a um ciclo de trabalho mais inteligente. Isto irá transformar a maneira de TI suportar o seu negócio e melhorará seu desempenho no desenvolvimento de software.</p>
<p style="text-align: justify;">Um assunto recorrente, sempre que discutimos projetos de software, é a questão da manutenção de sistemas, sempre encarada como o primo pobre pelos processos ou metodologias de desenvolvimento. Apesar de ser um assunto importante, pois é a maioria do volume de trabalho desenvolvido nas organizações de hoje, frequentemente a manutenção é tratada como um caso particular do problema geral de desenvolvimento.</p>
<p style="text-align: justify;">Acesse o link abaixo e saiba mais sobre este assunto.</p>
<ul style="text-align: justify;">
<li><a href="http://www.ibm.com/developerworks/university/ecma/campaign/er.jsp?id=460043&amp;imid=77982352&amp;end" target="_blank">Leia o artigo</a></li>
<li><a href="http://www.ibm.com/developerworks/university/ecma/campaign/er.jsp?id=460044&amp;imid=77982352&amp;end" target="_blank">O Mundo depende de Software Blog</a></li>
</ul>
<p style="text-align: justify;">Atenciosamente,</p>
<p style="text-align: justify;">O time de iniciativas acadêmicas agradece</p>
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2009/12/mod_academic.jpg"><img class="aligncenter size-full wp-image-1316" title="mod_academic" src="http://www.loiane.com/wp-content/uploads/2009/12/mod_academic.jpg" alt="mod_academic" width="148" height="75" /></a></p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1329&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F12%2Fpara-o-ciclo-de-manutencao-agilidade-ja%2F&amp;linkname=Para%20o%20Ciclo%20de%20Manuten%C3%A7%C3%A3o%2C%20Agilidade%20J%C3%A1%21"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/Cqdzp31noHB6C3tv76D3dPIBxiA/0/da"><img src="http://feedads.g.doubleclick.net/~a/Cqdzp31noHB6C3tv76D3dPIBxiA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Cqdzp31noHB6C3tv76D3dPIBxiA/1/da"><img src="http://feedads.g.doubleclick.net/~a/Cqdzp31noHB6C3tv76D3dPIBxiA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=zGwEFTyOJ-o:25DSM7k45NI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=zGwEFTyOJ-o:25DSM7k45NI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=zGwEFTyOJ-o:25DSM7k45NI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=zGwEFTyOJ-o:25DSM7k45NI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=zGwEFTyOJ-o:25DSM7k45NI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=zGwEFTyOJ-o:25DSM7k45NI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=zGwEFTyOJ-o:25DSM7k45NI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=zGwEFTyOJ-o:25DSM7k45NI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/zGwEFTyOJ-o" height="1" width="1"/>]]></content:encoded><description>Enquanto todos querem agilidade e a maioria ainda discute a agilidade, sem buscá-la realmente, alguns já iniciaram o caminho que levará a um ciclo de trabalho mais inteligente. Isto irá transformar a maneira de TI suportar o seu negócio e melhorará seu desempenho no desenvolvimento de software.
Um assunto recorrente, sempre que discutimos projetos de software, [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/12/para-o-ciclo-de-manutencao-agilidade-ja/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2009/12/para-o-ciclo-de-manutencao-agilidade-ja/</feedburner:origLink></item><item><title>Minha aventura: Sun Tech Days 2009</title><link>http://feedproxy.google.com/~r/Loiane/~3/i-oc1o_BU4M/</link><category>eventos</category><category>Sun Tech Days</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Thu, 10 Dec 2009 03:00:30 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1320</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;">Terça feira (8) fiquei muito desapontada. Tentei ir ao Sun Tech Days em São Paulo, mas não consegui, quer dizer, não me deixaram chegar até o evento.</p>
<p style="text-align: justify;">Pois bem, vou começar:</p>
<p style="text-align: justify;">Querido <span style="text-decoration: line-through;">diário </span> blog, acordei na terça feira às 4:40 da madruga para me arrumar para ir ao Sun Tech Days. Saí de casa às 5:50 com destino à rodoviária de Campinas. Embarquei no ônibus às 6 horas com rumo à São Paulo. Tempo previsto de viagem (com direito a um pouquinho de trânsito até o terminal Tietê): 1:30 horas, ou seja, deveria ter desembarcado em São Paulo às 7:30, e com metrô e taxi até o lugar o evento, ter chegado no máximo às 8:30 (tempo limite para concorrer ao almoço com o James Gosling, pai do Java).</p>
<p style="text-align: justify;">O motorista do ônibus não faz o trecho Campinas &#8211; São Paulo, então ele não recebeu um número de protocolo da viagem, o que significa que ele não poderia pegar passageiros no meio do caminho, apenas àqueles que embarcaram na rodoviária. &#8220;Viagem direta para São Paulo&#8221; &#8211; disse o motorista. Uhuu, vou chegar mais cedo ainda, eu pensei.</p>
<p style="text-align: justify;">Quando ando de ônibus, geralmente durmo, acordei às 7 horas e ainda estávamos na Bandeirantes (rodovia de acesso à São Paulo) &#8211; meia hora até chegar até a rodoviária. Passaram-se 15 minutos e vimos os carros parados na rodovia, faltando 15 Km para chegar à Marginal Tietê. Pensei que devia ser o trânsito normal, afinal, é horário de pico, tem trânsito mesmo.</p>
<p style="text-align: justify;">7:30 &#8211; não andamos nem 500 metros. Comecei a ficar preocupada &#8211; tudo bem que ia perder a chance de almoçar com o Gosling, mas pelo menos queria chegar no keynote dele às 10 horas.</p>
<p style="text-align: justify;">9 Horas &#8211; mais 500 metros. MUITO preocupada. O pessoal do ônibus começou a ligar para os parentes que moram em sampa para perguntar o porquê do trânsito: rio Tietê transbordou e alagou vários pontos da Marginal. Ninguém entra ou sai de São Paulo.</p>
<p style="text-align: justify;">Sintonizei na rádio: Marginal Pinheiros totalmente parada, os carros com os motores desligados. Marginal Tietê: totalmente parada. Rodovia Anhanguera: totalmente parada. Rodovia dos Bandeirantes: totalmente parada.  O cara da rádio pediu para os motoristas riscarem a Anhanguera e a Bandeirantes do mapa. Minha situação: DESESPERADA!</p>
<p style="text-align: center;"><a href="http://www.loiane.com/wp-content/uploads/2009/12/chuva_sp_02.jpg"><img class="aligncenter size-full wp-image-1323" title="chuva_sp_02" src="http://www.loiane.com/wp-content/uploads/2009/12/chuva_sp_02.jpg" alt="chuva_sp_02" width="590" height="496" /></a></p>
<p style="text-align: justify;">11 horas &#8211; ainda na Bandeirantes, faltando ainda 10 Km até a Marginal Tietê. Perdi o keynote do Gosling (e único em todo o evento) &#8211; perdi meu dia! Possibilidade levantada no ônibus: voltar para Campinas assim que chegasse o próximo retorno &#8211; já que não tinha como entrar em São Paulo. Problema: dos 40 passageiros do ônibus, 4 não queriam voltar &#8211; queiram nadar! Depois de quase 15 minutos argumentando com eles, consegui fazer com que concordassem em voltar (pelo menos consegui colocar me prática um pouco do meu lado de liderança &#8211; um ponto positivo da viagem).</p>
<p style="text-align: justify;">Meio dia &#8211; eita retorno que não chega! Tava tenso mesmo! Detalhe: o ônibus não tinha sanitário, e já estava á 6 horas dentro do ônibus, minha bexiga me matando! Solução: arbusto! Pulei o murinho na beira da pista e fui atrás de um arbusto mesmo (com um pouco de público, mas que <span style="text-decoration: line-through;">se dane</span>, eu pensei). Nessas horas queria ser homem viu! Ainda bem que tinha gel anti-séptico da Victoria Secrets na minha bolsa! hehehe</p>
<p style="text-align: justify;">12:30h &#8211; Finalmente o bendito retorno chegou. Mas quando chegou no retorno, liberaram a Marginal Tietê e o trânsito começou a fluir. O motorista resolveu continuar, já que tinha essas benditas 4 pessoas que queriam continuar até a rodoviária. No caminho até a rodoviária, o motorista não conseguiu mais andar, pois tava tudo alagado. E a notícia: cancelaram todas as passagens para Campinas. Ou seja, deixou os 4 <span style="text-decoration: line-through;">doidos</span> ali mesmo, pois não tinha como continuar e voltamos. Fazer o que? Não iria arriscar a ficar atolada, e nem ter como voltar para casa depois.</p>
<p style="text-align: justify;">13h &#8211; Voltando para Campinas.</p>
<p style="text-align: justify;">14 horas &#8211; sem nehum trânsito, chegamos à Campinas.</p>
<p style="text-align: justify;">Saldo do dia 1: 7 horas para chegar até São Paulo &#8211; 1:30 em dias normais. 8 horas totais dentro do ônibus, sem banheiro, sem café da manhã, sem nenhum biscoito na bolsa. Já passando mal (pressão baixa). Devorei um sanduíche do Bobs mesmo &#8211; na rodoviária, parecendo que não comia à 1 semana &#8211; e com medo de desmaiar por causa da minha pressão.</p>
<p style="text-align: justify;">Saldo do dia 2: curso intensivo para Zen Budista. Curso completo e intensivo de paciência &#8211; para quem não me conhece, não sou a pessoa mais paciente do mundo (ainda trabalhando essa parte).</p>
<p style="text-align: justify;">Saldo do dia 3: prejuízo de 200 reais: o único motivo de eu querer ir ao Sun Tech Days era o James Gosling. Perdi a oportunidade de conhecer ele.</p>
<p style="text-align: justify;">Saldo negativo 4: perdi todo meu planejamento (e eu ODEIO quando isso acontece). Paguei a inscrição para o evento em Outubro, me planejei para ir desde Outubro, trabalhei nos feriados de Novembro só para poder ir nesse evento! Fiquei muito p da vida, mas muito TRISTE mesmo. Além do trauma de ir para São Paulo. Vou ficar sem ir para lá um bom tempo!</p>
<p style="text-align: justify;">Sei que teve gente que perdeu a vida (6 mortos no total); pessoas que perderam a casa/comércio. Realmente é muito triste tudo isso &#8211; os 200 reais e o dia que perdi não se comparam com isso.</p>
<p style="text-align: justify;">O mais triste ainda é ver o prefeito de São Paulo dizer que a chuva teve seu lado bom: viu que precisa investir mais (isso pq ele deve andar de helicóptero, né?). E ainda a notícia que o que causou o transbordamento do rio Tietê foi a falha nas bombas que tiram água do Tietê e passa para o rio Pinheiro, que tira água deste e passa para uma represa (ou algo do tipo) &#8211; e no mesmo dia &#8211; o jornal Estado de São Paulo publicou que o prefeito apenas investiu 10% do dinheiro destinado à essas obras. Muita cara de pau pro meu gosto. Já que perdi o que eu queria no evento, resolvi trocar os meus documentos na quarta &#8211; transferir meu título de eleitor. Vou levar tudo isso em consideração no ano que vem!</p>
<p style="text-align: justify;">E de agora em diante, prefiro ver as notícias de engarrafamento em São Paulo apenas nos sites de notícias e pela televisão. Fazer parte da notícia, não, obrigada!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1320&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F12%2Fminha-aventura-sun-tech-days-2009%2F&amp;linkname=Minha%20aventura%3A%20Sun%20Tech%20Days%202009"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/q7fOJMsv9nGZ14Fz-T-eHvkGBNc/0/da"><img src="http://feedads.g.doubleclick.net/~a/q7fOJMsv9nGZ14Fz-T-eHvkGBNc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/q7fOJMsv9nGZ14Fz-T-eHvkGBNc/1/da"><img src="http://feedads.g.doubleclick.net/~a/q7fOJMsv9nGZ14Fz-T-eHvkGBNc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=i-oc1o_BU4M:uX9vYl0xcHE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=i-oc1o_BU4M:uX9vYl0xcHE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=i-oc1o_BU4M:uX9vYl0xcHE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=i-oc1o_BU4M:uX9vYl0xcHE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=i-oc1o_BU4M:uX9vYl0xcHE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=i-oc1o_BU4M:uX9vYl0xcHE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=i-oc1o_BU4M:uX9vYl0xcHE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=i-oc1o_BU4M:uX9vYl0xcHE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/i-oc1o_BU4M" height="1" width="1"/>]]></content:encoded><description>Terça feira (8) fiquei muito desapontada. Tentei ir ao Sun Tech Days em São Paulo, mas não consegui, quer dizer, não me deixaram chegar até o evento.
Pois bem, vou começar:
Querido diário  blog, acordei na terça feira às 4:40 da madruga para me arrumar para ir ao Sun Tech Days. Saí de casa às 5:50 [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/12/minha-aventura-sun-tech-days-2009/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">6</slash:comments><feedburner:origLink>http://www.loiane.com/2009/12/minha-aventura-sun-tech-days-2009/</feedburner:origLink></item><item><title>Você gostaria de trabalhar na IBM?</title><link>http://feedproxy.google.com/~r/Loiane/~3/aJoFks0xDI4/</link><category>IBM</category><category>IBM Academic Initiative</category><category>My developerWorks</category><category>carreira</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 07 Dec 2009 03:43:38 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1315</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p><a href="http://www.loiane.com/wp-content/uploads/2009/12/mod_academic.jpg"><img class="aligncenter size-full wp-image-1316" title="mod_academic" src="http://www.loiane.com/wp-content/uploads/2009/12/mod_academic.jpg" alt="mod_academic" width="148" height="75" /></a></p>
<p><span style="font-family: sans-serif; ">A IBM, seus parceiros e clientes estão buscando estagiários e funcionários como você!</span></p>
<p><span style="font-family: sans-serif; ">Você quer um estágio ou um emprego? Eu gostaria de convidá-lo a fazer parte da comunidade de alunos, ex-alunos e profissionais que obtiveram conhecimento, qualificações e/ou certificações IBM. </span></p>
<p><span style="font-family: sans-serif; "><strong>1) Como ser encontrado pela IBM, pelos clientes e pelos parceiros</strong></span><br />
<span style="font-family: sans-serif; ">É claro que você já usa redes sociais.  Então vai ser fácil unir-se ao My developerWorks, nossa rede social, preencher seu perfil, colocar tags, participar de grupos e interagir com outros estudantes e profissionais.</span></p>
<p><span style="font-family: sans-serif; ">O My developerWorks é  a rede social do ecossistema IBM, o lugar para você aprender, aumentar suas qualificações e expô-las para quem as valoriza.</span><br />
<span style="font-family: sans-serif; ">Você usou nosso software em seus projetos, trabalhos, aulas de laboratório?</span><br />
<span style="font-family: sans-serif; ">Cadastre-se no </span><a href="http://www.ibm.com/developerworks/mydeveloperworks" target="_blank"><span style="font-family: sans-serif; ">www.ibm.com/developerworks/mydeveloperworks</span></a><span style="font-family: sans-serif; "> e informe isso em seu perfil (profile).  Coloque as tags &#8220;academic_initiative&#8221; e &#8220;Brasil&#8221; e o nome de sua cidade no seu perfil.</span></p>
<p><span style="font-family: sans-serif; "><strong>Quer ser localizado rapidamente por quem busca um conhecimento específico?</strong></span><br />
<span style="font-family: sans-serif; ">Filie-se a GRUPOS (groups) com o mesmo conhecimento.  É assim que possíveis empregadores irão buscar, por exemplo, um DBA de DB2, um desenvolvedor Java, um administrador de mainframe, etc. sem ter que pesquisar cada um dos perfis para localizar o conhecimento desejado. </span></p>
<p><span style="font-family: sans-serif; ">Todos começam pela expressão Skills AI BR (habilitações Academic Initiative Brasil) seguida pelo nome do conhecimento.</span><br />
<span style="font-family: sans-serif; ">Veja alguns blocos, sugeridos e criados pelos seus professores e pela IBM a partir do uso do software IBM em suas aulas: </span></p>
<ul>
<li><span style="font-family: sans-serif; ">Projetos de bancos de dados em DB2, administração de mainframe, soluções SOA com Webshpere, modelagem de aplicações J2EE, programação básica em Java com Websphere/Rational, por exemplo. </span></li>
</ul>
<p><span style="font-family: sans-serif; ">A partir destes blocos, eu criei grupos no My developerWorks e gostaria muito de ter você como membro ativo desses grupos.  Cada profissional empregado no ecossistema é motivo de muita alegria para nós do Academic Initiative.</span></p>
<p><span style="font-family: sans-serif; ">Clique em Connect, depois em Groups, e na barra de pesquisa digite Skills AI BR</span><br />
<span style="font-family: sans-serif; ">pesquise os grupos e associe-se àqueles que correspondam ao seu conhecimento.</span></p>
<p><span style="font-family: sans-serif; ">Participar destes grupos também facilita que você receba eventuais comunicações de cursos.</span></p>
<p><span style="font-family: sans-serif; "><strong>2) Você gostaria de trabalhar na IBM? </strong></span><br />
<span style="font-family: sans-serif; ">Além de consultar os grupos de conhecimento mencionados no item 2, o time de Recrutamento da IBM criou um grupo com as vagas voltadas para TI com foco em estudantes e profissionais recém-formados.  Está logo na primeira página do developerWorks (</span><a href="http://www.ibm.com/developerworks/br" target="_blank"><span style="font-family: sans-serif; ">www.ibm.com/developerworks/br</span></a><span style="font-family: sans-serif; "> ou, se vc preferir, siga o link abaixo:</span></p>
<p><a href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=1f8dcb56-48ec-401a-b464-1dd304801b47" target="_blank"><span style="font-family: sans-serif; ">https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=1f8dcb56-48ec-401a-b464-1dd304801b47</span></a></p>
<p><span style="font-family: sans-serif; ">Esse grupo será atualizado com novas vagas na próxima semana. Fique de olho! </span></p>
<p><span style="font-family: sans-serif; ">Também não deixe de cadastrar seu curriculum no site oficial da IBM: </span><a href="http://www.ibm.com/br" target="_blank"><span style="font-family: sans-serif; ">www.ibm.com/br</span></a></p>
<p><span style="font-family: sans-serif; "><strong>3) Como aumentar o seu conhecimento, ir além do que você viu nas aulas?</strong></span><br />
<span style="font-family: sans-serif; ">Troque informações com as pessoas do(s) seu(s) grupo(s), monte outros grupos, pesquise e indique material para estudo.</span><br />
<span style="font-family: sans-serif; ">Uma boa fonte é o portal do estudante que contémroteiros de estudo, software e material didático para aprendizado ou no site mundial:</span><br />
<a href="http://www.ibm.com/br/university/studentsoftwarecatalog.phtml" target="_blank"><span style="font-family: sans-serif; ">http://www.ibm.com/br/university/studentsoftwarecatalog.phtml</span></a><span style="font-family: sans-serif; "> &#8211; site local em português</span><br />
<a href="https://www.ibm.com/developerworks/university/students/index.html" target="_blank"><span style="font-family: sans-serif; ">https://www.ibm.com/developerworks/university/students/index.html</span></a><span style="font-family: sans-serif; "> &#8211; site mundial</span></p>
<p><span style="font-family: sans-serif; ">Para discussões sobre o trabalho em TI e novidades tecnológicas, o blog do Academic Initiative é um excelente ponto de partida:</span><br />
<a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/academicbr/" target="_blank"><span style="font-family: sans-serif; ">https://www.ibm.com/developerworks/mydeveloperworks/blogs/academicbr/</span></a></p>
<p><span style="font-family: sans-serif; "><strong>4) Como ser contratado rapidamente e para as melhores posições? Certificação!!!</strong></span><br />
<span style="font-family: sans-serif; ">Você já tem uma certificação IBM? </span><br />
<span style="font-family: sans-serif; ">Parabéns!  Não deixe de informar isso no seu perfil e, se desejar que seu nome saia publicado numa lista de profissionais certificados,  envie um e-mail para <a href="mailto:dwbr@br.ibm.com" target="_blank">dwbr [at] br [dot] ibm [dot] com</a> autorizando a postagem dos seguintes dados: Nome, E-mail, Cidade, Estado, Data da Certificação, Número da Prova Realizada, Título da Certificação.</span><br />
<span style="font-family: sans-serif; "> </span><br />
<span style="font-family: sans-serif; ">Dúvidas? </span><br />
<span style="font-family: sans-serif; ">E-mail = <a href="mailto:pwisv@br.ibm.com" target="_blank">pwisv [at] br [dot] ibm [dot] com</a></span><br />
<span style="font-family: sans-serif; ">Telefone = 08007074837 Opção 1</span></p>
<p><span style="font-family: sans-serif; ">Sucesso!!!  Esperamos ver você trabalhando na IBM ou em nossos parceiros e clientes.</span></p>
<p><span style="font-family: sans-serif; "><strong><em>Time Academic Initiative</em></strong></span></p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1315&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F12%2Fvoce-gostaria-de-trabalhar-na-ibm%2F&amp;linkname=Voc%C3%AA%20gostaria%20de%20trabalhar%20na%20IBM%3F"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/DNcQXaAI-d2g4utW2DVcCiHbces/0/da"><img src="http://feedads.g.doubleclick.net/~a/DNcQXaAI-d2g4utW2DVcCiHbces/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/DNcQXaAI-d2g4utW2DVcCiHbces/1/da"><img src="http://feedads.g.doubleclick.net/~a/DNcQXaAI-d2g4utW2DVcCiHbces/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=aJoFks0xDI4:C5ciDMQYISk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=aJoFks0xDI4:C5ciDMQYISk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=aJoFks0xDI4:C5ciDMQYISk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=aJoFks0xDI4:C5ciDMQYISk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=aJoFks0xDI4:C5ciDMQYISk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=aJoFks0xDI4:C5ciDMQYISk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=aJoFks0xDI4:C5ciDMQYISk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=aJoFks0xDI4:C5ciDMQYISk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/aJoFks0xDI4" height="1" width="1"/>]]></content:encoded><description>A IBM, seus parceiros e clientes estão buscando estagiários e funcionários como você!
Você quer um estágio ou um emprego? Eu gostaria de convidá-lo a fazer parte da comunidade de alunos, ex-alunos e profissionais que obtiveram conhecimento, qualificações e/ou certificações IBM. 
1) Como ser encontrado pela IBM, pelos clientes e pelos parceiros
É claro que você já [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/12/voce-gostaria-de-trabalhar-na-ibm/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.loiane.com/2009/12/voce-gostaria-de-trabalhar-na-ibm/</feedburner:origLink></item><item><title>Descontos em livros da Oreilly para membros de um JUG (Java Users Group)</title><link>http://feedproxy.google.com/~r/Loiane/~3/Ltm3sm8d_1Q/</link><category>Sem categoria</category><category>jug</category><category>livro</category><category>oreilly</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Thu, 03 Dec 2009 08:50:34 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1312</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;"><img class="aligncenter" title="oreilly" src="http://oreilly.com/images/oreilly/front-logo.gif" alt="" width="262" height="66" /></p>
<p style="text-align: justify;">A <a href="http://www.oreilly.com/" target="_blank">Oreilly Books</a> está oferecendo 35% de desconto em livros impressos e 45% de desconto em eBooks para os membros do JUG.</p>
<p style="text-align: justify;">Quem tiver curiosidade ou quiser dar uma olhada nos livros diponíveis: <a href="http://www.oreilly.com/store" target="_blank">http://www.oreilly.com/store</a></p>
<p style="text-align: justify;">Alguns dos livros diponíveis são os da Série <strong>Head First</strong>.</p>
<p style="text-align: justify;">Quem tiver interesse em adquirir algum livro com o desconto, favor <a href="http://www.loiane.com/contato/" target="_blank">entrar em contato</a> para passar o código da promoção. Não se esqueça de dizer quel é o JUG que você participa!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1312&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F12%2Fdescontos-em-livros-da-oreilly-para-membros-de-um-jug-java-users-group%2F&amp;linkname=Descontos%20em%20livros%20da%20Oreilly%20para%20membros%20de%20um%20JUG%20%28Java%20Users%20Group%29"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/wtsL1XmPJGBK4Urbf3CRe9pYE1U/0/da"><img src="http://feedads.g.doubleclick.net/~a/wtsL1XmPJGBK4Urbf3CRe9pYE1U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/wtsL1XmPJGBK4Urbf3CRe9pYE1U/1/da"><img src="http://feedads.g.doubleclick.net/~a/wtsL1XmPJGBK4Urbf3CRe9pYE1U/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=Ltm3sm8d_1Q:ETEgdx50zp8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Ltm3sm8d_1Q:ETEgdx50zp8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=Ltm3sm8d_1Q:ETEgdx50zp8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Ltm3sm8d_1Q:ETEgdx50zp8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=Ltm3sm8d_1Q:ETEgdx50zp8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Ltm3sm8d_1Q:ETEgdx50zp8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Ltm3sm8d_1Q:ETEgdx50zp8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Ltm3sm8d_1Q:ETEgdx50zp8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/Ltm3sm8d_1Q" height="1" width="1"/>]]></content:encoded><description>A Oreilly Books está oferecendo 35% de desconto em livros impressos e 45% de desconto em eBooks para os membros do JUG.
Quem tiver curiosidade ou quiser dar uma olhada nos livros diponíveis: http://www.oreilly.com/store
Alguns dos livros diponíveis são os da Série Head First.
Quem tiver interesse em adquirir algum livro com o desconto, favor entrar em contato [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/12/descontos-em-livros-da-oreilly-para-membros-de-um-jug-java-users-group/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2009/12/descontos-em-livros-da-oreilly-para-membros-de-um-jug-java-users-group/</feedburner:origLink></item><item><title>Sorteio de 10 convites para o Google Wave</title><link>http://feedproxy.google.com/~r/Loiane/~3/oX94F5JDpvw/</link><category>Google Wave</category><category>convite Google Wave</category><category>Wave</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Thu, 26 Nov 2009 03:08:20 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1301</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: center;"><img class="aligncenter" title="sorteio convite Google Wave" src="http://www.loiane.com/wp-content/uploads/2009/07/wavelogo.png" alt="" width="230" height="230" /></p>
<p>Estamos chegando perto do Natal, e como presente, o <a href="http://esborniacomputacional.blogspot.com/" target="_blank">Alan</a>, que escreve no blog <a href="http://esborniacomputacional.blogspot.com/" target="_blank">http://esborniacomputacional.blogspot.com/</a> está dando 12 convites do Google Wave para sorteio.</p>
<p>Para participar do sorteio é muito simples: basta decodificar a frase abaixo e escrever uma breve explicação de como chegou ao resultado:</p>
<address><strong><span style="color: #0000ff;">L|&#8217;x|lyv&#8217;|t&#8217;jvu}p{l&#8217;whyh&#8217;v'Nvvnsl&#8217;^h}l(</span></strong></address>
<p>Duas dicas para resolver:</p>
<ol>
<li>Tabela ASCII</li>
<li>Problema <em>458</em> do <a href="http://uva.onlinejudge.org" target="_blank">UVA Online Judge</a> (juíz online de problemas estilo maratona de programação &#8211; ACM ICPC)</li>
</ol>
<p>Atentar para as letras maiúsculas e minúsculas, a frase é <strong>case sensitive</strong>!</p>
<p>Fácil, fácil!</p>
<p>Não precisa nem fazer um programinha para isso, basta usar um pouco de lógica!</p>
<p>E como o título do post descreve o sorteio de 10 convites, vamos sortear 10 convites. As duas primeiras pessoas que responderem levam um convite cada. Os outros 10 convites vamos sortear entre as demais pessoas que responderem.</p>
<p>Cada comentário receberá um número, do mais velho para o mais novo, ou seja, o primeiro a comentar fica com o número 1. O sorteio será feito através do site <span id="main" style="visibility: visible;"><span id="search" style="visibility: visible;"><cite><a href="http://www.random.org" target="_blank">www.</a><strong><a href="http://www.random.org" target="_blank">random</a></strong><a href="http://www.random.org" target="_blank">.</a><strong><a href="http://www.random.org" target="_blank">org</a>.</strong></cite></span></span></p>
<p>Os comentários serão liberados apenas depois do prazo, que é até às <strong>20 horas dessa sexta feira &#8211; 27 de novembro</strong>. Por isso, não se preocupe se não ver o seu comentário aqui no blog.</p>
<p>Só aceitaremos as respostas corretas e com a explicação! Apenas a resposta não será considerada válida!</p>
<p>Boa sorte e bons códigos!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1301&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Fsorteio-de-10-convites-para-o-google-wave%2F&amp;linkname=Sorteio%20de%2010%20convites%20para%20o%20Google%20Wave"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/OYI61Plvk6Ccx3B9tW5AleLRZH4/0/da"><img src="http://feedads.g.doubleclick.net/~a/OYI61Plvk6Ccx3B9tW5AleLRZH4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/OYI61Plvk6Ccx3B9tW5AleLRZH4/1/da"><img src="http://feedads.g.doubleclick.net/~a/OYI61Plvk6Ccx3B9tW5AleLRZH4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=oX94F5JDpvw:nqduG9wh5oE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=oX94F5JDpvw:nqduG9wh5oE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=oX94F5JDpvw:nqduG9wh5oE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=oX94F5JDpvw:nqduG9wh5oE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=oX94F5JDpvw:nqduG9wh5oE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=oX94F5JDpvw:nqduG9wh5oE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=oX94F5JDpvw:nqduG9wh5oE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=oX94F5JDpvw:nqduG9wh5oE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/oX94F5JDpvw" height="1" width="1"/>]]></content:encoded><description>Estamos chegando perto do Natal, e como presente, o Alan, que escreve no blog http://esborniacomputacional.blogspot.com/ está dando 12 convites do Google Wave para sorteio.
Para participar do sorteio é muito simples: basta decodificar a frase abaixo e escrever uma breve explicação de como chegou ao resultado:
L&amp;#124;&amp;#8217;x&amp;#124;lyv&amp;#8217;&amp;#124;t&amp;#8217;jvu}p{l&amp;#8217;whyh&amp;#8217;v'Nvvnsl&amp;#8217;^h}l(
Duas dicas para resolver:

Tabela ASCII
Problema 458 do UVA Online Judge (juíz [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/sorteio-de-10-convites-para-o-google-wave/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">10</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/sorteio-de-10-convites-para-o-google-wave/</feedburner:origLink></item><item><title>Oportundiade: IBM abre 150 vagas para estagiários</title><link>http://feedproxy.google.com/~r/Loiane/~3/4Sf1kmpZIh0/</link><category>IBM</category><category>carreira</category><category>oportunidades IBM</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Wed, 25 Nov 2009 05:44:34 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1295</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;"><img class="aligncenter" title="Passaporte IBM" src="http://www.ibm.com/br/estagio/images/lep_hi_estagio_200808.jpg" alt="" width="443" height="180" />A IBM abriu as inscrições para seu programa de estágio Passaporte IBM 2010, que deve contratar 150 pessoas na primeira fase.</p>
<p style="text-align: justify;">No processo seletivo, serão aceitos os alunos que se formarem entre dezembro de 2011 e julho 2012 e que tenham conhecimentos do idioma inglês, ao menos no nível intermediário.</p>
<p style="text-align: justify;">As especializações mais procuradas pela IBM são Ciências da Computação, Engenharia da Computação, Processamento de Dados, Análise de Sistemas e Tecnologia da Informação e demais cursos de Tecnologia. Também existem oportunidades para estudantes de áreas como Administração de Empresas, Ciências Contábeis, Economia, Direito, Marketing e para cursos técnicos em informática e eletrônica.</p>
<p style="text-align: justify;">&#8220;A IBM Brasil oferece boas oportunidades para quem está começando a carreira. Em 2009 cerca de 70% dos estagiários já foram efetivados na companhia”, ressalta Adriana Vasconcelos, gerente de Recrutamento e Seleção da IBM Brasil.</p>
<p style="text-align: justify;">As vagas são principalmente para as cidades de São Paulo, Rio de Janeiro e Hortolândia, onde está situado o segundo maior Centro Global de Serviços da IBM no mundo. Há também vagas nas cidades de Porto Alegre, Brasília, Belo Horizonte entre outras localidades.</p>
<p style="text-align: justify;">Segundo a empresa, os interessados devem se inscrever apenas para as vagas referentes aos seus cursos atuais e com o texto “Passaporte IBM” no título. As inscrições estão disponíveis no site <a href="http://www.ibm.com/br/estagio" target="_blank">www.ibm.com/br/estagio</a>.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">O processo de seleção é dividido em três fases. A primeira consiste de testes de inglês e raciocínio lógico. A segunda é um processo de dinâmica de grupo, enquanto última é composta por entrevistas individuais com os gerentes das vagas em aberto. Os resultados das etapas serão divulgados por e-mail aos candidatos e os aprovados no processo do 1º trimestre de 2010 iniciam seu estágio no mês de março.</p>
<p style="text-align: justify;">O valor da bolsa estágio varia de acordo com o nível de inglês, carga horária e ano letivo.</p>
<p style="text-align: justify;">Fonte: <a href="http://info.abril.com.br/noticias/carreira/ibm-abre-vagas-para-estagiarios-25112009-13.shl" target="_blank">http://info.abril.com.br/noticias/carreira/ibm-abre-vagas-para-estagiarios-25112009-13.shl</a></p>
<p style="text-align: justify;"><em>Ótima oportunidade para quem estava esperando! Muito estagiários são efetivados em pouco tempo (3-6 meses), além de ser uma mega oportunidade de crescimento profissional e pessoal. Recomendo!</em></p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1295&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Foportundiade-ibm-abre-150-vagas-para-estagiarios%2F&amp;linkname=Oportundiade%3A%20IBM%20abre%20150%20vagas%20para%20estagi%C3%A1rios"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/T-97WaszWq_ETO8XEd6Y8ZTCrjg/0/da"><img src="http://feedads.g.doubleclick.net/~a/T-97WaszWq_ETO8XEd6Y8ZTCrjg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/T-97WaszWq_ETO8XEd6Y8ZTCrjg/1/da"><img src="http://feedads.g.doubleclick.net/~a/T-97WaszWq_ETO8XEd6Y8ZTCrjg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=4Sf1kmpZIh0:33o_e9FyDGQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=4Sf1kmpZIh0:33o_e9FyDGQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=4Sf1kmpZIh0:33o_e9FyDGQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=4Sf1kmpZIh0:33o_e9FyDGQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=4Sf1kmpZIh0:33o_e9FyDGQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=4Sf1kmpZIh0:33o_e9FyDGQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=4Sf1kmpZIh0:33o_e9FyDGQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=4Sf1kmpZIh0:33o_e9FyDGQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/4Sf1kmpZIh0" height="1" width="1"/>]]></content:encoded><description>A IBM abriu as inscrições para seu programa de estágio Passaporte IBM 2010, que deve contratar 150 pessoas na primeira fase.
No processo seletivo, serão aceitos os alunos que se formarem entre dezembro de 2011 e julho 2012 e que tenham conhecimentos do idioma inglês, ao menos no nível intermediário.
As especializações mais procuradas pela IBM são [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/oportundiade-ibm-abre-150-vagas-para-estagiarios/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/oportundiade-ibm-abre-150-vagas-para-estagiarios/</feedburner:origLink></item><item><title>Concurso de Mainframe para Estudantes do Brasil</title><link>http://feedproxy.google.com/~r/Loiane/~3/lj7J3PLlJjY/</link><category>IBM</category><category>IBM Academic Initiative</category><category>mainframe</category><category>oportunidades IBM</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Tue, 24 Nov 2009 03:16:17 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1291</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p><a href="http://www.loiane.com/wp-content/uploads/2009/11/img_concurso_200808.jpg"><img class="aligncenter size-full wp-image-1292" title="img_concurso_200808" src="http://www.loiane.com/wp-content/uploads/2009/11/img_concurso_200808.jpg" alt="img_concurso_200808" width="443" height="160" /></a></p>
<p>A IBM tem o prazer de anunciar o <strong>3º Concurso de Mainframe para Estudantes do Brasil</strong>. As inscrições estarão abertas no período de 17 a 26 de Novembro de 2009 no site do concurso.</p>
<p>Serão diversos prêmios nas várias fases do concurso, desde pen drives até notebook Think Pad para o ganhador e professor mais indicado. Os 3 melhores ainda concorrem a vagas de estágio na IBM na área técnica de mainframe.</p>
<p>O Concurso consiste na navegação em um mainframe real via rede, seguindo tarefas que estão no site da IBM passo-a-passo. Ao final de cada etapa os melhores classificados ganham prêmios e ficam habilitados para a fase seguinte até que cheguem na última parte e concluam o concurso.</p>
<p>Não perca tempo, verifique o regulamento e faça sua inscrição no site do concurso!</p>
<p>Divulgue para quem achar necessário. Contamos com sua ajuda e participação caso seja estudante.</p>
<p>Página do Concurso: <a href="http://www.ibm.com/br/systems/z/concursomainframe" target="_blank">http://www.ibm.com/br/systems/z/concursomainframe</a></p>
<p>Atenciosamente,</p>
<p>Equipe do Concurso Mainframe &#8211; IBM Brasil</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1291&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Fconcurso-de-mainframe-para-estudantes-do-brasil%2F&amp;linkname=Concurso%20de%20Mainframe%20para%20Estudantes%20do%20Brasil"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/uk5OECaMo0j2okWj6iSB6hEqDhs/0/da"><img src="http://feedads.g.doubleclick.net/~a/uk5OECaMo0j2okWj6iSB6hEqDhs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/uk5OECaMo0j2okWj6iSB6hEqDhs/1/da"><img src="http://feedads.g.doubleclick.net/~a/uk5OECaMo0j2okWj6iSB6hEqDhs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=lj7J3PLlJjY:3-P36RlLm8o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=lj7J3PLlJjY:3-P36RlLm8o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=lj7J3PLlJjY:3-P36RlLm8o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=lj7J3PLlJjY:3-P36RlLm8o:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=lj7J3PLlJjY:3-P36RlLm8o:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=lj7J3PLlJjY:3-P36RlLm8o:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=lj7J3PLlJjY:3-P36RlLm8o:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=lj7J3PLlJjY:3-P36RlLm8o:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/lj7J3PLlJjY" height="1" width="1"/>]]></content:encoded><description>A IBM tem o prazer de anunciar o 3º Concurso de Mainframe para Estudantes do Brasil. As inscrições estarão abertas no período de 17 a 26 de Novembro de 2009 no site do concurso.
Serão diversos prêmios nas várias fases do concurso, desde pen drives até notebook Think Pad para o ganhador e professor mais indicado. [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/concurso-de-mainframe-para-estudantes-do-brasil/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/concurso-de-mainframe-para-estudantes-do-brasil/</feedburner:origLink></item><item><title>Sun Tech Days 2009 – Eu vou!</title><link>http://feedproxy.google.com/~r/Loiane/~3/ZYnSmyMJTPc/</link><category>eventos</category><category>James Gosling</category><category>java</category><category>Sun Tech Days</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 23 Nov 2009 02:00:36 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1132</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: center;"><a href="http://www.suntechdays.com.br/index.html"><span style="color: #000000;"><strong><img class="aligncenter size-full wp-image-1133" title="sun_tech_days" src="http://www.loiane.com/wp-content/uploads/2009/11/sun_tech_days.jpg" alt="sun_tech_days" width="569" height="119" /></strong></span></a></p>
<p>Em dezembro, o <a href="http://www.suntechdays.com.br/index.html" target="_blank">Sun Tech Days 2009</a> estará de volta ao Brasil.    E, desta vez, contará com a presença do Pai do Java: <strong>James Gosling</strong>!</p>
<p>E é claro que não vou perder essa oportunidade!</p>
<p>Se você desenvolve em Java, Scripting, MySQL, OpenSolaris, NetBeans ou RIA&#8217;s, você não pode ficar de fora deste evento!</p>
<p>No Sun Tech Days Brasil, que está em sua oitava edição, você vai ver de perto os principais experts da Sun, além de aprender, compartilhar informações, interagir, criar oportunidades, conhecer outros desenvolvedores e, principalmente, participar. Afinal, deixamos para trás a Era da Informação, para mergulhar na Era da Participação, onde todos trazem inovações, compartilham conhecimentos e inspiram pensamentos!</p>
<p><a href="http://www.loiane.com/wp-content/uploads/2009/11/james_gosling_java.jpg"><img class="alignleft size-full wp-image-1277" title="james_gosling_java" src="http://www.loiane.com/wp-content/uploads/2009/11/james_gosling_java.jpg" alt="james_gosling_java" width="273" height="205" /></a>A principal razão de estar indo é por causa do <a href="http://www.suntechdays.com.br/gosling.html" target="_blank">James Gosling</a>. Ele é uma das pessoas que mais admiro e é claro, agradeço a ele por ser o pai do Java, linguagem que tanto amo!</p>
<p>Conhecido mundialmente como &#8220;Pai do Java&#8221;, James Gosling é Bacharel em Ciências da Computação pela Universidade de Calgary, Canadá e Ph.D. em Ciência da Computação pela Carnegie-Mellon University, quando defendeu sua tese intitulada &#8220;A Manipulação Algébrica das Restrições&#8221;. Construiu sistemas de aquisição de dados via satélite, uma versão multiprocessador do Unix, vários compiladores, sistemas de email e gerenciadores de janela. Ele também desenvolveu o editor de texto WYSIWYG, um editor de desenhos restritos e um editor de texto chamado &#8216;Emacs&#8217; para sistemas Unix. Na Sun, começou como engenheiro líder do sistema de janelas NeWS. Foi ele que fez o design original da linguagem de programação Java e implementou o seu primeiro compilador e máquina virtual. Em fevereiro de 2007, James foi nomeado um oficial da Ordem do Canadá.</p>
<p>Bem, além do papi do Java, o Sun Tech Days terá <a href="http://www.suntechdays.com.br/installfest.html" target="_blank">Install Fest</a> (instalação do Open Solaris).Além disso, terá algumas <a href="http://www.suntechdays.com.br/sessoes.html" target="_blank">sessões técnicas</a>, além da agenda de <a href="http://www.suntechdays.com.br/agenda.html" target="_blank">palestras</a> de evento.</p>
<p>Esse evento é simplesmente imperdível. Já garanti minha inscrição desde a primeira semana de novembro.</p>
<p>Não perca a oportunidade de passar dois dias com os nerds Java do Brasil e algumas feras em Java do mundo!</p>
<p>O único problema do evento é ser no meio da semana: terça e quarta feira, mas trabalhei e vou trablhar nos feriados de novembro (2 e 20) para poder ir ao evento. O que a gente não faz né? <img src='http://www.loiane.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vou ficar em São Paulo. Se alguém de Campinas também for e quiser marcar de se encontrar lá ou ir junto, é só entrar em contato.</p>
<p>Vejo vocês lá!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1132&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Fsun-tech-days-2009-eu-vou%2F&amp;linkname=Sun%20Tech%20Days%202009%20%26%238211%3B%20Eu%20vou%21"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/yQupb4jDe7fhm4NADA74y_82vTg/0/da"><img src="http://feedads.g.doubleclick.net/~a/yQupb4jDe7fhm4NADA74y_82vTg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yQupb4jDe7fhm4NADA74y_82vTg/1/da"><img src="http://feedads.g.doubleclick.net/~a/yQupb4jDe7fhm4NADA74y_82vTg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=ZYnSmyMJTPc:jpksxq2-8Hw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZYnSmyMJTPc:jpksxq2-8Hw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=ZYnSmyMJTPc:jpksxq2-8Hw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZYnSmyMJTPc:jpksxq2-8Hw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=ZYnSmyMJTPc:jpksxq2-8Hw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZYnSmyMJTPc:jpksxq2-8Hw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZYnSmyMJTPc:jpksxq2-8Hw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=ZYnSmyMJTPc:jpksxq2-8Hw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/ZYnSmyMJTPc" height="1" width="1"/>]]></content:encoded><description>Em dezembro, o Sun Tech Days 2009 estará de volta ao Brasil.    E, desta vez, contará com a presença do Pai do Java: James Gosling!
E é claro que não vou perder essa oportunidade!
Se você desenvolve em Java, Scripting, MySQL, OpenSolaris, NetBeans ou RIA&amp;#8217;s, você não pode ficar de fora deste evento!
No Sun [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/sun-tech-days-2009-eu-vou/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/sun-tech-days-2009-eu-vou/</feedburner:origLink></item><item><title>My new English blog: loianegroner.com</title><link>http://feedproxy.google.com/~r/Loiane/~3/pEJjAt0u928/</link><category>pessoal</category><category>inglês</category><category>loianegroner.com</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Fri, 20 Nov 2009 09:42:52 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1288</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p><a href="http://www.loiane.com/2009/11/novo-blog-loiane-com-em-ingles/" target="_blank">Ontem </a>eu anunciei que coloquei meu novo blog em inglês no ar. Só que houve uma mudança nos planos. Resolvi mudar o domínio, para não ter confusão, e poder administrar o outro blog melhor.</p>
<p>Bem, é isso: novo domínio: <a href="http://loianegroner.com" target="_blank">loianegroner.com</a>.</p>
<p>Em breve, tradução dos tutoriais aqui do blog.</p>
<p>See ya!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1288&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Fmy-new-english-blog-loianegroner-com%2F&amp;linkname=My%20new%20English%20blog%3A%20loianegroner.com"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/yE_h-OHpoEnCyAYBMHBNhDshlgc/0/da"><img src="http://feedads.g.doubleclick.net/~a/yE_h-OHpoEnCyAYBMHBNhDshlgc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yE_h-OHpoEnCyAYBMHBNhDshlgc/1/da"><img src="http://feedads.g.doubleclick.net/~a/yE_h-OHpoEnCyAYBMHBNhDshlgc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=pEJjAt0u928:NellPVZemzs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=pEJjAt0u928:NellPVZemzs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=pEJjAt0u928:NellPVZemzs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=pEJjAt0u928:NellPVZemzs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=pEJjAt0u928:NellPVZemzs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=pEJjAt0u928:NellPVZemzs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=pEJjAt0u928:NellPVZemzs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=pEJjAt0u928:NellPVZemzs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/pEJjAt0u928" height="1" width="1"/>]]></content:encoded><description>Ontem eu anunciei que coloquei meu novo blog em inglês no ar. Só que houve uma mudança nos planos. Resolvi mudar o domínio, para não ter confusão, e poder administrar o outro blog melhor.
Bem, é isso: novo domínio: loianegroner.com.
Em breve, tradução dos tutoriais aqui do blog.
See ya!</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/my-new-english-blog-loianegroner-com/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/my-new-english-blog-loianegroner-com/</feedburner:origLink></item><item><title>Novo blog: loiane.com em Inglês</title><link>http://feedproxy.google.com/~r/Loiane/~3/2sak_LzE9vA/</link><category>pessoal</category><category>inglês</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Thu, 19 Nov 2009 03:29:27 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1282</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;">Já tem algum tempo que estava com essa idéia de transformar ou fazer um blog em inglês. Me organizei no último mês e coloquei o novo blog no ar hoje: <a href="http://loianegroner.com" target="_blank">http://loianegroner.com</a></p>
<p style="text-align: justify;">A idéia surgiu depois que recebi algumas visitas de pessoas de outros países e de um email que recebi. Pensei: &#8220;Por que não tentar&#8221;?</p>
<p style="text-align: justify;">Bom porque vou poder treinar mais e é claro, estudar mais inglês. A idéia inicial é traduzir alguns posts aqui do blog, os tutoriais. Depois pretento levar os dois blogs separadamente.</p>
<p style="text-align: justify;">Inglês é uma parte delicada! rs</p>
<p style="text-align: justify;">Desde que entrei na IBM, melhorei muito meu inglês, devido às reuniões diárias com os desenvolvedores e gerentes dos EUA, e ser a única brasileira no time ajuda bastante. Não tenho fluência na língua, mas eles me entendem e eu entendo eles! rs</p>
<p style="text-align: justify;">Àqueles que tem bastante conhecimento, fiquem à vontade para corrigir, dar dicas. A idéia é crescer e aprender cada vez mais.</p>
<p style="text-align: justify;">See ya!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1282&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Fnovo-blog-loiane-com-em-ingles%2F&amp;linkname=Novo%20blog%3A%20loiane.com%20em%20Ingl%C3%AAs"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/OC3cTe7lSC61NrWwdNyWgnMz3D4/0/da"><img src="http://feedads.g.doubleclick.net/~a/OC3cTe7lSC61NrWwdNyWgnMz3D4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/OC3cTe7lSC61NrWwdNyWgnMz3D4/1/da"><img src="http://feedads.g.doubleclick.net/~a/OC3cTe7lSC61NrWwdNyWgnMz3D4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=2sak_LzE9vA:JwXjQBg7K_Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=2sak_LzE9vA:JwXjQBg7K_Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=2sak_LzE9vA:JwXjQBg7K_Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=2sak_LzE9vA:JwXjQBg7K_Y:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=2sak_LzE9vA:JwXjQBg7K_Y:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=2sak_LzE9vA:JwXjQBg7K_Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=2sak_LzE9vA:JwXjQBg7K_Y:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=2sak_LzE9vA:JwXjQBg7K_Y:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/2sak_LzE9vA" height="1" width="1"/>]]></content:encoded><description>Já tem algum tempo que estava com essa idéia de transformar ou fazer um blog em inglês. Me organizei no último mês e coloquei o novo blog no ar hoje: http://loianegroner.com
A idéia surgiu depois que recebi algumas visitas de pessoas de outros países e de um email que recebi. Pensei: &amp;#8220;Por que não tentar&amp;#8221;?
Bom porque [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/novo-blog-loiane-com-em-ingles/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/novo-blog-loiane-com-em-ingles/</feedburner:origLink></item><item><title>Impressão de GRID no EXTJS com GridPrinter</title><link>http://feedproxy.google.com/~r/Loiane/~3/Qjinblr-kAA/</link><category>Ext JS</category><category>grid</category><category>grid extjs</category><category>javascript</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Wed, 18 Nov 2009 02:00:13 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1110</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;">O Grids é um dos componentes <a href="http://www.extjs.com" target="_blank">Ext JS</a> mais utilizados, e geralmente representam dados/informações que o usuário gostaria de imprimir (como relatórios, por exemplo). Como o grid usualmente é parte de uma aplicação maior (não apenas contém o grid na página), apenas imprimir a página (Ctrl + P) não é uma boa solução, pois é feita apenas a impressão das informações que cabem na página de impressão (e o grid pode conter barras de rolagem, e estas, sairão na página impressa).</p>
<p style="text-align: justify;">Uma outra solução para impressão de grids, seria construir uma outra página HTML ou JSP, contendo apenas as informações que serão impressas. Mas teríamos que fazer uma requisição ao servidor, buscar os dados e renderezar uma nova página. Pra que então utilizar o ExtJs Grid, se você vai fazer tudo na mão novamente. Dobro de trabalho.</p>
<p style="text-align: justify;">Recentemente em um projeto, passe por essa situação, então comecei a buscar no Oráculo uma solução. Encontrei duas. Uma vai ser apresentada neste post, e a outra apresentarei no próximo post.</p>
<p style="text-align: justify;">A primeira solução, com GridPrinter, gera uma página em HTML apenas com as informações do Grid. Porém com uma diferença: o <a href="http://edspencer.net/2009/07/printing-grids-with-ext-js.html" target="_blank">GridPrinter é um plugin Third Party</a> (de terceiros) para o ExtJS, ou seja, não preciso fazer uma requisição ao servidor para renderizar uma nova página. Este plugin, obtém as informações do próprio grid, e gera a página para a impressão, em outra palavras, tudo é feito via javascript/ExtJS, todo o trabalho fica no lado cliente (browser), o que torna a solução bem leve.</p>
<p style="text-align: justify;">Só tem um porém: como o GridPrinter pega os dados que estão renderizados na página, se você tiver um Grid com paginação, as únicas informações que serão impressas são aquelas que o usuário está visualizando.</p>
<p style="text-align: justify;">Vamos ao código:</p>
<h3 style="text-align: justify;">Construindo o Grid</h3>
<p style="text-align: justify;">Primeiro, precisamos configurar o grid. Vamos adicionar um botão na barra de tarefas (top tool bar &#8211; tbar) que irá chamar o script que irá construir a página HTML que servirá para impressão:</p>
<pre class="brush: jscript; highlight: [22,23,24,25,26,27,28,29]; smart-tabs: true; tab-size: 4; toolbar: true;">
//checkboxes
    var sm = new Ext.grid.CheckboxSelectionModel();

    // cria o grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            sm,
            {header: &quot;NOME&quot;, width: 170, sortable: true, dataIndex: 'nome'},
            {header: &quot;TELEFONE&quot;, width: 150, sortable: true, dataIndex: 'telefone'},
            {header: &quot;EMAIL&quot;, width: 150, sortable: true, dataIndex: 'email'},
            {header: &quot;DATA NASC.&quot;, width: 100, sortable: true, dataIndex: 'aniversario',
            	renderer: Ext.util.Format.dateRenderer('d/m/Y')},
            {header: &quot;ENDEREÇO&quot;, width: 200, sortable: true, dataIndex: 'endereco'},
        ],
        sm:sm,
        title: 'Impressão Grid Extjs',
        autoHeight:true,
        width:800,
		renderTo: document.body,
		frame:true,
		tbar : [
		        {
		          text   : 'Imprimir',
		          handler: function() {
		        	Ext.ux.GridPrinter.print(grid);
		          }
		        }
		      ]
    });
</pre>
<p style="text-align: justify;">Depois precisamos configuar a página HTML que chamará o script:</p>
<pre class="brush: xml; smart-tabs: true; tab-size: 4; toolbar: true;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Impressão Grid ExtJs com GridPrinter&lt;/title&gt;

	&lt;!-- arquivos Ext JS padrão --&gt;
	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/gridPrinter-extjs/js/extjs/resources/css/ext-all.css&quot; /&gt;
	&lt;script src=&quot;/gridPrinter-extjs/js/extjs/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/gridPrinter-extjs/js/extjs/ext-all.js&quot;&gt;&lt;/script&gt;

	&lt;!-- plugin extjs - gridPrinter --&gt;
	&lt;script src=&quot;/gridPrinter-extjs/js/gridPrinter/Ext.ux.GridPrinter.js&quot;&gt;&lt;/script&gt;

	&lt;!-- script que contém o código do grid --&gt;
	&lt;script src=&quot;/gridPrinter-extjs/js/grid.js&quot;&gt;&lt;/script&gt;

&lt;/head&gt;
&lt;body&gt;
	&lt;div id=&quot;impressao-grid&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<h3 style="text-align: justify;">Fazendo o Setup do Plugin &#8211; GridPrinter</h3>
<p style="text-align: justify;">Você pode fazer o download do GridPrinter &#8211; versão original <a href="http://gist.github.com/raw/155789/022585f76bf6b7f3523c41395ec158f19df69f8b/Ext.ux.GridPrinter.js" target="_blank">aqui</a>.</p>
<p style="text-align: justify;">Além do arquivo javascript, você precisa adicionar o arquivo de estilos (css):</p>
<pre class="brush: css; smart-tabs: true; tab-size: 4; toolbar: true;">
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,
th,td{margin:0;padding:0;}
img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,var{font-style:normal;font-weight:normal;}
ol,ul {list-style:none;}
caption,th {text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
q:before,q:after{content:'';}

table {
  width: 100%;
  text-align: left;
  font-size: 11px;
  font-family: arial;
  border-collapse: collapse;
}

table th {
  padding: 4px 3px 4px 5px;
  border: 1px solid #d0d0d0;
  border-left-color: #eee;
  background-color: #ededed;
  font-weight:bold;
}

table td {
  padding: 4px 3px 4px 5px;
  border-style: none solid solid;
  border-width: 1px;
  border-color: #ededed;
}
</pre>
<p style="text-align: justify;">Fique à vontade para modificar o css, afinal o gosto é do cliente! <img src='http://www.loiane.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Além disso, você precisa dizer ao GridPrinter em que lugar está o arquivo CSS:</p>
<pre class="brush: jscript; smart-tabs: true; tab-size: 4; toolbar: true;">
   /**
   * @property stylesheetPath
   * @type String
   * The path at which the print stylesheet can be found
   */
  stylesheetPath: '/gridPrinter-extjs/js/gridPrinter/resources/gridPrinter.css',
</pre>
<p style="text-align: justify;">Fiz algumas mudanças no arquivo original. As mudanças são simples de fazer, basta você entender um pouco da lógica utilizando, e é claro, saber o básico de ExtJS. Você pode conferir as pequenas mudanças que fiz fazendo o download no <a href="http://github.com/loiane/gridPrinter-extjs" target="_blank">GitHub</a>.</p>
<h3 style="text-align: justify;">Resultado</h3>
<p style="text-align: justify;">O Grid:</p>
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2009/11/grid_printer_extjs_01.jpg"><img class="aligncenter size-full wp-image-1233" title="grid_printer_extjs_01" src="http://www.loiane.com/wp-content/uploads/2009/11/grid_printer_extjs_01.jpg" alt="grid_printer_extjs_01" width="604" height="195" /></a></p>
<p style="text-align: justify;">A página de impressão:</p>
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2009/11/grid_printer_extjs_03.jpg"><img class="aligncenter size-full wp-image-1234" title="grid_printer_extjs_03" src="http://www.loiane.com/wp-content/uploads/2009/11/grid_printer_extjs_03.jpg" alt="grid_printer_extjs_03" width="606" height="208" /></a></p>
<p style="text-align: justify;">Bem melhor do que apenas dá um Ctrl P!</p>
<h3 style="text-align: justify;">Excluindo a coluna CheckBox da página de impressão</h3>
<p style="text-align: justify;">Se você não utilizar o Checkbox, você não vai ver esse símbolo &#8220;{}&#8221; na primeira coluna. Mas se tiver usando, pode ser que não queira colocar esse símbolo na sua página de impressão, talvez você quer que apareça apenas os dados.</p>
<p style="text-align: justify;">Para retirar essas <em>chaves, </em>basta fazer uma pequena modificação no código do GridPrinter, ou seja, como o GridPrinter pega as configurações do ColumnModel, precisamos apenas excluir a primeira coluna, que é o sm (CheckBox):</p>
<pre class="brush: jscript; smart-tabs: true; tab-size: 4; toolbar: true;">
    var columns_ = grid.getColumnModel().config;
    var columns = [];
    for (var i=1;i&lt;columns_.length;i++){
    	columns[i-1] = columns_[i];
    }
</pre>
<p>E o resultado:</p>
<p><a href="http://www.loiane.com/wp-content/uploads/2009/11/grid_printer_extjs_02.jpg"><img class="aligncenter size-full wp-image-1236" title="grid_printer_extjs_02" src="http://www.loiane.com/wp-content/uploads/2009/11/grid_printer_extjs_02.jpg" alt="grid_printer_extjs_02" width="597" height="209" /></a></p>
<p>Você pode baixar o projeto completo no GitHub: <a href="http://github.com/loiane/gridPrinter-extjs" target="_blank"><img class="alignnone size-full wp-image-1238" title="public" src="http://www.loiane.com/wp-content/uploads/2009/11/public.png" alt="public" width="16" height="16" /> http://github.com/loiane/gridPrinter-extjs</a></p>
<p>Até a próxima!</p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1110&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Fimpressao-de-grid-no-extjs-com-gridprinter%2F&amp;linkname=Impress%C3%A3o%20de%20GRID%20no%20EXTJS%20com%20GridPrinter"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/VtDEsvvZKcGSUNsiCqXghTbpcE0/0/da"><img src="http://feedads.g.doubleclick.net/~a/VtDEsvvZKcGSUNsiCqXghTbpcE0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VtDEsvvZKcGSUNsiCqXghTbpcE0/1/da"><img src="http://feedads.g.doubleclick.net/~a/VtDEsvvZKcGSUNsiCqXghTbpcE0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=Qjinblr-kAA:IVL2EQmi2Qg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Qjinblr-kAA:IVL2EQmi2Qg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=Qjinblr-kAA:IVL2EQmi2Qg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Qjinblr-kAA:IVL2EQmi2Qg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=Qjinblr-kAA:IVL2EQmi2Qg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Qjinblr-kAA:IVL2EQmi2Qg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Qjinblr-kAA:IVL2EQmi2Qg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=Qjinblr-kAA:IVL2EQmi2Qg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/Qjinblr-kAA" height="1" width="1"/>]]></content:encoded><description>O Grids é um dos componentes Ext JS mais utilizados, e geralmente representam dados/informações que o usuário gostaria de imprimir (como relatórios, por exemplo). Como o grid usualmente é parte de uma aplicação maior (não apenas contém o grid na página), apenas imprimir a página (Ctrl + P) não é uma boa solução, pois é [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/impressao-de-grid-no-extjs-com-gridprinter/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/impressao-de-grid-no-extjs-com-gridprinter/</feedburner:origLink></item><item><title>Carreira em TI: Currículo em Inglês</title><link>http://feedproxy.google.com/~r/Loiane/~3/l_Q2Ge76gMA/</link><category>carreira</category><category>currículo</category><category>currículo inglês</category><category>inglês</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Mon, 16 Nov 2009 02:00:39 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1257</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;">Uma das grandes dificuldades para as pessoas da área de TI é, muitas vezes, escrever um bom currículo em inglês. E ter um currículo em inglês, é essencial, já que inglês é tão importante quanto saber lógica de programação.</p>
<p style="text-align: justify;">Vou apresentar nesse post um exemplo de um currículo e dar algumas dicas do que você pode fazer para turbiná-lo e deixar bem apresentável.</p>
<p style="text-align: justify;">Na área da TI, um bom currículo não se avalia pela quantidade de páginas que tem. Aliás, não existe uma quantidade X de páginas que um currículo deve ter (pode ser diferente em outras profissões). Tudo depende da experiência que cada um tem, de quantos projetos e empresas que já passou. O mais importante é colocar as informações essenciais e não encher linguiça.</p>
<p style="text-align: justify;">Um outro ponto importante é escrever o currículo em <strong>3ª pessoa</strong>. Lembre-se que currículo é um documento, e não uma cartinha que está escrevendo.</p>
<p style="text-align: justify;">A chave principal é como você organiza o currículo: as <strong>informações </strong>mais <strong>importantes </strong>e mais <strong>relevantes </strong>para o <strong>empregador </strong>devem vir <strong>primeiro</strong>. Siga a ordem: dados de contato, resumo profissional, experiência, escolaridade, etc. Assim, quem estiver analisando seu currículo já vai saber se você tem o perfil necessário para preencher a vaga.</p>
<p style="text-align: justify;">Um bom currículo deve começar com seu nome seguido ou não dos seus dados pessoais (pode colocar no final do currículo). Pausa para explicação: dados pessoais são os seus dados de contato. Peloamordedeus, <strong>não coloque RG, CPF, endereço</strong>. Se o empregador quiser saber esses dados, ou vai te perguntar na entrevista ou vai pedir isso explicitamente no anúncio da vaga. Se o empregador não pedir explicitamente, não coloque. Só vai deixar o currículo mais feio. Coloque <strong>apenas nome, telefone de contato e email</strong>.</p>
<p style="text-align: justify;">Logo após o seu nome ou dados pessoais, vem o <strong>sumário</strong>. O sumário é um resumo da sua carreira profissional. Por exemplo: <em>Desenvolvedor Java com X anos de experiência, etc.</em></p>
<p style="text-align: justify;">No próprio sumário (ou após ele), você deve colocar os seus <em>conhecimentos técnicos</em>:<br />
<em>Linguagens: Java, C++;<br />
IDEs: Eclipse, Netbeans, etc.<br />
Frameworks: JSF, Struts, Spring</em></p>
<p style="text-align: justify;">Após o sumário e conhecimento técnicos, coloque quais são as <strong>experiências/empresas</strong> pelas quais já passou. Além disso, coloque um resumo das suas responsabilidade e/ou projetos relevantes nos quais participou.</p>
<p style="text-align: justify;">Um erro &#8220;<em>grotesco</em>&#8221; que vemos por aí é a tradução do nome das empresas para o inglês. Lembrem-se que não se traduz nome próprio. Se a empresa se chama &#8220;TI e Soluções&#8221;, coloque exatamente isso no currículo. Não vá colocar &#8220;IT and Solutions&#8221;, pois se a pessoa resolver fazer uma busca no Google, não vai encontrar a mesma empresa.</p>
<p style="text-align: justify;">Depois vem as informações a respeito da sua formação – <strong>Educação</strong>. Se já é formado, se tem pós, etc.</p>
<p style="text-align: justify;"><strong>Proefiência em línguas estrangeiras</strong>. Ah, essa é uma parte importantíssima e que a maioria das pessoas não organizam muito bem.<br />
Muitos colocam:<br />
Inglês: leitura: intermediário; conversão: bom, escrita: bom<br />
Nãããããããããããooooooo! FEIO!<br />
Isso é coisa para bolsas escolares ou outras posições acadêmicas. <strong>Para mercado de trabalho: <span style="color: #ff0000;">NÃO</span></strong>!</p>
<p style="text-align: justify;">Então como devo colocar: existem 4 níveis de proeficiência: <em>básico</em>, <em>intermediário</em>, <em>avançado </em>e <em>fluente</em>. Como cada um “acha” que está em um nível, muitas vezes, o empregador não sabe interpretar o que cada nível significa. Se quiser (e deve), é bom colocar uma <em><strong>legenda</strong></em>, assim, o empregador não terá dúvidas:</p>
<ul>
<li> <strong>Fluente</strong>: está apto para trabalhar no exterior</li>
<li> <strong>Avançado</strong>: apto para viajar para o exterior desacompanhado</li>
<li> <strong>Intermediário</strong>: leitura e escrita com conhecimentos verbais limitados (apto para viajar para o exterior com um assistente)</li>
<li> <strong>Básico</strong>: capaz de se comunicar com pessoas de outros países a um nível mínimo.</li>
</ul>
<p style="text-align: justify;">Depois, se for necessário, pode colocar uma parte de outras informações, como por exemplo: <strong>prêmios </strong>que ganhou, se tem experiência internacional (<strong>intercâmbio</strong>), se é palestrante, etc.</p>
<p style="text-align: justify;"><em>Obs.: Certificações devem ficar no sumário. (ou em alguma sessão expecífica, se pedido pelo empregador).</em></p>
<p style="text-align: justify;">E uma informação que é legal colocar: quando é possível começar no trabalho, caso passe no processo de seleção.</p>
<p style="text-align: justify;">Bem, esse é um currículo base. Deixe seu currículo base sempre <strong>atualizado</strong>. E dependendo da baga e/ou empresa, acrescente ou exclua informações. <strong>Personalize </strong>seu currículo de acordo com a necessidade. Isso faz toda a diferença.</p>
<p style="text-align: justify;">O primeiro exemplo de currículo é com os projetos relevantes, e o segundo exemplo é com as empresas pelas quais já passou. Escolha um modelo, e boa sorte!</p>
<p style="text-align: justify;">
<div id="__ss_2504330" style="width: 477px; text-align: left;"><a style="font: 14px Helvetica,Arial,Sans-serif; display: block; margin: 12px 0 3px 0; text-decoration: underline;" title="Cv Inglês Projetos - Java Developer" href="http://www.slideshare.net/loianeg/cv-ingls-projetos-java-developer">Cv Inglês Projetos &#8211; Java Developer</a><object style="margin: 0px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="477" height="510" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayerd.swf?doc=cvinglsprojetos-091115084411-phpapp02&amp;stripped_title=cv-ingls-projetos-java-developer" /><param name="allowfullscreen" value="true" /><embed style="margin: 0px;" type="application/x-shockwave-flash" width="477" height="510" src="http://static.slidesharecdn.com/swf/ssplayerd.swf?doc=cvinglsprojetos-091115084411-phpapp02&amp;stripped_title=cv-ingls-projetos-java-developer" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration: underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration: underline;" href="http://www.slideshare.net/loianeg">Loiane Groner</a>.</div>
</div>
<div id="__ss_2504331" style="width: 477px; text-align: left;"><a style="font: 14px Helvetica,Arial,Sans-serif; display: block; margin: 12px 0 3px 0; text-decoration: underline;" title="Cv Inglês Empresas - Java Developer" href="http://www.slideshare.net/loianeg/cv-ingls-empresas-java-developer">Cv Inglês Empresas &#8211; Java Developer</a><object style="margin: 0px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="477" height="510" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayerd.swf?doc=cvinglsempresas-091115084413-phpapp01&amp;stripped_title=cv-ingls-empresas-java-developer" /><param name="allowfullscreen" value="true" /><embed style="margin: 0px;" type="application/x-shockwave-flash" width="477" height="510" src="http://static.slidesharecdn.com/swf/ssplayerd.swf?doc=cvinglsempresas-091115084413-phpapp01&amp;stripped_title=cv-ingls-empresas-java-developer" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration: underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration: underline;" href="http://www.slideshare.net/loianeg">Loiane Groner</a>.</div>
</div>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1257&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Fcarreira-em-ti-curriculo-em-ingles%2F&amp;linkname=Carreira%20em%20TI%3A%20Curr%C3%ADculo%20em%20Ingl%C3%AAs"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/azq-6-fK1W-uBUx1emFVk0RFhaA/0/da"><img src="http://feedads.g.doubleclick.net/~a/azq-6-fK1W-uBUx1emFVk0RFhaA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/azq-6-fK1W-uBUx1emFVk0RFhaA/1/da"><img src="http://feedads.g.doubleclick.net/~a/azq-6-fK1W-uBUx1emFVk0RFhaA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=l_Q2Ge76gMA:tYxtjB7r8is:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=l_Q2Ge76gMA:tYxtjB7r8is:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=l_Q2Ge76gMA:tYxtjB7r8is:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=l_Q2Ge76gMA:tYxtjB7r8is:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=l_Q2Ge76gMA:tYxtjB7r8is:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=l_Q2Ge76gMA:tYxtjB7r8is:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=l_Q2Ge76gMA:tYxtjB7r8is:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=l_Q2Ge76gMA:tYxtjB7r8is:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/l_Q2Ge76gMA" height="1" width="1"/>]]></content:encoded><description>Uma das grandes dificuldades para as pessoas da área de TI é, muitas vezes, escrever um bom currículo em inglês. E ter um currículo em inglês, é essencial, já que inglês é tão importante quanto saber lógica de programação.
Vou apresentar nesse post um exemplo de um currículo e dar algumas dicas do que você pode [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/carreira-em-ti-curriculo-em-ingles/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/carreira-em-ti-curriculo-em-ingles/</feedburner:origLink></item><item><title>Resultado do Sorteio do Convite: Google Wave</title><link>http://feedproxy.google.com/~r/Loiane/~3/cmgeW72Hm7I/</link><category>Google Wave</category><category>google</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Wed, 11 Nov 2009 03:56:45 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1259</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p><a href="http://www.loiane.com/2009/11/sorteio-de-convite-google-wave/" target="_blank">Ontem</a>, em parceira com o <a href="http://esborniacomputacional.blogspot.com/" target="_blank">Alan </a>(que doou 2 convites), fizemos um sorteio de <a href="http://www.loiane.com/2009/11/sorteio-de-convite-google-wave/" target="_blank">3 convites para o Google Wave</a>.</p>
<p>A pergunta era muito simples: Quais são os 3 erros do código abaixo (sendo que o código deveria ser executado com sucesso)?</p>
<p style="text-align: center;"><a href="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_wave_loiane.PNG" target="_blank"><img class="aligncenter size-full wp-image-1222" style="border: 1px solid black;" title="sorteio_wave_loiane" src="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_wave_loiane.PNG" alt="sorteio_wave_loiane" width="492" height="123" /></a></p>
<p style="text-align: justify;"><strong>Vamos então à resposta correta:</strong></p>
<p style="text-align: justify;">1- Como deveríamos executar o código, precisamos de um método <strong>main</strong>. O método do código é <strong>Main</strong>, o que não está errado (não gera erro de compilação), mas neste caso, é um método como outro qualquer. E como precisamos executar o código, deve ser <strong>main</strong>.</p>
<p style="text-align: justify;">2- <strong>System.out.printl</strong> não existe, gera um erro de compilação! O correto poderia ser <strong>System.out.println</strong>, <strong>System.out.print </strong>ou até mesmo <strong>System.out.printf</strong></p>
<p style="text-align: justify;">3- Tá faltando fechar aspas duplas no final da frase <strong>&#8220;Quero um convite para o Wave</strong><span style="color: #ff0000;"><strong>&#8220;</strong></span></p>
<p style="text-align: justify;"><strong>E as pegadinhas:</strong></p>
<p style="text-align: justify;">1- A primeira é com o próprio método Main. Não está errado, mas no contexto da pergunta, era um erro.</p>
<p style="text-align: justify;">2- Declaração do pacote com letra maiúscula. Não é um erro, mas não está dentro da convenção java.</p>
<p style="text-align: justify;">3- E o que mais confundiu algumas pessoas, foi o argumento <strong>string</strong>. Como estamos bem acostumados a sempre escrever <strong>String[] args</strong>, algumas pessoas acabam achando que o nome do parâmetro só pode ser <strong>args</strong>. Para curiosidade de alguns, você pode colocar o nome que você quiser, desde que não seja uma palavra reservada da linguagem java. E <strong>string</strong> não é uma palavra reservada!</p>
<p><strong>Vamos ao resultado dos 3 ganhadores do convite para o Google Wave</strong>:</p>
<p>Cada um recebeu um número de acordo com a ordem de chegada, ou seja, quem comentou primeiro, ficou com o número 1 e assim em diante.</p>
<p>E os 3 sorteados foram os números: 39, 11 e 21:</p>
<p style="text-align: center;"><a href="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_01.PNG"><img class="size-full wp-image-1260 aligncenter" title="sorteio_google_wave_01" src="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_01.PNG" alt="sorteio_google_wave_01" width="167" height="185" /></a><a href="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_02.PNG"><img class="size-full wp-image-1261 aligncenter" title="sorteio_google_wave_02" src="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_02.PNG" alt="sorteio_google_wave_02" width="167" height="185" /></a><a href="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_03.PNG"><img class="size-full wp-image-1262 aligncenter" title="sorteio_google_wave_03" src="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_03.PNG" alt="sorteio_google_wave_03" width="167" height="187" /></a></p>
<p style="text-align: justify;">Conferindo na planilha:</p>
<p style="text-align: justify;">Número 39:</p>
<p style="text-align: center;"><a href="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_04.PNG"><img class="size-full wp-image-1263 aligncenter" title="sorteio_google_wave_04" src="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_04.PNG" alt="sorteio_google_wave_04" width="472" height="120" /></a></p>
<p style="text-align: justify;">Número 11:</p>
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_05.PNG"><img class="aligncenter size-full wp-image-1264" title="sorteio_google_wave_05" src="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_05.PNG" alt="sorteio_google_wave_05" width="472" height="121" /></a></p>
<p style="text-align: justify;">Número 21:</p>
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_06.PNG"><img class="aligncenter size-full wp-image-1265" title="sorteio_google_wave_06" src="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_google_wave_06.PNG" alt="sorteio_google_wave_06" width="472" height="120" /></a></p>
<p style="text-align: justify;">Parabéns ao Luis Gustavo Reis, Kaio e Adriano Ohana! Vou entrar em contato com vocês, e se não responderem até o fim do dia, farei um novo sorteio, ok?</p>
<p style="text-align: justify;">E se pintar mais algum convite, coloco um outro desafio aqui no blog. Quem sabe na próxima, pode ser um desafio de lógica ou uma questão pegadinha da certificação!</p>
<p style="text-align: justify;">Até a próxima!</p>
<p style="text-align: justify;"> <img src='http://www.loiane.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1259&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Fresultado-do-sorteio-do-convite-google-wave%2F&amp;linkname=Resultado%20do%20Sorteio%20do%20Convite%3A%20Google%20Wave"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/iQ8Juox-kcCHi4G42h5xYlMwd20/0/da"><img src="http://feedads.g.doubleclick.net/~a/iQ8Juox-kcCHi4G42h5xYlMwd20/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/iQ8Juox-kcCHi4G42h5xYlMwd20/1/da"><img src="http://feedads.g.doubleclick.net/~a/iQ8Juox-kcCHi4G42h5xYlMwd20/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=cmgeW72Hm7I:cE6ECfi3h7I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=cmgeW72Hm7I:cE6ECfi3h7I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=cmgeW72Hm7I:cE6ECfi3h7I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=cmgeW72Hm7I:cE6ECfi3h7I:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=cmgeW72Hm7I:cE6ECfi3h7I:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=cmgeW72Hm7I:cE6ECfi3h7I:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=cmgeW72Hm7I:cE6ECfi3h7I:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=cmgeW72Hm7I:cE6ECfi3h7I:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/cmgeW72Hm7I" height="1" width="1"/>]]></content:encoded><description>Ontem, em parceira com o Alan (que doou 2 convites), fizemos um sorteio de 3 convites para o Google Wave.
A pergunta era muito simples: Quais são os 3 erros do código abaixo (sendo que o código deveria ser executado com sucesso)?

Vamos então à resposta correta:
1- Como deveríamos executar o código, precisamos de um método main. [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/resultado-do-sorteio-do-convite-google-wave/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/resultado-do-sorteio-do-convite-google-wave/</feedburner:origLink></item><item><title>Sorteio de convite: Google Wave</title><link>http://feedproxy.google.com/~r/Loiane/~3/sxJ7rx3kvw4/</link><category>Google Wave</category><category>google</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Loiane</dc:creator><pubDate>Tue, 10 Nov 2009 01:00:28 PST</pubDate><guid isPermaLink="false">http://www.loiane.com/?p=1216</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p style="text-align: justify;"><a href="http://www.loiane.com/wp-content/uploads/2009/07/wavelogo.png"><img class="size-full wp-image-734 alignleft" title="wavelogo" src="http://www.loiane.com/wp-content/uploads/2009/07/wavelogo.png" alt="wavelogo" width="147" height="147" /></a> Os primeiros convites que ganhei distribuí para o pessoal mais chegado. Agora ganhei mais um convite e resolvi sorteá-lo aqui no blog, em decorrência dos emails e <a href="http://www.loiane.com/2009/07/ganhei-uma-conta-no-google-wave-parte-i/" target="_blank">pedidos de convite</a> que tenho recebido. Infelizmente não tenho convites suficientes para dar a todos que me pediram, então vou sorteá-lo.</p>
<p style="text-align: justify;">Para participar do <strong>sorteio</strong> é muito simples: Basta deixar um comentário aqui no post e responer à pergunta abaixo.</p>
<p style="text-align: justify;">Preencha o formulário do comentário com seu nome e email (o email não fica visível).</p>
<p style="text-align: justify;">E é claro, responder a pergunta: <em><strong>quais são os <span style="color: #ff0000;">3</span> erros do código abaixo</strong></em>?</p>
<p style="text-align: justify;">Ps.: quando excutarmos esse código, deve imprimir <span style="text-decoration: underline;"><em>Quero um convite para o Wave</em></span>.</p>
<p style="text-align: center;"><a href="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_wave_loiane.PNG" target="_blank"><img class="aligncenter size-full wp-image-1222" style="border: 1px solid black;" title="sorteio_wave_loiane" src="http://www.loiane.com/wp-content/uploads/2009/11/sorteio_wave_loiane.PNG" alt="sorteio_wave_loiane" width="492" height="123" /></a></p>
<p style="text-align: justify;">Fácil né?</p>
<p style="text-align: justify;">Divulgarei o <strong>resultado do sorteio</strong> na quarta feira, e apenas aceitarei os comentários feitos na <span style="text-decoration: underline;">terça</span>, e com a resposta correta, ok?</p>
<p style="text-align: justify;">Mais uma vez, tenho apenas um convite! <img src='http://www.loiane.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p style="text-align: justify;">Atualização: O <a href="http://esborniacomputacional.blogspot.com/" target="_blank">Alan</a>, gentilmente doou mais dois convites, então teremos <em><strong>3 sortudos</strong></em>!</p>
<p style="text-align: justify;">Boa sorte a todos!</p>
<p style="text-align: justify;"> <img src='http://www.loiane.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<img src="http://www.loiane.com/?ak_action=api_record_view&id=1216&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.loiane.com%2F2009%2F11%2Fsorteio-de-convite-google-wave%2F&amp;linkname=Sorteio%20de%20convite%3A%20Google%20Wave"><img src="http://www.loiane.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>
<p><a href="http://feedads.g.doubleclick.net/~a/eUGqf7X5femYKOvOO2Ws4dF42zI/0/da"><img src="http://feedads.g.doubleclick.net/~a/eUGqf7X5femYKOvOO2Ws4dF42zI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/eUGqf7X5femYKOvOO2Ws4dF42zI/1/da"><img src="http://feedads.g.doubleclick.net/~a/eUGqf7X5femYKOvOO2Ws4dF42zI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Loiane?a=sxJ7rx3kvw4:tnZqW6fjXew:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=sxJ7rx3kvw4:tnZqW6fjXew:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Loiane?i=sxJ7rx3kvw4:tnZqW6fjXew:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=sxJ7rx3kvw4:tnZqW6fjXew:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Loiane?i=sxJ7rx3kvw4:tnZqW6fjXew:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=sxJ7rx3kvw4:tnZqW6fjXew:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Loiane?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=sxJ7rx3kvw4:tnZqW6fjXew:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Loiane?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Loiane?a=sxJ7rx3kvw4:tnZqW6fjXew:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Loiane?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Loiane/~4/sxJ7rx3kvw4" height="1" width="1"/>]]></content:encoded><description>Os primeiros convites que ganhei distribuí para o pessoal mais chegado. Agora ganhei mais um convite e resolvi sorteá-lo aqui no blog, em decorrência dos emails e pedidos de convite que tenho recebido. Infelizmente não tenho convites suficientes para dar a todos que me pediram, então vou sorteá-lo.
Para participar do sorteio é muito simples: [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.loiane.com/2009/11/sorteio-de-convite-google-wave/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">65</slash:comments><feedburner:origLink>http://www.loiane.com/2009/11/sorteio-de-convite-google-wave/</feedburner:origLink></item></channel></rss>
