Sphinx 0.9.8.1

Ja podem descarregar la nova Sphinx 0.9.8.1, una versió prévia a la 0.9.9 que corregeix diversos errors de la versió anterior:

  • added configure script to libsphinxclient
  • changed proximity/quorum operator syntax to require whitespace after length
  • fixed handling of incomplete remote replies (caused over-degraded distributed results, in rare cases)
  • fixed sending of big remote requests (caused distributed requests to fail, in rare cases)
  • fixed FD_SET() overflow (caused searchd to crash on startup, in rare cases)
  • fixed MVA vs distributed indexes (caused loss of 1st MVA value in result set)
  • fixed tokenizing of exceptions terminated by specials (eg. “GPS AT&T” in extended mode)
  • fixed buffer overrun in stemmer on overlong tokens occasionally emitted by proximity/quorum operator parser (caused crashes on certain proximity/quorum queries)
  • fixed wordcount ranker (could be dropping hits)
  • fixed –merge feature (numerous different fixes, caused broken indexes)
  • fixed –merge-dst-range performance
  • fixed prefix/infix generation for stopwords
  • fixed ignore_chars vs specials
  • fixed misplaced F_SETLKW check (caused certain build types, eg. RPM build on FC8, to fail)
  • fixed dictionary-defined charsets support in spelldump, added x-style wordchars support
  • fixed Java API to properly send long strings (over 64K; eg. long document bodies for excerpts)
  • fixed Python API to accept offset/limit of ‘long’ type
  • fixed default ID range (that filtered out all 64-bit values) in Java and Python APIs

A més hi ha novetats interessants amb les aportacions de tercers al motor de cerques, com el port a PECL API o el mòdul de Drupal. I a banda de les novetats pel que a software es refereix, també s’ha afegit documentació i presentacions del motor.

Amagant informació de l’Apache i del PHP

Sempre que acabo la instal·lació d’un Apache he de buscar com amagar les capçaleres que informen de les versions del programari instal·lades al servidor, quelcom així:

Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch13 mod_ssl/2.2.3 OpenSSL/0.9.8c
X-Powered-By: PHP/5.2.0-8+etch13

Avui m’apunto les directives:

  1. A la config de l’Apache:
    ServerTokens ProductOnly
    ServerSignature Off
  2. A la config del PHP:
    expose_php Off

Apa doncs, recarreguem l’Apache i llestos, ens queda una capçalera la mar de discreta:

Server: Apache

WordPress 2.6.3

Tot just ahir vaig avisar a una gent que tenien el blog ple d’spam per una vulnerabilitat de WordPress de l’any de la pica, els hi recomano actualitzar de WordPress i abans no acaben de fer-ho… pam! Nova versió 😉

Aquest cop l’actualització de WordPress afecta a una llibreria que s’empra per a tractar els feeds que apareixen al Dashboard.

Apa doncs, a actualitzar! Sort que fa un temps vaig decidir reinstal·lar els WordPress del servidor via SVN i ara fer actualitzacions és bufar i fer ampolles 😉

svn sw http://svn.automattic.com/wordpress/tags/2.6.3/ .

I a córrer!

MySQL: Eliminar registres duplicats

Després de donar voltes a com eliminar els registres duplicats d’una taula MySQL he topat amb una solució força ràpida (en funció de la mida de la taula en qüestió) de fer-ho:

ALTER IGNORE TABLE nom_taula ADD UNIQUE INDEX(camp1,camp2,camp3);

D’aquesta manera es crearia un índex únic a la taula nom_taula amb els camps camp1,camp2,camp3 i s’eliminaria els registres que tinguessin aquessts camps iguals entre ells.

Per acabar, i si no el necessitem, eliminem l’índex únic i llestos 😉

Eclipse PDT sobre Ubuntu

Un post recordatori de com instal·lar un Eclipse PDT sobre Ubuntu.

  1. Descarregar la darrera release del site d’Eclipse PDT
  2. Moure la release a /opt:
    sudo mv pdt-all-in-one-* /opt/
  3. Descomprimir la release a /opt:
    cd /opt/
    sudo -xfz pdt-all-in-one-*.tar.gz
  4. Donar permisos adients:
    sudo chmod -R 755 /opt/eclipse/

Arribats a aquest punt ja tenim l’Eclipse PDT instal·lat a la nostra Ubuntu. Podem fer una llançadora al Menú Principal tot donant-li la ruta adient:/opt/eclipse/eclipse

