Typical website evolution...

Posted by André Ribeiro Camargo Tue, 27 Jul 2010 17:16:00 GMT

http://graphjam.com/2010/07/26/funny-graphs-typical-website-evolution/

BOA! :-D

Posted in ,

MySQL INSERT DELAYED

Posted by André Ribeiro Camargo Tue, 08 Jun 2010 10:30:00 GMT

Uso MySQL na aplicação dos shoppings com storage InnoDB. Funciona muito bem.

Mas ultimamente notei um gargalo de performance no banco quando tenho alguns INSERTs concorrentes na tabela de acessos (tipo uns 9). SHOW PROCESSLIST no console do mysql não mostrava outra coisa que não fosse COMMIT na informação das threads. E as requisições acabam ultrapassando a minha meta de consumir, no máximo, 1 segundo.

Pesquisei um pouco a respeito de como otimizar isso e descobri o INSERT DELAYED, vamos tentar…

Primeiro mexi no banco, ALTER TABLE nome_da_tabela ENGINE=MYISAM; para converter a tabela de InnoDB para MYISAM.

Depois alterei a aplicação, copiando o método ActiveRecord::Base#create para meu model e renomeando-o para create_without_callbacks (eu uso before_create para setar alguns atributos e queria manter os callbacks funcionando)

E para ver se funcionou, no console do MySQL rode SHOW STATUS LIKEdelay’; e leia aqui o significado de cada variável

Estou ansioso para comparar os logs de produção :-)

Posted in , , , ,

Bluff parte II

Posted by André Ribeiro Camargo Mon, 31 May 2010 23:26:00 GMT

Hoje fui converter um gráfico de pizza e notei que o padrão da Gruff é usar percentuais na legenda.

Só que a Bluff tava mostrando o valor da série.

Então, ajustei o código para ficar igual ao gráfico original.

Posted in ,

Gráficos bacanozos com Bluff

Posted by André Ribeiro Camargo Wed, 19 May 2010 23:27:00 GMT

Sou usuário de Gruff há muito tempo, utilizo principalmente gráfico de barras nas estatísticas dos shoppings.

Ontem, descobri o Bluff. Que pretende fazer o mesmo que o Gruff, só que usando javascript ao invés de ruby.

Gostei muito das tooltips do Bluff, então comecei a ver como seria para migrar o que tenho em Gruff.

O detalhe, é que eu queria modificar o conteúdo da tooltip, para mostrar mais dados.

A versão oficial do Bluff não suporta este recurso…

MAS, se vocês precisarem desta funcionalidade, peguem o código do meu fork no github que ele faz isso.

Dica de como fazer? Dá uma olhada neste exemplo, especificamente na função tooltips_renderer do gráfico custom_tooltips.

Agora é com a nossa criatividade, happy coding everybody!

Dica #2: gem install jake e rodem “jake” no diretório do projeto para gerar o arquivo bluff-min.js que deve ser linkado pela sua página.

Dica #3: instanciem o gráfico no window.onload… senão terão problemas no IEka.

Posted in ,

Ubuntu 10.04 e Haiku R1A2

Posted by André Ribeiro Camargo Mon, 10 May 2010 17:33:00 GMT

Venho utilizando o Ubuntu 10.04 desde antes do Alpha3 e na minha opinião o sistema está melhorando a cada versão. Desta vez, realmente o tempo de carregamento ficou muito mais curto e desde o lançamento o sistema está bem robusto.

Ainda sobre sistemas operacionais, ontem foi liberado a versão Alpha 2 do Haiku. Rodei a VM no VirtualBox e não funcionou a rede, aí fica muito sem graça. Preciso reservar algum tempo para ver como fazer funcionar (se for possível) para testar melhor.

ATUALIZAÇÃO:

Tip: in order to get networking running under Haiku in Virtual Box, under your virtual machine’s networking preferences, change the adapter type to ‘Intel Pro/1000 MT (82540OEM), and change to ‘NAT’ under attached to.

Muito massa! Funciona perfeito!

As coisas estão evoluindo :-)

Posted in

Robozinho anônimo do Google Analytics

Posted by André Ribeiro Camargo Wed, 21 Apr 2010 00:24:00 GMT

Um cliente me pediu para integrar o site dele com o Google Analytics.

Até aí, tranquilo, é barbada.

Só que, meus portais implementam identificação única (single sign-on). O cara se identifica em um dos sites e ao acessar qualquer outro do portal o sistema mantém ele identificado.

Implementei isso autenticando o usuário num site “central” e ao acessar os outros sites o sistema faz alguns redirecionamentos para verificar se aquele cara já está logado ou não.

