<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1332585484712215197</id><updated>2015-11-22T10:13:51.757-03:00</updated><category term="javaBahia"/><category term="java"/><category term="comunidade"/><category term="cassandra"/><category term="linguagil"/><category term="nosql"/><category term="easy-cassandra"/><category term="comunidade java"/><category term="openjdk"/><category term="Bahia Java Day"/><category term="ekaaty"/><category term="java ee6"/><category term="java7"/><category term="open source"/><category term="python"/><category term="soujava"/><category term="agil"/><category term="agile"/><category term="brasil"/><category term="comunidade bahia"/><category term="comunidade brasileira"/><category term="evento"/><category term="google"/><category term="java ee"/><category term="nosqlba"/><category term="Dojo"/><category term="android"/><category term="apache cassandra"/><category term="bancos nosqls"/><category term="bigdata"/><category term="cassandra orm"/><category term="cloud"/><category term="eclipse"/><category term="javaonebrazil"/><category term="linguagil 3.0"/><category term="opensource"/><category term="Desenvolvimento em soluções Open Source"/><category term="Easy-cassandra api"/><category term="Espírito Livre"/><category term="Feira de Formandos 2009"/><category term="Feira de Formandos 2010"/><category term="Java para leigos"/><category term="ORM para o Cassandra"/><category term="big data"/><category term="cloudcamp"/><category term="codingdojo"/><category term="comunidade baiana"/><category term="células acadêmicas faculdade area1"/><category term="faculdade area1"/><category term="flisol"/><category term="framework"/><category term="gdg"/><category term="guice"/><category term="java maratona salvador"/><category term="javaman"/><category term="javaonebrasil"/><category term="javascript"/><category term="linguágil"/><category term="nodejs"/><category term="nosql-ba"/><category term="open"/><category term="ruby"/><category term="sete"/><category term="software livre"/><category term="spring"/><category term="tdd"/><category term="tomcat"/><category term="xp"/><category term="19 da Revista Espírito Livre"/><category term="20 da Revista Espírito Livre"/><category term="2010"/><category term="21 da Revista Espírito Livre"/><category term="BI"/><category term="ENECOMP 2009"/><category term="Ekaaty 2010"/><category term="Ekaaty 4"/><category term="Ekaaty no freedom day 2009"/><category term="Espírito Livre 16"/><category term="Espírito Livre 18"/><category term="FIB"/><category term="Freedom day 2009"/><category term="Freedom day 2009 aracaju"/><category term="ID"/><category term="ORM NOSQL"/><category term="agilebahia"/><category term="androidbahia"/><category term="api cassandra"/><category term="atraso"/><category term="auto-gerenciável"/><category term="bahia"/><category term="bahiajs"/><category term="blender day bahia 2010"/><category term="cache"/><category term="casandra java framework"/><category term="cassandra framework"/><category term="cassandra java framework"/><category term="cassandra orm api"/><category term="cassandraapache"/><category term="celulas academicas"/><category term="classificação nosqls"/><category term="clean code"/><category term="cleanup"/><category term="clen"/><category term="cloud computing"/><category term="coding dojo"/><category term="comilação dinâmica"/><category term="como foi a Feira de Formandos 2009"/><category term="compilação"/><category term="compile"/><category term="comunidada"/><category term="data science"/><category term="delay tier"/><category term="desenvolvimento livre"/><category term="documentos"/><category term="easy-cassa"/><category term="easycassandra"/><category term="eclipse10anos"/><category term="ekaaty 04"/><category term="examplo guice 3.0"/><category term="filsol2012"/><category term="flisolssa"/><category term="framework mvc"/><category term="gdg Salvador"/><category term="gdgssa"/><category term="gerenciável"/><category term="github"/><category term="google brasil"/><category term="google guice 3.0"/><category term="guice 3.0"/><category term="guice com hibernate"/><category term="gurubahia"/><category term="gwt"/><category term="high client cassandra"/><category term="ifba"/><category term="injeção de dependência"/><category term="java 7"/><category term="java EE 6"/><category term="java ee 7"/><category term="java mvc"/><category term="java8"/><category term="java9"/><category term="javabahia day"/><category term="javafx"/><category term="javonebrasil"/><category term="jdk"/><category term="jpa"/><category term="js"/><category term="jsBahia"/><category term="jsf"/><category term="jsf20"/><category term="justjava"/><category term="jvm"/><category term="linguagil.pythonbahia"/><category term="linguagil2010"/><category term="linguagil2011"/><category term="linguagil2012"/><category term="linux"/><category term="lucene"/><category term="maratona programação salvador 2010"/><category term="maven"/><category term="mitos"/><category term="mobile"/><category term="modelagem nosql"/><category term="movel"/><category term="moving java foward"/><category term="mvc"/><category term="nativo"/><category term="objective c"/><category term="oo"/><category term="orm cassandra"/><category term="palestras"/><category term="patterns"/><category term="poliglota"/><category term="processo software"/><category term="programacao"/><category term="pythonbahia"/><category term="qualidade de código"/><category term="refactor"/><category term="refatoração"/><category term="resultado da Feira de Formandos 2009"/><category term="revista 25"/><category term="salvador"/><category term="software"/><category term="sonar"/><category term="spring data"/><category term="spring-data"/><category term="sql"/><category term="tdc"/><category term="tier"/><category term="tio senha"/><category term="tipos bancos"/><category term="verdades"/><category term="webmobile"/><category term="ágil"/><title type='text'>Desenvolvimento com soluções livres</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>111</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-1458287972004532031</id><published>2014-04-07T20:40:00.002-03:00</published><updated>2014-04-08T07:46:05.580-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="easy-cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="modelagem nosql"/><title type='text'>Dicas e considerações iniciais ao usar o Cassandra</title><content type='html'>&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://cassandra.apache.org/media/img/cassandra_logo.png&quot; height=&quot;64&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Ao se pensar em um banco de dados a primeira coisa que um desenvolvedor de software pensa é em realizar buscas, queries, realizar a normalização. Mesmo depois de tanto tempo com várias discussões com NOSQL, muitas pessoas ainda acreditam que o NOSQL, mas vale lembrar que muitas coisas mudaram no mundo do desenvolvimento de software e isso inclui os bancos de dados, existem muitas soluções além da convencional para armazenar informações. O objetivo desse artigo é discutir é ajudar aquelas pessoas que pretendem ao utilizam o Cassandra em pouco tempo fornecendo algumas dicas.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Saber quando utilizar a tecnologia:&lt;/b&gt; Antes de escolher uma tecnologia é muito importante entender bem o seu problema e em seguida entender o motivo no qual a tecnologia escolhida será útil em seu projeto. Com o Cassandra não é diferente, ele é um banco NOSQL é interessante seu uso quando se precisa de uma alta disponibilidade e tolerância a falhas (seria o A e o P no teorema do CAP). Possui uma escalabilidade linear, ou seja, quanto mais nós em seu datacenter maior será o número de requisições por segundo.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; O Cassandra não é relacional: &lt;/b&gt;Uma coisa muito comum das pessoas ao aprender uma nova tecnologia é tentar realizar relações com a técnologia já conhecida, o problema é que em alguns casos os estudantes ultrapassam o estudo e tentam simular o SQL dentro do Cassandra. O Cassandra foi feito em cima de um outro “paradigma” de persistência o BASE é muito importante entender que ao tentar realizar emulações de ACID dentro de um BASE, não se conseguirá atingir nenhum dos objetivos (O erro ficará oculto com uma massa pequena, mas quando for para produção com uma grande massa o erro será desastroso).&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Não existe normalização no Cassandra:&lt;/b&gt; Um erro muito comum dentro do Cassandra é tentar realizar a normalização. Como já dito anteriormente o Cassandra foi feito em cima de outro paradigma. O fato é que a normalização se tornou muito popular em 1970, quando o armazenamento era muito caro, assim o desafio era conter a informação de forma econômica, dessa forma não repeti-la. Atualmente o armazenamento está ficando cada vez mais barato e o desafio mudou: É lidar, por exemplo, com um número de requisição cada vez maior (milhões, talvez bilhões).&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Hierarquia dentro do Cassandra:&lt;/b&gt; A hierarquia dos bancos relacionais segue o seguinte fluxo: banco, tabela e coluna. No Cassandra acontece de forma semelhante no topo temos o KeySpace, família de colunas, e a coluna, esse por sua vez é composto por um bloco com três informações: O nome do tampo, o valor do campo e o timestamp.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; No Cassandra não existe transação:&lt;/b&gt; O Cassandra foi feito para trabalhar com uma alta taxa de disponibilidade, desse modo, é inviável que exista transação, é possível enviar vários registros em uma mesma família de coluna ao mesmo tempo. Para saber qual versão é a mais recente ele utiliza o timestamp existente no campo, acontece que quando um campo é inserido, ele recebe o timestamp do momento que foi inserido.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Nível de Consistência:&lt;/b&gt; O Cassandra trabalha em cima da replicação da informação para ter sua característica tolerante a falhas. Ao se criar um keyspace setta o fator de réplica, que define a quantidade de nós na qual a informação será duplicada. Após isso toda requisição, tanto escrita quanto leitura, é feita em cima do fator de réplica ao enviar uma informação para o Cassandra é importante entender a diferença entre disponibilidade e consistência. Se ao realizar uma requisição for definido uma consistência alta, por exemplo, o ALL que é o número de fator de réplica defina no momento da criação/alteração do keyspace, o processo só será finalizado quando enviar para todos os nós definido. Diferente de um nível baixo, como o ONE que enviará a solicitação para apenas um nó, deixando os outros nós prontos para trabalharem em outras requisições, realizando a réplica em background elevando assim o nível de disponibilidade.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Não existe relacionamento:&lt;/b&gt; Uma boa prática de para usar o Cassandra é desnormalizando sua base, desse modo, não existem relacionamentos. Se, por exemplo, você tem duas tabelas, pessoa e endereço em uma relação um para um, no Cassandra o mais correto seria uma família de coluna contendo as duas tabelas, mesmo que existam duas possas que tenham o mesmo endereço, replicando o endereço.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Busque informações pela chave:&lt;/b&gt; O uso de um campo auto-increment como chave no Banco de dados deve ser evitado. Dentro do Cassandra, por padrão, o único campo no qual se pode buscar informações é a chave, caso você queria adicionar mais campos “buscáveis” basta defini-lo como índice, mas se deve evitar por questão de performance. No caso de uma tabela pessoa a chave poderia ser o cpf ou o nickname.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; O único campo obrigatório é a chave: &lt;/b&gt;No Cassandra o único campo obrigatório é a chave, desse modo, podem existir registros com 10, 20, 100, ou nenhuma coluna, desde que o mesmo possua uma chave. Os campos são criados por demanda, se um registro não tiver o campo “telefone”, por exemplo, ele de fato não existirá, diferente do banco relacional em que a coluna existe para todos os registros com o valor null.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Não existe Constraints:&lt;/b&gt; O constraints muito utilizado para regras dos seus dados não existem dentro do Cassandra, pode parecer estranho para alguns, mas atualmente tal recurso não se torna desnecessário. Não é muito comum, por exemplo, colocar para o usuário a mesma mensagem de erro que o banco retornou como o: “there is no unique constraint matching given keys for referenced table &quot;tec_configurations&quot;” ou “null value in column &quot;pessoa_nome&quot; violates not-null constraint” e sim “nickname já cadastrado” e “campo nome obrigatório”, ou seja, as regras já estão dentro do seu software. Outro exemplo, caso se insira, utilizando um insert, a mesma informação duas vezes, vai funcionar normalmente já que a informação é apenas colocada lá, caso ela já exista será sobrescrita.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Views materializadas:&lt;/b&gt; Em alguns momentos precisamos realizar cálculos em uma aplicação (somatório, média, etc.). Imaginando um sistema que mede a temperatura de uma determinada cidade e os sensores enviam informação a cada milissegundo pode-se deixar essa informação preprocessada em uma família de colunas, muito semelhante as view materializadas nos bancos relacionais. Esse recurso é muito utilizado, é muito comum se ter várias famílias de colunas como estas, o ideal é que sua modelagem seja feita de acordo com sua busca. No caso do sistema de temperatura se pode ter uma família de colunas para média por dia, mês e ano, para acompanhar o histórico de temperatura de uma cidade.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Sua aplicação também precisa escalar:&lt;/b&gt; Não adianta ter um banco escalável preparado para receber mil requisições por segundo, se sua aplicação envia apenas 1 requisição por segundo. Desse modo é importante entender que sua aplicação também precisa escalar.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Cassandra Query Language:&lt;/b&gt; Para facilitar a vida do desenvolvedor existe o Cassandra Query Language, o CQL. Com ele é possível criar e modificar estruturas e realizar manipulações de dados de uma maneira mais tranquila e muito mais fácil. O interessante é que esse recurso possui uma sintaxe muito semelhante ao SQL. Para executar e verificar os CQLs se pode usar o DataStax DevCenter que possui sua interface baseada no eclipse.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Coleções muitos grandes:&lt;/b&gt; Um recurso que entrou recentemente no banco é o uso de três coleções: o list (uma lista de informações), o set (uma lsita sem valor duplicado), e um map (um dicionário de dados, possui um valor para uma chave correspondente). Esse recurso é muito interessante e é importante utilizado, mas tome cuidado para que essas coleções não sejam muito grandes. O interessante é que ela no geral não ultrapassagem 260KB ou 75KB.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Acompanhe seus nós:&lt;/b&gt; É interessante acompanhar a performance, topologia do seu datacenter. Na configuração o recomendado é que o commitlog e o sstable estejam em discos diferentes e que esses discos sejam SSDs. Outra dica importante é ter cuidado com o tamanho do heap na maioria dos casos o padrão resolverá (é feito um calculo de heap baseado em memória disponível), caso modifique o recomendado é que não ultrapasse os 8GB. Uma solução para acompanhar seus nós é o DataStax OpsCenter.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt; Concluindo, nesse pequeno artigo foi demonstrado algumas dicas inicias para os usuários do Cassandra, demonstrando que é muito comum tentar simular o SQL dentro do Cassandra, tenderá a ter consequências desastrosas.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;b&gt;Links:&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;a href=&quot;http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html&quot;&gt;http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/mattdennis&quot;&gt;http://www.slideshare.net/mattdennis&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.datastax.com/download&quot;&gt;http://www.datastax.com/download&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;a href=&quot;http://cassandra.apache.org/doc/cql3/CQL.html&quot;&gt;http://cassandra.apache.org/doc/cql3/CQL.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/1458287972004532031/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2014/04/dicas-e-consideracoes-iniciais-ao-usar.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/1458287972004532031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/1458287972004532031'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2014/04/dicas-e-consideracoes-iniciais-ao-usar.html' title='Dicas e considerações iniciais ao usar o Cassandra'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-9181130738796215615</id><published>2014-02-13T19:33:00.000-03:00</published><updated>2014-02-13T19:35:07.012-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="easy-cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="framework"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="orm cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="spring"/><title type='text'>Easy-Cassandra, a versão 2.0.1</title><content type='html'>Lançada a nova versão do Easy-Cassandra, a versão 2.0.1, dentre as novidades podemos citar;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Refatoração nos contrutores das fábricas de sessão&lt;/li&gt;&lt;li&gt;QueryBuilder (InsertBuilder, UpdateBuilder, DeleteBuilder, SelectBuilder e BatchBuilder)&lt;/li&gt;&lt;li&gt;Maior velocidade na leitura e escrita&lt;/li&gt;&lt;li&gt;Suporte nos processos assíncronos&lt;/li&gt;&lt;li&gt;Maior suporte ao Cassandra com Spring-Data&lt;/li&gt;&lt;/ul&gt;Um ponto importante é que para facilitar a configuração foi criada uma classe que é passada no parâmetro, a classe ClusterInformation, dessa maneira fica mais simples (além do código mais limpo, afinal sobrecarga de construtores não é uma boa prática) de se criar simples configurações para a fábrica. Como, por exemplo: &lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;ClusterInformation clusterInformation = ClusterInformation.create()&lt;br /&gt;                .addHost(HOST)&lt;br /&gt;                .withDefaultKeySpace(KEY_SPACE).withUser(USER).withPassword(PASS);&lt;br /&gt;        easyCassandraManager = new EasyCassandraManager(clusterInformation);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;small&gt;Criando configuração para a fábrica de conexão&lt;/small&gt;&lt;br /&gt;Dessa forma a configuração para usar o &lt;a href=&quot;http://www.devmedia.com.br/cassandra-com-spring-data-no-easy-cassandra/28946&quot; target=&quot;_blank&quot;&gt; Spring&lt;/a&gt; no Cassandra também mudou para:&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;&lt;beans xmlns:context=&quot;http://www.springframework.org/schema/context&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://www.springframework.org/schema/beans&quot; xsi:schemalocation=&quot;http://www.springframework.org/schema/context&lt;br /&gt;          http://www.springframework.org/schema/context/spring-context-3.0.xsd&lt;br /&gt;          http://www.springframework.org/schema/beans&lt;br /&gt;          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;context:component-scan base-package=&quot;org.easycassandra.persistence.cassandra.spring&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;bean class=&quot;org.easycassandra.persistence.cassandra.ClusterInformation&quot; id=&quot;clusterInformation&quot;&gt;&lt;br /&gt; &lt;property name=&quot;keySpace&quot; value=&quot;campus&quot;&gt;&lt;br /&gt; &lt;property name=&quot;hosts&quot;&gt;&lt;br /&gt;  &lt;list&gt;&lt;br /&gt;   &lt;value&gt;localhost&lt;/value&gt;&lt;br /&gt;  &lt;/list&gt;&lt;br /&gt; &lt;/property&gt;&lt;br /&gt;&lt;/property&gt;&lt;/bean&gt;&lt;br /&gt;&lt;br /&gt;&lt;bean class=&quot;org.easycassandra.persistence.cassandra.spring.CassandraFactoryAnnotation&quot; id=&quot;cassandraFactory&quot;&gt;&lt;br /&gt; &lt;constructor-arg name=&quot;clusterInformation&quot; ref=&quot;clusterInformation&quot;&gt;&lt;br /&gt; &lt;property name=&quot;annotatedClasses&quot;&gt;&lt;br /&gt;  &lt;list&gt;&lt;br /&gt;   &lt;value&gt;org.easycassandra.persistence.cassandra.spring.entity.Contact&lt;/value&gt;&lt;br /&gt;            &lt;value&gt;org.easycassandra.bean.model.Step&lt;/value&gt;&lt;br /&gt;            &lt;value&gt;org.easycassandra.bean.model.Weight&lt;/value&gt;&lt;br /&gt;  &lt;/list&gt;&lt;br /&gt; &lt;/property&gt;&lt;br /&gt;&lt;/constructor-arg&gt;&lt;/bean&gt;&lt;br /&gt;&lt;br /&gt;&lt;bean class=&quot;org.easycassandra.persistence.cassandra.spring.SimpleCassandraTemplateImpl&quot; id=&quot;cassandraTemplate&quot;&gt;&lt;br /&gt; &lt;constructor-arg name=&quot;factory&quot; ref=&quot;cassandraFactory&quot;&gt;&lt;br /&gt;&lt;/constructor-arg&gt;&lt;/bean&gt;&lt;br /&gt;&lt;br /&gt;&lt;/context:component-scan&gt;&lt;/beans&gt;&lt;br /&gt;&lt;/pre&gt;&lt;small&gt;Nova configuração do Spring no Easy-Cassandra&lt;/small&gt;&lt;br /&gt;Talvez a melhoria mais marcante nessa versão são os recursos dos QueryBuilders, os queryBuilders são maneiras muito mais fácil de fazer interações com o Cassandra com configurações adversas de uma maneira mais simples, com ele é possível definir o nível de consistência, definir o timeStamp, quais campos serão manipulados.&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt; SimpleID id = new SimpleID();&lt;br /&gt;    id.setIndex(ONE_HUNDRED_THIRTY);&lt;br /&gt;    id.setKey(ONE_HUNDRED_THIRTY);&lt;br /&gt;    UpdateBuilder&lt;simplequerybuilder&gt; update = template.updateBuilder(SimpleQueryBuilder.class, key);&lt;br /&gt;    update.put(&quot;map&quot;, &quot;name&quot;, &quot;otavioMap&quot;).value(&quot;value&quot;, TEN_DOUBLE).execute();&lt;br /&gt;&lt;br /&gt;&lt;/simplequerybuilder&gt;&lt;/pre&gt;Simples exemplo inserindo valores a partir da chave   &lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;UpdateBuilder&lt;simplequerybuilder&gt; update = persistence.updateBuilder(SimpleQueryBuilder.class);&lt;br /&gt; update.whereEq(Constant.KEY, Constant.ONE).whereEq(Constant.INDEX, Constant.ONE).addList(&quot;list&quot;, &quot;otavioList&quot;).execute();&lt;br /&gt;&lt;br /&gt;&lt;/simplequerybuilder&gt;&lt;/pre&gt;criando toda a query de atualização  &lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt; UpdateBuilder&lt;simplequerybuilder&gt; update = persistence.updateBuilder(SimpleQueryBuilder.class);&lt;br /&gt; update.whereEq(Constant.KEY, Constant.ONE).whereEq(Constant.INDEX, Constant.ONE).value(&quot;value&quot;, 12D).executeAsync(new ResultAsyncCallBack&lt;boolean&gt;() {&lt;br /&gt;    @Override&lt;br /&gt;    public void result(Boolean bean) {&lt;br /&gt;        // do some action&lt;br /&gt;    }&lt;br /&gt;});&lt;br /&gt;&lt;/boolean&gt;&lt;/simplequerybuilder&gt;&lt;/pre&gt;&lt;small&gt; executando uma atualização assincronamente&lt;/small&gt; &lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;InsertBuilder&lt;simplequerybuilder&gt; insert= persistence.updateBuilder(SimpleQueryBuilder.class);&lt;br /&gt;Set&lt;string&gt; set = new HashSet&amp;lt;&amp;gt;();&lt;br /&gt;set.add(&quot;Linda&quot;);&lt;br /&gt;Map&lt;string string=&quot;&quot;&gt; map = new HashMap&amp;lt;&amp;gt;();&lt;br /&gt;map.put(&quot;love&quot;, &quot;Otavio and Poliana&quot;);&lt;br /&gt;insert.value(Constant.KEY, Constant.ONE_HUNDRED).value(Constant.INDEX,&lt;br /&gt;            Constant.ONE_HUNDRED).value(Constant.LIST_COLUMN, Arrays.asList(&quot;Poliana&quot;, &quot;Otavio&quot;, &quot;Love&quot;)).value(Constant.SET_COLUMN, set).value(&quot;map&quot;, map).execute();&lt;br /&gt;&lt;br /&gt;&lt;/string&gt;&lt;/string&gt;&lt;/simplequerybuilder&gt;&lt;/pre&gt;&lt;small&gt;Realizando inserção&lt;/small&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;  SimpleID id = new SimpleID();&lt;br /&gt;    id.setIndex(ONE_HUNDRED_TWO);&lt;br /&gt;    id.setKey(ONE_HUNDRED_TWO);&lt;br /&gt;    SimpleBean simpleBean = new SimpleBean();&lt;br /&gt;    simpleBean.setId(id);&lt;br /&gt;    simpleBean.setValue(VALUE);&lt;br /&gt;    InsertBuilder&lt;simplequerybuilder&gt; insert2 = persistence.updateBuilder(simpleBean);&lt;br /&gt;    insert2.executeAsync((new ResultAsyncCallBack&lt;boolean&gt;() {&lt;br /&gt;    @Override&lt;br /&gt;    public void result(Boolean bean) {&lt;br /&gt;        // do some action&lt;br /&gt;    }&lt;br /&gt;    });&lt;br /&gt;&lt;/boolean&gt;&lt;/simplequerybuilder&gt;&lt;/pre&gt;&lt;small&gt;realizando inserção de modo assíncrono&lt;/small&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;  DeleteBuilder&lt;simplebean&gt; delete = persistence.deleteBuilder(SimpleQueryBuilder.class); &lt;br /&gt;    delete.whereEq(Constant.INDEX, ONE_HUNDRED_TWO).whereEq(Constant.KEY, ONE_HUNDRED_TWO).execute();&lt;br /&gt;&lt;br /&gt;    DeleteBuilder&lt;simplebean&gt; delete2 = persistence.deleteBuilder(SimpleQueryBuilder.class,&quot;map&quot;, &quot;list&quot;, &quot;set&quot;); //Delete specific columns&lt;br /&gt;    delete2 .whereEq(Constant.INDEX, ONE_HUNDRED_TWO).whereEq(Constant.KEY, ONE_HUNDRED_TWO).execute();&lt;br /&gt;&lt;br /&gt;&lt;/simplebean&gt;&lt;/simplebean&gt;&lt;/pre&gt;&lt;small&gt;primeira query remove todas as colunas a partir da chave, na segunda query remove apenas os campos map, list e set.&lt;/small&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt; SimpleID id = new SimpleID();&lt;br /&gt;    id.setIndex(ONE_HUNDRED_TWO);&lt;br /&gt;    id.setKey(ONE_HUNDRED_TWO);&lt;br /&gt;&lt;br /&gt;    DeleteBuilder&lt;simplebean&gt; delete2 = persistence.deleteBuilder(SimpleQueryBuilder.class, id);&lt;br /&gt;    delete2.executeAsync((new ResultAsyncCallBack&lt;boolean&gt;() {&lt;br /&gt;    @Override&lt;br /&gt;    public void result(Boolean bean) {&lt;br /&gt;        // do some action&lt;br /&gt;    }&lt;br /&gt;    });&lt;br /&gt;&lt;/boolean&gt;&lt;/simplebean&gt;&lt;/pre&gt;&lt;small&gt; remoção assíncrona&lt;/small&gt;  &lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;  SelectBuilder&lt;simplequerybuilder&gt; select = persistence.selectBuilder(SimpleQueryBuilder.class);&lt;br /&gt;  select.eq(&quot;name&quot;, &quot;name&quot;);&lt;br /&gt;  select.in(&quot;index&quot;, ONE, TWO, THREE);&lt;br /&gt;  List&lt;simplequerybuilder&gt; result = select.execute();&lt;br /&gt;&lt;br /&gt;&lt;/simplequerybuilder&gt;&lt;/simplequerybuilder&gt;&lt;/pre&gt;&lt;small&gt;Realizando o select em que o campo nome é igual a nome e o indice está em um, dois e três.&lt;/small&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;SelectBuilder&lt;simplequerybuilder&gt; select = persistence.selectBuilder(SimpleQueryBuilder.class);&lt;br /&gt;select.eq(NAME, NAME).gt(&quot;index&quot;, THREE).asc(INDEX).executeAsync(new ResultAsyncCallBack&lt;list implebean=&quot;&quot;&gt;&amp;gt;() {&lt;br /&gt;&lt;br /&gt;        @Override&lt;br /&gt;        public void result(List&lt;simplebean&gt; beans) {&lt;br /&gt;          // do some thing&lt;br /&gt;        }&lt;br /&gt;    });&lt;br /&gt;&lt;/simplebean&gt;&lt;/list&gt;&lt;/simplequerybuilder&gt;&lt;/pre&gt;&lt;small&gt; Executando query assincronamente em que o indece seja mais que três e seja ordenado de forma descendente no índice.&lt;/small&gt; &lt;br /&gt;O Batch é um recurso no cassandra que permite que se execute alterações no banco (inserção, atualização e remoção) de forma atômica, desse forma se pode enviar insert, updates e deletes como se fosse apenas uma requisição.&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;DeleteBuilder&lt;simplebean&gt; delete = dao.deleteBuilder();&lt;br /&gt;    delete.whereEq(Constant.INDEX, Constant.ONE_HUNDRED_TWO)&lt;br /&gt;            .whereEq(Constant.KEY, Constant.ONE_HUNDRED_TWO);&lt;br /&gt;&lt;br /&gt;    InsertBuilder&lt;simplebean&gt; insert = dao.insertBuilder();&lt;br /&gt;    insert.value(Constant.KEY, Constant.ONE_HUNDRED).value(Constant.INDEX,&lt;br /&gt;            Constant.ONE_HUNDRED);&lt;br /&gt;    insert.value(Constant.LIST_COLUMN,&lt;br /&gt;            Arrays.asList(&quot;Poliana&quot;, &quot;Otavio&quot;, &quot;Love&quot;));&lt;br /&gt;&lt;br /&gt;    UpdateBuilder&lt;simplebean&gt; update = dao.update();&lt;br /&gt;    update.whereEq(Constant.KEY, Constant.ONE).whereEq(Constant.INDEX, Constant.ONE);&lt;br /&gt;    update.addList(&quot;list&quot;, &quot;otavioList&quot;);&lt;br /&gt;&lt;br /&gt;    BatchBuilder batchBuilder = dao.batchBuilder();&lt;br /&gt;&lt;br /&gt;    batchBuilder.addOperations(delete, insert, update);&lt;br /&gt;    batchBuilder.executeAsync(new ResultAsyncCallBack&lt;boolean&gt;() {&lt;br /&gt;        @Override&lt;br /&gt;        public void result(Boolean bean) {&lt;br /&gt;            // do some action&lt;br /&gt;        }&lt;br /&gt;    });&lt;br /&gt;&lt;/boolean&gt;&lt;/simplebean&gt;&lt;/simplebean&gt;&lt;/simplebean&gt;&lt;/pre&gt;&lt;small&gt;Executando processo de inserção, remoção e atualização de forma atômica com o BatchBuilder.&lt;/small&gt;&lt;br /&gt;Vale lembrar que recurso do Batch deve ser usados em casos específicos, já que distribuir as requisições entre os nós, no cassandra, sempre será sua melhor amiga.&lt;br /&gt;Esse artigo tem como objetivo ilustrar as mudanças dentro do Easy-Cassandra, se demonstrou dos recursos e da sua melhoria na velocidade a expectativa é que muitos mais recursos estejam por vir.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/otaviojava/Easy-Cassandra/wiki/Builders&quot;&gt;https://github.com/otaviojava/Easy-Cassandra/wiki/Builders&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/otaviojava/Easy-Cassandra/wiki&quot;&gt;https://github.com/otaviojava/Easy-Cassandra/wiki&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/otaviojava/Easy-Cassandra/&quot;&gt;https://github.com/otaviojava/Easy-Cassandra/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/otaviojava/Easy-Cassandra-samples&quot;&gt;https://github.com/otaviojava/Easy-Cassandra-samples&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/9181130738796215615/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2014/02/easy-cassandra-versao-201.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/9181130738796215615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/9181130738796215615'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2014/02/easy-cassandra-versao-201.html' title='Easy-Cassandra, a versão 2.0.1'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-2391609494442721489</id><published>2014-01-29T19:56:00.001-03:00</published><updated>2014-01-29T19:56:33.363-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comilação dinâmica"/><category scheme="http://www.blogger.com/atom/ns#" term="compilação"/><category scheme="http://www.blogger.com/atom/ns#" term="compile"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="openjdk"/><title type='text'>Como compilar código Java dinâmicamente</title><content type='html'>O Java é uma plataforma que se multiplicou exponencialmente, uma de sua grande vantagem é o fato de que você consegue com o mesmo código executar em diferentes plataformas, com isso se pode programar para servidor, dispositivos embarcados, desktop, etc. com a mesma linguagem. Além disso a JVM possui suporte para diversas linguagens, das quais possuem, diversas características e recursos interessantes. Um mito que existe é que o Java não compila em tempo de execução, o que faz muitas pessoas utilizem uma linguagem dinâmica, apenas por esse objetivo, mas será que isso é verdade?&lt;br /&gt;&lt;br /&gt;Possuir uma linguagem  dinâmica é muito interessante para alguns projetos específicos, por exemplo, quando se faz um projeto que realiza calculo tributário, como essa fórmula mudam muito ao ano e variam de município para município, nesse caso é melhor que o código fonte esteja em um banco de dados, por exemplo, para quando for necessário modificar o calculo não seja necessário compilar todo o código fonte e fazer o deploy, correndo o risco do sistema ficar fora do ar mesmo que por alguns instantes. &lt;br /&gt;&lt;br /&gt;Sim é possível em Java compilar códigos dinamicamente. Na verdade isso é muito comum do que imaginamos! Por exemplo, o Hibernate para gerenciar das entidades, para facilitar ainda o seu uso a partir da versão 1.6 com a JSR 199 foi criada um API com essa finalidade.&lt;br /&gt;&lt;br /&gt;Para demonstrar essa funcionalidade será usado a solução para o problema acima, fazer com que haja troca de fórmula, para facilitar a demonstração e focar na solução serão as 4 operações básicas, sendo que esse código fonte estará no banco de dados, no caso será simulado com arquivos dentro de um txt. Como não podemos referenciar uma classe não compilada, criaremos uma interface Operação, ela será implementada por nossas classes que estarão em nosso “banco de dados”.&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;public interface Calculo { &lt;br /&gt;&lt;br /&gt; Double calcular(Number valorA, Number valorB);  &lt;br /&gt;  &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h5&gt;Interface na qual será utilizada como referencias as classes compiladas dinamicamente.&lt;/h5&gt;&lt;br /&gt;Explicando o processo de compilação passo a passo: A classe JavaCompiler, que tem a responsabilidade de fazer a compilação do código-fonte. A chamada ToolProvider.getSystemJavaCompiler() retorna este objeto. Se um compilador Java não estiver disponível, o retorno será null.&amp;nbsp;Ele conta com o método getTask(), que retorna um objeto CompilationTask. De posse desse objeto, a chamada call() efetua a compilação do código e retorna um booleano indicando se ela foi feita com sucesso (true) ou se houve falha (false).&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;public class JavaDinamicoCompilador&lt;t&gt; { &lt;br /&gt; &lt;br /&gt;  private JavaCompiler compiler; &lt;br /&gt;&lt;br /&gt;  private JavaDinamicoManager javaDinamicoManager; &lt;br /&gt;&lt;br /&gt;  private JavaDinamicoClassLoader classLoader; &lt;br /&gt;&lt;br /&gt;  private DiagnosticCollector&lt;javafileobject&gt; diagnostics; &lt;br /&gt;&lt;br /&gt;  public JavaDinamicoCompilador() throws JavaDinamicoException { &lt;br /&gt;    compiler = ToolProvider.getSystemJavaCompiler(); &lt;br /&gt;    if (compiler == null) { &lt;br /&gt;     throw new JavaDinamicoException(&quot;Compilador não encontrado&quot;); &lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    classLoader = new JavaDinamicoClassLoader(getClass().getClassLoader()); &lt;br /&gt;    diagnostics = new DiagnosticCollector&lt;javafileobject&gt;(); &lt;br /&gt;&lt;br /&gt;    StandardJavaFileManager standardFileManager = compiler &lt;br /&gt;        .getStandardFileManager(diagnostics, null, null); &lt;br /&gt;    javaDinamicoManager = new JavaDinamicoManager(standardFileManager, classLoader); &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  @SuppressWarnings(&quot;unchecked&quot;) &lt;br /&gt;  public synchronized Class&lt;t&gt; compile(String packageName, String className, &lt;br /&gt;      String javaSource) throws JavaDinamicoException &lt;br /&gt;  { &lt;br /&gt;    try { &lt;br /&gt;      String qualifiedClassName = JavaDinamicoUtils.INSTANCE.getQualifiedClassName( &lt;br /&gt;          packageName, className); &lt;br /&gt;      JavaDinamicoBean sourceObj = new JavaDinamicoBean(className, javaSource); &lt;br /&gt;      JavaDinamicoBean compiledObj = new JavaDinamicoBean(qualifiedClassName); &lt;br /&gt;      javaDinamicoManager.setSources(sourceObj, compiledObj); &lt;br /&gt;&lt;br /&gt;      CompilationTask task = compiler.getTask(null, javaDinamicoManager, diagnostics, &lt;br /&gt;          null, null, Arrays.asList(sourceObj)); &lt;br /&gt;      boolean result = task.call(); &lt;br /&gt;&lt;br /&gt;      if (!result) { &lt;br /&gt;       throw new JavaDinamicoException(&quot;A compilação falhou&quot;, diagnostics); &lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;      Class&lt;t&gt; newClass = (Class&lt;t&gt;) classLoader.loadClass(qualifiedClassName); &lt;br /&gt;      return newClass; &lt;br /&gt;&lt;br /&gt;    } &lt;br /&gt;    catch (Exception exception) { &lt;br /&gt;      throw new JavaDinamicoException(exception, diagnostics); &lt;br /&gt;    } &lt;br /&gt;  } &lt;br /&gt;}&lt;br /&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/javafileobject&gt;&lt;/javafileobject&gt;&lt;/t&gt;&lt;/pre&gt;&lt;h5&gt;Classe responsável pela compilação&lt;/h5&gt;&lt;br /&gt;O processo de compilação envolve dois tipos de arquivos: os códigos-fonte escritos em Java e os arquivos compilados (bytecodes). Na Compiler API estes arquivos são representados por objetos de uma única interface, chamada JavaFileObject. Felizmente a API disponibiliza uma classe que implementa esta interface, chamada SimpleJavaFileObject e, na escrita de código de compilação dinâmica, deve-se criar uma subclasse de SimpleJavaFileObject e sobrescrever os métodos necessários.&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;public class JavaDinamicoBean extends SimpleJavaFileObject { &lt;br /&gt;&lt;br /&gt;  private String source; &lt;br /&gt;&lt;br /&gt;  private ByteArrayOutputStream byteCode = new ByteArrayOutputStream(); &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  public JavaDinamicoBean(String baseName, String source) { &lt;br /&gt;    super(JavaDinamicoUtils.INSTANCE.createURI(JavaDinamicoUtils.INSTANCE.getClassNameWithExt(baseName)), &lt;br /&gt;        Kind.SOURCE); &lt;br /&gt;    this.source = source; &lt;br /&gt;  } &lt;br /&gt;  &lt;br /&gt;  public JavaDinamicoBean(String name) { &lt;br /&gt;    super(JavaDinamicoUtils.INSTANCE.createURI(name), Kind.CLASS); &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  @Override &lt;br /&gt;  public String getCharContent(boolean ignoreEncodingErrors) { &lt;br /&gt;    return source; &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  @Override &lt;br /&gt;  public OutputStream openOutputStream() { &lt;br /&gt;    return byteCode; &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  public byte[] getBytes() { &lt;br /&gt;    return byteCode.toByteArray(); &lt;br /&gt;  } &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;h5&gt;Estrutura de dados que contem o codigo fonte e a classe compilada&lt;/h5&gt;&lt;br /&gt;Para representar os arquivos envolvidos será utilizado o&amp;nbsp;ForwardingJavaFileManager &lt;javafilemanager&gt; que implementa a interface JavaFileManager.&lt;/javafilemanager&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;public class JavaDinamicoManager extends ForwardingJavaFileManager&lt;javafilemanager&gt; { &lt;br /&gt;  private JavaDinamicoClassLoader classLoader; &lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;  private JavaDinamicoBean codigoFonte; &lt;br /&gt; &lt;br /&gt;  private JavaDinamicoBean arquivoCompilado; &lt;br /&gt;  &lt;br /&gt;  public JavaDinamicoManager(JavaFileManager fileManager, JavaDinamicoClassLoader classLoader) &lt;br /&gt;  { &lt;br /&gt;    super(fileManager); &lt;br /&gt;    this.classLoader = classLoader; &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  public void setSources(JavaDinamicoBean sourceObject, JavaDinamicoBean compiledObject) { &lt;br /&gt;    this.codigoFonte = sourceObject; &lt;br /&gt;    this.arquivoCompilado = compiledObject; &lt;br /&gt;    this.classLoader.addClass(compiledObject); &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  @Override &lt;br /&gt;  public FileObject getFileForInput(Location location, String packageName, &lt;br /&gt;      String relativeName) throws IOException &lt;br /&gt;  { &lt;br /&gt;    return codigoFonte; &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  @Override &lt;br /&gt;  public JavaFileObject getJavaFileForOutput(Location location, &lt;br /&gt;      String qualifiedName, Kind kind, FileObject outputFile) &lt;br /&gt;      throws IOException &lt;br /&gt;  { &lt;br /&gt;    return arquivoCompilado; &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  @Override &lt;br /&gt;  public ClassLoader getClassLoader(Location location) { &lt;br /&gt;    return classLoader; &lt;br /&gt;  } &lt;br /&gt;}&lt;br /&gt;&lt;/javafilemanager&gt;&lt;/pre&gt;&lt;h5&gt;Classe responsável por gerenciar as classes compiladas e não compiladas&lt;/h5&gt;&lt;br /&gt;Para que ela possa ser utilizada, a JVM deve ser capaz de reconhecê-la como uma classe da aplicação, a fim de que possa carregá-la quando chegar o momento.    O componente responsável pelo carregamento das classes das aplicações Java durante a execução é o Class Loader.&lt;br /&gt;Portanto, para que a JVM saiba da existência das novas classes compiladas, é necessário implementar um class loader customizado, que fica atrelado ao gerenciador de arquivos.&lt;br /&gt;Ele deve estender a classe ClassLoader (do pacote java.lang) e tem a responsabilidade de carregar as classes recém-criadas.&lt;br /&gt;Com isso foi discutido um pouco sobre a compilação dinâmica do Java no Java, objetivo aqui foi apenas de demonstrar o seu funcionamento básico além de uma pequena explicação do uso da API. Pela sua complexidade o ideal é que ela esteja encapsulado a ponto de ser utilizadas várias vezes em diversos projetos. O objetivo aqui não foi desmerecer em nenhum momento as outras linguagens de programação rodando ou não em cima da JVM, afinal todas elas têm sua importância. O objetivo foi demonstrar que não existe a necessidade de mudar de linguagem caso seu problema seja ter um código que seja compilado dinamicamente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Referências:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://www.jcp.org/en/jsr/detail?id=199&quot;&gt;https://www.jcp.org/en/jsr/detail?id=199&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Carlos Eduardo Gusso Tosin, Compilação Dinâmica no Java 6 - Revista Java Magazine 94&lt;/li&gt;&lt;li&gt;&lt;b&gt;Código:&lt;/b&gt;  &lt;a href=&quot;https://github.com/otaviojava/java_dinamico&quot;&gt;https://github.com/otaviojava/java_dinamico&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/2391609494442721489/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2014/01/como-compilar-codigo-java-dinamicamente.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2391609494442721489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2391609494442721489'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2014/01/como-compilar-codigo-java-dinamicamente.html' title='Como compilar código Java dinâmicamente'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-4980063305918891289</id><published>2013-10-02T23:55:00.000-03:00</published><updated>2013-10-02T23:55:17.964-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="opensource"/><title type='text'>Cassandra Trip Brasil [Agradecimentos]</title><content type='html'>&lt;html&gt;O evento Cassandra aconteceu entre os dias 2 e 6 de setembro com o objetivo de falar dos conceitos de nosql, bigdata, do cassandra e da sua arquitetura além das novidades com a nova versão, o Cassandra 2.0. O evento foi um sucesso, com isso, gostaríamos de agradecer todos que participaram e ajudaram o evento de alguma forma.&lt;br /&gt; Para saber mais sobre o Cassandra, trocar experiência e tirar dúvidas técnicas ou conceituais foi criado o grupo Cassandra Trip Brasil, para mais informações &lt;a href=&quot;https://groups.google.com/forum/#!forum/cassandra-brasil&quot; target=&quot;_blank&quot;&gt; aqui. &lt;/a&gt;&lt;br /&gt; Slides utilizados no evento: &lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;a href=&quot;http://www.slideshare.net/bcoverston/tutorial-session&quot; target=&quot;_blank&quot;&gt;http://www.slideshare.net/bcoverston/tutorial-session&lt;/a&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href=&quot;http://www.slideshare.net/edwardribeiro/cassandra-tripbrasil&quot; target=&quot;_blank&quot;&gt;http://www.slideshare.net/edwardribeiro/cassandra-tripbrasil&lt;/a&gt;&lt;/dt&gt;&lt;dt&gt;&lt;a href=&quot;http://www.slideshare.net/otagonsan/cassandra-trip&quot; target=&quot;_blank&quot;&gt;http://www.slideshare.net/otagonsan/cassandra-trip&lt;/a&gt;&lt;/dt&gt;&lt;/dl&gt;Fotos da Trip: &lt;a href=&quot;http://goo.gl/mFVDsl&quot; target=&quot;_blank&quot;&gt;http://goo.gl/mFVDsl&lt;/a&gt;&lt;br /&gt;  Existirá uma próxima atividade para o Cassandra que é o um mini-curso gratuito de Cassandra.  No dia 10 de outubro, quinta-feira, na Global Code.&lt;br /&gt;    &lt;b&gt;Título:&lt;/b&gt;&amp;nbsp;Primeiros passos com o&amp;nbsp;Cassandra&lt;br /&gt; &lt;b&gt;Descrição:&lt;/b&gt;&amp;nbsp;O&amp;nbsp;Cassandra&amp;nbsp;é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado intensamente por empresas dos mais variados portes, tais como Netflix, Twitter, Instagram, HP, IBM, dentre muitas outras. Um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais como a NASA.&lt;br /&gt; &lt;b&gt;Público alvo:&lt;/b&gt;&amp;nbsp;Desenvolvedores, DBAs,&amp;nbsp; entusiastas com curiosidade de conhecer mais sobre bancos de dados nosql e o banco&amp;nbsp;Cassandra.&lt;br /&gt; &amp;nbsp; &lt;b&gt;Ementa:&lt;/b&gt;&lt;br /&gt;   &lt;ul&gt;&lt;li&gt;Conceito Data Science&lt;/li&gt;&lt;li&gt;Conceito BigData&lt;/li&gt;&lt;li&gt;NOSQL&lt;/li&gt;&lt;li&gt;Histórico&lt;/li&gt;&lt;li&gt;Tipos de Bancos&lt;/li&gt;&lt;li&gt;Comparação com o Modelo relacional&lt;/li&gt;&lt;li&gt;Cassandra&lt;/li&gt;&lt;li&gt;Arquitetura&amp;nbsp;Cassandra&lt;/li&gt;&lt;li&gt;Configurações Básica do&amp;nbsp;Cassandra&lt;/li&gt;&lt;li&gt;Configuração de multi-nodes no&amp;nbsp;Cassandra&lt;/li&gt;&lt;li&gt;Conhecendo o DevOpsCenter&lt;/li&gt;&lt;li&gt;Instalando os Agentes&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt; Para aqueles que não são de São Paulo:&lt;br /&gt; Link :&amp;nbsp;&lt;a href=&quot;https://globalcode.webex.com/globalcode/onstage/g.php?t=a&amp;amp;d=662489296&quot; target=&quot;_blank&quot;&gt;https://globalcode.webex.com/globalcode/onstage/g.php?t=a&amp;amp;d=662489296&lt;/a&gt;  &lt;br /&gt; &lt;b&gt;Pass:&lt;/b&gt; cassandra&lt;br /&gt;  &lt;b&gt;Mais informações:&lt;/b&gt; &lt;a href=&quot;http://goo.gl/S3LQBm&quot; target=&quot;_blank&quot;&gt;http://goo.gl/S3LQBm&lt;/a&gt; &lt;br /&gt;  &lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/4980063305918891289/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/10/cassandra-trip-brasil-agradecimentos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/4980063305918891289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/4980063305918891289'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/10/cassandra-trip-brasil-agradecimentos.html' title='Cassandra Trip Brasil [Agradecimentos]'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-2777836786977065094</id><published>2013-08-31T12:05:00.000-03:00</published><updated>2013-08-31T12:05:07.680-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="easy-cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="javaBahia"/><title type='text'>JavaBahia e Linguágil no Cassandra Trip Brasil</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;80&quot; src=&quot;http://cassandra.apache.org/media/img/cassandra_logo.png&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;O Cassandra é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado intensamente por empresas dos mais variados portes, tais como Netflix, Twitter, Instagram, HP, IBM, &lt;a href=&quot;http://planetcassandra.org/Company/ViewCompany?IndustryId=-1&quot;&gt; dentre muitas outras&lt;/a&gt;. Um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais como a NASA.&lt;br /&gt;Com o intuito de divulgar essa idéia aqui no Brasil foi criado o Cassandra Trip Brasil, um evento com duração de uma semana, entre os dias 2 até 6 de setembro, sendo que cada dia será apresentado em uma cidade diferente. As cidades que sediarão esse evento serão:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;2 de Setembro, segunda-feira, Campinas&lt;/li&gt;&lt;li&gt;3 de setembro, terça-feira, São Paulo&lt;/li&gt;&lt;li&gt;3 de setembro, terça-feira, Online para todo o Brasil&lt;/li&gt;&lt;li&gt;4 de setembro, quarta-feira, Florianópolis&lt;/li&gt;&lt;li&gt;5 de setembro, quinta-feira, Brasília&lt;/li&gt;&lt;li&gt;6 de setembro, sexta-feira, Salvador&lt;/li&gt;&lt;/ul&gt;O evento contará com o palestrante internacional &lt;a href=&quot;http://www.linkedin.com/pub/ben-coverston/4/680/225&quot; target=&quot;_blank&quot;&gt;Ben Covertson&lt;/a&gt; que hoje faz parte do time da DataStax, empresa que mantém o banco de dados Cassandra.&lt;br /&gt;O JavaBahia e o Linguágil farão parte desse evento aqui no Brasil, fazendo o encontro técnico dos grupos como parte do circuito. O encontro acontecerá na Estácio/FIB.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Data:&lt;/b&gt;&amp;nbsp;6 de setembro, Serça-Feira&lt;/li&gt;&lt;li&gt;&lt;b&gt;Horário:&lt;/b&gt;&amp;nbsp;18:30&lt;/li&gt;&lt;li&gt;&lt;b&gt;Cidade:&lt;/b&gt; Salvador&lt;/li&gt;&lt;li&gt;&lt;b&gt;Local:&lt;/b&gt;&amp;nbsp;Estácio/FIB Auditório do Andar G1&lt;/li&gt;&lt;li&gt;&lt;b&gt;Endereço:&lt;/b&gt;&amp;nbsp;Rua Xingu, nº 179 - Jardim Atalaia/STIEP CEP: 41770-130&lt;/li&gt;&lt;/ul&gt;Para saber mais do evento e os endereços das outras cidades que também farão parte do Trip e &lt;b&gt;inscrições&lt;/b&gt;: &lt;a href=&quot;http://otaviojava.github.io/cassandra-trip-brasil/&quot;&gt;http://otaviojava.github.io/cassandra-trip-brasil/&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;Apoio:&lt;/h3&gt;&lt;img alt=&quot;Estácio FIB&quot; src=&quot;http://portal.estacio.br/media/1921254/fib.png&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/2777836786977065094/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/javabahia-e-linguagil-no-cassandra-trip.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2777836786977065094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2777836786977065094'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/javabahia-e-linguagil-no-cassandra-trip.html' title='JavaBahia e Linguágil no Cassandra Trip Brasil'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-2627123913553231119</id><published>2013-08-25T07:57:00.000-03:00</published><updated>2013-08-25T07:57:26.429-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bigdata"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="data science"/><category scheme="http://www.blogger.com/atom/ns#" term="easy-cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="java ee"/><category scheme="http://www.blogger.com/atom/ns#" term="nosql"/><category scheme="http://www.blogger.com/atom/ns#" term="spring"/><category scheme="http://www.blogger.com/atom/ns#" term="spring data"/><category scheme="http://www.blogger.com/atom/ns#" term="spring-data"/><title type='text'>Usando Cassandra com Spring Data no Easy-Cassandra</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;Spring Data no Cassandra com Easy-Cassandra&quot; src=&quot;http://www.springsource.org/files/imagefield_thumbs/project/images/Project_Data.png&quot; /&gt;&lt;/div&gt; &lt;p&gt;O Spring é um framework open source cujo o objetivo sempre foi facilitar a vida do desenvolvedor Java, começou com os recursos para injeção de dependência e hoje atua em diversas atividades triviais para um programador. Entre elas podemos citar a parte social com o Spring social no twitter, facebook, segurança com o Spring security além do já inversão de controle e inversão de dependência. O foco desse pequeno post é falar sobre o Spring Data e seu trabalho com o banco não relacional Cassandra.&lt;/p&gt; &lt;p&gt;O Spring-data é um pequeno módulo ou plugin do Spring e tem como objetivo auxiliar nos processos triviais de persistência criando uma camada entre a base onde se encontra as informações e o seu código java. Dessa maneira é possível, efetuar ações na base, usando como estrutura para as informações, o POJO (simples e velho objetos em java). Dentro do Spring Data já existem diversos tipo de base de informações.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Bancos Relacionais com JPA e JDBC&lt;/li&gt;&lt;li&gt;BigData com Apache Hadoop&lt;/li&gt;&lt;li&gt;Data-Grid com GermFire&lt;/li&gt;&lt;li&gt;HTTP com Rest&lt;/li&gt;&lt;li&gt;NOSQL com MongoDB, Neo4J, Redis e Hbase&lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;Uma das grandes vantagem do Spring Data é ser filho do Spring. Ele não precisa de um servidor Java EE, ou seja, ele pode rodar em um simples contêiner como o tomcat ou mesmo rodar sem o auxílio do servidor. Sua injeção funciona com auxílio de um arquivo xml, mas não necessariamente toda configuração é feita por lá, existem várias anotações que podem ajudar o desenvolvedor, no entanto, cabe apenas ao mesmo saber em qual momento é mais adequado usar cada um deles.&lt;/p&gt; &lt;p&gt;Com esse foco o Spring Data Cassandra tem o foco de criar uma camada de alto nível para o nosql Cassandra, assim é possível com estruturas de POJOs estabelecer uma conexão no banco e realizar as operações CRUD, tudo isso sem abrir mão da estrutura de dados já conhecida pelo desenvolvedor Java. O Spring Data Cassandra ainda não foi fechada, mas o Easy-Cassandra já possui integração com Spring, agora é possível utilizá-lo com a injeção de dependências do framework Java mais famoso do mundo.&lt;/p&gt;&lt;p&gt;A aplicação será realmente bastante simples seu objetivo será apenas criar uma informação e armazenar no banco, em seguida recuperar pelo id. O primeiro passo será a criação da entidade pessoa, ela terá os campos id, nome e ano, conforme mostra a tabela número1.&lt;/p&gt;&lt;br/&gt; &lt;pre class=&quot;brush:java&quot;&gt;&lt;br /&gt;@Entity(name = &quot;person&quot;) &lt;br /&gt;public class Person implements Serializable { &lt;br /&gt;&lt;br /&gt;    @Id &lt;br /&gt;    private UUID id; &lt;br /&gt;     &lt;br /&gt;    @Index &lt;br /&gt;    @Column(name = &quot;name&quot;) &lt;br /&gt;    private String name; &lt;br /&gt;    &lt;br /&gt;    @Column(name = &quot;born&quot;) &lt;br /&gt;    private Integer year;&lt;br /&gt;//getter and setter&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size: smaller;&quot;&gt;Simples Pojo da Classe pessoa&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Como pode ser visto os campos são anotados via JPA 2.0, o segundo passo é a criação do xml, é nele que conterá as configurações do banco de dados (host, porta, keyspace padrão, etc.). O próximo passo é a configuração e criação da fábrica de conexões para o Cassandra dentro do spring, isso é, o host, porta e o keyspace padrão, e as classes que serão mapeadas como mostra no arquivo xml abaixo.&lt;/p&gt; &lt;pre class=&quot;brush:xml&quot;&gt;&lt;br /&gt;&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;&lt;br /&gt; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; &lt;br /&gt; xmlns:context=&quot;http://www.springframework.org/schema/context&quot;&lt;br /&gt; xsi:schemaLocation=&quot;http://www.springframework.org/schema/context&lt;br /&gt;          http://www.springframework.org/schema/context/spring-context-3.0.xsd&lt;br /&gt;          http://www.springframework.org/schema/beans&lt;br /&gt;          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;context:component-scan base-package=&quot;org.javabahia.cassandra.spring&quot; /&gt; &lt;br /&gt;&lt;bean id=&quot;cassandraFactory&quot; class=&quot;org.easycassandra.persistence.cassandra.spring.CassandraFactoryAnnotation&quot;&gt;&lt;br /&gt; &lt;constructor-arg name=&quot;host&quot; value=&quot;localhost&quot; /&gt;&lt;br /&gt; &lt;constructor-arg name=&quot;keySpace&quot; value=&quot;spring&quot; /&gt;&lt;br /&gt; &lt;property name=&quot;annotatedClasses&quot;&gt;&lt;br /&gt;  &lt;list&gt;&lt;br /&gt;   &lt;value&gt;org.javabahia.cassandra.spring.entity.Person&lt;/value&gt;&lt;br /&gt;  &lt;/list&gt;&lt;br /&gt; &lt;/property&gt;&lt;br /&gt;&lt;/bean&gt; &lt;br /&gt;&lt;br /&gt;&lt;bean id=&quot;cassandraTemplate&quot; class=&quot;org.easycassandra.persistence.cassandra.spring.SimpleCassandraTemplateImpl&quot; &gt;&lt;br /&gt; &lt;constructor-arg name=&quot;factory&quot; ref=&quot;cassandraFactory&quot; /&gt;&lt;br /&gt;&lt;/bean&gt;&lt;br /&gt;&lt;br /&gt;&lt;/beans&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size: smaller;&quot;&gt;Configuração do Spring-Data, informando as configurações do Banco (host, porta, nesse caso a padrão, e o keySpace) além de criar o Template Cassandra&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Com a fábrica de conexões do cassandra é possível retornar uma sessão, a via de comunicação do Cassandra com a aplicação Java, além disso será criado o CassandraTemplate, uma api de alto nível que consegue realizar a comunicação Cassandra sua aplicação a partir de um simples POJO, desse modo é possível realizar a operação CRUD de uma maneira bastante simples, o código abaixo mostra a  interface do Cassandra template.&lt;/p&gt; &lt;pre class=&quot;brush:java&quot;&gt;&lt;br /&gt;&lt;br /&gt;public interface CassandraTemplate{ &lt;br /&gt;   &lt;br /&gt;     &amp;lt;T&amp;gt; T save(T entity); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;T&amp;gt; Iterable&amp;lt;T&amp;gt; save(Iterable&amp;lt;T&amp;gt; entities); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;T&amp;gt; void delete(T entity); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;T&amp;gt; void delete(Iterable&amp;lt;T&amp;gt; entities); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;K&amp;gt; void delete(K key, Class&amp;lt;?&amp;gt; entity); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;K,T&amp;gt; void delete(Iterable&amp;lt;K&amp;gt;  keys, Class&amp;lt;T&amp;gt; entity); &lt;br /&gt;&lt;br /&gt;     &amp;lt;T&amp;gt; void deleteAll(Class&amp;lt;T&amp;gt; entity); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;T&amp;gt; T update(T entity); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;T&amp;gt; Iterable&amp;lt;T&amp;gt; update(Iterable&amp;lt;T&amp;gt; entities); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;T,K&amp;gt; T findOne(K key, Class&amp;lt;T&amp;gt; entity); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;T,K&amp;gt; List&amp;lt;T&amp;gt; findAll(Iterable&amp;lt;K&amp;gt; keys, Class&amp;lt;T&amp;gt; entity); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;T&amp;gt; List&amp;lt;T&amp;gt; findAll(Class&amp;lt;T&amp;gt; entity); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;T,I&amp;gt; List&amp;lt;T&amp;gt; findByIndex(String columnName,I index,Class&amp;lt;T&amp;gt; entity); &lt;br /&gt;     &lt;br /&gt;     &amp;lt;K,T&amp;gt;boolean exist(K key, Class&amp;lt;T&amp;gt; entity); &lt;br /&gt;&lt;br /&gt;     void executeUpdate(String query); &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size: smaller;&quot;&gt;Operações que podem ser realizadas com o seu Objeto&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Além do CassandraTemplate existe o CassandraRepository, essa classe abstrata implementa o CrudRepository do SpringData, com ela é necessário apenas implementar o método que retornará o CassandraTemplate, conforme mostra a tabela abaixo.&lt;/p&gt; &lt;pre class=&quot;brush:java&quot;&gt;&lt;br /&gt;@Repository(&quot;personRepository&quot;)&lt;br /&gt;public class PersonRepository extends CassandraRepository&amp;lt;Person, UUID&amp;gt;{&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; @Autowired&lt;br /&gt; private CassandraTemplate cassandraTemplate;&lt;br /&gt; &lt;br /&gt; @Override&lt;br /&gt; protected CassandraTemplate getCassandraTemplate() {&lt;br /&gt;  return cassandraTemplate;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size: smaller;&quot;&gt;Criando o repositório para a classe Person&lt;/span&gt;&lt;/p&gt;&lt;br/&gt; &lt;p&gt;Como o CassandraReporitory implementa a classe base de operações do Spring todas as suas operações estarão disponíveis para serem utilizadas com o Cassandra.&lt;/p&gt; &lt;pre class=&quot;brush:java&quot;&gt;&lt;br /&gt;public interface CrudRepository&amp;lt;T, ID extends Serializable&amp;gt; extends Repository&amp;lt;T, ID&amp;gt; { &lt;br /&gt; &amp;lt;S extends T&amp;gt; S save(S entity); &lt;br /&gt;&lt;br /&gt; &amp;lt;S extends T&amp;gt; Iterable&amp;lt;S&amp;gt; save(Iterable&amp;lt;S&amp;gt; entities); &lt;br /&gt;&lt;br /&gt; T findOne(ID id); &lt;br /&gt;&lt;br /&gt; boolean exists(ID id); &lt;br /&gt;&lt;br /&gt; Iterable&amp;lt;T&amp;gt; findAll(); &lt;br /&gt;&lt;br /&gt; Iterable&amp;lt;T&amp;gt; findAll(Iterable&amp;lt;ID&amp;gt; ids); &lt;br /&gt;&lt;br /&gt; long count(); &lt;br /&gt;&lt;br /&gt; void delete(ID id); &lt;br /&gt;&lt;br /&gt; void delete(T entity); &lt;br /&gt; void delete(Iterable&amp;lt;? extends T&amp;gt; entities); &lt;br /&gt;&lt;br /&gt; void deleteAll(); &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size: smaller;&quot;&gt;Interface CrudRepository do Spring Data que é implementada pela classe abstrata CassandraRepository&lt;/span&gt;&lt;/p&gt;&lt;br/&gt; &lt;p&gt;Realizado as configurações o próximo passo é executar o projeto como mostra o código a seguir:&lt;/p&gt; &lt;pre class=&quot;brush:java&quot;&gt;&lt;br /&gt;public class App &lt;br /&gt;{&lt;br /&gt;    public static void main( String[] args )&lt;br /&gt;    {&lt;br /&gt;     @SuppressWarnings(&quot;resource&quot;)&lt;br /&gt;  ApplicationContext ctx = new GenericXmlApplicationContext(&quot;SpringConfig.xml&quot;);&lt;br /&gt;     &lt;br /&gt;     PersonRepository personService=ctx.getBean(PersonRepository.class);&lt;br /&gt;     &lt;br /&gt;     UUID uuid=UUID.randomUUID();&lt;br /&gt;     Person person=new Person();&lt;br /&gt;     person.setId(uuid);&lt;br /&gt;     person.setName(&quot;Otávio Santana&quot;);&lt;br /&gt;     person.setYear(25);&lt;br /&gt;     &lt;br /&gt;     personService.save(person);&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     Person otavio=personService.findOne(uuid);&lt;br /&gt;     System.out.println(otavio.getName());&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size: smaller;&quot;&gt;Rodando o Simples Projeto, salvando e recuperando a informação&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Com isso foi demonstrado o conceito do Spring Data e o seu funcionamento com o Cassandra utilizando o Easy-Cassandra, o intuito criar uma interface padrão para que todos os modelos de persistência a utilizem dentro do Spring é um grande e importante passo para utilizar uma nova base ou modelo de dados não haja impacto dentro do Spring, mas é muito importante salientar que mesmo que vários bancos utilizem essa interface é importante considerar uma nova modelagem, já que diferente dos bancos relacionais, a mudança de um banco NOSQL pode significar a mudança estrutura de armazenamento.&lt;/p&gt; &lt;br/&gt;&lt;br/&gt; &lt;h4&gt;Links:&lt;/h4&gt;&lt;dl&gt; &lt;dt&gt;Spring Data: &lt;a href=&quot;http://www.springsource.org/spring-data&quot; &gt;http://www.springsource.org/spring-data&lt;/a&gt;&lt;/dt&gt; &lt;dt&gt;Easy-Cassandra: &lt;a href=&quot;http://otaviojava.github.io/Easy-Cassandra/&quot; &gt;http://otaviojava.github.io/Easy-Cassandra/&lt;/a&gt;&lt;/dt&gt; &lt;dt&gt;Exemplo: &lt;a href=&quot;https://github.com/otaviojava/Easy-Cassandra-samples&quot; &gt;https://github.com/otaviojava/Easy-Cassandra-samples&lt;/a&gt;&lt;/dt&gt;&lt;/dl&gt;    </content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/2627123913553231119/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/usando-cassandra-com-spring-data-no.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2627123913553231119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2627123913553231119'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/usando-cassandra-com-spring-data-no.html' title='Usando Cassandra com Spring Data no Easy-Cassandra'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-8057548010323395050</id><published>2013-08-13T19:07:00.002-03:00</published><updated>2013-08-14T19:28:17.589-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="brasil"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade brasileira"/><title type='text'>Cassandra Trip Brasil</title><content type='html'>&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;80&quot; src=&quot;http://cassandra.apache.org/media/img/cassandra_logo.png&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;nbsp; &amp;nbsp; O Cassandra é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado intensamente por empresas dos mais variados portes, tais como Netflix, Twitter, Instagram, HP, IBM,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.planetcassandra.org/Company/ViewCompany&quot;&gt;&lt;span style=&quot;color: #0088cc;&quot;&gt;&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;dentre muitas outras&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;. Um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais como a NASA.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;font-style: normal; font-variant: normal; font-weight: normal; line-height: 0.21in; margin-bottom: 0.1in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;font-style: normal; font-variant: normal; font-weight: normal; line-height: 0.21in; margin-bottom: 0.1in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Com o intuito de divulgar essa idéia aqui no Brasil foi criado o&amp;nbsp;&lt;i&gt;Cassandra Trip Brasil&lt;/i&gt;, um evento com duração de uma semana, entre os dias 2 até 6 de setembro, sendo que cada dia será apresentado em uma cidade diferente. As cidades que sediarão esse evento serão:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;2 de Setembro, segunda-feira, Campinas&lt;/li&gt;&lt;li&gt;3 de setembro, terça-feira, São Paulo&lt;/li&gt;&lt;li&gt;3 de setembro, terça-feira, Online para todo o Brasil&lt;/li&gt;&lt;li&gt;4 de setembro, quarta-feira, Florianópolis&lt;/li&gt;&lt;li&gt;5 de setembro, quinta-feira, Brasília&lt;/li&gt;&lt;li&gt;6 de setembro, sexta-feira, Salvador&lt;/li&gt;&lt;/ul&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Na terça-feira também acontecerá o web-cast aberto para todo o Brasil.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; O evento contará com o palestrante internacional &lt;a href=&quot;http://www.linkedin.com/pub/ben-coverston/4/680/225&quot; target=&quot;_blank&quot;&gt;Ben Covertson&lt;/a&gt;&amp;nbsp;que hoje faz parte do time da DataStax, empresa que mantém o banco de dados Cassandra.&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Para saber mais:  &lt;/span&gt;&lt;a href=&quot;http://otaviojava.github.io/cassandra-trip-brasil/&quot;&gt;http://otaviojava.github.io/cassandra-trip-brasil/&lt;/a&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Com o intuito de compartilhar experiência, tirar dúvidas, ajudar a divulgação do banco Cassandra aqui no Brasil, foi criado o Grupo Cassandra Brasil via Google Groups.  &lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Informações:  &lt;/span&gt;&lt;a href=&quot;https://groups.google.com/forum/#!forum/cassandra-brasil&quot;&gt;https://groups.google.com/forum/#!forum/cassandra-brasil&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/8057548010323395050/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil_4787.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/8057548010323395050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/8057548010323395050'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil_4787.html' title='Cassandra Trip Brasil'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-644273589904162863</id><published>2013-08-13T19:06:00.007-03:00</published><updated>2013-08-13T19:06:55.404-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="brasil"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade brasileira"/><title type='text'>Cassandra Trip Brasil</title><content type='html'>&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;80&quot; src=&quot;http://cassandra.apache.org/media/img/cassandra_logo.png&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; O Cassandra é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado intensamente por empresas dos mais variados portes, tais como Netflix, Twitter, Instagram, HP, IBM,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.planetcassandra.org/Company/ViewCompany&quot;&gt;&lt;span style=&quot;color: #0088cc;&quot;&gt;&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;dentre muitas outras&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;. Um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais como a NASA.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;font-style: normal; font-variant: normal; font-weight: normal; line-height: 0.21in; margin-bottom: 0.1in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;font-style: normal; font-variant: normal; font-weight: normal; line-height: 0.21in; margin-bottom: 0.1in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; Com o intuito de divulgar essa idéia aqui no Brasil foi criado o&amp;nbsp;&lt;i&gt;Cassandra Trip Brasil&lt;/i&gt;, um evento com duração de uma semana, entre os dias 2 até 6 de setembro, sendo que cada dia será apresentado em uma cidade diferente. As cidades que sediarão esse evento serão:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;2 de Setembro, 	segunda-feira, São Paulo &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;3 de setembro, 	terça-feira, Campinas &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;4 de setembro, 	quarta-feira, Florianópolis &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;5 de setembro, 	quinta-feira, Brasília &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;6 de setembro, 	sexta-feira, Salvador&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; O evento contará com o palestrante internacional &lt;a href=&quot;http://www.linkedin.com/pub/ben-coverston/4/680/225&quot; target=&quot;_blank&quot;&gt;Ben Covertson&lt;/a&gt;&amp;nbsp;que hoje faz parte do time da DataStax, empresa que mantém o banco de dados Cassandra.&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Para saber mais:  &lt;/span&gt;&lt;a href=&quot;http://otaviojava.github.io/cassandra-trip-brasil/&quot;&gt;http://otaviojava.github.io/cassandra-trip-brasil/&lt;/a&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Com o intuito de compartilhar experiência, tirar dúvidas, ajudar a divulgação do banco Cassandra aqui no Brasil, foi criado o Grupo Cassandra Brasil via Google Groups.  &lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Informações:  &lt;/span&gt;&lt;a href=&quot;https://groups.google.com/forum/#!forum/cassandra-brasil&quot;&gt;https://groups.google.com/forum/#!forum/cassandra-brasil&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/644273589904162863/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil_5821.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/644273589904162863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/644273589904162863'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil_5821.html' title='Cassandra Trip Brasil'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-6930768560719540656</id><published>2013-08-13T19:06:00.005-03:00</published><updated>2013-08-13T19:06:55.206-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="brasil"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade brasileira"/><title type='text'>Cassandra Trip Brasil</title><content type='html'>&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;80&quot; src=&quot;http://cassandra.apache.org/media/img/cassandra_logo.png&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; O Cassandra é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado intensamente por empresas dos mais variados portes, tais como Netflix, Twitter, Instagram, HP, IBM,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.planetcassandra.org/Company/ViewCompany&quot;&gt;&lt;span style=&quot;color: #0088cc;&quot;&gt;&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;dentre muitas outras&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;. Um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais como a NASA.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;font-style: normal; font-variant: normal; font-weight: normal; line-height: 0.21in; margin-bottom: 0.1in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;font-style: normal; font-variant: normal; font-weight: normal; line-height: 0.21in; margin-bottom: 0.1in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; Com o intuito de divulgar essa idéia aqui no Brasil foi criado o&amp;nbsp;&lt;i&gt;Cassandra Trip Brasil&lt;/i&gt;, um evento com duração de uma semana, entre os dias 2 até 6 de setembro, sendo que cada dia será apresentado em uma cidade diferente. As cidades que sediarão esse evento serão:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;2 de Setembro, 	segunda-feira, São Paulo &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;3 de setembro, 	terça-feira, Campinas &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;4 de setembro, 	quarta-feira, Florianópolis &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;5 de setembro, 	quinta-feira, Brasília &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;6 de setembro, 	sexta-feira, Salvador&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; O evento contará com o palestrante internacional &lt;a href=&quot;http://www.linkedin.com/pub/ben-coverston/4/680/225&quot; target=&quot;_blank&quot;&gt;Ben Covertson&lt;/a&gt;&amp;nbsp;que hoje faz parte do time da DataStax, empresa que mantém o banco de dados Cassandra.&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Para saber mais:  &lt;/span&gt;&lt;a href=&quot;http://otaviojava.github.io/cassandra-trip-brasil/&quot;&gt;http://otaviojava.github.io/cassandra-trip-brasil/&lt;/a&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Com o intuito de compartilhar experiência, tirar dúvidas, ajudar a divulgação do banco Cassandra aqui no Brasil, foi criado o Grupo Cassandra Brasil via Google Groups.  &lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Informações:  &lt;/span&gt;&lt;a href=&quot;https://groups.google.com/forum/#!forum/cassandra-brasil&quot;&gt;https://groups.google.com/forum/#!forum/cassandra-brasil&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/6930768560719540656/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil_9206.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/6930768560719540656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/6930768560719540656'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil_9206.html' title='Cassandra Trip Brasil'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-2786856334370516705</id><published>2013-08-13T19:06:00.003-03:00</published><updated>2013-08-13T19:06:53.961-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="brasil"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade brasileira"/><title type='text'>Cassandra Trip Brasil</title><content type='html'>&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;80&quot; src=&quot;http://cassandra.apache.org/media/img/cassandra_logo.png&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; O Cassandra é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado intensamente por empresas dos mais variados portes, tais como Netflix, Twitter, Instagram, HP, IBM,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.planetcassandra.org/Company/ViewCompany&quot;&gt;&lt;span style=&quot;color: #0088cc;&quot;&gt;&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;dentre muitas outras&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;. Um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais como a NASA.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: normal; font-variant: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;font-style: normal; font-variant: normal; font-weight: normal; line-height: 0.21in; margin-bottom: 0.1in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;font-style: normal; font-variant: normal; font-weight: normal; line-height: 0.21in; margin-bottom: 0.1in;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; Com o intuito de divulgar essa idéia aqui no Brasil foi criado o&amp;nbsp;&lt;i&gt;Cassandra Trip Brasil&lt;/i&gt;, um evento com duração de uma semana, entre os dias 2 até 6 de setembro, sendo que cada dia será apresentado em uma cidade diferente. As cidades que sediarão esse evento serão:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;2 de Setembro,  segunda-feira, São Paulo &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;3 de setembro,  terça-feira, Campinas &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;4 de setembro,  quarta-feira, Florianópolis &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;5 de setembro,  quinta-feira, Brasília &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;6 de setembro,  sexta-feira, Salvador&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; O evento contará com o palestrante internacional &lt;a href=&quot;http://www.linkedin.com/pub/ben-coverston/4/680/225&quot; target=&quot;_blank&quot;&gt;Ben Covertson&lt;/a&gt;&amp;nbsp;que hoje faz parte do time da DataStax, empresa que mantém o banco de dados Cassandra.&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Para saber mais:  &lt;/span&gt;&lt;a href=&quot;http://otaviojava.github.io/cassandra-trip-brasil/&quot;&gt;http://otaviojava.github.io/cassandra-trip-brasil/&lt;/a&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Com o intuito de compartilhar experiência, tirar dúvidas, ajudar a divulgação do banco Cassandra aqui no Brasil, foi criado o Grupo Cassandra Brasil via Google Groups.  &lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Informações:  &lt;/span&gt;&lt;a href=&quot;https://groups.google.com/forum/#!forum/cassandra-brasil&quot;&gt;https://groups.google.com/forum/#!forum/cassandra-brasil&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/2786856334370516705/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil_13.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2786856334370516705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2786856334370516705'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil_13.html' title='Cassandra Trip Brasil'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-2896598806410657154</id><published>2013-08-07T20:10:00.000-03:00</published><updated>2013-08-08T06:45:08.253-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bigdata"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="easy-cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="javaBahia"/><category scheme="http://www.blogger.com/atom/ns#" term="nosql"/><category scheme="http://www.blogger.com/atom/ns#" term="soujava"/><title type='text'>Cassandra Trip Brasil</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;80&quot; src=&quot;http://cassandra.apache.org/media/img/cassandra_logo.png&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;b id=&quot;docs-internal-guid-1fe4d857-5b08-5933-0d4b-9fdd438b4f47&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; font-family: Arial; font-size: 15px; line-height: 1.15; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;O Cassandra é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado com muita frequência pelas redes sociais como Twitter, Instagram, um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais.&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Com o intuito de evangelizar essa ideia aqui no Brasil foi criado o Cassandra Trip Brasil, o evento terá duração de uma semana, entre os dias 2 até 6 de setembro, sendo que cada dia será apresentado em uma cidade diferente. As cidades que sediarão esse evento serão:&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2 de setembro, segunda-feira: Campinas&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3 de setembro, terça-feira: São Paulo&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4 de setembro, quarta-feira: Florianópolis&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5 de setembro, quinta-feira: Brasília&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6 de setembro, sexta-feira: Salvador&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Sendo que no dia 3 de setembro o evento será transmitido para todo o Brasil a partir do link:&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LINK : &lt;/span&gt;&lt;a href=&quot;https://globalcode.webex.com/globalcode/onstage/g.php?t=p&amp;amp;d=662489296&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://globalcode.webex.com/globalcode/onstage/g.php?t=p&amp;amp;d=662489296&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;PASS : cassandra&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;O evento começará a partir das 18:30 e contará com duas palestras e uma mesa redonda.&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Palestra: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Visão do NOSQL introdução do Cassandra&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Tópicos:&lt;/span&gt;&lt;/div&gt;&lt;ol style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;O que é NOSQL?&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Tipos de bancos NOSQL?&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;O que é Cassandra? Quem usa, quando usar e como?&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Comunidade&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Como fazer parte da comunidade&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Palestra: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cassandra&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Tópicos: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Integração entre as linguagens de programação como python, Java, etc.&lt;/span&gt;&lt;/div&gt;&lt;ol style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;O que é CQL novidades na versão 3.0&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Ferramentas para administrar &amp;nbsp;Cassandra&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;DataStax Enterprise&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Demonstrações&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;No Fishbowl será um local aberto para trocar experiências, esclarecer dúvidas, dicas de como começar. O grande legal dessa palestra é que quem define o andamento será o público.&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Entrada:&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; Gratuíta&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Inscrições:&lt;/span&gt;&lt;a href=&quot;http://goo.gl/hzijyz&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://goo.gl/hzijyz&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Endereços:&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cidade: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Campinas&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Data: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2 de setembro, segunda-feira&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Horário: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;18:30&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Local: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Global Code&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Endereço: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Av. Bernardino de Campos, 327, São Paulo, 04004-050&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cidade: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;São Paulo&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Data: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3 de setembro, terça-feira&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Horário: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;18:30&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Local: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Global Code&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Endereço: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;R. José Paulino, 2236, Campinas, 13023-102&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cidade: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Online&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Data: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3 de setembro, terça-feira&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Horário: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;18:30&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Local: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Online&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Endereço: &lt;/span&gt;&lt;a href=&quot;https://globalcode.webex.com/globalcode/onstage/g.php?t=p&amp;amp;d=662489296&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://globalcode.webex.com/globalcode/onstage/g.php?t=p&amp;amp;d=662489296&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span id=&quot;docs-internal-guid-1fe4d857-5b3b-926e-5ffc-e25557fd86ef&quot;&gt;&lt;span style=&quot;background-color: white; color: #222222; font-weight: bold; vertical-align: baseline;&quot;&gt;PASS :&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #222222; vertical-align: baseline;&quot;&gt; cassandra&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cidade: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Florianópolis&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Data: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4 de setembro, quarta-feira&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Horário: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;18:30&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Local:&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;ACATE (Associação Catarinense de Empresas de Tecnologia)&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Endereço: &lt;/span&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;R. Lauro Linhares, 589 - 3º andar - Trindade - Florianópolis, SC - 88036-001‎&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cidade: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Brasília&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Data: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5 de setembro, quinta-feira&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Horário: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;15:00&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Local: &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Instituto Federal de Educação, Ciência e Tecnologia de Brasília&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Endereço: &lt;/span&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; line-height: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;SGAN 610, Módulos D, E, F e G, Brasília/DF, CEP 70860-100. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans, sans-serif; font-size: 13px; line-height: normal; white-space: pre-wrap;&quot;&gt;Auditório 111 BC (120 pessoas) - Campus Brasília&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cidade: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Brasília&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Data: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5 de setembro, quinta-feira&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Horário: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;19:00&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Local: &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Instituto Federal de Brasília (Asa Norte)&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Endereço: &lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Auditório do Bloco 2 (subsolo do bloco da Biblioteca). Uniceub SEPN 707/907 - Asa Norte CEP 70790-075&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cidade: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Salvador&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Local: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Estácio/FIB&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Endereço: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Rua Xingu, nº 179-Jardim Atalaia/STIEPCEP: 41770-130&lt;/span&gt;&lt;/div&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;http://goo.gl/hzijyz&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Mais informações sobe o casandra: &lt;/span&gt;&lt;a href=&quot;http://cassandra.apache.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://cassandra.apache.org/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;a href=&quot;http://www.planetcassandra.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://www.planetcassandra.org/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href=&quot;http://www.planetcassandra.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Palestrantes:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;field field-name-user-full-name-and-title field-type-ds field-label-hidden&quot; style=&quot;border: 0px; font-family: Verdana, sans-serif; font-size: 13px; font-weight: bold; line-height: 19px; margin: 0px 0px 5px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-items&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-item even&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;block block-views block-user-full-name-and-title-block block-views-user-full-name-and-title-block odd block-without-title&quot; id=&quot;block-views-user-full-name-and-title-block&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;block-inner clearfix&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;content clearfix&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;view view-user-full-name-and-title view-id-user_full_name_and_title view-display-id-block view-dom-id-10669612f30a0b3abfad26dc0631a36c&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;view-content&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;views-row views-row-1 views-row-odd views-row-first views-row-last&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;views-field views-field-field-short-title&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-content&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;user-profle-name&quot; style=&quot;border: 0px; font-family: inherit; font-size: 16px; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Ben Covertson&lt;/div&gt;Director of Operations, DataStax&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-ds-user-picture field-type-ds field-label-hidden&quot; style=&quot;border: 0px; font-family: Verdana, sans-serif; font-size: 13px; line-height: 19px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-items&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-item even&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-field-bio field-type-text-long field-label-hidden&quot; style=&quot;border: 0px; font-family: Verdana, sans-serif; font-size: 13px; line-height: 19px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-items&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-item even&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Coverston is Director of Operations at DataStax, a provider of software, support, services, training, resources and help for Cassandra. He has been involved in enterprise software his entire career. Working in the airline industry, he helped to build some of the highest volume online booking sites in the world, and saw first-hand the consequences of trying to solve real-world scalability problems at the limit of what traditional relational databases are capable of. @bcoverston&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;field field-name-user-full-name-and-title field-type-ds field-label-hidden&quot; style=&quot;border: 0px; font-weight: bold; margin: 0px 0px 5px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-items&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-item even&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;block block-views block-user-full-name-and-title-block block-views-user-full-name-and-title-block odd block-without-title&quot; id=&quot;block-views-user-full-name-and-title-block&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;block-inner clearfix&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;content clearfix&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;view view-user-full-name-and-title view-id-user_full_name_and_title view-display-id-block view-dom-id-10669612f30a0b3abfad26dc0631a36c&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;view-content&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;views-row views-row-1 views-row-odd views-row-first views-row-last&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;views-field views-field-field-short-title&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-content&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;user-profle-name&quot; style=&quot;border: 0px; font-family: inherit; font-size: 16px; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Otávio Santana&lt;/div&gt;SouJava, JavaBahia&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-ds-user-picture field-type-ds field-label-hidden&quot; style=&quot;border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-items&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-item even&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-field-bio field-type-text-long field-label-hidden&quot; style=&quot;border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-items&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-item even&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px;&quot;&gt;Desenvolvedor entusiasta do mundo Open-Source. Praticante da filosofia ágil e do desenvolvimento&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px;&quot;&gt;poliglota na Bahia, JUG Leader do JavaBahia, membro do SouJava, um dos fomentadores do grupo&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px;&quot;&gt;LinguÁgil. Presente nos maiores eventos Java e ágil em nível nacional, contribui para o projeto&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px;&quot;&gt;openjdk e a plataforma JSE, criador do Apache Easy-Cassandra, presente na comunidade Java&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px;&quot;&gt;mundial além de escrever artigos para DevMedia, revista espírito livre e&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://java.net/&quot; style=&quot;background-color: white; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px; text-decoration: none;&quot;&gt;java.net&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-user-full-name-and-title field-type-ds field-label-hidden&quot; style=&quot;border: 0px; font-family: Verdana, sans-serif; font-size: 13px; font-weight: bold; line-height: 19px; margin: 0px 0px 5px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-items&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-item even&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;block block-views block-user-full-name-and-title-block block-views-user-full-name-and-title-block odd block-without-title&quot; id=&quot;block-views-user-full-name-and-title-block&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;block-inner clearfix&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;content clearfix&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;view view-user-full-name-and-title view-id-user_full_name_and_title view-display-id-block view-dom-id-10669612f30a0b3abfad26dc0631a36c&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;view-content&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;views-row views-row-1 views-row-odd views-row-first views-row-last&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;views-field views-field-field-short-title&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-content&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;user-profle-name&quot; style=&quot;border: 0px; font-family: inherit; font-size: 16px; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Edward Ribeiro&lt;/div&gt;SERPRO&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-ds-user-picture field-type-ds field-label-hidden&quot; style=&quot;border: 0px; font-family: Verdana, sans-serif; font-size: 13px; line-height: 19px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-items&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-item even&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-field-bio field-type-text-long field-label-hidden&quot; style=&quot;border: 0px; font-family: Verdana, sans-serif; font-size: 13px; line-height: 19px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-items&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;field-item even&quot; style=&quot;border: 0px; font-family: inherit; font-size: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;&quot;&gt;Universidade de Brasília (UnB). Lecionou em faculdades particulares do DF entre 2002 e 2008 e como professor substituto na UnB nas áreas de bancos de dados, sistemas distribuídos e sistemas operacionais. Trabalhou como servidor concursado no SERPRO, Superior Tribunal Militar (STM), TSE (eleições 2008), Câmara Legislativa do DF (CL-DF). Atualmente é servidor concursado do Senado Federal onde desenvolve sistemas web em Java.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href=&quot;http://www.planetcassandra.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.planetcassandra.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.planetcassandra.org/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/2896598806410657154/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2896598806410657154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/2896598806410657154'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/08/cassandra-trip-brasil.html' title='Cassandra Trip Brasil'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-8823667092407289883</id><published>2013-07-21T18:00:00.001-03:00</published><updated>2013-07-21T18:02:07.434-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra orm"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra orm api"/><category scheme="http://www.blogger.com/atom/ns#" term="easy-cassandra"/><title type='text'>Novo Easy-Cassandra 2.0.0 Beta</title><content type='html'>&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;64&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/a/a0/Cassandra_logo.png&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; O Cassandra, o banco de dados não relacional orientados à família de colunas,  é um banco feito para trabalhos de alta performance, alta escalabilidade horizontal além de ser tolerante a falhas. Uma das grandes vantagens de sua arquitetura de escalabilidade horizontal é que se pode fazer com que cresça o número de nós a partir de uma alta demanda e diminuir em períodos de pouco processamento, ideal para a plataforma nas nuvens tão comumente discutido. Em sua nova versão trouxe o novo Cassandra Query Language, CQL, a versão 3.0, que dentre suas melhorias está no trabalho de coleções, chaves compostas.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;&amp;nbsp;Com tantas melhorias o único problema é a maneira de tirar proveito de maneira eficiente desses novos recursos, afinal o foco do desenvolvedor Java deve ser solução em OO e sobre tudo no objetivo da aplicação, regras de negócio, a ponto de que esse parser entre banco e negócio seja o menor possível. Com esse objetivo surgiu o Easy-Cassandra, seu foco é facilitar o desenvolver Java utilizar esses recurso sem em nenhum momento desfocar no objetivo e no negócio da aplicação. Nessa nova versão o framework ORM trouce as seguintes melhorias:&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;Chave  Composta&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; Mapeamento  de coleções( java.util.List, java.util.Set, java.util.Map)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; Reconhecimento  automático dos demais cluters na conexão e trabalho de  autobalanceamento.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; Melhorias  no levantamento da aplicação.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Criação  do Schema,  para o uso de keyspace diferente do passado.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; Nessa nova versão houve algumas quebras de retrocompatibilidades, isso deve ao uso do java Driver e de suas consultas totalmente focadas no CQL 3. Essa pequena quebra está apenas no modo em que é criado a classe ponte entre o cassandra e o seu objeto java já que as anotações de mapeamento continuam tendo como base as anotações do JPA 2.0.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Como a ideia no futuro é que exista o banco MongoDB, foi criada a interface org.easycassandra.persistence.Persistence, assim os novos bancos de dados e o Cassandra terão esse contrato, assim será possível, trocando apenas a implementação, mudando o banco de dados não relacional.&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;public interface Persistence {&lt;br /&gt;&lt;br /&gt;    boolean insert(Object bean);&lt;br /&gt;&lt;br /&gt;    boolean delete(Object bean);&lt;br /&gt;&lt;br /&gt;    boolean update(Object bean);&lt;br /&gt;&lt;br /&gt;    &lt;t&gt; List&lt;t&gt; findAll(Class&lt;t&gt; bean);&lt;br /&gt;&lt;br /&gt;    &lt;t&gt; T findByKey(Object key, Class&lt;t&gt; bean);&lt;br /&gt;&lt;br /&gt;    boolean deleteByKey(Object key, Class bean);&lt;br /&gt;&lt;br /&gt;    boolean executeUpdate(String query);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;A interface do cassandra org.easycassandra.persistence.cassandra.PersistenceCassandra, como todos os novos bancos compatíveis herda do Persistence e adiciona alguns pequenos recursos.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;public interface PersistenceCassandra extends Persistence {&lt;br /&gt;&lt;br /&gt;    &lt;t&gt; List&lt;t&gt; findByIndex(Object index, Class&lt;t&gt; bean);&lt;br /&gt;&lt;br /&gt;    Long count(Class bean);&lt;br /&gt;}&lt;br /&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&amp;nbsp; &amp;nbsp; A classe responsável por gerar a implementação continua sendo a org.easycassandra.persistence.cassandra.EasyCassandraManager, mas ela se tornou um enum, sim isso mesmo um enum!, já que o objetivo é que ele seja único nada mais natural que o singleton natural cedido pela própria JVM.  &lt;/span&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Só é necessário passar o host e o keyspace, caso não existe ele se responsabilizará por você. Para adicionar objetos mapeados no Cassandra basta usar o método &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;addFamilyObject passando o .class, assim como no caso do keyspace, caso ele não existe ele se responsabilizará em criar ou alterar a column family, para o seu objeto.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Como base nisso o DAO base poderia ficar da seguinte maneira:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;public class PersistenceDao&lt;t&gt; {&lt;br /&gt;&lt;br /&gt;    private static final String KEY_SPACE = &quot;javabahia&quot;;&lt;br /&gt;    private static final String HOST = &quot;localhost&quot;;&lt;br /&gt;    private PersistenceCassandra persistence;&lt;br /&gt;    private Class&lt;t&gt; baseClass;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;    public PersistenceDao(Class&lt;t&gt; baseClass) {&lt;br /&gt;        this.baseClass = baseClass;&lt;br /&gt;        persistence = EasyCassandraManager.INSTANCE.getPersistence(HOST, KEY_SPACE);&lt;br /&gt;        EasyCassandraManager.INSTANCE.addFamilyObject(baseClass, KEY_SPACE);&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public boolean insert(T bean) {&lt;br /&gt;        return persistence.insert(bean);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public boolean remove(T bean) {&lt;br /&gt;        return persistence.delete(bean);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public boolean removeFromRowKey(K rowKey) {&lt;br /&gt;        return persistence.deleteByKey(rowKey, baseClass);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public boolean update(T bean) {&lt;br /&gt;        return persistence.update(bean);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public T retrieve(Object id) {&lt;br /&gt;     &lt;br /&gt;        return   persistence.findByKey(id, baseClass);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public List&lt;t&gt; listAll() {&lt;br /&gt;        return persistence.findAll(baseClass);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public List&lt;t&gt; listByIndex(Object index) {&lt;br /&gt;        return persistence.findByIndex(index, baseClass);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Long count() {&lt;br /&gt;        return persistence.count(baseClass);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public boolean executeUpdateCql(String string) {&lt;br /&gt;        return persistence.executeUpdate(string);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&amp;nbsp; &amp;nbsp; Uma outra estratégia seria a mudança de interface para a persistence, assim esse DAO seria para todos os bancos de dados nosql que o framework for sendo compatível. Uma vez pronto o nosso projeto base, vamos falar um pouco sobre o mapeamento dos objetos. Os desenvolvedores java que conhecem o JPA já estarão familiarizado como o modelo de mapeamento.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;@Entity(name = &quot;person&quot;)&lt;br /&gt;public class Person implements Serializable {&lt;br /&gt;&lt;br /&gt;    private static final long serialVersionUID = 3L;&lt;br /&gt;    &lt;br /&gt;    @Id&lt;br /&gt;    private Long id;&lt;br /&gt;    &lt;br /&gt;    @Index&lt;br /&gt;    @Column(name = &quot;name&quot;)&lt;br /&gt;    private String name;&lt;br /&gt;    &lt;br /&gt;    @Column(name = &quot;born&quot;)&lt;br /&gt;    private Integer year;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    @Enumerated&lt;br /&gt;    private Sex sex;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    @Embedded&lt;br /&gt;    private Address address;&lt;br /&gt;&lt;br /&gt;//getter and setter&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; Assim os campos são:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;@Id  serve para indicar que esse campo será a chave da linha.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;@Enumerated  indica que o campo é um enum.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;@Embedded  indica que existe um objeto complexo e este será embitudio na mesma  linha.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;@Index  indica o índice, funciona como um segundo ID, assim será possível  realizar busca a partir desse campo.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;@Table  ou @Entity indica que o objeto é mapeado e pega o nome da column  family&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;@EmbeddedId  indica que esse campo é um objeto complexo e nele está embutido as  chaves da column family.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;&lt;br /&gt;@Entity(name=&quot;linux&quot;)&lt;br /&gt;public class LinuxDistribuition {&lt;br /&gt;&lt;br /&gt;    @EmbeddedId&lt;br /&gt;    private IdLinux id;&lt;br /&gt;    &lt;br /&gt;    @Column&lt;br /&gt;    private String guy;&lt;br /&gt;    &lt;br /&gt;    @Column&lt;br /&gt;    private String version;&lt;br /&gt;    &lt;br /&gt;    @Column(name=&quot;descriptions&quot;)&lt;br /&gt;    private String descriptions;&lt;br /&gt;//getter and setter&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class IdLinux {&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    @Column&lt;br /&gt;    private String name;&lt;br /&gt;    &lt;br /&gt;    @Column&lt;br /&gt;    private String kernelVersion;&lt;br /&gt;//getter and setter&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Além desses campos essa nova versão trouxe novas anotações para se poder trabalhar com listas dentro do cassandra que são:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;SetData indica que o campo é uma interface java.util.Set, é necessário informar o classeData na qual indica o tipo do objeto que terá no set.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;ListData indica que o campo é uma interface java.util.List, é necessário informar o classeData na qual indica o tipo do objeto que terá na lista.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;MapData indica que o campo é uma interface java.util.Map, é necessário informar a chave e o valor do map informando o classkey e classValue respectivamente.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;Exemplos do uso dessa interação abaixo:&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;@Entity(name=&quot;resumebook&quot;)&lt;br /&gt;public class Book {&lt;br /&gt;&lt;br /&gt;    @Id&lt;br /&gt;    @Column(name=&quot;booksname&quot;)&lt;br /&gt;    private String name;&lt;br /&gt;    &lt;br /&gt;    @MapData(classKey=Long.class,classValue=String.class)&lt;br /&gt;    private Map&lt;long string=&quot;&quot;&gt; chapterResume;&lt;br /&gt;//getter and setter&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@Entity(name=&quot;shopping&quot;)&lt;br /&gt;public class ShoppingList {&lt;br /&gt;&lt;br /&gt;    @Id&lt;br /&gt;    private String name;&lt;br /&gt;    &lt;br /&gt;    @Column(name=&quot;day&quot;)&lt;br /&gt;    private Date day;&lt;br /&gt;    &lt;br /&gt;    @ListData(classData=String.class)&lt;br /&gt;    @Column(name=&quot;frutis&quot;)&lt;br /&gt;    private List&lt;string&gt; fruits;&lt;br /&gt;    &lt;br /&gt;    @Column(name=&quot;storeName&quot;)&lt;br /&gt;    private String storeName;&lt;br /&gt;//getter and setter&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@Entity(name=&quot;contact&quot;)&lt;br /&gt;public class Contact implements Serializable {&lt;br /&gt;&lt;br /&gt;    @Id&lt;br /&gt;    @Column(name=&quot;id&quot;)&lt;br /&gt;    private String name;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    @Column(name=&quot;emails&quot;)&lt;br /&gt;    @SetData(classData=String.class)&lt;br /&gt;    private Set&lt;string&gt; emails;&lt;br /&gt;//getter and setter&lt;br /&gt;}&lt;br /&gt;&lt;/string&gt;&lt;/string&gt;&lt;/long&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;Uma vez mapeado e com o DAO pronto o seu uso se torna muito fácil, já que as buscas são semelhantes a única diferença está no objeto mapeado e o retorno.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;public class BookDAOTest {&lt;br /&gt;&lt;br /&gt; private PersistenceDao&lt;book tring=&quot;&quot;&gt; persistence=new PersistenceDao&lt;book tring=&quot;&quot;&gt;(Book.class);&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    @Test&lt;br /&gt;        public void insertTest() {&lt;br /&gt;        Book book = getBook();&lt;br /&gt;        Assert.assertTrue(persistence.insert(book));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    private Book getBook() {&lt;br /&gt;        Book book = new Book();&lt;br /&gt;        book.setName(&quot;Cassandra Guide &quot;);&lt;br /&gt;        Map&lt;long string=&quot;&quot;&gt; resumeChapter=new HashMap&lt;long string=&quot;&quot;&gt;();&lt;br /&gt;        resumeChapter.put(1l, &quot;this chapter describes new resources in cassandra and improvements with CQL&quot;);&lt;br /&gt;        resumeChapter.put(2l, &quot;Understanding the architecture&quot;);&lt;br /&gt;        resumeChapter.put(3l, &quot;Installing DataStax Community&quot;);&lt;br /&gt;        resumeChapter.put(4l, &quot;Upgrading Cassandra&quot;);&lt;br /&gt;        resumeChapter.put(5l, &quot;Initializing a cluster&quot;);&lt;br /&gt;        resumeChapter.put(6l, &quot;Security&quot;);&lt;br /&gt;        resumeChapter.put(7l, &quot;Database design&quot;);&lt;br /&gt;        resumeChapter.put(8l, &quot;Using the database&quot;);&lt;br /&gt;        resumeChapter.put(9l, &quot;Database internals&quot;);&lt;br /&gt;        resumeChapter.put(10l, &quot;Configuration&quot;);&lt;br /&gt;        resumeChapter.put(11l, &quot;Operations&quot;);&lt;br /&gt;        resumeChapter.put(12l, &quot;Backing up and restoring data&quot;);&lt;br /&gt;        resumeChapter.put(13l, &quot;Cassandra tools&quot;);&lt;br /&gt;        resumeChapter.put(14l, &quot;Troubleshooting&quot;);&lt;br /&gt;        resumeChapter.put(14l, &quot;Troubleshooting&quot;);&lt;br /&gt;        resumeChapter.put(15l, &quot;References&quot;);&lt;br /&gt;        book.setChapterResume(resumeChapter);&lt;br /&gt;        return book;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    @Test&lt;br /&gt;    public void retrieveTest() {&lt;br /&gt;        Book book=persistence.retrieve(getBook().getName());&lt;br /&gt;        Assert.assertNotNull(book);&lt;br /&gt;     &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    @Test&lt;br /&gt;    public void removeTest() {&lt;br /&gt;        persistence.remove(getBook());&lt;br /&gt;        Assert.assertNull(persistence.retrieve(getBook().getName()));&lt;br /&gt;        persistence.insert(getBook());&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class ContactsDAOTest {&lt;br /&gt; private PersistenceDao&lt;contact tring=&quot;&quot;&gt; persistence=new PersistenceDao&lt;contact tring=&quot;&quot;&gt;(Contact.class);&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    @Test&lt;br /&gt;        public void insertTest() {&lt;br /&gt;        Contact contacts = getContact();&lt;br /&gt;        Assert.assertTrue(persistence.insert(contacts));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    private Contact getContact() {&lt;br /&gt;        Contact contacts = new Contact();&lt;br /&gt;        contacts.setName(&quot;Shrek &quot;);&lt;br /&gt;        contacts.setCyte(&quot;far far away&quot;);&lt;br /&gt;        contacts.setEmails(new HashSet&lt;string&gt;());&lt;br /&gt;        contacts.getEmails().add(&quot;shreck@shrek.org&quot;);&lt;br /&gt;        contacts.getEmails().add(&quot;shreck@farfaraway.far&quot;);&lt;br /&gt;        return contacts;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    @Test&lt;br /&gt;    public void retrieveTest() {&lt;br /&gt;     Contact contact=persistence.retrieve(getContact().getName());&lt;br /&gt;     Assert.assertNotNull(contact);&lt;br /&gt;     &lt;br /&gt;    }&lt;br /&gt;    @Test&lt;br /&gt;    public void removeTest() {&lt;br /&gt;        persistence.remove(getContact());&lt;br /&gt;        Assert.assertNull(persistence.retrieve(getContact().getName()));   &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class ShoppingListDAOTest {&lt;br /&gt;&lt;br /&gt;    private PersistenceDao&lt;shoppinglist tring=&quot;&quot;&gt; persistence=new PersistenceDao&lt;shoppinglist tring=&quot;&quot;&gt;(ShoppingList.class);&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    @Test&lt;br /&gt;    public void insertTest() {&lt;br /&gt;        &lt;br /&gt;        Assert.assertTrue(persistence.insert(getPolianaShoppingList()));&lt;br /&gt;    }&lt;br /&gt;    private ShoppingList getPolianaShoppingList() {&lt;br /&gt;        ShoppingList shopping=new ShoppingList();&lt;br /&gt;        shopping.setDay(new Date());&lt;br /&gt;        shopping.setName(&quot;Poliana&quot;);&lt;br /&gt;        shopping.setFruits(new LinkedList&lt;string&gt;());&lt;br /&gt;        shopping.getFruits().add(&quot;Orange&quot;);&lt;br /&gt;        shopping.getFruits().add(&quot;beans&quot;);&lt;br /&gt;        shopping.getFruits().add(&quot;rice&quot;);&lt;br /&gt;        return shopping;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    @Test&lt;br /&gt;    public void retrieveTest() {&lt;br /&gt;     ShoppingList list=persistence.retrieve(getPolianaShoppingList().getName());&lt;br /&gt;     Assert.assertNotNull(list);&lt;br /&gt;    }&lt;br /&gt;    @Test&lt;br /&gt;    public void removeTest() {&lt;br /&gt;        ShoppingList list=persistence.retrieve(getPolianaShoppingList().getName());&lt;br /&gt;        persistence.remove(list);&lt;br /&gt;        list=persistence.retrieve(getPolianaShoppingList().getName());&lt;br /&gt;        Assert.assertNull(list);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/string&gt;&lt;/shoppinglist&gt;&lt;/shoppinglist&gt;&lt;/string&gt;&lt;/contact&gt;&lt;/contact&gt;&lt;/long&gt;&lt;/long&gt;&lt;/book&gt;&lt;/book&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&amp;nbsp; &amp;nbsp; Outro recuso importante é &lt;/span&gt;&lt;span lang=&quot;pt-BR&quot;&gt;que foi solicitado pela comunidade, abraços ao pessoal da &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Bern na Suiça,&lt;/span&gt;&lt;span lang=&quot;pt-BR&quot;&gt; é a possibilidade de usar outro keyspace diferente do definido no persistence. Para isso basta usar o schema na anotação @Table como mostra o exemplo abaixo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;@Table(name=&quot;drink&quot;,schema=&quot;schemaA&quot;)&lt;br /&gt;public class Drink implements Serializable {&lt;br /&gt;&lt;br /&gt;     @Id&lt;br /&gt;     private Long id;&lt;br /&gt;     &lt;br /&gt;     @Index&lt;br /&gt;     @Column(name = &quot;name&quot;)&lt;br /&gt;     private String name;&lt;br /&gt;     &lt;br /&gt;     @Column(name = &quot;flavor&quot;)&lt;br /&gt;     private String flavor;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;A nova versão do Easy-Cassandra, 2.0.0, ainda está em fase beta, assim é necessário realizar mais testes, mas com isso tem noção do que vem está por vir. Uma das coisas legais do framework é pioneirismos do projeto, até então ele é o primeiro ORM do cassandra que utiliza os recursos do 100% CQL 3.0. Isso graças ao grande trabalho por parte da comunidade. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Link: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://github.com/otaviojava/Easy-Cassandra&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;https://github.com/otaviojava/Easy-Cassandra&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/8823667092407289883/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/07/novo-easy-cassandra-200-beta.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/8823667092407289883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/8823667092407289883'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/07/novo-easy-cassandra-200-beta.html' title='Novo Easy-Cassandra 2.0.0 Beta'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-8057803284116214432</id><published>2013-06-01T12:03:00.002-03:00</published><updated>2013-06-01T12:03:44.632-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="justjava"/><category scheme="http://www.blogger.com/atom/ns#" term="soujava"/><title type='text'>JustJava 2013</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://blogpagseguro.com.br/wp-content/uploads/2009/09/justjava-300x150.jpg&quot; /&gt;&lt;/div&gt;&lt;span style=&quot;color: #242424; font-family: Georgia; font-size: 15px; line-height: 1.15; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #242424; font-family: Georgia; font-size: 15px; line-height: 1.15; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #242424; font-family: Georgia; font-size: 15px; line-height: 1.15; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #242424; font-family: Georgia; font-size: 15px; line-height: 1.15; white-space: pre-wrap;&quot;&gt;Desde 2000, o JustJava é o principal evento independente sobre a tecnologia Java no Brasil. Organizado pelo grupo de usuários SouJava, com realização da Sucesu-SP, o JustJava traz os últimos acontecimentos e tendências da tecnologia Java. O evento inclui conteúdo e palestrantes nacionais e internacionais, visando oferecer para o profissional Java informações práticas e relevantes para seus projetos. Tem entre seus principais objetivos demonstrar a qualidade dos projetos brasileiros relacionados à tecnologia Java, oferecendo espaço para casos de sucesso de grandes e pequenas empresas nacionais.&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #242424; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Nesta edição, o o evento foi dividido em 4 salas. O auditório 1, será focado no desenvolvimento do Java para a Web e Servidor, incluindo em HTML 5, frameworks MVC integração com redes sociais, a plataforma JEE. Palestras como &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Aplicações desktop nativas com HTML5, CSS3 e JS com backend usando Servlets 3, Implementando aplicações sociais com OpenAM, Desenvolvimento Agil com Java usando Play, Novas Soluções Baseadas no JBoss Middleware farão parte dessa sala.&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #242424; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Na segunda sala terá a objetivo de falar do grande potencial que existe dentro da JVM e na plataforma JSE, se pode citar tópicos como pesquisa fonética com Java, dicas de performance no HotSpot, plugins para o compilador no Java 8, os novos recursos do Java 8(Lambda, JavaFX, dentre outros recursos), como migrar sua aplicação para o Java 8, linguagens que rodam dentro da JVM, além do funcionamento interno da máquina virtual mais utilizada no planeta.&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #242424; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;A engenharia de software apesar de ser a mais nova é que mais vem sofrendo alterações, constantes quebras de paradigmas e novas ciências como NOSQL, BigData, Cloud, ALM,&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; Raspberry Pi, tornam-se cada vez mais triviais ao conhecimento do desenvolvedor. Palestras como Neo4 o quê? Uma visão prática de banco de dados orientado a grafos, Ecossistema de APIs do Cloud Computing, Data Science para desenvolvedores Java, Drools Expert e ALM compõem essa terceira sala.&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Na quarta e última sala haverão mini-cursos e workshop com duração média de 2 horas os temas serão OpenJFX na prática, Framework Demoiselle, Java EE 7, técnicas de otimização e performance com Java serão apresentados nessa sala.&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;No evento haverá palestrantes internacionais, como Stephen Chin da Oracle e &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #242424; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Anil Kumar da Intel e palestrantes brazucas com reconhecimento internacional como o Bruno Souza, Fabiane Nardon, Loiane Groner, Michel Nascimento, dentre outros. Com um conteúdo tão legal como esse não tem como ficar de fora! Sem falar do networking tão importante na carreira de todos. Mais informações:&lt;/span&gt;&lt;a href=&quot;http://soujava.org.br/justjava-2013/&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #242424; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://soujava.org.br/justjava-2013/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Você pode ganhar uma cortesia fazendo parte da promoção dos chorões: &lt;/span&gt;&lt;a href=&quot;http://goo.gl/4dEGK&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://goo.gl/4dEGK&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Para os participantes dos encontros técnicos do SouJava, foi preparada uma promoção específica.&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;25% de caso você tenha ido uma vez&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;50% de caso você tenha ido duas vezes&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;75% de caso você tenha ido três vezes&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Georgia; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;100% de caso você tenha ido quatro vezes&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span id=&quot;docs-internal-guid-67048b1a-0042-ffff-37bc-8919f617cd18&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Georgia; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/8057803284116214432/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/06/justjava-2013.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/8057803284116214432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/8057803284116214432'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/06/justjava-2013.html' title='JustJava 2013'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-8285590050488434822</id><published>2013-04-06T10:22:00.002-03:00</published><updated>2013-04-06T10:33:35.453-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="flisol"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="java ee"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><title type='text'>Grade do FLISOL SSA[2013] Fechada</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;110&quot; src=&quot;http://softwarelivre.org/flisol-ssa/web-2013-05.png&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;O FLISOL Salvador será um evento recheado de palestras voltadas para as novidades do mercado.  O evento terá quatro salas, três contendo palestras e uma com atividade &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;a ser anunciada. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Uma novidade que será trazida esse ano ao evento, &amp;nbsp;é que dentro dele haverá um congresso de Javascript, o JS-BA, que tende a ser o primeiro do ramo aqui na Bahia.  O evento acontecerá dia 27 de abril, na Faculdade AREA1.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Evento: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;FLISOL 2013&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;Data: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;27 de abril, sábado&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;horário: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;8:00-18:00&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;Local: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Faculdade AREA1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;br /&gt;Inscrições:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;a href=&quot;http://javabahia.blogspot.com.br/p/proximos-eventos.html&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;http://javabahia.blogspot.com.br/p/proximos-eventos.html&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;b&gt;Para mais informações:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://softwarelivre.org/flisol-ssa&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;http://softwarelivre.org/flisol-ssa&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in; text-align: left;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;strong data-mce-style=&quot;font-size: x-large; text-align: center;&quot; style=&quot;font-size: x-large; text-align: center;&quot;&gt;Sala de BahiaJS&lt;/strong&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in; text-align: left;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;strong data-mce-style=&quot;font-size: x-large; text-align: center;&quot; style=&quot;font-size: x-large; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;table align=&quot;center&quot; border=&quot;0&quot; class=&quot;mceItemTable&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: default;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;strong&gt;Horário&lt;/strong&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;strong&gt;Descrição&lt;/strong&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;strong&gt;Responsável&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;08:30 às 09:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Abertura&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Organização&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;09:00 às 10:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Comunicação entre janelas em domínios diferentes utilizando postMessage&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Caio Almeida (CaioSBA)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;10:10 às 11:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;DESENVOLVIMENTO DE EXTENSÕES PARA O GOOGLE CHROME&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Marlon Carvalho&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;11:10 às 12:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Mapeando o mundo com o Google Maps API&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Antonio Fernando Santos Ladeia&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;12:00 às 13:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Almoço&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;13:00 às 14:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;&quot;&gt;Desenvolvendo&lt;/span&gt;&lt;span data-mce-style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;&quot;&gt;plugins&lt;/span&gt;&lt;span data-mce-style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;&quot; style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;&quot;&gt;&amp;nbsp;com o jQuery UI e testando com o jasmine&lt;/span&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Alexandre Magno Teles Zimerer&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;14:10 às 15:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Arquitetura de SPA (Single Page Application) utilizando ExtJs MVC e outros padrões&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Victor Cardins&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;15:10 às 16:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;melonJS: Uma alternativa Livre para o desenvolvimento de jogos em HTML5&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Luis Gustavo de Jesus Araujo&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;16:10 às 16:50&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Criando aplicações com Angularjs&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Wilson Mendes Neto&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;17:00 às 17:50&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Addicted to coffee(script)&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Aurélio A. Heckert&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;18:00 às 18:30&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Encerramento e sorteios&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Organização&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in; text-align: left;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;strong data-mce-style=&quot;font-size: x-large; text-align: center;&quot; style=&quot;font-size: x-large; text-align: center;&quot;&gt;Sala de Desenvolvimento&lt;/strong&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in; text-align: left;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;strong data-mce-style=&quot;font-size: x-large; text-align: center;&quot; style=&quot;font-size: x-large; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in; text-align: left;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;table border=&quot;0&quot; class=&quot;mceItemTable&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: default;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;strong&gt;Horário&lt;/strong&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;strong&gt;Descrição&lt;/strong&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;strong&gt;Responsável&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;08:30 às 09:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Abertura&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Organização&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;09:00 às 10:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;nodeNES - Construindo uma IDE para Nintendo 8 bits no Navegador.&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Guto Maia&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;10:10 às 11:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Introdução Prototipagem com Microcontrolador Arduino&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Fernando Moreira (Mestre dos Magos))&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;11:10 às 12:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;As principais novidades do Java EE 7&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Bruno Borges&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;12:00 às 13:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Almoço&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;13:00 às 14:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Integrando Python e JavaScript&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Luiz Claudio&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;14:10 às 15:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Design on the Browser&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Tassia Pellegrini&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;15:10 às 16:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Responsive Design, usar um framework ou não?&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Fernando&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;16:10 às 16:50&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Iniciando sua Jornada com Mule ESB&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Jean Donato / Claudio Escobar&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;17:00 às 17:50&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Arquitetura e padrões 2.0&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Otávio Santana&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;18:00 as 18:30&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Encerramento e sorteios&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;strong data-mce-style=&quot;font-size: x-large; text-align: center;&quot; style=&quot;font-size: x-large; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;strong data-mce-style=&quot;font-size: x-large; text-align: center;&quot; style=&quot;font-size: x-large; text-align: center;&quot;&gt;Sala de Infra Estrutura&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;strong data-mce-style=&quot;font-size: x-large; text-align: center;&quot; style=&quot;font-size: x-large; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;table border=&quot;0&quot; class=&quot;mceItemTable&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: default;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;strong&gt;Horário&lt;/strong&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;strong&gt;Descrição&lt;/strong&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;strong&gt;Responsável&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;08:30 às 09:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Abertura&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Organização&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;09:00 às 10:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Criando um appliance Open Source para mitigar vulnerabilidades de serviços e aplicações&lt;/span&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Alexandro &#39;Alexos&#39; Silva&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;10:10 às 11:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Software livre como diferencial no mercado de trabalho&lt;/span&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Cristiano Furtado&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;11:10 às 12:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Criptografia assimétrica com GnuPG&lt;/span&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Antonio Terceiro&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;12:00 às 13:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;Almoço&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;13:00 às 14:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Mainframes&lt;/span&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Fabio Fonseca Barbosa Gomes&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;14:10 às 15:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Balanceando alto tráfego de Proxy Squid&lt;/span&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Rafael Gomes&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;15:10 às 16:00&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;16:10 às 16:50&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Criatividade e Software Livre: como uni-los em um novo modelo de desenvolvimento&lt;/span&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Alexandre Teles&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;17:00 às 17:50&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Novas Idéias, Negócios e Perspectiva no Trabalhar com Java&lt;/span&gt;&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot; style=&quot;font-family: arial, sans, sans-serif; font-size: 13.333333969116211px; white-space: pre-wrap;&quot;&gt;Felipe Mateus&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;18:00 as 18:30&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;Encerramento e sorteios&lt;/td&gt;&lt;td data-mce-style=&quot;text-align: center;&quot; style=&quot;border: 1px dashed rgb(187, 187, 187); cursor: text; font-size: 12px; margin: 8px; text-align: center;&quot;&gt;&amp;nbsp;Organização&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in;&quot;&gt;&lt;br data-mce-style=&quot;margin-bottom: 0in;&quot; style=&quot;margin-bottom: 0in;&quot; /&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in; text-align: center;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-size: medium;&quot; style=&quot;font-size: small;&quot;&gt;&lt;strong&gt;Grade Sujeita a alteração&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in; text-align: center;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in; text-align: center;&quot;&gt;&lt;span data-mce-style=&quot;font-size: medium;&quot; style=&quot;font-size: small;&quot;&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in; text-align: center;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;margin-bottom: 0in; text-align: center;&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0in; text-align: left;&quot;&gt;&lt;div lang=&quot;pt-BR&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Mais detalhes das Palestras e palestrantes:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Sala BahiaJS: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://goo.gl/Whl3Q&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;http://goo.gl/Whl3Q&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Sala de Infraestrutura: &lt;a href=&quot;http://goo.gl/B3SX1&quot;&gt;http://goo.gl/B3SX1&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span lang=&quot;pt-BR&quot;&gt;Sala de Desenvolvimento: &lt;a href=&quot;http://goo.gl/5PyK0&quot;&gt;http://goo.gl/5PyK0&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/8285590050488434822/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/04/grade-do-flisol-ssa2013-fechada.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/8285590050488434822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/8285590050488434822'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/04/grade-do-flisol-ssa2013-fechada.html' title='Grade do FLISOL SSA[2013] Fechada'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-6200250298313832836</id><published>2013-03-14T22:09:00.000-03:00</published><updated>2013-03-14T22:13:48.810-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bahiajs"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="flisol"/><category scheme="http://www.blogger.com/atom/ns#" term="flisolssa"/><category scheme="http://www.blogger.com/atom/ns#" term="java ee 7"/><category scheme="http://www.blogger.com/atom/ns#" term="javaBahia"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="linguagil"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><title type='text'>Inscrições para FLISOL SSA 2013 Abertas</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;108&quot; src=&quot;http://softwarelivre.org/flisol-ssa/web-2013-05.png&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b id=&quot;internal-source-marker_0.11287534632720053&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;As inscrições para o FLISOL 2013 estão abertas, esse evento mais uma vez conta com a ajuda da comunidade brasileira, com profissionais com reconhecidos em todo mundo.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Umas das novidades desse evento é o primeiro encontro de javaScript da Bahia.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Guarde em sua agenda:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Evento:&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; FLISOL 2013&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Data:&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; 27 de abril, sábado&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;horário:&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; 8:00-18:00&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Local:&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; Faculdade AREA1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Inscrições:&lt;/span&gt;&lt;a href=&quot;http://javabahia.blogspot.com.br/p/proximos-eventos.html&quot;&gt;&lt;span style=&quot;color: black; font-family: Arial; font-size: 13px; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://javabahia.blogspot.com.br/p/proximos-eventos.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grade: &lt;/span&gt;&lt;a href=&quot;http://softwarelivre.org/flisol-ssa/programacao-2013&quot;&gt;&lt;span style=&quot;color: #1155cc; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://softwarelivre.org/flisol-ssa/programacao-2013&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Palestras Desenvovlimento: &lt;/span&gt;&lt;a href=&quot;http://softwarelivre.org/flisol-ssa/palestra-desenvolvimento&quot;&gt;&lt;span style=&quot;background-color: white; color: #1155cc; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://softwarelivre.org/flisol-ssa/palestra-desenvolvimento&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Palestras BahiaJS: &lt;/span&gt;&lt;a href=&quot;http://softwarelivre.org/flisol-ssa/palestra-bahiajs&quot;&gt;&lt;span style=&quot;background-color: white; color: #1155cc; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://softwarelivre.org/flisol-ssa/palestra-bahiajs&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Palestra infraestrutura;&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;a href=&quot;http://softwarelivre.org/flisol-ssa/palestra-infraestrutura&quot;&gt;&lt;span style=&quot;background-color: white; color: #1155cc; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://softwarelivre.org/flisol-ssa/palestra-infraestrutura&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/6200250298313832836/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/03/inscricoes-para-flisol-ssa-2013-abertas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/6200250298313832836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/6200250298313832836'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/03/inscricoes-para-flisol-ssa-2013-abertas.html' title='Inscrições para FLISOL SSA 2013 Abertas'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-9009971448340755336</id><published>2013-02-14T12:59:00.000-03:00</published><updated>2013-02-20T08:47:37.900-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="gdg"/><category scheme="http://www.blogger.com/atom/ns#" term="gdg Salvador"/><category scheme="http://www.blogger.com/atom/ns#" term="gdgssa"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="javaBahia"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="js"/><category scheme="http://www.blogger.com/atom/ns#" term="jsBahia"/><title type='text'>Novidade: FLISOL com o BahiaJS</title><content type='html'>&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;/b&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-zTd_9MEz__E/UR0GoMeAprI/AAAAAAAACXs/SC76zn5kiW0/s1600/BahiaJS.png&quot; /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;display: inline !important; margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;O &lt;/span&gt;&lt;a href=&quot;http://softwarelivre.org/flisol-ssa&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Festival Latino Americano de Instalação de Software Livre&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, FLISOL, sempre foi palco de novidades, com palestras de infraestrutura, empreendedorismo, desenvolvimento, dentre outros quando o assunto é software livre. O objetivo do evento é sempre mostrar que a tecnologia de código aberto vem evoluindo através do tempo e muito tende a crescer. Esse ano a sala de desenvolvimento traz uma grande novidade:&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Em conjunto com o &lt;/span&gt;&lt;a href=&quot;http://softwarelivre.org/flisol-ssa&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;FLISOL&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, acontece o primeiro encontro de JavaScript na Bahia, o BahiaJS. A linguagem JavaScript, que vem era tratada como mero coadjuvante para aplicação web, tem se tornado uma peça preponderante não somente para a usabilidade da aplicação e estética, mas também para performance e economia de recursos do servidor. &amp;nbsp;Assim como o FLISOL, esse é um evento que depende e muito da participação de todos! Ajude-nos a divulgar o evento, submeta palestras e principalmente: venha prestigiar o evento!&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Contamos com sua participação no BahiaJS junto com o FLISOL que acontecerá no dia 27 de abril, sábado, na faculdade AREA1.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Você tem interesse em palestrar no BahiaJS? Então submeta sua palestra em:&lt;/span&gt;&lt;a href=&quot;http://goo.gl/od1TY&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #222222; font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://goo.gl/od1TY&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt; text-indent: 35pt;&quot;&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Você ou sua empresa tem interesse em em patrocinar o evento: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;http://goo.gl/gTzOi&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;Proposta do evento &lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-8S9P2bGHJgg/USS3yhRrooI/AAAAAAAACY0/ITH3JvkRizA/s1600/BahiaJS.png&quot; /&gt;&lt;/div&gt;&lt;b style=&quot;background-color: white; color: #222222; font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/9009971448340755336/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/02/novidade-flisol-com-o-bahiajs.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/9009971448340755336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/9009971448340755336'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/02/novidade-flisol-com-o-bahiajs.html' title='Novidade: FLISOL com o BahiaJS'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-zTd_9MEz__E/UR0GoMeAprI/AAAAAAAACXs/SC76zn5kiW0/s72-c/BahiaJS.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-1124966335397180865</id><published>2013-01-18T23:53:00.000-03:00</published><updated>2013-01-18T23:53:57.436-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="big data"/><category scheme="http://www.blogger.com/atom/ns#" term="bigdata"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="java ee"/><category scheme="http://www.blogger.com/atom/ns#" term="openjdk"/><category scheme="http://www.blogger.com/atom/ns#" term="opensource"/><title type='text'>Introdução ao BigData</title><content type='html'>&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_S4MMSZM1-as/TNAEJeB2WII/AAAAAAAAAIQ/yBGbGIMFui4/s1600/binary+code.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;117&quot; src=&quot;http://4.bp.blogspot.com/_S4MMSZM1-as/TNAEJeB2WII/AAAAAAAAAIQ/yBGbGIMFui4/s320/binary+code.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Demorou, mas finalmente conseguir um tempo para falar um pouco da minha apresentação no JavaOne 2012  que foi BigData. Com a evolução das aplicações e  a necessidade do ser humano pela informações, mais e mais aplicações vem surgindo, deixando o homem cada vez mais refém da informação. Para isso basta lembra-nos da evolução do homem em que num passado existia muitas pessoas para uma máquina ( como o mainframe), em seguida uma pessoa por máquina ( o caso do computador pessoal) e nos tempos atuais em que para cada pessoa possue várias máquinas ( notebook, ultrabook, PC, tablet, smartphone, no futuro óculos, geladores, etc.).  Com tantos aplicativos surgindo as informações são geradas exponencialmente, com isso a capacidade de gerenciar tantas informações se torna primordial para as aplicações atuais. Esse mesmo crescimento de dados acontece nos aplicativos empresariais com crescimento anual de 60%, se estima que uma empresa com mil funcionários gera anualmente 1000 terabytes sem falar que essa quantidade tende a aumentar cinquenta  vezes até 2020.&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Com o  recém surgimento do bigdata, a primeira dificuldade é encontrar o seu conceito, é possível vê-los de maneiras totalmente divergentes em cada blog que se lê, ou seja, se você ler 10 materiais sobre bigdata, provavelmente cada um trará conceitos diferentes. Dentre as matérias ao se tirar um mínimo comum se verá que o bigdata na sua raiz se fala em tratar um grande volume de dados com grande velocidade. No entanto se repara que essa definição é bastante abstrata pelo simples fato de que para uma pessoa A, por exemplo, um grande volume seja um gigabyte e para uma pessoa B um grande volume seja um terabyte e o mesmo pode acontecer ao se referenciar a velocidade e o tempo de resposta de uma requisição.  &lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Assim o grande desafio do bigData é estar administrando um grande volume de dados e minerando informações em um menor tempo de requisição. Com o grande volume de dados fazer com que a aplicação cresça a medida que é necessário é uma ótima estratégia assim uma escalabilidade vertical ( em que se aumenta o poder do hardware como aumento de memória e de processamento de uma única máquina) ou horizontal ( em que se aumenta a quantidade de máquina) deve ser analisada. Apesar de ser mais complexa a escalabilidade horizontal acaba sendo muito barata sem falar de ser mais fácil de crescer ou diminuir os recursos por demanda.  &lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Para armazenar as informações com a escalabilidade horizontal os bancos NOSQL são uma ótima estratégia, vale lembrar que o banco NOSQL significa não apenas, not only, e não sql, no sql. Uma diferença entre os bancos NOSQL e o SQL é que o primeiro possui uma grande variedade de bancos e cada um com características diferentes. Em termo de arquitetura os bancos NOSQL podem ser distribuídos ou não, embora sejam mais populares do tipo distribuído. Sua forma de armazenamento pode ser apenas memória ou apenas disco rígido ou configurável( vale apena lembrar que banco apenas  na memória são muito rápidos, no entanto são volúveis, já os somente no HD tem informações permanentes, porém o I/O é muito alto). Outra características divergentes entre os bancos NOSQL está na forma do armazenamento que são: chave-valor, documento, família de coluna e grafos. Os bancos &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NOSQL costumam ser muito rápido na leitura e na escrita, no entanto, possui uma grande deficiência por parte das buscas, normalmente são dadas apenas pela chave, para isso usar um serviço para terceirizar o serviço pode ser uma boa ideia, como o framework Lucene.&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Mesmo realizando estratégias de buscas terceirizadas ou buscando pelo id, se a informação não estiver na memória principal pode haver uma demora para recuperar essa informação, assim, ter um dispositivos de acesso rápido pode ser uma melhor opção, com isso o uso do cache. Ao se optar pelo cache deve-se levar em conta os dois maiores desafios:&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Ter informação: O ato de esquentar a informação é extremamente importante para esse mecanismos, já que não adianta existir um cache se o mesmo não tenha nenhuma informação. Para isso ele pode ser esquentado de várias formas (ao iniciar uma aplicação, por demanda, por sessão do usuário) que desse ser definido com o aplicativo em questão não existindo uma bala de prata.&lt;/li&gt;&lt;li&gt;Matar o cache: Para o cache é necessário que exista apenas informações atuais, assim é importante que os dados atuais sejam mortos e trocado por informações mais atuais.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Um outro aspecto no bigdata, que não é muito tratado, está relacionado na velocidade da modelagem além da velocidade no desenvolvimento de software. Um exemplo muito interessante é o twitter que viu muito usuários usando a hashtag ( o &#39;#&#39; adicionado com uma palavra) e em pouco tempo teve que realizar pesquisas através dos mesmos.  &lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Assim podemos verificar que o bigdata não apenas está relacionado apenas na velocidade de requisição, mas também em desenvolvimento, assim conhecer  bem o negócio além de várias ferramentas poderá ser extremamente importante. Na linguagem Java conhecer o Java EE 6, muito em breve o java 7, além do JDK 7 trará velocidade de desenvolvimento, produtividade e um melhor gerenciamento de memória.  &lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&amp;nbsp; &amp;nbsp; Assim pode-se concluir que o conceito do BigData é relativamente muito fácil, mesmo sendo divergente em várias fontes, que é gerenciar um grande volume de memória em alta velocidade. O mais difícil certamente é chegar nesse objetivo já que para isso é necessário conhecer uma gama de ferramentas, frameworks, metologias, tipos de bancos como NOSQL, SQL e NewSQL, cache, serviço de indexação de buscas, tipos de escalabilidades, etc. Apesar de ainda ser muito discutida nas universidades a normalização foi desenvolvida em 1970 ( vale lembrar que os servidores da época possuíam 16kb de memória principal e 800kb de armazenamento e os celulares são muitas vezes mais rápido que estes servidores) ou seja não é certo afirmar que os aplicativos, os hardwares, as necessidades de hoje são os mesmos daquela época, assim é entender que esse padrão nem sempre é válido.  &lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;421&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; mozallowfullscreen=&quot;mozallowfullscreen&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/14393400&quot; style=&quot;border: 1px solid rgb(204, 204, 204); margin-bottom: 5px;&quot; webkitallowfullscreen=&quot;webkitallowfullscreen&quot; width=&quot;512&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;&lt;strong&gt; &lt;a href=&quot;http://www.slideshare.net/otagonsan/bigdata-14393400&quot; target=&quot;_blank&quot; title=&quot;Bigdata&quot;&gt;Bigdata&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;http://www.slideshare.net/otagonsan&quot; target=&quot;_blank&quot;&gt;Otávio Gonçalves de Santana&lt;/a&gt;&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Código:&amp;nbsp;&lt;a href=&quot;https://github.com/otaviojava/introBigData&quot;&gt;https://github.com/otaviojava/introBigData&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/1124966335397180865/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2013/01/introducao-ao-bigdata.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/1124966335397180865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/1124966335397180865'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2013/01/introducao-ao-bigdata.html' title='Introdução ao BigData'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_S4MMSZM1-as/TNAEJeB2WII/AAAAAAAAAIQ/yBGbGIMFui4/s72-c/binary+code.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-4691920917161565687</id><published>2012-11-16T20:50:00.000-03:00</published><updated>2012-11-16T20:50:54.196-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="atraso"/><category scheme="http://www.blogger.com/atom/ns#" term="auto-gerenciável"/><category scheme="http://www.blogger.com/atom/ns#" term="delay tier"/><category scheme="http://www.blogger.com/atom/ns#" term="gerenciável"/><category scheme="http://www.blogger.com/atom/ns#" term="processo software"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="tier"/><category scheme="http://www.blogger.com/atom/ns#" term="tio senha"/><title type='text'>Conhecendo o tio da senha</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://2.bp.blogspot.com/-ZqyYqBmtzHs/UKasnhPVr4I/AAAAAAAACCg/8FXcqDW-g8Q/s320/image3082.png&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0.14in;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A divisão do software em camadas, atualmente, é certamente uma das formas mais eficiente de estar se organizando a sua aplicação. Facilitando a manutenção, reaproveitamento de código, etc. Vale salientar que camada no inglês tem duas palavras: Tier, a camada física e Layer, camada lógica. No entanto, criar um grande número de camadas além de desnecessário acaba deteriorando a desempenho do seu software. Assim surgiram as chamadas delay layer, camadas lógicas que apenas servem para passar à informação a diante, gerando atraso na reposta e consumo desnecessário na memória. Esses atrasos em alguns casos acontecem fora da parte lógica da aplicação. Acontecem no processo de desenvolvimento (fora do código), pessoas ou profissionais que acabam gerando um atraso na resposta, delay tier, conhecido carinhosamente como os tios da senha.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-yk2E48YCMmU/UAAk4ctIjqI/AAAAAAAACRA/2pePxePV1k0/s1600/atraso.gif&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Exemplificando como eles funcionam, falarei do funcionário que aperta o botão no elevador, não estou desmerecendo nenhuma profissão. O elevador possui uma interface super simples e basta se pressionar o botão com o andar desejado. Você precisa informar o andar desejado e ele por sua vez apertará o botão. Essa chamada gerará um atraso natural até você informar o andar desejado e ação desse profissional, quando entrar 10 pessoas simultaneamente essa demora será “gritante”. &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.kadu.com.br/files/elevador2.jpg&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;As empresas não o contratam diretamente, os preferem chamar de Arquitetos, gestores de aplicação ou DBAs, são profissionais que centralizam alguns até mesmo todos os processos de software de uma empresa. Essa ação gera uma pseudo controle para a empresa, porém, acaba gerando atraso tanto nas escolhas de tecnologias quanto na execução de um script, alteração no banco de dados etc. e esses atrasos impactam diretamente a entrega desse projeto. &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;O fato é que as tecnologias, requisitos, metodologias, etc. surgem muito rápidos, assim nascem várias siglas (UX, DDD, TDD, BDD NOSQL, NewSQL, bid data, integração contínua, etc.) e deixar essa responsabilidade na mão de apenas uma pessoa ou uma pequena equipe se torna um erro. Por alguns motivos:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Caso os detentores das senhas, se desmotivarem e parem de se atualizar profissionalmente. O parque tecnológico da empresa em pouco tempo vivará artefato de museu.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://vocesa.abril.com.br/blog/senhor-do-seu-tempo/files/2008/04/responsabilidade.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;257&quot; src=&quot;http://vocesa.abril.com.br/blog/senhor-do-seu-tempo/files/2008/04/responsabilidade.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Centralizar decisões tecnologias para todos os projetos é um grande erro! Ninguém melhor que um membro da equipe para decidir qual ferramenta é a mais interessante para um requisito específico.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; text-indent: 0.49in;&quot;&gt;Sem falar que pode gerar uma padronização equivocada, ou seja para todos os problemas a mesma solução.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; text-indent: 0.49in;&quot;&gt;&amp;nbsp;Dizer que para todos os problemas precisamos de um martelo é dizer que os parafusos também são pregos.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://1.bp.blogspot.com/-UI0Bj-8ip9w/TtcelnCNs1I/AAAAAAAAAOQ/pTGMPSrG-z4/s200/egos.jpg&quot; width=&quot;175&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;O aumento demasiado do ego, isso mesmo, um técnico com um ego muito grande faz com que toda a empresa use tecnologias do seu “mundinho” para que assim seja o maioral.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Atraso na resposta, fazer com que muitos processos passem na mão de uma pessoa, quando existir muitas requisições de várias pessoas em algum momento gerará um atraso, é o caso do elevador quando entram dez pessoas ao mesmo tempo.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://daquepensar.com/wp-content/uploads/2012/09/QI_Homer.jpg&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Mal aproveitamento de um profissional, se queremos executar um simples script ou renomear um campo de uma tabela para que precisamos de um DBA para uma atividade tão trivial ? Seria mais interessante que ele estivesse ajudando em atividades como: trabalhar para dar maior desempenho e diminuir o tempo de resposta no banco, definir índices, ajudar na escalabilidade do banco, uma mudança de estratégia para um banco NOSQL ou NewSQL, bigdata, ajudar na criação de querys com mais desempenho ou talvez criação de views, etc.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://oglobo.globo.com/blogs/arquivos_upload/2009/07/106_352-janelas.JPG&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;	 	 	   &lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Abandono na qualidade do projeto, o software que usa ferramentas muito antigas será a &lt;a href=&quot;http://pt.wikipedia.org/wiki/Teoria_das_Janelas_Partidas&quot; target=&quot;_blank&quot;&gt;janela quebrada&lt;/a&gt; do seu projeto.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/_9J8ZPzACxAA/SpQtwnWUxdI/AAAAAAAAAi0/Fg2fnotTYgc/s320/desmotivado.JPG&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; text-indent: 0.49in;&quot;&gt;Desmotivar a refatoração do projeto, o fato mais comum para os requisitos é que eles mudam com uma grande facilidade, desse modo, a refatoração é importante tanto para um código e banco mais limpo tanto para um bom desempenho para a aplicação. Quando para realizar tal atividade precisa passar por um processo demorado, essa atividade acaba sendo muito custosa para o projeto e em alguns casos sendo descartável.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt; &lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Ou o que eles precisam fazer ? &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Acredito que o primeiro passo é entender que engenharia de software não é comparável com outras áreas, assim, possuem características e metodologias próprias. Em seguida a área evolui muito rápida e precisamos evoluir junto com ela simplesmente “parar no tempo”.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;http://4.bp.blogspot.com/-W3_D_hquylE/TpWo_Q9AszI/AAAAAAAAAow/HO6F8_p1ihU/s320/equipe.jpg&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Em relação das ações, o que eles precisam fazer é o processo totalmente inverso, ou seja, o de não centralizar informação e ser o facilitar o acesso ao conhecimento. Descentralizar é fazer com as informações circulem de maneira mais “livre” e que as soluções partem de qualquer parte da empresa. Estimular atividades como &lt;a href=&quot;http://cleversonsacramento.com/2010/07/21/pratique-coding-dojo-com-sua-equipe/&quot; target=&quot;_blank&quot;&gt;codingdojos&lt;/a&gt;, participação de eventos, wiki na empresa, etc. Uma equipe autogerenciável deve ser o sonho de qualquer gestor de TI que esteja em 2012.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;293&quot; src=&quot;http://4.bp.blogspot.com/-uR7vHflh9Z0/T_7217NWmMI/AAAAAAAAARg/Vvrhl86DSc0/s320/ser-feliz.jpg&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Remover os atrasos do processo software é crucial para manter um ciclo saudável no desenvolvimento. Conhecer a filosofia “toyotismo”, que se tornaram base para as metodologias ágeis, e dizer adeus ao “Taylorismo”, filosofia de Taylor que visa centralizar as decisões, é um pequeno passo para isso. Desconcentrar processos e decisões de software é muito mais do que apenas remover uma camada física desnecessária, delay tier, também é criar uma equipe auto-gerenciável, impedir que a empresa vire um museu, permitir que exista opções para solucionar um problema e que a mais adequada seja utilizada, deixar fluir a informação e fazer com que o profissionais se atualizem e utilizem tal conhecimento.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; text-indent: 0.49in;&quot;&gt;Sobre tudo demonstrar que gosta do que faz e passar esse prazer para os outros membros da equipe, estimular para que eles também façam o mesmo.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in; text-indent: 0.49in;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0.14in;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/4691920917161565687/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2012/11/conhecendo-o-tio-da-senha.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/4691920917161565687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/4691920917161565687'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2012/11/conhecendo-o-tio-da-senha.html' title='Conhecendo o tio da senha'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ZqyYqBmtzHs/UKasnhPVr4I/AAAAAAAACCg/8FXcqDW-g8Q/s72-c/image3082.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-4753282660249149309</id><published>2012-10-31T20:33:00.001-03:00</published><updated>2012-10-31T20:33:23.373-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gdg"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="google brasil"/><category scheme="http://www.blogger.com/atom/ns#" term="javaBahia"/><title type='text'>Ultimo Encotro javaBahia 2012</title><content type='html'>&lt;br /&gt;&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white;&quot;&gt;&lt;b style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;Local:&lt;/b&gt;&lt;span style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&amp;nbsp;Estácio&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;il&quot; style=&quot;background-color: #ffffcc; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;FIB&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;Data&lt;/b&gt;: 10 de novembro&lt;/div&gt;&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;Horário&lt;/b&gt;: 8:30&lt;/div&gt;&lt;div&gt;&lt;b style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;Inscrições:&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;color: #222222; font-family: arial, sans-serif; font-size: x-small;&quot;&gt;&lt;a href=&quot;http://goo.gl/feCAz&quot;&gt;http://goo.gl/feCAz&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;valor:&lt;/b&gt;&amp;nbsp;Gratuíto&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;8:30&amp;nbsp;&lt;b&gt;palestra&lt;/b&gt;&amp;nbsp;GDG&lt;br /&gt;&lt;b&gt;Descrição&lt;/b&gt;Os GDGs (Google Developer Groups) são peças muito importantes na estratégia do Google de divulgar e popularizar as tecnologias e produtos da empresa. Além disso, nada melhor que promover a troca de conhecimento e experiências entre a própria comunidade, e o Google quer ajudar os grupos a fazerem isso. Nessa palestra, vamos falar um pouco sobre a estratégia, os benefícios e como o Google pretende ajudar os GDGs no Brasil, e claro, a importância de novos grupos como o GDG SSA.&lt;br /&gt;9:00&lt;b&gt;Palestra:&lt;/b&gt;&amp;nbsp;Google Maps API&lt;br /&gt;&lt;b&gt;Descrição:&lt;/b&gt;&amp;nbsp;Google Maps API é um serviço gratuito que possui várias APIs que permitem incorporar as funcionalidades do Google Maps em seus aplicativos. Nessa palestra, iremos ver na prática como usar alguns desses recursos.&lt;/div&gt;&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;9:30&amp;nbsp;&lt;b&gt;Palestra:&lt;/b&gt;&amp;nbsp;Android 4 UX e Design – O que muda?&lt;br /&gt;&lt;b&gt;Descrição:&lt;/b&gt;&amp;nbsp;Plataforma. Algumas regras mudaram. Novos padrões surgiram. Se você estava acostumado à forma de construir aplicativos para Android com as versões pré-ICS, venha conhecer essas mudanças e como elas vão afetar, para melhor, sua forma de criar aplicativos.&lt;/div&gt;&lt;div style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;10:00&lt;b&gt;&amp;nbsp;Palestra&lt;/b&gt;&amp;nbsp;Utilizando as APIs de dados do Google.&lt;br /&gt;&lt;b&gt;Descrição&lt;/b&gt;AngularJS é uma biblioteca JavaScript para desenvolvimento de&lt;br /&gt;aplicações Web que implementa o modelo MVC do lado do navegador e&lt;br /&gt;recupera dados do servidor em formato JSON. Sua principal&lt;br /&gt;característica é desacoplar a manipulação do DOM da lógica da&lt;br /&gt;aplicação, o que facilita muito o uso de testes.&lt;br /&gt;11:00&amp;nbsp;&lt;b&gt;Palestra&lt;/b&gt;Primeiros passos com GAE em Java&lt;br /&gt;&lt;b&gt;Descrição:&lt;/b&gt;&amp;nbsp;Conheça um pouco das vantagens que o GAE pode te proporcionar.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/4753282660249149309/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2012/10/ultimo-encotro-javabahia-2012.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/4753282660249149309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/4753282660249149309'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2012/10/ultimo-encotro-javabahia-2012.html' title='Ultimo Encotro javaBahia 2012'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-5668985244670008433</id><published>2012-09-23T15:58:00.000-03:00</published><updated>2012-09-23T15:58:37.207-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="guice"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="nosql"/><category scheme="http://www.blogger.com/atom/ns#" term="tomcat"/><title type='text'>Novo Easy-Cassadran 1.1.0: Unindo com o Google Guice</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://cssjockey.com/images/google-juice.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://cssjockey.com/images/google-juice.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Lançada a mais nova versão do Easy-Cassandra, essa nova versão trouxe novidade no gerenciamento de muitos nós. O uso de muito nós é interessante para o Cassandra já que evita gargalos,  garante a tolerância a falhas, elasticidade além do fato. Um grande número de nós faz com que o Cassandra distribua as requisições salientando que esse tipo de banco possui uma arquitetura distribuída, ou seja, vale a pena utilizar um grande número de nós.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tão logo se tenha múltiplos nós do Cassandra o próximo passo é estar dividindo as tarefas entre os mesmos, não adianta se possuir dez nós, por exemplo, se todas as requisições vão sempre para um.  Feito isso, o banco tratará todo resto (replicar informação entre os nós, ler e escrever a partir do nível de consistência, etc.).   A estratégia utilizada no Easy para aproveitar o máximo dos múltiplos nós, é fazer com que cada requisição use um cliente diferente, para isso ele terá duas formas:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Seqüencial: Cada nó recebe um número de ordem crescente que vai de 0 até N-1, em que N é o número instâncias do Cassandra, feito essa numeração, para cada solicitação ao Cassandra ( atualizar, criar, deletar) é usado um cliente diferente seguindo em ordem crescente, por exemplo: Primeira requisição cliente 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Segunda requisição cliente 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Uma vez acabado o número de nós, essa ordem recomeça a partir do cliente 0.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Randômico: De forma semelhante ao seqüencial, é dado um número para cada cliente onde começa de 0 até n-1, após essa numeração para cada requisição é criado um número aleatório que representa uma instância do Cassandra. &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Para usar uma das duas estratégias no ORM é bastante simples: O primeiro passo é criar instâncias do Cassandra Adicionar esses nós no Easy-Cassandra Criar uma das duas Estratégias informando o nome do keyspace, caso não existe o keyspace será criado. Para demonstrar esse novo recurso será usado um simples exemplo: O seu objetivo será apenas recolher uma resposta de qualquer usuário para a seguinte pergunta: “O que você acha do Cassandra”. Para fazer esse exemplo utilizaremos o tomcat como servidor, jsf na visão e o Google Guice como injeção de dependência. Como o objetivo é estar apenas armazenando o usuário e sua pergunta, modelando o objeto a ser salvo ficará do seguinte modo:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;@Entity&lt;br /&gt;public class Post implements Serializable;&lt;br /&gt;   @Id&lt;br /&gt;    private String nickName;&lt;br /&gt;    &lt;br /&gt;    @Column&lt;br /&gt;    private String text;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Estaremos usando os qualificadores do Google Guice, a idéia é que a partir da anotação seja definido o tipo de persistência seqüencial e randômico. Conforme mostra a tabela 2. &lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;@BindingAnnotation @Target({ FIELD, PARAMETER, METHOD }) @Retention(RUNTIME)&lt;br /&gt;public @interface Random {}&lt;br /&gt;@BindingAnnotation @Target({ FIELD, PARAMETER, METHOD }) @Retention(RUNTIME)&lt;br /&gt;public @interface Sequencial {}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;&lt;br /&gt; @Inject @Sequencial&lt;br /&gt;    private ServiceClient sequencialClient;&lt;br /&gt;    &lt;br /&gt;    @Inject @Random&lt;br /&gt;    private ServiceClient randomClient;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; A criação dos dois tipos é bastante semelhante, a primeiro é adicionando os host, feito isso já se pode chamar qualquer uma das formas de estratégia de persistência conforme mostra a tabela 3.  &lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;        EasyCassandraManager.getPersistence(&quot;javabahia&quot;, &quot;localhost&quot;, 9160);&lt;br /&gt;        EasyCassandraManager.getPersistence(&quot;javabahia&quot;, &quot;node2&quot;, 9160);&lt;br /&gt;        EasyCassandraManager.getPersistence(&quot;javabahia&quot;, &quot;node3&quot;, 9160);&lt;br /&gt;        EasyCassandraManager.addFamilyObject(Post.class);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;O código desenvolvido permite duas opções de inserir sua resposta: uma seqüencial e uma randômica e tão logo é inserido a informação é recuperada e lançada em forma de lista das duas formas.   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Nesse pequeno post foram apresentadas duas estratégias para a persistência com multi-nodes usando o Easy-Cassandra.  A idéia principal foi demonstrar a importância de compartilhar os trabalhos com as outras instâncias, já que não adianta ter muitos nós e todas as requisições ficarem apenas em uma, gerando todo o gargalo. Além de demonstrar um pouco do recurso do Google Guice e sua integração com o framework. &lt;br /&gt;&lt;br /&gt;Exemplo:&amp;nbsp;&lt;a href=&quot;http://softwarelivre.org/otagonsan/codigofonte/guicecassandra.zip&quot;&gt;http://softwarelivre.org/otagonsan/codigofonte/guicecassandra.zip&lt;/a&gt;&lt;br /&gt;Easy-Cassandra:&amp;nbsp;&lt;a href=&quot;https://github.com/otaviojava/Easy-Cassandra&quot;&gt;https://github.com/otaviojava/Easy-Cassandra&lt;/a&gt;&lt;br /&gt;Google Guice:&amp;nbsp;&lt;a href=&quot;http://code.google.com/p/google-guice/&quot;&gt;http://code.google.com/p/google-guice/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/5668985244670008433/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2012/09/novo-easy-cassadran-110-unindo-com-o.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/5668985244670008433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/5668985244670008433'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2012/09/novo-easy-cassadran-110-unindo-com-o.html' title='Novo Easy-Cassadran 1.1.0: Unindo com o Google Guice'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-3928993009847300661</id><published>2012-09-16T13:32:00.001-03:00</published><updated>2012-09-17T20:03:44.010-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="github"/><category scheme="http://www.blogger.com/atom/ns#" term="javaBahia"/><category scheme="http://www.blogger.com/atom/ns#" term="linguagil"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="movel"/><category scheme="http://www.blogger.com/atom/ns#" term="nativo"/><category scheme="http://www.blogger.com/atom/ns#" term="open"/><category scheme="http://www.blogger.com/atom/ns#" term="opensource"/><category scheme="http://www.blogger.com/atom/ns#" term="palestras"/><category scheme="http://www.blogger.com/atom/ns#" term="soujava"/><category scheme="http://www.blogger.com/atom/ns#" term="webmobile"/><title type='text'>Palestras Desenvolimento no SFD 2012</title><content type='html'>&lt;br /&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-bVfZBbmeowU/UFX9gsw2OOI/AAAAAAAABhw/ntOuW5OYq0I/s1600/logo_2012_SFD_big_big.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;170&quot; src=&quot;http://1.bp.blogspot.com/-bVfZBbmeowU/UFX9gsw2OOI/AAAAAAAABhw/ntOuW5OYq0I/s200/logo_2012_SFD_big_big.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;O Software Freedom Day (SFD) é uma celebração mundial do Software Livre e do Código Aberto (Free and Open Source Software – FOSS). Para esse evento na grade de desenvolvimento teve u&lt;span style=&quot;color: #222222;&quot;&gt;ma sala voltada para os desenvolvedores de software, entusiastas ou profissionais, o objetivo foi demonstrar ferramentas livres, além das mais recentes tecnologias lançadas no mercado. Temas como Cloud Computing, Html 5, GitHub e dispositivos móveis fizeram parte dos temas abordados nessa sala.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=1332585484712215197&quot; name=&quot;__DdeLink__1_1755262202&quot;&gt;&lt;/a&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;Confiram as apresentações que fizeram parte dessas seletas palestra para o evento.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;JUSTIFY&quot; lang=&quot;pt-BR&quot; style=&quot;margin-bottom: 0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;356&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/14294776&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;&quot; width=&quot;427&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;356&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/14301058&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;&quot; width=&quot;427&quot;&gt; &lt;/iframe&gt;  &lt;br /&gt;  &lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;356&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/14297089&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;&quot; width=&quot;427&quot;&gt; &lt;/iframe&gt;  &lt;br /&gt;  &lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;356&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/14304738&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;&quot; width=&quot;427&quot;&gt; &lt;/iframe&gt;  &lt;br /&gt;   &lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;356&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/14304789&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;&quot; width=&quot;427&quot;&gt; &lt;/iframe&gt; &lt;div style=&quot;margin-bottom: 5px;&quot;&gt;&lt;br /&gt;&lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;356&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/14305828&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;&quot; width=&quot;427&quot;&gt; &lt;/iframe&gt;   &lt;br /&gt;&lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;356&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/14311293&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;&quot; width=&quot;427&quot;&gt; &lt;/iframe&gt;   &lt;/div&gt;&lt;/center&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/3928993009847300661/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2012/09/palestras-desenvolimento-no-sfd-2012.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/3928993009847300661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/3928993009847300661'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2012/09/palestras-desenvolimento-no-sfd-2012.html' title='Palestras Desenvolimento no SFD 2012'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-bVfZBbmeowU/UFX9gsw2OOI/AAAAAAAABhw/ntOuW5OYq0I/s72-c/logo_2012_SFD_big_big.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-4556515004011339271</id><published>2012-09-16T07:38:00.002-03:00</published><updated>2012-09-17T18:07:38.567-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cache"/><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="cloud computing"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="javaman"/><category scheme="http://www.blogger.com/atom/ns#" term="nosql"/><category scheme="http://www.blogger.com/atom/ns#" term="soujava"/><title type='text'>Encontro Técnico SouJava</title><content type='html'>&lt;br /&gt;&lt;blockquote style=&quot;background-color: white; border: none; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin: 0px 0px 0px 40px; padding: 0px;&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;img alt=&quot;Imagem inline 1&quot; class=&quot;&quot; src=&quot;https://mail.google.com/mail/?ui=2&amp;amp;ik=66588ce148&amp;amp;view=att&amp;amp;th=139b18d122a66fa6&amp;amp;attid=0.3&amp;amp;disp=emb&amp;amp;realattid=ii_139b18b030c55783&amp;amp;zw&amp;amp;atsh=1&quot; /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0.0001pt;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0.0001pt;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;No dia 20 de setembro o SouJava estará promovendo um encontro técnico com o objetivo de estar disseminando a cultura de desenvolvimento na plataforma Java. Nesse encontrado será abordado o tema de cloud computing e Big Data, além da conversa no final em que todos poderão estar tirando dúvidas e compartilhando experiências.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0.0001pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0.0001pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Data:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;20 de setembro, quinta-feira.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0.0001pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Horário:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;19:30&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0.0001pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Local:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Global Code&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Título:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;BlahBlah Cloud: Introdução a Cloud Computing para empresas e startups&lt;/span&gt;&amp;nbsp;startups&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif;&quot;&gt;Descrição: Cloud Computing não é só uma plataforma para grandes corporações é principalmente um ambiente perfeito para pequenas empresas e profissionais que sabem utilizar o que de melhor proporcionam em seu favor.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif;&quot;&gt;&lt;img alt=&quot;Imagem inline 2&quot; src=&quot;https://mail.google.com/mail/?ui=2&amp;amp;ik=66588ce148&amp;amp;view=att&amp;amp;th=139b18d122a66fa6&amp;amp;attid=0.1&amp;amp;disp=emb&amp;amp;realattid=ii_139b18b41e3e6d89&amp;amp;zw&amp;amp;atsh=1&quot; /&gt;Palestrante:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Bruno Souza&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;Bruno Souza é Presidente do SouJava. Conhecido como o &quot;JavaMan&quot;, é evengelista Java e open source, e trabalhou na criação e fortalecimento de comunidades em toda sua carreira.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;Foi diretor mundial de Comunidades Open Source, coordenou importantes comunidades como NetBeans e OpenSolaris e ajudou a criar a Comunidade Mundial de Grupos de Usuários Java.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;Desenvolvedor Java desde os primórdios da tecnologia, participou de alguns dos maiores projetos Java do país, e realizou centenas de apresentações em todo o mundo.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;Bruno é também Diretor da Open Source Initiative (OSI), onde discute a evolução do movimento open source.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 11pt;&quot;&gt;Quando não está em um computador, Bruno curte o seu tempo com a família em um pequeno esconderijo próximo a São Paulo. Amador em varias atividades -- fotografia, fantoches, pai -- ele tenta ter sucesso em algumas delas.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Título:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Introdução de BIG data com Java&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0.0001pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0.0001pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Descrição:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A necessidade de ligar com um grande volume de dados, responder com velocidade e se manter altamente disponível. É atualmente é o maior desafio do desenvolvedor Java para as novas aplicações. Conheça o caminho das pedras para sua aplicação não morrer na praia.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif;&quot;&gt;&lt;img alt=&quot;Imagem inline 3&quot; src=&quot;https://mail.google.com/mail/?ui=2&amp;amp;ik=66588ce148&amp;amp;view=att&amp;amp;th=139b18d122a66fa6&amp;amp;attid=0.2&amp;amp;disp=emb&amp;amp;realattid=ii_139b18c026f0d031&amp;amp;zw&amp;amp;atsh=1&quot; /&gt;Palestrante:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Otávio Santana&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Otávio Santana, o otaviojava, é desenvolvedor entusiasta do mundo Open-Source. Praticante da filosofia ágil e do desenvolvimento poliglota na Bahia, JUG Leader do JavaBahia, um dos fomentadores do grupo LinguÁgil. Presente nos maiores eventos Java e ágil em nível nacional, presente na comunidade java mundial além de escrever artigos para DevMedia, revista espírito livre e&amp;nbsp;&lt;a href=&quot;http://java.net/&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;java.net&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Título:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;FishBowl&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Descrição:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;O momento onde qualquer um pode ser o palestrante compartilhando suas idéias, experiências, tirando dúvidas com interação total do público.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white;&quot;&gt;&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Palestrante:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Todos!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;inscrições:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif; font-size: x-small;&quot;&gt;&lt;a href=&quot;http://goo.gl/Dzmwk&quot;&gt;http://goo.gl/Dzmwk&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/4556515004011339271/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2012/09/encontro-tecnico-soujava.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/4556515004011339271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/4556515004011339271'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2012/09/encontro-tecnico-soujava.html' title='Encontro Técnico SouJava'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-1884721582563675116</id><published>2012-08-24T07:47:00.000-03:00</published><updated>2012-08-24T07:47:49.268-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="clean code"/><category scheme="http://www.blogger.com/atom/ns#" term="clen"/><category scheme="http://www.blogger.com/atom/ns#" term="comunidade"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="javaBahia"/><category scheme="http://www.blogger.com/atom/ns#" term="patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="programacao"/><title type='text'>Código Elegante no Linguágil 2012</title><content type='html'>&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://swick.co.uk/wp-content/uploads/2009/07/creative_ties/binary.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;245&quot; src=&quot;http://swick.co.uk/wp-content/uploads/2009/07/creative_ties/binary.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;O Linguagil está chegando!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Talvez um dos cursos que mais vão interessar para nós da comunidade&amp;nbsp;&lt;span class=&quot;il&quot; style=&quot;background-color: #ffffcc;&quot;&gt;Java&lt;/span&gt;. Seja o Clean&amp;nbsp;&lt;span style=&quot;background-color: white; background-position: initial initial; background-repeat: initial initial;&quot;&gt;Como programadores, a primeira prioridade é criar código que funciona. Mas Infelizmente, código que simplesmente “funciona” não é suficiente. Ele precisa ser legível para outros programadores e até para vocês mesmo no futuro, desse modo é necessário fazer um código limpo.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Apesar de o conceito variar de acordo com o pensamento do programador, podemos resumir um código limpo em:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-left: 36pt;&quot;&gt;&lt;span style=&quot;font-family: Symbol; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Simplicidade&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-left: 36pt;&quot;&gt;&lt;span style=&quot;font-family: Symbol; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Ausência de duplicação&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-left: 36pt;&quot;&gt;&lt;span style=&quot;font-family: Symbol; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Facilidade de leitura&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; margin-left: 36pt;&quot;&gt;&lt;span style=&quot;font-family: Symbol; font-size: 10pt;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Elegância&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;&amp;nbsp;Código com estas qualidades é fácil de manter, quebra o ciclo de decaimento / reescrita e nos dá valor verdadeiro e duradouro.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;O objetivo do curso é estar esclarecendo um pouco sobre esse tema, com o Rogério Fontes.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Abaixo veja mais detalhes do curso:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Descrição do curso:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;&amp;nbsp;Código&amp;nbsp;&lt;span class=&quot;il&quot; style=&quot;background-color: #ffffcc;&quot;&gt;Java&lt;/span&gt;&amp;nbsp;Elegante (Rogério Fontes) As vezes deixamos os curtos espaços de tempo nos levar a criar códigos para ser entregues, baseado em pressão, estresses e demais situações. O que pode deixar o nosso código bastante ruim, e até mesmo pode fazer perdemos o nosso projeto, com infindáveis acertos no códigos e difíceis leituras para os mantenedores desses projetos. Com algumas técnicas simples podemos deixar nosso código limpo e pensar em que fazer para que os outros programadores possam entender nosso código e saber o que queríamos &quot;expressar&quot; nele. Temos que pensar como &quot;nós autores de códigos escrevemos e o que as pessoas ao lerem nossos programas entendam e o façam como se estivessem lendo um livro&quot; (Uncle Blob - Clean Code: A Handbook of Agile Software Craftsmanship).&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Vamos falar e dar exemplos: Como deixar seu código mais limpo e significativo. Como criar melhores funções. Se seu código é significativo e auto explicativo, porque comentários que não significam muito? Melhorando os tratamentos de erros no seu código. Usando TDD (Test Driven Development) e testes limpos para melhoria e refatoração do seu código limpo. Evolução do seu código para lermos como um livro (código limpo).&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt; line-height: 14px;&quot;&gt;Mais informações em:&amp;nbsp;&lt;a href=&quot;http://www.linguagil.com.br/&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;WWW.linguagil.com.br&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/1884721582563675116/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2012/08/codigo-elegante-no-linguagil-2012.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/1884721582563675116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/1884721582563675116'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2012/08/codigo-elegante-no-linguagil-2012.html' title='Código Elegante no Linguágil 2012'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-6886343056316745818</id><published>2012-08-11T12:10:00.000-03:00</published><updated>2012-08-11T12:10:02.224-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bancos nosqls"/><category scheme="http://www.blogger.com/atom/ns#" term="big data"/><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="java EE 6"/><category scheme="http://www.blogger.com/atom/ns#" term="lucene"/><category scheme="http://www.blogger.com/atom/ns#" term="nosql"/><title type='text'>Cassandra + Lucene</title><content type='html'>&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-gIt1mxISvoI/UCYx4NO_cuI/AAAAAAAABa0/4ebVjYMk5bs/s1600/capa.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;50&quot; src=&quot;http://4.bp.blogspot.com/-gIt1mxISvoI/UCYx4NO_cuI/AAAAAAAABa0/4ebVjYMk5bs/s400/capa.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Atualmente existem diversas características dos bancos NOSQL, em diferentes arquiteturas, formas de armazenamento de informação e estruturas de dados. No entanto apesar dessa grande variedade no número e variedades eles compartilham uma coisa em comum. Eles normalmente buscam pela chave primária. Apesar de conseguir-se manter altamente disponível, inserir e recuperar informações de forma bastante rápida, o fato de que a maioria dos bancos NOSQL somente recuperem pela chave, torna um pouco difícil adaptar a  aplicação para o seu uso, já que nem sempre você consegue buscar apenas pela chave no banco. Para não abrir mão da alta disponibilidade e recuperar informações não apenas em chave, uma boa opção certamente é “terceirizar” esse serviço. Por esse motivo será apresentado o Lucene trabalhando em conjunto com um banco nosql, mais precisamente o Cassandra, juntando o bom de dois mundos em sua aplicação.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; text-indent: 1.25cm;&quot;&gt;O Apache Lucene é uma API de busca e indexação de documentos, escrito em Java. Ele é composto por basicamente duas etapas: indexação e pesquisa. Dado o texto primeiro passo é a indexação que processa os dados originais e gera uma estrutura que facilita a busca e gera palavras-chaves, em seguida vem à busca que visa estar buscando a partir das palavras-chaves indexadas e retorna pela semelhança do texto com a consulta. A vantagem é que o Lucene abstrai ao ponto que não é necessário que o desenvolvedor saiba algoritmo de indexação. Os índices podem ser criados em ambientes distribuídos, aumentando o desempenho e a escalabilidade da ferramenta.  &lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; text-indent: 1.25cm;&quot;&gt;Apresentado um pouco da ferramenta o objetivo agora será apresentar uma prática envolvendo os dois mundos: banco nosql e o Lucene. Para essa parte prática será feita uma aplicação com o objetivo de estar cadastrando currículos. A idéia é bastante simples:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;O usuário estará cadastrando  o currículo com suas informações.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;A partir dessas informações a  analista de recursos humanos estará buscando o profissional.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;O profissional poderá ser  buscado pela palavra chave de uma qualificação técnica,  localização, Profissão.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; margin-left: 0.64cm;&quot;&gt;Como o objetivo da aplicação será web, estaremos utilizando a plataforma Java EE em sua versão mais recente, a versão 6.0.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; margin-left: 0.64cm;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; No Lucene os índices são armazenados a partir da interface Direcoty que no momento que eu escrevo possui basicamente duas implementações: Uma para armazenar na memória RAM e para armazenar no disco rígido. Como o objetivo é garantir uma alta disponibilidade estaremos utilizando a opção de estar trabalhando com os índices na memória RAM, mas para não perdemos tais índices estaremos fazendo um backup no disco rígido. Para fazer tal procedimento, usaremos o recurso schedule do EJB 3.1 para de tempos em temos, jogar o que está na memória para o HD.  &lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;@Schedule(minute = &quot;*/1&quot;, hour = &quot;*&quot;)&lt;br /&gt;  public void reindex() {&lt;br /&gt;   &lt;br /&gt;    try {   &lt;br /&gt;      Directory disco = FSDirectory.open(new File(Constantes.getIndexDirectory()));&lt;br /&gt;      luceneManager.backup(directory, disco);&lt;br /&gt;      &lt;br /&gt;    }&lt;br /&gt;    catch (Exception e) {&lt;br /&gt;     Logger.getLogger(ScheduleService.class.getName()).log(Level.SEVERE,&lt;br /&gt;                null, e);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt; &lt;/pre&gt;&lt;br /&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; margin-left: 0.64cm;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&amp;nbsp; &amp;nbsp; Desse modo quando a aplicação cair e levantar novamente basta estar carregando as informações do disco para a memória principal novamente. Vale salientar que o diretório precisar único para toda a aplicação.&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt; &lt;br /&gt;@ApplicationScoped&lt;br /&gt;public class LuceneManager implements Serializable{&lt;br /&gt;&lt;br /&gt; private static final long serialVersionUID = -8280220793266559394L;&lt;br /&gt; &lt;br /&gt;  @Produces&lt;br /&gt;        private Directory directory;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;    @Inject&lt;br /&gt;    public void init() {&lt;br /&gt;        directory = new RAMDirectory();&lt;br /&gt;        try {&lt;br /&gt;            levantarServico();&lt;br /&gt;        } catch (IOException e) {&lt;br /&gt;         Logger.getLogger(LuceneManager.class.getName()).log(Level.SEVERE,&lt;br /&gt;                    null, e);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void levantarServico() throws IOException {&lt;br /&gt;        Directory disco = FSDirectory.open(new File(Constantes.getIndexDirectory()));&lt;br /&gt;        backup(disco, directory);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void backup(Directory deDiretorio, Directory paraDiretoria) throws IOException {&lt;br /&gt;&lt;br /&gt;        for (String file : deDiretorio.listAll()) {&lt;br /&gt;            deDiretorio.copy(paraDiretoria, file, file); // newFile can be either file, or a new name&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;  &lt;/pre&gt;&amp;nbsp; &amp;nbsp; Uma vez criado o diretório e definido onde estarão as informações o próximo passo é criar os índices, conforme falado anteriormente ele será a chave tanto para a inserção quando a busca das informações. Agora o que falta é a criação do Document que representa para a troca de informações entre o Lucene e sua aplicação. Ele é composto por campos que por sua vez por informações.  A relação entre o Lucene e a aplicação se dará da seguinte forma:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;A chave será armazenada e não  indexada.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;O estado não armazenado e não  indexado.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;O conteúdo do currículo será  não armazenado e indexado.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; margin-left: 0.64cm;&quot;&gt;&lt;br /&gt;&lt;pre class=&quot;brush:java&quot;&gt;  &lt;br /&gt;  &lt;br /&gt;  private Document criarDocumento(Pessoa pessoa) throws IOException {&lt;br /&gt;    Document document = new Document();&lt;br /&gt;&lt;br /&gt;    document.add(new Field(Constantes.ESTADO_INDICE,pessoa.getEndereco().getEstado(), Store.YES,&lt;br /&gt;        Index.NOT_ANALYZED_NO_NORMS));&lt;br /&gt;    document.add(new Field(Constantes.ID_INDICE,pessoa.getNickName(), Store.YES,&lt;br /&gt;            Index.NOT_ANALYZED_NO_NORMS,TermVector.WITH_POSITIONS_OFFSETS));&lt;br /&gt;&lt;br /&gt;    document.add(new Field(Constantes.TUDO, getConteudoCurriculo(pessoa), Store.NO,&lt;br /&gt;        Index.ANALYZED));&lt;br /&gt;&lt;br /&gt;    return document;&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; margin-left: 0.64cm; text-indent: 0.61cm;&quot;&gt;Uma vez essa informação armazenada no Cassandra e indexada no Lucene, o ciclo da aplicação se dará da seguinte forma:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;A seqüência segue um processo  simples:&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;O usuário adiciona as  informações e envia ao servidor&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;A informação é persistida no  Cassandra&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;A informação é indexada e é  armazenado o id no Lucene&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;Quando o analista de RH fizer a  busca é recuperado um Document que por sua vez retorna a informação  da chave, assim poderá se recuperada todas as informações no  Cassandra.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-0TAOFMS2ccw/UCZy5MkW47I/AAAAAAAABbE/9emfbwXZ2I8/s1600/escrita.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://2.bp.blogspot.com/-0TAOFMS2ccw/UCZy5MkW47I/AAAAAAAABbE/9emfbwXZ2I8/s400/escrita.png&quot; width=&quot;281&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-c6GomC1NBy8/UCZy5ifyErI/AAAAAAAABbM/tQ4kP4wgTPY/s1600/leitura.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://2.bp.blogspot.com/-c6GomC1NBy8/UCZy5ifyErI/AAAAAAAABbM/tQ4kP4wgTPY/s400/leitura.png&quot; width=&quot;281&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; margin-left: 1.25cm; text-indent: 0.02cm;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Pronto! Dessa forma quanto a inserção quanto a busca serão feitas de maneiras rápidas, o Cassandra possui o recurso de índices secundários que permite que existam campos de busca além da chave, mas isso faz com que o banco perca velocidade com o crescimento desses campos especiais. Uma outra forma de deixar a busca ainda mais rápida seria deixar os resultados dessa busca em um cachê, mas isso serão cenas para um próximo capítulo.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; margin-left: 0.64cm; text-indent: 0.61cm;&quot;&gt;Falando um pouco mais sobre o Lucene existem alguns frameworks que já se integram com o Lucene. É o caso do hibernate search que é o hiberante, para banco relacional, utilizando o Lucene, solr é um servidor de busca que usa o Lucene como motor de busca e o solandra que é um solr para o Cassandra.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; margin-left: 0.64cm;&quot;&gt;Nesse artigo foi apresentado um problema existente na maioria dos bancos NOSQL, a busca de campos além da chave. Para resolver tal problema foi demonstrado um trabalho em conjunto com o Lucene, ferramenta de indexação de documentos, além de apresentar alguns conceitos da ferramenta.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm; page-break-before: always;&quot;&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Referências:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm;&quot;&gt;Referências: Pamplona, Vitor. &lt;a href=&quot;http://vitorpamplona.com/wiki/Introdu%C3%A7%C3%A3o%20ao%20Apache%20Lucene&quot;&gt;http://vitorpamplona.com/wiki/Introdu%C3%A7%C3%A3o%20ao%20Apache%20Lucene&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm;&quot;&gt;&lt;span lang=&quot;en-US&quot;&gt;Solr: &lt;a href=&quot;http://lucene.apache.org/solr/&quot;&gt;http://lucene.apache.org/solr/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm;&quot;&gt;&lt;span lang=&quot;en-US&quot;&gt;Hibernate Search: &lt;a href=&quot;http://www.hibernate.org/subprojects/search.html&quot;&gt;http://www.hibernate.org/subprojects/search.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm;&quot;&gt;&lt;span style=&quot;color: #384042; font-family: verdana;&quot;&gt;&lt;span style=&quot;font-size: 14.44444465637207px; line-height: 20.981481552124023px;&quot;&gt;Conhecendo o Lucene, PAULO SIGRIST e WILSON AKIO HIGASHINO, java Magazine 104, devmedia.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #384042; font-family: verdana;&quot;&gt;&lt;span style=&quot;font-size: 14.44444465637207px; line-height: 20.981481552124023px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Código Fonte:&amp;nbsp;&lt;a href=&quot;http://softwarelivre.org/otagonsan/codigofonte/cassandra-lucene.rar&quot;&gt;http://softwarelivre.org/otagonsan/codigofonte/cassandra-lucene.rar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/6886343056316745818/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2012/08/cassandra-lucene.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/6886343056316745818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/6886343056316745818'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2012/08/cassandra-lucene.html' title='Cassandra + Lucene'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-gIt1mxISvoI/UCYx4NO_cuI/AAAAAAAABa0/4ebVjYMk5bs/s72-c/capa.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1332585484712215197.post-5733009568711469291</id><published>2012-07-09T09:36:00.000-03:00</published><updated>2012-07-09T09:36:06.038-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comunidade java"/><category scheme="http://www.blogger.com/atom/ns#" term="framework mvc"/><category scheme="http://www.blogger.com/atom/ns#" term="java ee6"/><category scheme="http://www.blogger.com/atom/ns#" term="java mvc"/><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><category scheme="http://www.blogger.com/atom/ns#" term="jsf20"/><category scheme="http://www.blogger.com/atom/ns#" term="mvc"/><title type='text'>Introdução para JSF 2.0</title><content type='html'>&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Com o decorrer dos tempos vieram muitos conceitos, novas técnicas, tecnologias, metodologias, etc. Mas apesar de tantas mudanças uma coisa não mudou, a importação da interação do sistema com o seu usuário. Não tem jeito, o usuário final mesmo sendo visto como o inimigo número um do programador. é o púbico alvo do sistema. Fazer um sistema amigável, user friendly, é um grande diferencial para um sistema, ou seja, é o que faz ganhar um cliente, ganhar um usuário, ganha pão, etc. Afinal é pela tela que o usuário se interage com o sistema é na janela que o usuário vai “gostar” de usar-lo ou não. É muito semelhante, por exemplo, aos carros da figura 1. Qual você usuária ? Provavelmente será o mais bonito, mesmo se eu disser que o carro feio possui o motor mais rápido do mundo. E isso acontece de forma similar a tela do seu sistema, o cliente não quer saber quão rápido é o seu sistema ou qual tecnologia você está utilizando, mas se é belo ou não. No entanto não  adianta fazer um sistema muito bonito se ele não funciona corretamente, dai a necessidade de dividir e conquistar o seu sistema, ou seja, separar a parte lógica da parte visual do seu sistema e é para isso que suja o padrão MVC que basicamente tem o objetivo de dividir a parte lógica do visual. &amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-7P-NwTPnk8I/T_rKcGSlA-I/AAAAAAAABZc/vG7kK7PxehA/s1600/prefere.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;131&quot; src=&quot;http://4.bp.blogspot.com/-7P-NwTPnk8I/T_rKcGSlA-I/AAAAAAAABZc/vG7kK7PxehA/s320/prefere.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figura 1: Você escolheria o carro da direita porque é mais rápido ?&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; E com esse objetivo eis que surge o Java Server Faces, o jsf, o seu objetivo é estar desenvolvendo aplicações web, vale citar que ele é um framework MVC, ou seja, é uma ferramenta que divide a parte lógica do visual do seu sistema. Para a parte visual ele consegue integrar com diversas tecnologias existentes  no mercado é o caso do css, ajax, html 5, jquery etc.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&amp;nbsp; &amp;nbsp; Para parte lógica realizar uma chamada em java acontece de maneira bem simples, observando a figura 2 se verifica que nada mais é do que chamadas para atributos e métodos de um objeto java. Se observa que a classe possui duas anotações:&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&amp;nbsp; &amp;nbsp; @ManageBean: Essa anotação indica que essa classe é um bean gerenciado &lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&amp;nbsp; &amp;nbsp; @ApplicationScopped: Essa anotação indica o escopo do seu objeto em jsf.&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-jHZBht7iW8A/T_rLl_4ckLI/AAAAAAAABZk/5thcre42UzA/s1600/codigo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;237&quot; src=&quot;http://2.bp.blogspot.com/-jHZBht7iW8A/T_rLl_4ckLI/AAAAAAAABZk/5thcre42UzA/s320/codigo.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figura 2: Codigo java e JSF&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Falando em escopo, o escopo nada mais é do que o tempo de vida e morte do seu objeto, ou seja quando ele será criado e destruído pelo jsf, dentre esses escopo podemos destacar:&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;Escopo de  Aplicação: Seu tempo de vida é igual a da aplicação, em outras  palavras, inicia quando a aplicação inicia e morre junto com a  aplicação.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;Escopo de Sessão:  Inicia e morre junto com a sessão criada pelo usuário&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;Escopo de visão:  Seu tempo de vida é igual de uma página&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;Escopo de Request:  Criado quando é feita uma requisição e morre após ter  respondida.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Como nas suas páginas não vão objetos java diretamente, indo apenas texto, é importante que você informe qual texto vai para a tela (html, xhtml, jsp, etc.) e como recuperá-lo como objeto java. Uma prática muito comum é somente enviar o id e quando reconstruir o objeto a partir do banco de dados.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;Em uma interação com o usuário é importante que você impeça que o usuário realize atividades perigosas em seu sistema. É o caso de um usuário colocar letras no campo idade ou mesmo que ele coloque apenas número coloque 1500 anos já que ele não terá essa idade. No JSF você consegue fazer isso de algumas formas duas delas é a partir do bean validator ou criar uma classe que implemente validador.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Uma informação útil na parte de visão é que o jsf te ajuda a economizar tempo, manutenção rápida além de prevenir futuras dores de cabeça. É o caso do faclets e do composite components.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;Nessa apresentação foi falado que tanto a interface quanto o seu funcionamento é importante para o software e nós como desenvolvedores precisamos estar atentos para isso. Com isso foi apresentando o Java Server Faces que é um framework java com MVC, te ajudando a separar a interface com da regra de negócios.&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;__ss_13558018&quot; style=&quot;width: 427px;&quot;&gt;&lt;strong style=&quot;display: block; margin: 12px 0 4px;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/otagonsan/implementando-aplicativos-web-com-jsf&quot; target=&quot;_blank&quot; title=&quot;Implementando aplicativos Web com JSF &quot;&gt;Implementando aplicativos Web com JSF &lt;/a&gt;&lt;/strong&gt; &lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;356&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/13558018&quot; style=&quot;border-width: 1px 1px 0; border: 1px solid #CCC;&quot; width=&quot;427&quot;&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style=&quot;padding: 5px 0 12px;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;View more presentations from &lt;a href=&quot;http://www.slideshare.net/otagonsan&quot; target=&quot;_blank&quot;&gt;Otávio Gonçalves de Santana&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;b&gt;Link:&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;Apresentação:&amp;nbsp;&lt;a href=&quot;http://www.slideshare.net/otagonsan/implementando-aplicativos-web-com-jsf&quot; style=&quot;background-color: white;&quot;&gt;http://www.slideshare.net/otagonsan/implementando-aplicativos-web-com-jsf&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;Código exemplo do JSF:&amp;nbsp;&lt;a href=&quot;https://github.com/otaviojava/jsftdc2012/&quot; style=&quot;background-color: white;&quot;&gt;https://github.com/otaviojava/jsftdc2012/&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://otaviosantana.blogspot.com/feeds/5733009568711469291/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://otaviosantana.blogspot.com/2012/07/introducao-para-jsf-20.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/5733009568711469291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1332585484712215197/posts/default/5733009568711469291'/><link rel='alternate' type='text/html' href='http://otaviosantana.blogspot.com/2012/07/introducao-para-jsf-20.html' title='Introdução para JSF 2.0'/><author><name>Otávio Gonçalves de Santana</name><uri>https://plus.google.com/114540854631203667195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-iRCn-5jo_r0/AAAAAAAAAAI/AAAAAAAACTU/qqU9dzsiGyk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-7P-NwTPnk8I/T_rKcGSlA-I/AAAAAAAABZc/vG7kK7PxehA/s72-c/prefere.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>