MyBook e full text search

Tenho andado a desenvolver alguns trabalhos em rails, entre eles o que apresentei em BD (cadeira de base de dados que fiz este semestre). De uma forma simplista o objectivo do projecto é a criação de um Web site, uma rede social para leitores que permita a estes comentar, pontuar e partilhar opiniões acerca de livros. Embora já tenha apresentado o projecto, este ainda está naquilo que se pode chamar de alpha version, espero completa-lo um pouco mais antes de o colocar online, ainda não tem nome final provisóriamente o nome deste projecto é ”mybook” (podem deixar sugestões, e dava jeito que os domínios estivessem disponíveis :p). Para que fique o registo tenho usado o InstantRails para estas minhas experiencias, uma grande dor de cabeça que tive foi quando tentava utilizar um plugin para full text search, o primeiro que encontrei foi o ferret (acts_as_ferret), depois mas não conseguia instalar o plugin o repositório estava em baixo ou então é a minha ligação de internet que é esquisita e não chega a certo sítios :p lolol Procurei mais um pouco e ouvi falar do acts_as_solr e do Sphinx, tentei o solr mas tb não tive sucesso li mais umas coisas e percebi, se não estou em erro que todos eles criam um servidor para fazer a indexação, tenho a sensação que era derivado ao facto de estar a usar Windows que o solr não funcionou pois ele tenta fazer fork para o servidor e… o senhor Windows não sabe bem o que um fork :p voltei para o acts_as_ferret pois o server para este (AAF DrbServer) supostamente poderia correr como um service win32.

Resumindo este tb me estava a dar alguns problemas e dado que tinha pouco tempo e para a apresentação do trabalho no dia seguinte precisava de algo que apenas funcionasse com alguns registos, acabei por fazer eu o meu método de pesquisa numas quatro linhas. Ficou algo do género:

livros = Livro.find_with_index(params[:pesquisatxt]) +

              Livro.find_tagged_with(params[:pesquisatxt].split(” “))

#find with index apenas vai considerar palavras com mais 2 caracteres.

#find_tagged_with vai pesquisar resultados com cada um dos tags individualmente

contagem = livros.inject(Hash.new(0)) {|memo,value| memo[value] += 1; memo}

ordenacao = contagem.sort {|a,b| a[1]<=>b[1]}

resultado = ordenacao.reverse.map {|x,v| x}

# Ou seja fico com uma lista ordenada tendo em conta os livros que mais vezes aparecem na pesquisa, por terem mais tags relacionados, ou titulo igual ao inserido sem contar palavras com – de dois caracteres!

Sei que isto pode ser um problemático se a base de dados for mt grande e os resultados forem mts… mas para um protótipo de pesquisa resultou bem e já tem alguns factores em conta!

3 Comments

http://www.regedor.com/

Apartir de agora, tenho o blog alojado em servidor proprio e novo dominio!

 

www.regedor.com

Comments

E o semestre acabou!

Viva! Antes de mais gostaria de pedir as mais humildes desculpas às largas centenas de pessoas que nos últimos dois meses tem visitado o meu blog na esperança de algo novo… Humm… Eu admito, não são centenas, são apenas algumas dezenas… Pronto às vezes chega a ter uma dezena… mas é uma dezena larga, e é gente interessante por isso merece este pedido de desculpas.

Estive, estes últimos dois meses, ocupadíssimo com trabalhos e exames. Bolonha veio alterar completamente o ritmo de trabalho, pelo menos na Universidade do Minho. Não digo que seja injusto ter-mos mais trabalho, há muita coisa que estava mal e que me parece poder beneficiar com Bolonha caso esta seja executada convenientemente. Tenho a sensação que ainda ninguém está habituado a esta nova etapa. É normal surgirem complicações num período de adaptação… Aguardo então ansiosamente pelo próximo semestre, e espero que desta vez as coisas corram melhor e não cheguemos ao fim com uma semana para entregar trabalhos, fazer “testes” (testes esses que na verdade são os exames que antes estavam espalhados ao longo de um mes) e tudo isto com extrema falta de coordenação (pelo menos foi isto que se passou no meu curso, LESI ou LEI) pois nem se sabia ao certo datas, horas, salas disponíveis para os exames etc… Acredito que tenha servido de lição, e espero por algo melhor ao longo dos próximos meses!

De qualquer forma terminou o semestre e estas cadeiras já estão todas feitas.=)

Ao longo destes dois meses, e enquanto fazia alguns destes trabalhos tb tive oportunidade para aprofundar os meus conhecimentos de RoR (Ruby on Rails)por sinal uma Framework muito interessante. Espero, agora que a tempestade passou, poder voltar a escrever algo neste blog e tecer alguns comentários por exemplo acerca de algumas cabeçadas que dei no rails ao longo do trabalho de BD!

1 Comment

VIM for beginners

The first time I saw vi text editor was when I reaches university, it seemed a little bit counterintuitive at the time. I think it is a normal feeling to new vi users, even more, if you are, like I was, used to Windows and GUIs but make no mistake, there is a good reason for this 30-year old tool still be widely used by many of the best developers in the world. A few days ago I was programming some rails application, and while doing some changes in a few files with vi editor I realized I couldn’t take full advantage of vi and do what I saw my teachers doing like !indenting! a text with few keyboard shortcuts, so, I spend two hours reading the vim help and I realized how fantastic vim is! Now if you wanna try vi I will give some little tips, like a mini tutorial for vi/vim beginners.

