Blog do Neis

Maio 25, 2008

O impacto de uma publicação…

Arquivado em: coisasqueacontecem, rapidinhas — danielneis @ 1:36 pm

Só curiosidade:

No dia 9 de abril, saiu na [Linux.com](http://www.linux.com) uma [matéria](http://www.linux.com/feature/131063) sobre o [fio](http://freshmeat.net/projects/fio/).
Do próprio site do projeto: “fio is an I/O tool meant to be used both for benchmark and stress/hardware verification.”
Até aí tudo bem. O legal é entrar no freshmeat e ver os [gráficos de acessos ao site](http://freshmeat.net/project-stats/view/57696/) do fio.

![Popularity: fio](http://blogs.floriparug.org/neis/wp-content/uploads/2008/05/fio-popularity-2008-april-may.png)

;o)

Fevereiro 8, 2008

Coisas que acontecem #2: SQL – índices: vale ou não?

Arquivado em: coisasqueacontecem, sql — danielneis @ 9:05 pm

**Atenção: Este post contém um pensamento sem solução. Talvez você ache algo aqui que lhe ajude, mas a idéia principal
do texto abaixo é apenas mapear um questionamento que ainda não solucionei. Portanto, leia por sua conta e risco.
Se você tiver algo para contribuir, desde indicar partes que não ficaram claras até responder todas as dúvidas contidas
aqui, superficial ou aprofundadamente, fique a vontade para usar os comentários.**

Estava eu aqui filosofando um pouco sobre banco de dados, repassando os últimos acontecimentos que me proporcionaram algum
aprendizado sobre SQL e pensei no seguinte:

Digamos que exista uma tabela com os campos `config, value, usr`.
Dessa forma se forem feitas pesquisas do seguinte estilo:

SELECT usr
FROM tabela
WHERE (config = ‘a’ AND value > 34)
AND (config = ‘b’ AND value < 48)
OR (config = ‘d’ AND value between 10 AND 30)
AND (config = ‘c’ AND value = 53)
OR (config = ‘e’ AND value != 30)
…..

É verdade que, no caso específico desse tipo de consulta, gerar índices para `config` e `value` é algo que faz sentido
no que diz respeito a otimização?
Seria algo como não precisar varrer a tabela inteira na hora de pesquisar os caras que tem `config` ‘a’,'b’,e/ou ‘c’
e assim por diante, não?
Afinal, os índices podem ser vistos como a mesma tabela,
ordenada pelo campo em questão; desse modo é possível, ao menos, fazer busca binária; certo ?
Isso facilitaria na hora de separar os conjuntos para depois fazer a interseção.
Mas talvez isso só valha realmente apena, ou mostre-se menos trabalhoso do que a própria consulta,
apenas para um dado número `config * user`.
Isso para poder calcular a complexidade do trabalho.

Na prática, se tivermos o seguinte:

select avg(value), max(value), min(value), stddev(value)
from (select count(*) value, usr
from formcidadesum_answers
group by usr
) as value
+————+————+————+—————+
| avg(value) | max(value) | min(value) | stddev(value) |
+————+————+————+—————+
| 10.3687 | 17 | 9 | 1.6727 |
+————+————+————+—————+

Ou seja:
uma média de 10 `config` por `usr` (lembrando que cada a cardinalidade entre `usr` e `config` config é

[m, n] / 0 <= m <= count(usr) && 0 <= m <= count(config)

Teremos, então, no caso da tabela acima, com 6000 usr, a tabela proposta no início teria cerca de 62200 registros.
Ou seja, cada índice teria que ordenar 62200 registros.
Será que, para essa quantidade, o trabalho gasto para indexação já é superado pela economia nesse tipo de consulta?

Novembro 30, 2007

Coisas que acontecem #1 – Expressões regulares

Arquivado em: coisasqueacontecem, dicas — danielneis @ 7:56 pm

Sim!
Elas são muito úteis…
Longe de um post pra explicar situações hipotéticas complicadíssimas para as quais [expressões regulares](http://pt.wikipedia.org/wiki/Express%C3%A3o_regular) são muito úteis, aí vai o que acabou de me acontecer…
Acabei de baixar o cd [Mar Dulce](http://en.wikipedia.org/wiki/Mar_Dulce(album)), de um tal [Bajofondo](http://en.wikipedia.org/wiki/Bajofondo), que escutei na [Itapema](http://www.itapemafm.com.br).
Descompactei o arquivo .rar
`unrar x Bajofondo\ -\ Mar\ Dulce\ -\ 2007\ -\ PLTY.rar`
E, infelizmente, ele jogou tudo na pasta onde eu estava. Agora, o problema foi mover as 16 faixas que começavam com os números da música, e não com o nome do autor, para o seu devido lugar…
Huum… são só 16, mover uma por uma? em dois passos (mv 0* … ; mv 1* …) ? naah… vai direto
`mkdir -p Bajofondo/Mardulce ; mv [0-9]*.mp3 Bajofondo/MarDulce`

Aí você me diz “Ah! Mas eu tive que digitar duas vezes o diretório, e sem o auto-completar”
Aí eu digo “Poisé, essa fica pra próxima, já fiquei contente assim”

Blog no WordPress.com.