Estatísticas com o plugin TrackMe Stats no Rails
10/02/07
Estou criando um plugin nos meus poucos minutos vagos para gerar as estatísticas de um site feito em Ruby on Rails. Inspirado no Shortstat e Mint, difere-se principalmente pelo fato de não ser em Javascript.
Após instalar o plugin, você só precisará migrar seu banco de dados (são 4 tabelas no total) e colocar o seguinte código no arquivo "application.rb":
class ApplicationController < ActionController::Base
include TrackMe
after_filter :analyze
end
O painel de visualização será semelhante ao Netvibes, com o conceito de widgets arrastáveis, divididos em:
- Visitas
- Browser
- Technorati
- Busca
- Referrer
- Páginas
- Idiomas
- Países
Se interessou? Então dá uma olhada como está ficando a interface:

Lançamento da versão inicial em breve!
Update: Será que vai ter algum louco que vai usar todos esses painéis? Acesse a imagem abaixo para ver.
- Permalink
- Trackback
- Comentários (7)
- Ao som de: Bad Religion – Only Entertainment
gEdit e tabulação por arquivo
02/01/07
O gEdit está se tornando um excelente editor de textos e será, com certeza, o escolhido pela maioria quando sair a versão com o novo componente GTKSourceView, que permite múltiplos highlights em um único arquivo (pense em um arquivo HTML com Javascript e CSS embutidos). Porém, por seguir a mesma filosofia do GNOME, peca por algumas funcionalidades básicas que não são implementadas. Uma delas é a definição de tabulação por tipo de arquivo. Por exemplo, quando programo em PHP, gosto de tabulação com 4 espaços. Mesma coisa para o Python. Mas quando estou em Ruby, gosto de 2 espaços como tabulação. Traduzindo, gosto de seguir as convenções de codificação de cada linguagem.
Uma das coisas que me impedia de usar o gEdit era a impossibilidade de fazer isso facilmente. Para quem não sabe, é possível fazer este tipo de configuração com o plugin modelines, mas você precisa adicionar a definição no mesmo estilo do Vim.
O plugin
Resolvi, então, criar este plugin que faz justamente isso. Permite definir diferentes tipos de tabulação, baseadas na extensão do arquivo.
Para instalá-lo, baixe o arquivo tabulation.tar.gz e extraia os arquivos para o diretório ~/.gnome2/gedit/plugins. Depois, ative-o em Editar / Preferências / Plugins.
Para adicionar uma nova extensão, ou alterar as configurações pré-definidas, modifique o arquivo "~/.tabulation.yml".
Sugestões? Deixe um comentário.
Para ver como seu gEdit pode ficar, veja estes posts publicados pelo Yuri Malheiros.
NOTA MENTAL: permitir a configuração das tabulações através de uma interface gráfica.
Update: Forcei apenas a tabulação de arquivos PHP, Python e Ruby. Assim, o script fica sem nenhuma dependência. Baixe o arquivo em http://f.simplesideias.com.br/tabulation-strict.tar.gz.
- Permalink
- Trackback
- Comentários (10)
- Ao som de: AFI – The Missing Frame
Lidando com checkbox no JQuery
25/11/06
Se você precisa lidar com checkboxes e está usando JQuery, veja este plugin que criei.
/*
Author: Nando Vieira
License: Public Domain
*/
jQuery.fn.check = function(mode)
{
mode = mode || 'on';
return this.each(function(){
if (this.type == 'checkbox') {
jQuery.fn._setCheckboxState(this, mode);
} else {
$(this).field('checkbox').each(function(){
jQuery.fn._setCheckboxState(this, mode);
});
}
});
}
jQuery.fn._setCheckboxState = function(checkbox, mode)
{
switch (mode) {
case 'toggle':
checkbox.checked = !checkbox.checked;
break;
case 'off':
checkbox.checked = false;
break;
case 'on':
checkbox.checked = true;
break;
}
}
jQuery.fn.field = function(type, filter)
{
var rule;
filter = filter || '';
if(type == 'all' || !type) {
rule = 'input|textarea|select';
} else {
if (type != 'select' && type != 'textarea') {
rule = 'input[@type=' + type + ']';
} else {
rule = type;
}
}
return jQuery(rule, this).not(filter);
}
Se preferir, pode passar o próprio elemento:
$('form fieldset#preferences input[@type=checkbox]').check();
De quebra, você leva uma função que retorna todos os elementos de formulário identificados pelo tipo. Por exemplo, para retornar todos os campos "password", você pode usar:
$('form').field('password').each(function(){
alert($(this).name());
});
Você também pode filtrar quais campos quer exibir. O exemplo abaixo pega todos os campos do formulário, com exceção de "password":
$('form').field('all', '[@type=password]').each(function(){
alert($(this).name() + ' = ' + $(this).val());
});
Campos do tipo "select" e "textarea" também entram na lista de "input".
Download: jquery-checkbox.js
Tamanho: 912 bytes
Bug Fix
- A regra "all" retornava todos os "selects" e "textareas" da página e não apenas do elemento.
- Permalink
- Trackback
- Comentários (8)
- Ao som de: Satanic Surfers – Evil