For showing you the shortcuts I’ll use a similar notation to the used on vim help.
<ESC><CTRL-v>5jI
This means you press ESC key then you press Ctrl and “v” key simultaneous then you press the number 5 followed by the “j” key and finally you press “I”. I think you can get the idea. If you can’t, vim isn’t for you or I’m worst teaching then writing English!

Ahhh… Another thing, Vim has something similar to a command line, when you do this <ESC>: you will start writing commands at the bottom of the screen for example, :q is for quitting the program. Of course when I say something started with “:” like “:q” I’m expecting you to write that on the command line, not in your text, so if you are in insert mode you have to do something like this <ESC>:q<ENTER>
Well… now when talked about insert mode I introduced one more thing; the vi working modes! When using vi you can switch between different working modes, for example to insert text you should be on INSERT MODE, when selecting text you are on SELECTION MODE, you have also REPLACE MODE, VISUAL MODE, and more. Those operating modes give you ultrafast access to key commands that can edit, insert, and move text in on-the-fly…

Here are some examples of commands:

Calling VIM:

Vi Open vim with no file.
vi PATH Open PATH file with vim, if the file doesn’t exist create it.
vi PATH + Open the PATH file and focus cursor at end of file.
vi PATH +10 Open file at line 10.
vi PATH +/regedor Open file with courser at the first occurrence of the word “regedor”

Saving/Quitting VIM:

:w Save
:q Exit without saving
:wq or : x or ZZ Exit and save
:w! Force Save
:q! Force Quit
:wq! Force Save and Quit

Well this is good for beginners. But for now I don’t have more time, I will set up a more complex tutorial with a few more advanced commands soon.

Comments

MySQL Performance tuning web seminar

Dia 29 de Novembro, 2007, às 14:00 vai decorrer uma apresentação ao encargo de Jay Pipes com os seguintes tópicos:

  • Benchmarking and Profiling Concepts and Guidelines
  • Schema Optimization
  • Index Selection and Tuning
  • SQL Coding Techniques
  • Server Parameter Tuning Guidelines

Achei piada revelar isto aqui pois embora isto se passe em paris é possível assistir a mesma no conforto do nosso sofá, ou então.. do nosso banco de madeira com três pernas, tudo depende do local onde têm o portátil.

Para terem acesso a esta web presentation, fica o convite ;)
http://www.mysql.com/news-and-events/web-seminars/display-81.html

É coisinha para ser à mesma hora que a aula de BD mas acredito que se aprenda mais de SQL aqui!

Comments

Finntroll

Viva! Honestamente, não sei o vou escrever mas como me propus a pelo menos escrever um post nem que seja 2 em 2 dias vou tentar cumprir!

Uma das coisas que tenciono fazer é revelar musica de estilos variados. Eu gosto de ouvir um pouco de tudo e vou dar a conhecer um pouco daquilo que me vai aparecendo de novo! Isto por exemplo tem a contribuição do vorph; Finntroll uma banda finlândesa uma mistura de folk, humpa(musica tradicional de bebados filândeses “segundo o vorph”), e claro Black Metal como nao poderia deixar de ser, pois foi o vorph quem me revelou esta banda!

[youtube=http://www.youtube.com/watch?v=SYbc7IJagGs]

Comments

Paco de Lúcia em Lisboa!

Disse-me o meu amigo João que Paço de Lúcia vem a Portugal e ao que parece é verdade. Dia 29 deste mês (Novembro) o músico de flamenco Paco de Lucía actuará, no Campo Pequeno, em Lisboa, num espectáculo em que apresentará alguns temas do seu mais recente álbum, “Cositas buenas”.

Paco de Lucía, de 59 anos, tem editados cerca de 30 discos, além de várias participações em trabalhos de outros músicos ou cantores.

Com Paco de Lucía, sobem ao palco do Campo Pequeno Alain Pérez (baixo), Daniel Lopez Vicente (guitarra clássica), Domingo Patrício (teclados), Israel Suárez (cajón) e Asunción Herédia e Montserrat Cortés (coros).

Tanto eu como o meu amigo João gostaríamos de comparecer a este concerto, mas como vai ser em Lisboa (tal qual os últimos concertos de relevo) fica bastante caro bilhete+transporte. Deixo então o apelo, quem tiver vontade (e um carro, pois também nos falta carro) de ver este concerto, entre em contacto para assim dividirmos custos da viagem.

Faltou apenas mencionar o preço dos bilhetes. Se não estou em erro é aproximadamente entre 25 € e 80 € dependendo do lugar.

Deixo-vos com Paco De Lucia, John Mclaughlin e Al Di Meola.
[youtube=http://www.youtube.com/watch?v=HEZrB_FDw4c&feature=related]

4 Comments

Hello world!

Pronto é este o meu primeiro post!

Não custou nada! Ainda por cima tive a sorte de ter a televisão ligada e acabado de aprender que Julio Isidro, assim como mais 2 milhoes de portugueses, já estão protegidos com a bolha actimel!

Deixo-vos com esta musica cuja letra está muito bem conseguida! [youtube=http://www.youtube.com/watch?v=0kF2srw4Bks]

Comments