Si ets dels que pensa que la màquina virtual de GNU-Java és lenta, pots instal·lar la màquina virtual de Sun seguint aquestes indicacions:

  1. sudo apt-get install sun-java6-jdk
  2. sudo update-java-alternatives -s java-6-sun
  3. Afegir la següent línia /usr/lib/jvm/java-6-sun a l’arxiu /etc/jvm
  4. Afegir la següent línia /usr/lib/jvm/java-6-sun a l’arxiu /etc/jvm i al /etc/eclipse/java_home (Si no existeix aquest darrer arxiu, crea’l)

PHP 4.4.9 Released i s’ha acabat

La setmana passada va sortir la nova versió de PHP 4, sembla que a la fi serà la darrera. Aquesta nova PHP 4.4.9 és una actualització de seguretat que cobreix els cinc forats més greus que s’han descobert en els últims set mesos des de l’aparició de PHP 4.4.8 i que en deixa força a l’aigüera.

El missatge fa temps que està clar: PHP 4 s’ha acabat i cal migrar cap a la nova actual PHP 5, amb una versió 5.3 que sortirà el darrer trimestre de l’any i una PHP6 que promet moltíssimes novetats.

Poder va ser una senyal, aquest estiu estem migrant força projectes a la feina cap a la nova actual PHP 5.

Problemes amb PicLens

Quina setmaneta… avui he reinstal·lat diverses vegades un WordPress 2.6 que tenim a la feina, ja que de tant en tant a l’accedir als posts, es generava un dump de tota la resposta HTTP, des de les capçaleres fins al darrer bit transmés.

Com que feia poquet que había actualitzat a WordPress 2.6 he procedit com és habitual:

  1. Desactivar plugins
  2. Posar el tema per Default
  3. Reinstal·lar WordPress

En tots els casos el resultat era el mateix, de tant en tant, aleatoriament, el Firefox (i només el Firefox) mostrava un dump de tota la resposta HTTP o bé intentava baixar-se l’arxiu com si fos un oct/stream.

Finalment he recordat, després de fer les més diverses proves, desactivar mod_gzips, etc… que no fa massa provant la pijadeta del PicLens a la feina tots ens vàrem instal·lar la seva extensió per Firefox de forma compulsiva 😉

Doncs bé, tant fàcil com desactivar l’extensió en qüestió i tot arreglat, el WordPress torna a funcionar perfectament. Crec que és possible que la seva funció de prefetch a l’estil Google Web Accelerator hi tingui quelcom a veure, però no em vull aventurar del tot a afirmar-ho.

De moment però, problema solucionat.

CacheLite i NFS

Aquesta setmana m’he trobat alguns problemes al emprar la llibreria CacheLite de PEAR per tal de fer caché del resultat de l’execució de diversos mètodes PHP.

L’entorn d’execució és el següents:

  1. Frontals amb Apache que interpreten el PHP d’un directori NFS
  2. Servidor NFS amb el codi centralitzat

Els problemes apareixien al dir-li a CacheLite que emmagatzemes els arxius al sistema NFS. CacheLite començava a generar arxius de caché buits i no hi havia manera que servis la pàgina.

Després de força tafanejar i googlejar detectem que el problema resideix al bloqueig d’arxius que fa CacheLite per defecte:

//Línia 67 aprox. del Lite.php
var $_fileLocking = true;

Aquest bloqueig d’arxius fa que s’empri la funció flock de PHP i la documentació de la mateixa ja avisa:

flock() will not work on NFS and many other networked file systems. Check your operating system documentation for more details.
[…]

Així doncs, mentre busquem altres solucions, desactivant el filelocking, i activant (també venen activats per defecte) els controls d’escriptura i de lectura (WriteControl i ReadControl) tot funciona perfectament.

W3C: Mobile Web Best Practices

El World Wide Web Consortium (W3C) ha fet pública la versió 1.0 de les seves Mobile Web Best Practices. En aquestes recomanacions s’ofereixen als desenvolupadors web que pensen en dispositius mòbils, les millor pràctiques a aplicar per generar continguts consumibles des dels dispositius mòbils.

This document specifies Best Practices for delivering Web content to mobile devices. The principal objective is to improve the user experience of the Web when accessed from such devices

Sphinx 0.9.8

Després de força d’esperar més de 15 mesos i 700 revisions, arriba la nova release de Sphinx.

Sphinx 0.9.8 incorpora unes 70 millores respecte la release anterior.

Així doncs el que és un dels considerats ‘Best Project’ i ‘Best Project for the Enterprise’, a més de ser finalista del SourceForge Community Choice Awards 2008, passa pàgina i avança cap a una nova release cada cop més aprop de la 1.0 😉