05
Oct

Continuando a série de relatos de como foi o DevInsampa, no de 2010, eu fui junto com a Thais Mizuno, e no de 2009 ela não parava de me ligar perguntando se eu já tinha acabado.

Esqueci de mencionar um fato curioso também do 2009, foi o dia que conheci o Luca Bastos, anos mais tarde fui trabalhar com ele na Concrete.

Começou cedo, eram 2 trilhas, e como a Thais queria assistir algumas e eu outras, fizemos uma panilha toda bonitinha, e combinamos o que iríamos ou não assistir juntos, não preciso nem falar, que fracassamos, mudamos de ideias durante o dia, principalmente após conversar com alguns palestrantes.

Então vou comentar apenas as palestras que vi:

Ricardo apresentou Cucumber e várias técnicas de integração contínua com Ruby, foi interessante, mas muito cansativo, ele tentou fazer live coding, mas como sempre teve em lives, problemas ! Apesar de tudo, já se faz 2 anos e não vejo cucumber com boa prática, apesar de gostar de todas as outras apresentadas.

Mais uma vez, vimos os exemplos de arduino, o que foi interessante, que tinha acompanhado pouco o assunto, e serviu como um upgrade de todas as info.

Node já era uma realidade para eu, e conhecer o Emerson, acabou sendo muito interessante, havia comentando com ele alguns assuntos no twitter, mas foi interessante conhecer outro pessoa utilizando a tecnologia, e não só isto ajudou a difundir o assunto, foi uma bela intro, para quem não conhecia a tecnologia.

Shiota demonstrou as dificuldades como designer, e abordou vários de temas de UX com os programadores, e porra, eu conseguia entender ele, afinal começei uma faculdade de design, e ele uma de computação e acabou dem design, o resultado, muitos dos pensamentos compartilhados eram parecidos, e não só isto, foi bem legal a maneira como ele abordou, recomendo a todos assistirem.

De longe a apresentação mais engraçada ! Mergulhão e Herinque fizeram piadas sobre não fazer testes, não entraram em questões mais polemicas como BDD ou TDD, mas sim sobre o que isto implica no seu dia a dia, fazendo piadas, uma hora chamaram o Chester para uma apresentação, e perguntaram, se ele fazia teste, gritei mentira, poxa desculpa ai chester, fui malvado :\

Foi uma bela apresentação rápida para clojure, e uma linda forma de ver como se trabalhar com concorrência efeciente, fiquei na epoca interessado pela linguagem, mas sendo bem sincero passou 2 anos e não estudei nada :\ #fail, anyway, é legal darem uma olhada, e principalmente tentarem encontrar algum problema para ela.

Foi interessante, de ver como solucionaram um problema de integração, de maneira a aproveitar melhor o Erlang, e claro a lib que o nuxlli ajudou a contribuir, é uma maneira interessante

03
Oct


DevInSampa, 3 anos de um evento, que admiro, não sou por hoje trabalhar com o Tino Gomes, um dos organizadores, na Concrete Solutions (prometo uma resenha legal, pessoal), mas pela exclente qualidade de suas palestras.

Seda a parte:

2009: Visão Geral, Um enorme facepalm, e também um belo motivador, estava acomodado no meu cantinho, a ultima vez que houve um empurrão foi na phpconference de 2008 (resenha há 3 anos devendo, mas agora vai)

Agradecimento ao Ricardo Almeida por me falar do evento, as palestras:

Cloud, já era algo conhecido, mas foi interessante, principalmente por detalhes técnicos que o kung apresentou, como Roteamento, Swicth Virtual, técnicas para economizar espaço, usando imagens, também citou o Terracota, o qual foi muito interessante acompanhar.

A melhor dinamica de palestrantes que já vi na vida, foi logo antes do restfulie nascer, era a idéia, a chamada, eles gritavam, e ao mesmo tempo se emocionavam, contando como a web deveria ser, ihmo, quase sai pulando, e falando porra finalmente alguém falando que a web é um grande serviço, e somos burros de não aproveitar.

