Pular para o conteúdo principal

no:sql(br).["Eu fui"] = "e estava SENSACIONAL!";

O primeiro #nosqlbr foi um evento que realmente excedeu a expectativa de muitos, e acredito que até mesmo do @porcielli(organizador e curador de fato do movimento aqui no Brasil)! Com um público de tecnologia eclético, reuniu em torno de 170 pessoas para discutir assuntos vinculados a bancos de dados que não atendem ao modelo SQL/relacional.

De forma resumida, tais solucões de armazenamento e recuperação de dados normalmente possuem as seguintes qualidades sistêmicas:

  • Atendem aos requisitos basicos de cloud computing, como disponibilidade, tolerância a falhas, escalabilidade horizontal elástica(a quente) e baixa latência;
  • Armazenam dados normalmente no formato chave valor. Alguns são mais orientados a estruturas de dados, outros a documentos;
  • Falam, em muitos casos, protocolos baseados na web, como HTTP, JSON e XML;
  • Alguns aderem mais fielmente a web, implementando conceitos REST;
  • Considere soluções open source e livres, por questões de licenciamento e custo ao escalar;
  • Nem tudo deve ser ACID;
  • Modelos relacionais não priorizam o perfil de acesso a dados da aplicação, que é desnormalizado;
  • Dados centralizados solucionam apenas consistência, mas trazem problemas que inviabilizam o uso em soluções nosql/cloud computing;
  • Latência é o que importa em primeiro lugar! Depois vazão(throughtput/escalabilidade)! E depois elasticidade(crescer a quente)! Porém, todos são importantes!
  • Particionamento, replicação inteligente e sharding(particionamento de um mesmo grupo de dados) são fundamentais;
  • Facilite a leitura;
  • Escolha entre latência e consistência;
Você encontra mais informações no artigo da wikipedia sobre NoSQL

Minha palestra foi a respeito de uma avaliação que estamos fazendo no SPC Brasil a respeito de Apache Cassandra como cache distribuído(cuidado, "quase" NSFW). De forma simples, o Apache Cassandra junta o modelo de dados oferecido pelo Google BigTable com as capacidades de armazenamento do Amazon Dynamo.

Quero ainda disponibilizar um material adicional, como arquivos de configuração prontos para setup em cluster. De qualquer forma, uma coisa que citei é que a configuração do Apache Cassandra é muito simples e, seguindo os comentários para cada configuração dentro do arquivo $CASSANDRA_HOME/conf/storage-conf.xml, configurando o logfile em $CASSANDRA_HOME/conf/log4j.properties, lendo o quickstart, modelo de dados, arquitetura e codificando alguns clientes devem ser o suficiente para fazer um bom setup inicial e rápido. Acredito que em 1h no maximo você já consegue ter um cluster e cliente funcionando, além do que é um excelente exercício caso você esteja comecando nessa área! Estou a disposilção para ajudar em caso de dificuldades nisso!

Logo após a minha palestra, a Globalcode sorteou um curso Hands-On(prático) de Google App Engine com Java, e o ganhador foi o @handrus! Parabéns! ;)

O clima foi extremamente informal e descontraído, com todos os convidados se sentindo muito a vontade para fazer perguntas e participarem das palestras. No final houve uma desconferência, onde palestrantes e platéia se uniram para falar a respeito dessas novas tecnologias, cultura corporativa, DBAs, cloud computing, agile, universo, e outras coisas... :) Houve um happy hour depois, mas como eu já estava muito cansado, se ficasse bêbado ainda por cima a essa altura, iria dormir na rua mesmo! :)

Bati ainda um papo com o Alberto Lerner, um dos desenvolvedores do MongoDB, que foi desenvolvedor do BigTable quando ainda era funcionário do Google. Ele falou quais critérios devem ser considerados na adoção de uma solução NoSQL, dizendo que devemos focar muito mais análise de como sua aplicação acessa dados, e menos na moda ou até mesmo em funcionalidades de mais alto nível que podem ser irrelevantes na solução de problemas de latência e disponibilidade ao recuperar/modificar informações no seu repositório de dados.

Como o evento foi organizado de forma rápida e sem muito planejamento financeiro, o Alexandre Porcelli acabou por assumir um custo de R$ 8.000,00 sozinho, e a partir daí começou uma corrida para obter patrocinadores e doações individuais para bancar o evento. Durante o evento ainda houve uma momento ilustre: o Porcelli passou o chapéu(literalmente, pena que não há foto, mas várias testemunhas presenciaram isso, inclusive eu) e conseguiu arrecadar próximo de R$ 1.000,00, o que considerando um público presente de 170 pessoas em um evento gratuito aqui no Brasil é algo de se admirar! Isso mostra o quanto o público estava comprometido com o movimento e também significa uma coisa: o nosqlbr 2011 vai ser algo ainda melhor! Porém ainda há um rombo de R$ 2.500,00 nas finanças pessoais dele, portanto se você foi e não colaborou, ainda há chance de ajudar!