Robôs não deviam se identificar, logo, podemos ignorar os redirecionamentos.

Aí que veio o problema, o robozinho que verifica se o site tem o código que ativa o Google Analytics não declara User Agent algum nas requisições.

Não sei porquê… Facilitaria a vida de nós (desenvolvedores) na busca do problema que impede a identificação do site pelo GA.

Resolvi meu problema, interpretando os logs de acesso do apache para descobrir quais eram as requisições desse cara, então coloquei o IP dele na lista do meu sistema que identifica os robôs, mas…. quando será que o google vai trocar o IP deste servidor?

Se tivesse o User Agent, ficaria menos POG

Posted in , ,

Mudança concluída, GNOME 2.30 lançado!

Posted by André Ribeiro Camargo Fri, 02 Apr 2010 01:12:00 GMT

Troquei de endereço, todos que já fizeram uma, sabe que é bem xarope. Mas tem lá seus pontos positivos. Para infelicidade do instalador da Oi eu tenho o telefone dele, azucrinei o coitado até agilizar a minha Internet de volta :-) Agora só falta arrumar o roupeiro e tudo está terminado. Temos uma vista legal do cerro, assim que der eu publico alguma imagem.

Hoje foi o lançamento da versão 2.30 do GNOME, mais melhoramentos de infra-estrutura. Para próxima versão está programado alterações visuais. Vamos ver como será :-) Mal posso esperar.

Posted in ,

Ubuntu Lucid Lynx

Posted by André Ribeiro Camargo Sun, 14 Mar 2010 20:39:00 GMT

Não aguentei o lançamento do Beta dia 18 e resolvi tentar o Alpha3, principalmente depois que revelaram o novo tema.

Atualização com ‘update-manager -d’ correu como o esperado, simplesmente funcionou.

O novo tema não é tão bonito como parecia em alguns screenshots, mas, tudo bem. Já estou “quase” habituado com a modificação de posição dos botões de maximizar/minimizar/fechar janela para o canto esquerdo da barra de título. :-)

O primeiro “problema” foi o som, ficou mudo. Depois de fuçar nas preferências descobri que o “conector” de saída não estava para “Analog Speakers”. Depois disso, temos música! Sabe como é, sem música não dá para viver.

Depois fui trabalhar um pouco, ao tentar acessar o shopping de desenvolvimento que roda na minha máquina recebi:

/usr/lib/ruby/1.8/i486-linux/RMagick2.so:RuntimeError: This installation of RMagick was configured with ImageMagick 6.5.5 but ImageMagick 6.5.7-8 is in use.

resolvi colocando RMAGICK_BYPASS_VERSION_TEST = true no config/boot.rb (eu sei, cheira POG né?)

Agora, não consegui acessar o homebanking do BB. Descobri que não tenho mais plugin java instalado, inclusive… cadê o pacote sun-java6-plugin?

Perguntei no IRC, disseram para adicionar o repositório “partner” e agora achou o pacote, neste momento está atualizando os pacotes do java, o jeito é aguardar…

ATUALIZAÇÃO:

Somente instalar os pacotes não funcionou, depois de nova consulta no #ubuntu+1 da FreeNode o plugin voltou depois que o seguinte link foi criado:

lrwxrwxrwx 1 root root 48 2010-03-14 18:36 /etc/alternatives/mozilla-javaplugin.so -> /usr/lib/jvm/java-6-sun/jre/lib/i386/libnpjp2.so

Posted in

Links para compartilhamento de notícias

Posted by André Ribeiro Camargo Fri, 05 Feb 2010 01:47:00 GMT

A pedido de um cliente, incluí na página que exibe a notícia na íntegra os links para compartilhar o conteúdo no Twitter, Reddit, Google Bookmarks, etc

Frescurinhas, espero que seja útil para alguém…

Quer conferir? Aqui vai um exemplo…

Posted in , , , ,

geoip_city with region name

Posted by André Ribeiro Camargo Wed, 03 Feb 2010 16:34:00 GMT

Estou usando o GeoIPLite City para gerar relatórios por origem dos acessos, utilizando a gem geoip_city para consultar os dados na base de dados binária (que é muito mais rápida do que importar/consultar o CSV no banco de dados).

O problema é que a gem não retorna o nome da “região” (equivalente a nossa unidade federativa), então, criei um fork do projeto no github e fiz as alterações (que foram muito simples) para obter este dado aproveitando a API em C que é muito veloz. Para facilitar a instalação em produção, estou hospedando a gem atualizada no gemcutter.

Caso seja útil para alguém, fique a vontade para usar e me enviar remendos.

Posted in , , , ,

Older posts: 1 2 3 4 ... 25