Vou ser sincero, lembro muito pouco, apesar do assunto me interessar, eu não guardei as referências, e minha mente, traiçoeira, fez um flush, o que me lembro era sobre sdl, vou até rever o video !

Foi a 1 palestra, e CHUTOU, DIGO CHUTOU, a bunda de todos que estavam lá, Valim, conseguiu falar sobre algoratimos complexos, como se fosse matemática básica,  mal sabiamos que 3 anos depois iriamos ver, a idéia sendo demonstrada ao vivo.

Cipriani apresentou um case muito legal, que já mostrava conceitos de HTML5, emulava socket, usando long polling e bosh, durante muito tempo, IHMO, foi refêrencia para se fazer web em real-time e até hoje não vejo outra solução funcionando também.

Nando, demostrou como fazer testes em JS, e WTF, pq não fazia isto antes ???????????

Vou ser sincero, quase não vi, radamés, demorou horrores para chegar, eu tava podre, vi só o final, como já conhecia Arduindo por causa do Daniel Cassino, que me levou a uma python brasil no Yahoo, sobre hadoop (Resenhas também)

Ricardo falou sobre actasolr_reloaded, plugin no qual ele trabalhou para substituir uma aplicação que usava shpinix, demostrou o pq do solr, uma hora ele entrega o mic, na minha mão, no qual falo rapidamente sobre o uso que dei na epoca no Apontador, e sobre um bug de Thread Block que o lucene corrente tinha, e que todos deveriam atualizar para o lucene beta.

Yoshima, comenta sobre várias boas práticas, foi uma palestra legal, nada muito novo, devido a uma série de apresentações, que recebi de alguma troca de pdf`s que fiz com um pessoal da unicamp, onde comentavam as mesmas técnicas.

Esta foi interessante, pois se encaixava com a palestra do Valim, onde ambos comentaram sobre AST, e parseamento de linguagem, e principalmente, você sabia vendo a diferença entre tentar parsear um texto, e parsear uma linguagem “estrita”

Bem é isto e agora fica meu compromisso, de “contar” tudo que me aconteceu nestes ultimos 3 anos e meio.

03
Oct

Depois que a Thais Mizuno começou a blogar, e menos de 1 mês, ultrapassou todos os post`s deste meu blog, fiquei um tanto com vergonha e falei, agora vai, ou melhor volta.

Um pouquinho de história: Eu blogava com certa frequência, mas a 1 grande desanimada, ocorreu, quando houve uma série de criticas, diminiu o ritmo,  era um adolescente tolo, após isto, voltei a ter um ritmo legal, cerca de 1 post por semana, e então o trabalho me chamou, passei 2 anos nesta.

Agora basta.

E para recomeçar, vai ser em grande estilo, digo resenha.

03
May

Faz algum tempinho que não publico, durante este tempo, estava um pouco desmotivado, enfim, segue abaixo minha + nova criação, github: https://github.com/renatoelias/orchestra, fork it !

Orchestra

Um micro-framework p/ trabalhar com eventos em javascript

A Pergunta

Se eu tenho dois ou mais eventos, porém preciso executar alguma ação ao final, ou esperar uma série de eventos, como fazer isto de maneira elegante ?

O meu código que me fez pensar sobre o assunto

  var x1,x2,result1,result2;

  var montaRota = function() {
      //executa depois do 1 e 2 etapa
      if (x1 && x2) {
          //monta rota
      }
  }

  fs.readFile('/etc/passwd', function (err, data) {
      x1 = true;
      result1 = ofAjaxorNet
      montaRota();
  });

  fs.readFile('/etc/passwd', function (err, data) {
      x2 = true;
      result2 = ofAjaxorNet
      montaRota();
  });

Tentando melhorar um pouco isto

  var ochestra = require('orchestra');

  var montaRota = orchestra(function(data) {
      //monta a rota
  },["geocode1","geocode2"]);

  fs.readFile('/etc/passwd', function (err, data) {
      orchestraing.emit("geocode1",data);
  });

  fs.readFile('/etc/passwd', function (err, data) {
      orchestraing.emit("geocode2",data);
  });

Instalar

npm install orchestra

Créditos

Histórico