Outros posts a respeito do primeiro NoSQL Brasil(se estiver faltando algum, me avisem que eu atualizo):


Ainda durante o evento, o Porcelli citou um novo encontro em algum futuro próximo. Dessa vez com o tema "linguagens dinâmicas". Certamente estarei lá!

Abs,
JV -- julioviegas.com

Comentários

suissa disse…
ahhh como eu queria ter ido, apenas ótimos reviews. Fico muito feliz pela cena do nosqlbr estar começando tão bem!
Wagner Santos disse…
Fala Júlio!

Posso dizer que o evento superou minhas expectativas, foi muito bom, principalmente o conteúdo.

O papo com o Alberto Lerner e contigo no final me ajudou a tirar algumas dúvidas, =)

Parabéns pela palestra e na próxima estaremos lá...

Abraço,
Unknown disse…
Realmente o #nosqlbr foi muito bom, "evento da comunidade para a comunidade".

Ótima oportunidade de rever vários camaradas e adquirir um bocado de conhecimento.

Como vc citou Julio, a mistura de tribos foi bem interessante.

[]s
Juliana disse…
Não fui na palestra mas fiquei sabendo do ocorrido.
Eu como mulher, e como também faço parte do mundo da programação me senti extremamente ofendida com a imagem de uma mulher nua utilizada para representar a 'Cassandra', isso foi extremamente vulgar e anti-ético os fatos não justificam o meio, em nenhum contexto plausível isso se encaixa. Se eu estivesse na platéia simplesmente iria me levantar e sair da sala.
Na próxima vez coloque a foto de um homem nu em plena ereção. Aposto que todos os homens presentes no recinto irão se sentir bem confortáveis. ;-)
Bom saber que foi você quem deu a palestra e que você dá aulas na GlobalCode, porque nunca irei participar de nada que envolva o seu nome.
Julio Viegas disse…
Oi Juliana,

Sem querer polemizar mais, a mulher em questao nao estava nua. Eu nao iria colocar uma mulher nua em um slide, pois haviam outras mulheres na plateia, e as mesmas nao se sentiram ofendidas.

Os slides ilustrando belas mulheres foi uma forma de descontrair a plateia. Tirando isso, meu proposito foi de repassar o conhecimento a respeito do software que apresentei.

Peço desculpas se vc entendeu a mensagem de forma errada.

Att,
JV
Juliana disse…
Ok, olhando com atenção as fotos que foram tiradas por alguns conhecidos que compareceram haviam tarjas minúsculas nas partes íntimas, retratando : são fotos de seminu!

Que bom que as mulheres que foram não se sentiram ofendidas, ainda bem que existe democracia e que ninguém foi criado e nem pensa da mesma forma.

Não vou entender a mensagem de forma errônea o dia em que esse preconceito acabar e as mulheres não serem mais tratadas e vistas como objetos. O dia em que uma mulher der uma palestra e colocar fotos de homens para "descontrair" nos mesmo moldes em que você fez, eu irei entender.

Não tenho nada contra a sua pessoa, apenas não achei certa essa atitude e não compartilho do seu ponto de vista, para não polemizar mais paro por aqui.

Sucesso e tudo de bom para vc!

Atenciosamente.
Handrus disse…
Uma excelente palestra a sua! Embora eu não tenha uso prático imediato para "o" cassandra adorei saber mais sobre a tecnologia e a forma como você pretende usa-la no SPC.
Obrigado pela palestra, toda a comunidade vai com certeza se beneficiar muito.

Postagens mais visitadas deste blog

Compilador GWT, não se preocupe com JavaScript!

Nesse post vou escrever um pouco sobre o Compilador do Google Web Toolkit , qual é o seu papel no kit, além de algumas dicas para o dia-a-dia no desenvolvimento com a tecnologia. Como exemplo vou usar um novo Projeto Web no Eclipse criado a partir do Google Plugin   para desenvolvimento GWT e/ou App Engine, acesse aqui mais informações e download. Depois de instalar o plugin, dentro do Eclipse siga a sequência para criar o projeto: New - Others - Google - Web Application Project - Defina o nome do projeto e a estrutura raiz de pacotes - Finish. Vou adotar como nome do projeto appGWT e pacote br.com.globalcode . O plugin gera uma aplicativo pronto que permite ao usuário preencher um campo e realizar o envio ao servidor de forma assíncrona (Ajax), quando o servidor responde um Dialog é apresentado com a mensagem de retorno. Para testar a aplicação é só executar o projeto com a opção Wep Application . Veja: O GWT, como já foi comentado , adota um conceito bem interess

O que é Lógica de programação?