A Primeira versão nasceu durante a QconSP 2010, em um bate papo com Emerson Macedo no bar depois da Qcon, no dia seguinte, implementei durante a palestra do Ebay, e virou um GIST, desde então vim pensando em idéias para melhorar, e transformar em um framework interessantes sobre eventos, tirando idéias do Luis Cipriani, Sistemas de Eventos Complexos, entre outras pessoas e sistemas.

RoadMap

  • Traduzir HowTo
  • Função para ser proxy em casos de callback que deve apenas repassar os dados
  • Permitir orchestra apenas alguns eventos, e fallback’s
  • Suportar funções como map e reduce
  • Escrever como um módulo em C, p/ performar melhor
13
Sep

Postado originalmente na ARQHP em tópico sobre MYSQL e abordava vários temas:

Vamos lá que o assunto é muito mais complexo,

Para começo de conversa innodb suporta vários outros tipos de indices, 
além das BTREE e RTREE, permite também busca espacial, não apenas um 
between, como assim, ele tem indice real para busca espacial, mas em 
compensação não tem full text search, ou seja um like nele é quase 
impossivel

Um exemplo de uso de mysql interessante: http://www.scribd.com/doc/21793/Scaling-PHPMySQL-Presentation-from-Flickr

MyIsam tem a vantagem de ser arquivos simples se comparado com o 
innodb, mesmo na opção para criar dentro do contexto, o arquivo fica 
instável em volumes grandes, o mito sobre configurar o mysql em innodb 
está errado, VOCÊ SEMPRE DEVE CONFIGURAR O MYSQL, performance de cache é 
sempre importante.

Considerar também o uso de MYSQL 3, que é uber mais leve, mas em 
contra-partida não tem suporte a subselect, nunca deixe de usar 
subselect, inner join, e counters,

Repitir dados também não é um erro, exemplo melhor: BIGTABLE do 
google, quando você tem counters, ponto vc tem counters mesmo, não queira 
varrer a tabela de pedidos toda hora para ver quantos produtos saíram 
e entraram, você pode fazer isso em uma rotina de backup, ou cada 10 
min para ter certeza que está ok, mas não para todo pedido de produto 
corrente. (isso vale para qualquer modo)

O Banco de dados também tem um limite se você deseja fazer um site 
estilo americanas, ou mesmo o novo google, que dá quantos XX de item 
do tipo foi encontrado, o melhor a se fazer é usar um sistema de 
indexação pronto para isso, exemplos clássicos são Lucene (Usado no 
Hibernate e na maioria dos EJB), Solr, HBase (esse ultimo é mais usado 
com Hadoop, no esquema MAP/REDUCE), como assim, não usar o banco ? é 
claro que você vai ter um banco de dados, mas a cada X minutos 
descarrega para o indice corrente, eles são feitos para criar facet 
search

Fora ainda CouchDB e outros bancos não relacionais, tudo é possível, se 
usar junto de um outro banco master.
Também não esqueçamos do MYSQL-PROXY, sendo possivel mapear query 
dinamicamente para o nó X, ex: tenho um indice de InnoDB especializado 
para Geo-Search, um outro para Full-Text, um outro para Cruzamentos de 
categorias com outra regra de negocio importante, ex: volume, podendo 
ainda ser o mesmo servidor só que em diferentes portas, assim você 
escala as pesquisas, sem necessariamente precisar de mais hardware.

Gosto de pensar que o mysql é uma ferramenta poderosa, que chega ao 
seu limite, quando desejamos fazer mais que isso, ex: ter job`s, usar 
algum middleware direto ao banco, ou até mesmo ter algum suporte mais 
interessante para usar sobre fibra ótica e storage, pq, bem funciona, 
ele vai funcionar, só que vai ser sempre na base da pesquisa, já 
outros sistemas são feitos para isso, e quando precisamos disso, 
quando falamos em BILHÕES de registro, não é uma micro-empresa, mas 
uma média para cima que costuma precisar, e a maioria dos sites também 
não, na verdade dificilmente você vai precisar fazer metade dessas 
técnicas, e NEM DEVE, pois isso é útil quando se tem volume, antes 
disso, fique no básico, o legal é saber que existe.