Este é o segundo de uma série de posts voltados aos leitores do blog que estão dando início à carreira de desenvolvimento de software. O assunto de hoje é a lógica de programação. Para ler antes: Entendendo como funciona a programação de computadores: linguagens de programação, lógica, banco de dados A lógica de programação é um pré-requisito para quem quer se tornar um desenvolvedor de software, independente da linguagem de programação que se pretende utilizar. Mas o que é de fato a Lógica de Programação e como saber se eu tenho esse pré-requisito? A lógica de programação nada mais é do que a organização coerente das instruções do programa para que seu objetivo seja alcançado. Para criar essa organização, instruções simples do programa, como mudar o valor de uma variável ou desenhar uma imagem na tela do computador, são interconectadas a estruturas lógicas que guiam o fluxo da execução do programa. Isso é muito próximo ao que usamos em nosso cotidiano para realizar atividad

Dica rápida: Apagando registros duplicados no MySQL

Ola pessoal, Sei que vocês estão acostumados a ver posts meus sobre tecnologia móvel ou algo relacionado, mas hoje vou falar sobre um pequeno "truque" que usei esse final de semana com o MySQL. Eu estava desenvolvendo o lado servidor de uma nova aplicação mobile (ahh, então "tem a ver" com mobile hehe), e quando fui fazer alguns testes percebi que tinha quase 7 mil registros duplicados (!!!) na minha base de dados! Bom, o meu primeiro reflexo como programador foi pensar em fazer um "programinha" Java para buscar e deletar todos esses registros duplicados. Mas ai, resolvi tirar as teias de aranha dos neurônios e usar os vários anos de experiência que passei com SQL e criar uma query que fizesse esse trabalho todo de uma vez!! E a query ficou assim: delete from TABLE_NAME USING  TABLE_NAME, TABLE_NAME  AS  auxtable WHERE   ( NOT  TABLE_NAME.id  =  auxtable.id ) AND   ( TABLE_NAME.name  =  auxtable.name ) Explicação direta: TABLE_NAME

Devo fazer um curso ou ler um livro?

Acredito que todos os instrutores ou professores, independentemente da área, escola ou centro de treinamento, já devam ter recebido essa pergunta alguma vez na vida: devo fazer um curso ou ler um livro? Para responder a essa pergunta, precisamos avaliar os prós e contras de cada opção. Trabalho com treinamento há algum tempo e, hoje, recebi essa pergunta de um aluno. Não adianta responder a ou b sem argumentar, demonstrando as opções conforme a situação do aluno. O conteúdo, a forma de transmissão e a capacidade de assimilação do indivíduo são chaves para haver benefício maior de aprendizado. Tanto em um bom curso quanto em um bom livro, o conteúdo é a premissa básica . Por conteúdo entendemos: se está organizado; se respeita pré-requisitos; se promove o aprendizado guiado e incremental; se aborda de forma satisfatória os principais pontos; se tem bom balanço entre teoria, exemplos e prática (favorecendo exemplos e prática); se tem como premissa a acessibilidade possível (e cabível) pa

Saiba como programar para Arduino sem ter nenhum hardware disponível

O Arduino já é uma tecnologia muito difundida entre os amantes de tecnologia. É difícil encontrar um profissional da computação que não brincou um pouco com esta ferramenta de prototipagem ou, que gostaria de fazer isso. Porém, em alguns casos, o programador quer conhecer o arduino mas não dispõe de nenhum hardware, nem mesmo da placa. Como isso poderia ser resolvido? A primeira resposta seria aquela mais simples e direta: ir as compras. Isso pode ser feito em uma loja física ou pela internet. No meu caso, por exemplo, tive a felicidade de encontrar em um site (não me lembro qual) um kit arduino, com um conjunto de sensores e um DVD com 41 vídeo aulas. Mas digamos que o profissional não esteja passando por um bom momento financeiro, ou ainda, simplesmente não queira comprar o Arduino sem antes conhecê-lo um pouco melhor. Para a última situação também já existe uma resposta, e diga-se de passagem, uma excelente resposta. Trata-se do site 123D Circuits.io . Depois de criar seu u

JavaMail: Enviando mensagem HTML com anexos

Introdução Depois do post "JavaMail: Enviando e-mail com Java" , que apresentava como enviar um e-mail com Java, resolvi complementar a assunto apresentando como enviar uma mensagem formatada, em HTML , e também como realizar o envio de anexos. Bibliotecas Além da biblioteca JavaMail, veja mais no post anterior , é necessário incluir o JavaBeans Activation Framework (JAF), apenas se a versão utilizada for anterior ao JSE 6.0 , que já tem o JAF incluso. O JAF está disponível em http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html , e neste download encontramos, alguns exemplos na pasta demo , documentação, incluindo javadocs, na pasta docs e a biblioteca activation.jar , que deve ser acrescentada no classpath da aplicação para versões anteriores ao JSE 6.0. Exemplo Primeiramente devemos realizar a configuração da javax.mail.Session e da javax.mail.internet.MimeMessage , estes passos podem ser vistos no post anterior . Agora vamos montar um