lunes, 22 de marzo de 2010

LDAP auth Apache2

Llevo unos días releyendo documentación acerca de cómo autenticar Apache2 contra OpenLdap. En mi anterior etapa en Ferrol, usábamos diversas herramientas gráficas para el uso diario, tales como phpldapadmin y webmin. La verdad es que en línea de comandos es un poco engorroso. Más que en la propia configuración e instalación del servicio, que a mi modo de ver es muy sencillo, buscaba documentación acerca de alguna aplicación tipo GUI para administrar OpenLDAP. En este post me he topado con JXplorer, aplicación que desconocía, escrita en Java. La primera impresión después de una mañana de uso no puede ser mejor. A modo de anécdota dejo parte de la configuración del directorio que deseamos autenticar en Apache2.



Options Indexes FollowSymLinks
AllowOverride None
order allow,deny
allow from all
AuthName "Probando Autenticacion por LDAP"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
Require valid-user
AuthLDAPURL "ldap://ldap.local:389/ou=users,dc=dominio,dc=com?uid"


No he leído mucho acerca de LDAP y lighttpd, así que tan pronto como asimile la documentación, es post "LDAP y lighttpd" no tardará mucho.

jueves, 18 de marzo de 2010

Noticias desde Redmond

Como un reguero de pólvora se ha extendido la noticia por la red. Twitteros, blogueros y demás fauna celebran la inminente llegada de la nueva versión de Internet Explorer.

El nuevo Internet Explorer 9 necesita imperiosamente, desde el momento de su creación, es decir, desde el momento en que los ingenieros de Microsoft, un nuevo enfoque: ser "más navegador" y menos "Microsoft".

Si usted es neófito es este gran universo de redes,IPs, webs y contenidos, le recordamos que Internet Explorer es el navegador con mayor cuotal(total) de mercado. Desde el año 2004, cuya cuota de mercado rozaba el 90%, hoy, en 2010 se sitúa alrededor del 60%. Estas cifras, junto con el empuje de los usuarios a Firefox y la salida al ruedo de Chrome, preocupan en Redmond.

Necesita ser más navegador en el sentido más estricto. Necesita respetar estándares : HTML5,CCS3...etc. ¿Suena bien verdad? IE9 promete:

  • Respetar HTML5
  • Respetar CCS3
  • Acelerar JavaScript
  • Mejoras en seguridad

Una de cal y otra de arena. Si por una parte anuncia a "bombo y platillo" su "repentino" amor los estándares, por otra parte deciden continuar con el desarrollo de Microsoft Silverlight, un competidor para Macromedia Flash. Como si de una casualidad se tratase, recientemente NVIDIA, reconocido fabricante de chipsets y tarjetas gráficas anuncia "con Internet Explorer 9 y chipsets gráficos NVIDIA se optimizará las webs desarrolladas con HTML5". En un primer momento esta noticia no deja de sorprenderme!. Con posterioridad, y tras una reflexión previa, proceso la información y concluyo: ¿Por qué ha de sorprenderme que NVIDIA y Microsoft caminen de la mano?. No debería.

Desde hace unos meses, en mi estación de trabajo personal utilizo una tarjeta gráfica NVIDIA GeForce 9600GT, cuyo rendimiento en relación calidad precio es muy bueno.En el entorno profesional, uso NVIDIA Quadro NVS 290, una tarjeta excepcional. Reconozco haber abandonado ATI e Intel por NVIDIA.

Dejando a un lado rendimientos costes y demás, retomo el hilo. NVIDIA fabrica grandes productos, pero odia los estándares, detesta la libertad y como consecuencia, el usuario es el que pierde. No libera sus drivers, ni para plataformas Linux/Unix ni para plataformas Microsoft. Estos últimos han encontrado un gran aliado para continuar su malévolo plan de dominar el mercado personal y empresarial de computadoras. Entonces...¿a qué viene anunciar, máxime cuando IE9 aún es una beta(¿alpha?) que con tarjetas NVIDIA "IE9 funcionará mejor"(así es cómo lo percibirá el usuario final)? Es muy sencillo: estrategia comercial.

Es muy triste pensar que el futuro de Internet está en manos de grandes multinacionales, cuyo objetivo principal es el lucro, y no el usuario; las ventas y no los estándares. Como profesional usaré Internet Explorer 9 para poder opinar, pero como usuario prefiero opciones libres de calidad infinitamente superior: Firefox, Konqueror o Chrome.

Por cierto, IE9 no será compatible con Windows XP. Qué satisfacción! Sobre todo cuando estamos hablando de un sistema operativo OBSOLETO, cuya fecha de lanzamiento es 2001: !hace 9 años!. Por fín, una noticia positiva entre tanta oscuridad.

Este post ha sido publicado también por Alberto Permuy Leal en el blog de Proxecto Desire.

martes, 9 de marzo de 2010

mumble

Leyendo un post en groups.drupal.org via @pcambra buceo por los foros de Drupal. No sé que buscaba ni la motivación para hacerlo. Muchas veces "surfeo" sin buscar nada en especial, disfruto pensando cómo han diseñado la web, si usan CSS, sin es un CMS; otras sin embargo, si veo algo extraño arranco NMAP...no sé si esto es "deformación profesional", lo que si es cierto es que he invertido muchas horas de mi vida en este pasatiempo.
Un hilo me ha llamado la atención. Quedán para charlar con mumble, una aplicación de VoIP de código abierto(Licencia BSD / GPL ). Si algún gamer lee este post, el "símil" propietario podría ser TeamSpeak. Me ha llamado la atención que desde la versión 1.1 toda la comunicación se cifra con TLS; además mumble es multiplataforma(algo que suelo valorar mucho!), y se caracteriza por:
  • Seguridad: TLS
  • Jerarquia de canales
  • Calidad de sonido
  • Baja latencia
  • Plugins.
Intentaré probarlo en breve y comentar las impresiones.
Saludos.

jueves, 4 de marzo de 2010

Drupalcamp Spain 2010 - Domingo - Construyendo una red social con Drupal


Ring!!! Las 08:45 y aún en cama! Despierto, ducha, desayuno, metro y a las 10:10 llego al Citilab, justo a tiempo para escuchar la ponencia "Construyendo una red social con Drupal" de Daniel Primo. Me gusta como ha comenzado con la afirmación de que "La red social no se mueve sola", para luego lanzar al aire la pregunta "¿Cuanto tiempo puedo dedicarle?". Entrando en el tema exclusivamente técnico, deja unas pinceladas acerca del estudio previo de los módulos de Drupal que debemos utilizar.Recalca que en la implementación de recursos relativo a redes sociales, es vital el rendimiento(caché, caché y más caché), o por lo menos tenerlo en cuenta.

A través de la integración de CCK y Views , cuidando el perfil del usuario y añadiendo poco a poco nuevas funcionalidades, la construcción y consolidación de red social es posible con Drupal.
Ha citado módulos que si bien no desconocía, nunca había utilizado, tales como: Organic Groups,OGPanels, Content Profile, Private Messages, Facebook Style Status,UserRelationship y alguno más que seguro se ha escapado a mis notas.
En resumen, una sesión muy amena y divertida. Enhorabuena!

Nota: 8 sobre 10

lunes, 1 de marzo de 2010

Drupalcamp Spain 2010 - Sábado - Openlayers



Una de las mayores sorpresas de la Drupalcamp, al menos desde mi modesto punto de vista, ha sido la ponencia de Openlayers de Alan Palazzolo.
Openlayers es una librería de Javascript, completamente libre y liberada bajo licencia BSD, también disponible como un módulo "amigable" para Drupal, muy fácil de integrar con la estructura interna del propio CMS, que permite "inscrutar" mapas utilizando al API de Openstreetmaps o GoogleMaps entre otros.
La charla ha sido muy dinámica, ilustrada con ejemplos. Supongo que el uso de Prezi para la presentación ayuda. Como curiosidad, señalar que el turno de preguntas ha sido extenso( y divertido, por supuesto), y una de la preguntas ha sido "¿Qué has usado para hacer la presentación?", provocando la carcajada general en la sala.
Los aspectos fundamentales tratados fueron:
  • Building maps
  • Views
  • CCK
  • Arquitecture and API
Mucho Javascript se ha visto en esta sesión, que junto a reflexiones tan interesantes como los problemas de intercambio de datos entre distintos dominios, ha hecho las delicias del personal. Comentaba Alan que en Drupal 7 se intentarán solucionar estos problemas(Proxy JS).
Lo dicho, para mí, la mejor ponencia de la Drupalcamp Spain.

Nota: 9 sobre 10.

sábado, 27 de febrero de 2010

Drupalcamp Spain 2010 - Sábado - The real power of Drupal



Puntual comienza la sesión "The real power of Drupal " de Addison Berry. Para los que no conozcan a @add1sun que es Team Lead Documentation de Drupal y trabaja en Lullabot. Seguro que os suena, a que sí? La verdad sea dicha, el que la sesión fuese en Inglés, es para mí un handicap, pero voy a intentar hacer un breve resumen, para no perder el hábito de post por sesión #drupalcampspain.


Con un pantallazo "It´s open source, stupid" nos introduce en el mundo del Opensource, con la clásica analogía de la cerveza gratis, recurrida en multitud de presentaciones. A la pregunta "What´s Drupal" hace hincapié en que Drupal no es simplemente código: es una comunidad . Afirma que el proyecto "se podría" dividir en un 50% para el código y otro 50% para la comunidad que lo desarrolla, apoya y difunde. Salgo de la sala con la impresión de haber escuchado a una persona realmente implicada con el concepto "comunidad", y eso , para la gente que "venimos" del mundo de SwLibre como el que suscribe, es como mínimo digno de elogio.


Nota: 7 sobre 10

Drupalcamp Spain 2010 - Sábado - Parches, bugs...



La puntualidad es algo muy importante, y en esta Drupalcamp los horarios se están cumpliendo: un 10 a la organización. A las 12:02 comenzaba la sesión "Parches, bugs...." a cargo de Manuel García. La primera sorpresa es que la sesión no ha sido 100% técnica, sino que se ha centrado al principio en el "¿Por qué reportar bugs?" y luego en "¿Cómo reportar un bug?" en Drupal. La segunda es la afirmación de que existen dos tipos de parches: "los buenos" y "los malos", entiendo a los primeros como el código que sí soluciona los bugs, y a los segundos como los que solucionan un error, pero añaden otros.
Especial énfasis en la documentación de los bugs y en la descripción de los mismos ya que "facilita a la comunidad la correción del error". Incide en la búsqueda antes de reportar un bug, ya que es posible que ya se haya enviado o corregido con un parche. Nos anima a TODOS los usuarios Drupal a reportar bugs. TODOS en mayúsculas por que por lo que he visto es bastante sencillo, y no es necesario ser un gurú para enviarlo. En http://drupal.org/patch/apply hay más información al respecto. "La localización de errores es vital para la comunidad Drupal, ya que ayuda a que la comunidad siga viva" comentaba Manuel. Además "si reportas errores, participas en la comunidad, como en una especie de simbiosis". (Están locos estos Drupaleros).
La sesión ha sido muy corta, apenas 20 minutos. A mi modo de ver, el ponente estaba nervioso,pero el turno de preguntas a animado un poco la charla. Se ha echado en falta un ejemplo práctico, algo habitual en todas las sesiones de la Drupalcamp.
Nota: 6 sobre 10

Drupalcamp Spain 2010 - Sábado - Ubercart



A las 10:00 de la mañana comenzaba la charla de P.Cambra sobre Ubercart, algo más que un módulo para comercio electrónico.
Ubercart, en palabras del propio ponente "es una solución completa para comercio electrónico,(...) muy flexible para la venta de productos no físicos: entradas para eventos p.e".
Ubercart "consta de dos pilares fundamentales: Núcleo y Otros componentes", e integra a la perfección Nodos, Views y CCK entre otros. La ponencia a sido práctica y directa, ilustrando con ejemplos la configuración básica del portal; desde cómo crear un artículo hasta las pasarelas de pago soportadas. Comentaba Pedro, que Ubercart será la base para un futuro Drupal Commerce en la esperada nueva versión de Drupal 7. Ha citado la opción de instalar Ubercart como módulo o directamente como una instalación limpia de Drupal con Ubercart instalado.
A pesar de ser un tema que personalmente no me interesa demasiado, sí me ha gustado la sesión.

Nota: 7 sobre 10

Drupalcamp Spain 2010 - Viernes - Unit & Integration Testing


Comienza la sesión!De nuevo, con la sala hasta la bandera. Javier[Alquimia] configura su máquina.Al proxectar su terminal, se puede observar su prompt "gentoo like” y eso me gusta.Esto huele a experiencia, y no sólo hablo de Drupal. Deja claro que un proyecto web dificilmente llegará a buen puerto si no se definen claramente todas las fases de la Etapa de Desarrollo. De vital importancia es la Fase de Pruebas, que a criterio de Javier, se divide :
  • Accesibilidad
  • Usabilidad
  • Funcionalidad
  • Cross Browsing
  • Rendimiento
El concepto de Accesibilidad web, más que un objetivo, que lo es, debe ser motivo de concienciación por parte de todos los miembros del proyecto, de que "la web" tenga conciencia de los tipos de usuarios que la visiten explicando "al usuario lo que se van a encontrar".
Hablando de Google Website Optimizer , YSlow, herramientas de validación de W3C y enlaces tan valiosos como este, la sesión se va consumiendo.
Me ha parecido muy interesante que se haya citado la virtualización relacionada con el tema del Crossbrowsing. Virtualbox es la solución que recomienda, y personalmente la considero muy acertada. ¿Hay aún gente que conciba la virtualización doméstica sin Virtualbox? Yo no. Lo discutiremos en otro post. Muy buena la referencia a Browsershots! Qué recuerdos!
Sobre el rendimiento, algo que en muchos proyectos se pasa por alto : !! Error!! Tomad nota:
Para realizar las pruebas de funcionalidad, recomienda:
Para finalizar, realiza unas pruebas prácticas con Simpletest. Demasiada miga para este post!
Hay un concepto que me ha quedado bastante claro:
testers != developers
Nota: 8.5 sobre 10

viernes, 26 de febrero de 2010

Drupalcamp Spain 2010 - Viernes - Jquery




A las 15:00 horas Ricardo Sanz comenzaba la sesión "Introducción a Jquery". Los diez primeros minutos sirvieron de introducción, presentado Jquery y comentando hasta dónde podemos llegar. Me ha gustado la analogía que ha utilizado en la sesión : "Apuntar y disparar". Apuntar, los más avispados se habrán dado cuenta, refiriéndose al DOM , y "disparar" a la ejecución del código posterior. Toda la sesión ha sido muy práctica, ilustrada siempre con ejemplos. Para ilustrarlos usaba Firefox con el complemento Firebug sobre una plataforma Micro$oft Window$.
Me ha parecido muy interesante, y una opción a plantearme en futuras ponencias, la entrega de una pequeña plantilla con el resumen y los ejemplos de la sesión. Ayuda a no perder el hilo! Enhorabuena.

Nota: 6.5 sobre 10

Drupalcamp Spain 2010 - Viernes - Llegada



Acabo de llegar hace 30 minutos al Citilab, el recinto donde se celebra la Drupalcamp Spain 2010. Después del día de ayer, con el típico retraso en el aeropuerto y llegar al hotel alrededor de la 01:15 de la madrugada; y de haber dormido más bien poco, estamos en faena.
La organización del evento, a priori, parece que ha pensado en todo( o casi). La recogida de acreditaciones con su respectiva bolsa drupalera fue muy ràpida,y ahora mismo estoy instalado en una especie de salón de unos 300 metros cuadrados con mesas, pcs , conexión a Internet y posteando un rato antes de entrar. Aún no tengo muy claro qué voy a hacer hasta la 13:00 cuando se inaugure el cotarro. Intentaré acercarme a algún Linuxero, que hay a patadas. Creo que los estoy espantando con el puto Macbook. Hay netbooks a patadas, y si antes de venir ya tenía ganas de comprarme uno, creo que tan pronto cómo pueda lo haré.
Examinando en programa de la Drupalcamp, tengo ganas de asistir a todas, pero claro, no va a ser posible. La idea es asistir a las más interesantes a nivel técnico, y dejar las institucionales y promocionales a un lado; y en los tiempos muertos, trastear un poco con lo que aprenda.

jueves, 25 de febrero de 2010

Clean URL para Drupal con lighttpd

Típico en las instalaciones de Drupal es querer mostrar la URL del tipo http://misitio.com/articulo-windows-no-funciona . Pues con lighttpd es muy sencillo.Editamos lighttpd.conf, nos aseguramos de tener el módulo mod_rewrite habilitado:

server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_rewrite",
"mod_fastcgi",
"mod_redirect",
"mod_evhost",
"mod_usertrack",
"mod_rrdtool",
"mod_webdav",
"mod_expire",
"mod_flv_streaming",
"mod_evasive"
)

Ahora añadimos :

url.rewrite-final = (
"^/system/test/(.*)$" => "/index.php?q=system/test/$1",
"^/([^.?]*)\?(.*)$" => "/index.php?q=$1&$2",
"^/([^.?]*)$" => "/index.php?q=$1",
"^/rss.xml" => "/index.php?q=rss.xml"
)

Ahora reiniciamos a lucifer:

hansolo:~# /etc/init.d/lighttpd restart
Stopping web server: lighttpd.
Starting web server: lighttpd.
hansolo:~#



Esta configuración es para Drupal 6.x, por lo menos en esta versión sí funciona. En el wiki de lighttpd hay más información sobre mod_rewrite.

Habilitar cgi en lighttpd

¿Por qué? El por qué es sencillo. Necesito habilitar la ejecución de CGIs en un webserver para mostrar en una gráfica el envio de mensajes de una máquina corriendo Postfix. ¿Qué es un CGI? En la wikipedia tienes una definición mucho mejor de la que pueda escribir. Si sueles leer este blog(cosa que dudo), habrás observado algún que otro post sobre lighttpd. Pues bien, la máquina que ilustra este ejemplo, es la tercera que tengo actualmente en producción sirviendo webs con lighttpd y puedo decir que estoy muy satisfecho con los resultados. El rendimiento en relación a Apache2 y Cherokee es espectacular. Por partes. No se trata de desmerecer a ningún software httpd, pero tengo mis predilecciones dependiendo del escenario.
  • Apache2: Máquinas con hardware "potente" dónde el procesador y el consumo de RAM no supongan un problema. Es muy sencillo de configurar. Hay mucha documentación tanto en la red Internet como impresa. Lo instalo en máquinas que no sólo administro yo, es decir: "Alberto, mira, que el PHP dice que "not found curl extension"", y claro, entonces le dejas subir al cielo contestando "estás en el grupo sudoers, ¿sabes instalar paquetes en Debian GNU/Linux?", entonces el luser del programador contesta "claro!Uso chupiBuntu Linux desde hace 6 meses, ya lo instalo yo"; y claro, luego le comentará a sus amigos "...y claro, el Administrador no tiene ni puta idea y tuve que instalar en un servidor que tenemos en la provincia Hoth , en Dinamarca, el soporte CURL para PHP5". ¿Lo habéis entendido, verdad?
  • Cherokee. Máquinas con hardware "normal"[fíjense en la notación entrecomillada, que debería ir con ], con un equilibrio relativo entre el número de peticiones y las prestaciones de la máquina. Lo instalo(instalaba, ahora estoy "fall in love" con lighttpd) en escenarios dónde el tiempo de respuesta es realmente importante. Cherokee responde bien, se actualiza constantemente, y la interfaz gráfica de cherokee-admin es de lo mejor que he visto en los últimos meses.
  • Lighttpd. Ideal para un VPS, con poca RAM, limitada por el propio entorno de virtualización. Es muy rápido y el consumo de memoria es muy muy escaso, tanto, que muchas veces ni te darás cuenta de que se está ejecutando en el servidor. El fichero de configuración, si estás acostumbrado a Apache2, al principio es un poco hostil, pero luego te acabas acostumbrando.
Después de esta chapa, vamos al tema.Lo primero es cargar el módulo cgi en el fichero de configuración[/etc/lighttpd/lighttpd.conf]. En Debian GNU/Linux 5.0.x por el paquete precompilado de lighttpd ya soporta cgi's.

server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_cgi"
)
include "mod_cgi.conf"

Mediante una directiva include, indicamos que lea el contenido del fichero mod_cgi.conf, cuyo contenido es el siguiente:
Fichero /etc/lighttpd/mod_cgi.conf

alias.url = ( "/cgi-bin/" => "/var/www/cgi-bin/" )
$HTTP["url"] =~ "^/cgi-bin/" {
#Deshabilitamos el listado de directorios
dir-listing.activate = "disable"
cgi.assign = (
".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl"
)
}

Ahora sólo nos queda localiza este bloque de código en el fichero lighttpd.conf y añadir la extensión .cgi para que sea excluída por el servidor a la hora de manejar ficheros estáticos.

# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".cgi" )

Reiniciamos a lucifer y listo.

hansolo:~# /etc/init.d/lighttpd restart
Stopping web server: lighttpd.
Starting web server: lighttpd.
hansolo:~#

Uso mailgraph para generar las gráficas, y el resultado es.....

miércoles, 24 de febrero de 2010

PEAR para comprobar respuestas icmp

PEAR es un repositorio de extensiones para PHP, que añade funcionalidades "extra" a este lenguaje de programación. Personalmente me interesan todas las relacionadas con el networking. Esta mañana he revisado mis enlaces y he "escrito" un pequeño script PHP que devuelve esta estado de un host. Simplemente comprueba si responde a un paquete ICMP. Si es así, muestra un mensaje en pantalla.

Si aún no conoces PEAR, y programas aplicaciones PHP , o simplemente tienes curiosidad, en este enlace tienes documentación sobre cómo instalar PEAR en Ubuntu. Aún no he implementado PEAR en ninguno de los servidores que administro. En mi máquina con Ubuntu 9.10 [Linux apermuy-desktop 2.6.31-19-generic #56-Ubuntu SMP Thu Jan 28 01:26:53 UTC 2010 i686 GNU/Linux] he seguido las instrucciones para la instalación de la web oficial. Si tienes experiencia instalando aplicaciones desde el terminal no tendrás demasiados problemas.

El paquete que he utilizado en el script es Net_Ping. En un primer momento y con el ejemplo de la web, el resultado es confuso: "escupe" en un array el resultado de un var_dump, con lo cual os podéis imaginar...Sí he comprobado, por lo menos en este paquete, que a pesar de que los programadores corrigen bugs y añaden nuevas características, el ejemplo de código para describir el uso de Net_Ping es "bastante cutre". He recurrido a esta web para comprender totalmente la utilización de la extensión.

Fichero ping.php :

require_once "Net/Ping.php";
$ping = Net_Ping::factory();
if (PEAR::isError($ping)) {
echo $ping->getMessage();
} else {
$ping->setArgs(array('count' => 1));
$servidores = array(
0=>"www.gnome.org",
1=>"www.debian.org",
2=>"www.gnu.org");
foreach($servidores as $posicion=>$host){
if($ping->checkhost($host)){
echo "El host ".$host." esta levantado
";
}
else{
echo "El host ".$host." esta caido
";
}
}
}
Es evidente que no soy ni programador ni experto en PHP, pero estos días me documentaré más sobre PEAR, un proyecto realmente interesante.

martes, 23 de febrero de 2010

Complementos para Firefox

Firefox

[Posteado en www.proxectodesire.eu]

Firefox es un navegador web desarrollado por la Fundación Mozilla. Es multiplataforma, por lo tanto se puede ejecutar en máquinas que corran sistemas operativos GNU/Linux, MacOSX , BSDs y Microsoft Windows.Es rápido y seguro. El equipo de desarrollo trabaja continuamente, adaptando el navegador a los estándares web, añadiendo nuevas funcionalidades y corrigiendo errores(bugs).




Una de las características de Firefox son sus complementos(addons).Los complementos son "pequeñas porciones de código empaquetado" que añaden funcionalidades extra al navegador. La Fundación Mozilla en el URL https://addons.mozilla.org tienen a libre disposición de todos los usuarios de la red Internet miles de complementos, ordenados y catalogados por categorías.Las cifras del sitio dan miedo: 1.819.544.505 descargas y 4.453.956 usuarios registrados a fecha 21 de Febrero de 2010. Con estos datos encima de la mesa, el lector puede hacerse una idea de la enorme difusión e impacto de Firefox en la web.



Instalando complementos en Firefox podrás cambiar el aspecto de tu navegador, añadir nuevas y útiles barras de herramientas,diccionarios de idiomas, y un sin fin de atractivas funcionalidades. Entre los miles de complementos, podemos destacar:



.- DownThemAll! Gestor de descargas construido dentro de Firefox.

.- XMarks. Comparte tus marcadores en varios PCs.

.- ScreenGrab. Permite realizar capturas de pantalla en varios formatos de imágenes.

.- Echofon. Twittea desde Firefox!

.- FastestFox. ¿Efecto placebo? Aumenta el rendimiento de Firefox.

.- Personas. Personaliza tu navegador con miles de pieles.



A parte de obtener complementos individuales, existen los llamados "Recopilatorios", que como su nombre indica, son complementos recopilados en base a un criterio común: diseñadores web, programadores, tiendas online...etc. ¿ A qué esperas para personalizar Firefox?

lunes, 22 de febrero de 2010

Transport con regexp para Postfix

La semana pasada he configurado un servidor Postfix para enviar vía relay a smtp.gmail.com y a smtp.mundo-r.com. Este post carecía de sentido(por la cantidad de información que hay en la red) si no fuese por que debo discriminar el envío dependiendo del destinatario. Nada mejor que aplicar expresiones regulares en Postfix para lograrlo. A modo de apunte personal, dejo los ficheros de configuración.

Fichero main.cf[incompleto]

#Fichero configuracion Postfix
#Alberto Permuy Leal - alberto.permuy(en) gmail.com
#Febrero 2010
#
#
#Configuracion basica
append_dot_mydomain = yes
command_directory = /usr/sbin
data_directory = /var/lib/postfix
unknown_local_recipient_reject_code = 550
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
setgid_group = postdrop
#
#
#Redes a las que sirve/recibe correo
myorigin = subdominio.dominio.es
mydomain = $myorigin
mynetworks_style = subnet
mynetworks = 127.0.0.0/8, 192.168.0.0/22
#
#
#Un banner por aqui
smtpd_banner = ESMTP $mail_name
#
#
#PATHS
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliasesx
mailq_path = /usr/bin/mailq
#
#
#Manpages y demas
html_directory = no
manpage_directory = /usr/local/man
#
#
#
#Alias
alias_maps = hash:/etc/aliases
#
#
#TRANSPORTE DE CORREO
#
#
transport_maps = regexp:/etc/postfix/transport_regexp
#
#
#Configuracion para smtp-relay autenticado
smtp_use_tls = yes
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_password_maps = hash:/etc/postfix/smtp_passwords
smtp_sasl_auth_enable = yes
smtp_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
smtp_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtp_sasl_auth_enable = yes
smtp_sasl_security_options=noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_tls_auth_only = no
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

La línea "más importante" es transport_maps = regexp:/etc/postfix/transport_regexp , que como podemos "deducir" apunta al fichero transport_regexp.
Fichero transport_regexp

/dominio.es$/ smtp:smtp.mundo-r.com
/^.*$/ smtp:smtp.gmail.com:587


Este fichero es muy muy sencillo. Todos los correos con destinatario en @dominio.es se envía directamente por smtp.mundo-r.com y el resto por smtp.gmail.com .

Como indicamos en la línea smtp_sasl_password_maps = hash:/etc/postfix/smtp_passwords , el fichero smtp_passwords contiene las credenciales para autenticarse contra los dos servidores de correo.
Fichero smtp_passwords

smtp.dominio.es user@smtp.mundo-r.com:password-delusuario
smtp.gmail.com:587 usergmail@gmail.com:password-gmail

miércoles, 17 de febrero de 2010

automysqlbackup

EnlaceEnlace
Vía @zetxek me entero de que en SourceForge hay un script de nombre automysqlbackup que permite automatizar los backups de MySQL. Persolmante prefiero escribir mis propios scripts, ya que muchas veces escriben en dispositivos de cinta(mt) o en discos usb, o montan directorios vía NFS o CIFS. Total, que le he echado un vistazo y me ha parecido interesante dejar una reseña en el blog.

lunes, 15 de febrero de 2010

DrupalCamp Barcelona

El próximo 26 de Febrero y hasta el día 28, estaré en Barcelona asistiendo a la DrupalCamp. Si soy sincero, si me preguntan hace un par de años si, por mi orden de preferencia de 1 a 10 para asistir a un congreso de este tipo, quedaría relegado como mínimo al séptimo lugar. Desde hace aproximadamente 12 meses trabajo con Drupal a diario y "necesito" imperiosamente saber más de lo que se cuenta en los foros o en los cutre manuales que se suelen ver por la red.

Hay varios temas que llaman mi curiosidad, pero sobre todo es el tema del desarrollo de módulos el que más me interesa. Aún no tengo claro el tema de los horarios, pero hay tres ponencias a la que asistiré con total seguridad.
  • Iniciación a Skinr
  • Drupal nice: 10 módulos que desconoces
  • Programación con la API Views.

martes, 9 de febrero de 2010

Google Buzz

Si hace unos meses Google sorprendía a propios y extraños con Wave, ahora acaba de dar la puntilla con Buzz. Desde Mountain View presentaban en la tarde de hoy Buzz, el nuevo "producto" de Page & CIA, que petendre competir, entre otros, contra Facebook y Twitter. Lejos de sorprenderme la noticia, lo cierto es que personalmente esperaba algo similar, el anuncio, a mi modo de ver tiene truco.

En el lado "negativo"(cada cual es libre de exponer libremente su opioniones), Google se hace notar en un terreno en el cual Facebook, por ejemplo, le lleva 250 millones de usuarios.Consecuencia, integración de un nuevo servicio en el amplio catálogo "Google Way Of Life". Mayor control. Aumenta la tensión por atraer a más y más usuarios. Más publicidad, más ingresos.

Como contrapartida, el servicio promete. Se intergrará en Gmail, y permitirá compartir RSS,Galería y un sin fin de gadgets con nuestros contactos. El propio Jackson , apuntaba en la rueda de prensa, la apertura bidireccional del API, que facilitará la integración con Picassa o Twitter. Tiene buena pinta. Son un monstruo, pero suelen hacer bien las cosas. Toca esperar.

jueves, 4 de febrero de 2010

La guerra de los navegadores.



Me atrevería a afirmar que Tim Berners-Lee,en 1991 cuando publicó el primer documento que definía lo que a posteriori sería un estándar aprobado por la Internet Engineering Task Force (IETF), jamás se imaginaría la feroz y despiadada guerra a la que, por lo menos el que suscribe así lo considera, estamos asistiendo en el mundo de los navegadores web.

Un navegador web es una aplicación que permite visualizar el contenido almacenado en un servidor web de internet o en un servidor local. A finales de 1990, el CERN desarrolla el considerado como el primer navegador web. Este software sólo funcionaba en estaciones de trabajo UNIX(¿casualidad?), y distaba mucho del concepto actual de navegador que hoy conocemos. Meses más tarde aparecería Mosaic y después Netscape. Tarde, mal y a rastro como casi siempre, en 1994 Microsoft se pone manos a la obra con Internet Explorer. A partir de 1995, y después ser incluído como un complemento del sistema operativo Microsoft Windows 95, Internet Explorer comienza la conquista de la cuota de mercado de los navegadores web. Conquista propiciada por la gran inversión realizada por Microsoft durante la década de los '90, en la que alrededor de 1000 personas trabajaban única y exclusivamente en el desarrollo de IE.En 1999 llega a alcanzar el %95 de cuota de mercado. Mientras Microsoft observa a vista de pájaro a sus competidores en este terreno, Microsoft Windows se afianza como el "único" sistema operativo para PC.

Mientras Microsoft se regocija y disfruta de su éxito, en 1998 Netscape decide liberar el código fuente de la serie 4.X, naciendo así el proyecto Mozilla.Netscape, consciente de la posición dominante de los de Redmond, esperaba crear un gran proyecto libre, que diese como resultado un buen navegador web,fiel a los estándares y estable. En un principio y hasta 2002 Mozilla sigue siendo un navegador libre basado en Netscape, pero es en septiembre de este mismo año cuando se publica la versión 0.1 de Mozilla Firefox, con motor de renderizado Gecko 0.9, viendo la luz oficialmente el navegador Mozilla Firefox.

¿Qué diferencias a grandes rasgos existen entre Internet Explorer y Mozilla Firefox?
.- Firefox es multiplataforma, es decir, puede ejecutarse en GNU/Linux,Microsoft Windows, MacOSX y distintas versiones de Unix.Por el contrario, Internet Explorer sólo puede ejecutarse en Microsoft Windows y en MacOSX.
.- Firefox es un proyecto de la Fundación Mozilla.Internet Explorer es un producto de Microsoft, una compañía cuyo principal objetivo es obtener el mayor beneficio económico de sus productos, al contrario que la Fundación Mozilla, que es una entidad sin ánimo de lucro.
.- El código fuente de Firefox es libre. Puede auditarse en busca de errores(bugs), puede utilizarse para, con los conocimientos necesarios, adaptarlo a las necesidades de cada usuario o corporación. Al disponer de su código fuentes, miles de programadores desarrollan "plugins" que aumentan las funcionalidades básicas, convirtiendo la navegación web en una nueva experiencia.Microsoft no ha liberado, ni tiene planificado hacerlo, el código de Internet Explorer.Únicamente se limita a corregir errores e incluirlo en su sistema operativo Microsoft Windows.
.- Firefox es seguro, utiliza un sistema de aislamiento de procesos(sandbox), que dificulta explotar vulnerabilidades,además de contar con filtros antiphising.Internet Explorer 8 sí ha dado pasos en el camino correcto(no todos los necesarios), para reforzar las seguridad del navegador en cuestión; pero cuestiones como que este navegador se ha utilizado para el ataque contra Google en China, por lo menos a mi, me harían replantear la elección del navegador principal.
.- Firefox respeta los estándares, o por lo menos lo intenta. Sigue las recomendaciones de la Word Wide Web Consortium(¿Tim Berners-Lee es su director, otra casualidad?, el Web Hypertext Application Technology Working Group(WHATWG). Recordemos que Microsoft declinó la invitación de unirse a la WHATWG.


Cifras, datos...

Resulta irónico cómo una corporación puede afirmar que su navegardor es el más utilizado.¿Por qué? Si integras el navegador en el sistema operativo, subliminalmente obligas el usuario a utilizarlo. Por otro lado, las cifras incluyen todas las versiones de Explorer.Podríamos desmenuzarlas y tumbar el mito.(Hablamos de fechas comprendidas entre Enero de 2009 y Febrero de 2010).

A nivel mundial, el navegador más utilizado en la actualidad es Internet Explorer 8.0 con un 22,34% de usuarios, frente al 21,64% de Firefox 3.5. La diferencia es ínfima, teniendo en cuenta que hace apenas unos meses Microsoft a lanzado una nueva versión de Microsoft Windows: Windows 7, que casualmente, integra Internet Explorer 8.

En Europa, el navegador más utilizado es Firefox 3.5, con un 27,15% de los usuarios, frente al 23,5% de usuarios de Internet Explorer 8, seguido de las versiones 7 y 6 de este.


En USA, el 26,84% es para Internet Explorer 8.0 frente al 20,01% de Firefox 3.5. Llama particularmente la atención que sea en Europa y no en USA, dónde IE8 alcance una mayor penetración. ¿Apple? Es evidente. Apple en USA tiene mucho peso, más que en Europa. Safari, el navegador que Apple "regala" con Mac OS X, en USA se lleva el 7,91% de usuarios, mientras que en Europa apenas supera el 3%.

En España, el panorama es el siguiente: IE8 con el 26,85% y Firefox 3.5 con el 22,87%. Como curiosidad, señalar que el 9,01% a pesar de todo, sigue usando el obsoleto Internet Explorer 6.

Otro dato que me han llamado la atención es que en Brasil, en navegador más utilizado es Firefox 3.5 con un 24,31% frente al 23,28% de IE8. ¿Otra casualidad? ¿Será fruto de las iniciativas del gobierno de Lula, impulsando la cordura, el sentido común y el uso de software libre y de calidad?


Y en medio de la batalla...llegó Google.

En medio de este baile de datos, para la orquesta, suben Sergey Brin y Larry Page al escenario y presentan Google Chrome. En septiembre de 2008 lanzan la primera versión para Windows de Chrome, en 43 idiomas. Basado en el motor Webkit, liberado bajo un popurrí de licencias abiertas: BSD,MPL/GPL,MIT, proponen un navegador, a mi modo de ver minimalista, enfocado en la rapidez, seguridad(comparte sandbox como Firefox), y en la compatibilidad con los estándares. En diciembre de 2009 liberan la versión beta para GNU/Linux y MacOSX.



Enlaces de interés:

http://www.whatwg.org/

http://www.w3c.es/

http://w3counter.com/globalstats.php

http://marketshare.hitslink.com/

domingo, 31 de enero de 2010

Nueva etapa




Mañana día 1 de Febrero comienza una nueva etapa profesional en mi vida. Espero no deje ser más que una continuación de la etapa anterior. Estos 2 meses de inactividad entrecomillada me han servido para descansar y organizar mi mente, pensar en todo lo que se puede mejorar y encarar con más ganas que nunca esta nueva senda. !Qué así sea!

martes, 26 de enero de 2010

Instalando lighttpd en Ubuntu/Debian GNU/Linux desde los fuentes




Como he comentado en alguna ocasión, me gusta Apache2. Durante muchos años Apache Software Foundation ha realizado un gran trabajo, añadiendo funcionalidades y módulos, corrigiendo bugs y mejorando en cada versión de Apache2(y Apache 1.x, por supuesto). También he comentado en otras el gran trabajo de Alvaro López, y los excelentes resultados de rendimiento, superando ampliamente los obtenidos con Apache2.Actualmente busco un paquete de software de servidor web ligero y rápido, con soporte PHP5(vía fast-cgi sirve), que corra sin problemas en una máquina con 128MB de RAM(vps). Desde hace un par de semanas he testeado lighttpd y los resultados son más que satisfactorios.

A continuación, y a modo de recordatorio personal,comentaré como instalar lighttpd(version 1.4.25 de Enero de 2010) en una máquina corriendo Ubuntu 9.10, con las siguientes características.

Kernel: Linux polinico 2.6.31-14-generic-pae
Procesador: AMD Athlon(tm) 64 X2 Dual Core Processor 4800+
RAM: 8262708k total
gcc: gcc-4.4 4.4.1-4ubuntu9
make: 3.81-6

Actualizamos las fuentes de los repositorios e instalamos los paquetes necesarios.

[root@polinico ~#]apt-get update && apt-get -y install gcc make build-essential libpcre3-dev libbz2-dev zlib1g-dev

Una vez instalados, necesitamos descargar lighttpd.

[root@polinico tmp#] wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.25.tar.gz && md5sum lighttpd-1.4.25.tar.gz

Muchas veces obviamos el paso de la comprobación de la suma md5 del fichero, nunca está de más...

[root@polinico tmp#]wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.25.tar.gz && md5sum lighttpd-1.4.25.tar.gz
--2010-01-26 23:20:36-- http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.25.tar.gz
Resolviendo download.lighttpd.net... 64.34.173.165
Conectando a download.lighttpd.net|64.34.173.165|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 780629 (762K) [application/x-tar-gz]
Guardando: «lighttpd-1.4.25.tar.gz»

100%[======================================>] 780.629 205K/s en 4,5s

2010-01-26 23:20:41 (168 KB/s) - `lighttpd-1.4.25.tar.gz' guardado [780629/780629]

87e936ec272ddaba8a2fdfecd8c6b704 lighttpd-1.4.25.tar.gz

Desempaquetamos el fichero...

[root@polinico tmp#]tar zxvf lighttpd-1.4.25.tar.gz && cd lighttpd-1.4.25

Lo bueno de la compilación desde el código fuente, a parte de la optimización del binario resultante, es la posibilidad de habilitar/deshabilitar el soporte a protocolos/tecnologías/lenguajes...etc. Por defecto,si no indicamos nada al ejecutar configure, tendremos un binario de lighttpd con los siguientes plugins habilitados:

  • mod_access

  • mod_access_log

  • mod_alias

  • mod_auth

  • mod_cgi

  • mod_compress

  • mod_dirlisting

  • mod_evhost

  • mod_extforward

  • mod_flv_streaming

  • mod_fastcgi

  • mod_indexfile

  • mod_proxy

  • mod_redirect

  • mod_rrdtool

  • mod_scgi

  • mod_secdownload

  • mod_setenv

  • mod_simplehost

  • mod_ssi

  • mod_putasgae

  • mod_staticfile

  • mod_status

  • mod_trigger_b4_dk

  • mod_userdir

  • mod_usertrack

  • mod_webdav


Y como características destacadas

  • auth-crypt

  • compress-bzip2

  • compress-deflate

  • regex-conditionals



Si queremos optimizar y personalizar al máximo la compilación:

[root@polinico tmp#] ./configure --help|more

En caso de usar las opciones por defecto:

[root@polinico tmp#] ./configure && make && make install


Ya hemos instalado lighttpd!!! No era para tanto, verdad? Me he encontrado con el que script de arranque/parada de /etc/init.d puede dar problemas al indicar correctamente la localización del binario.Recordemos que por defecto es /usr/local/sbin. No me he parado a localizar el .pid de lighttpd, pero con "ps aux|grep lighttpd|grep etc|awk '{ print $2 }'"(chapuza) solucionamos la papeleta.Podéis descargar el script aquí.

Códigos de estado HTTP

Estoy preparando un post sobre lighttpd, y mientras lo termino, he leído en la wikipedia, un breve resumen sobre los códigos de estado http.

[Códigos de estado protocolo http]
  • 1xx Mensajes
- 100 111 Conexión rechazada
  • 2xx Operación exitosa
Descripción
200 OK
201-203 Información no oficial
204 Sin Contenido
205 Contenido para recargar
206 Contenido parcial
  • 3xx Redirección hacia otro URL
Descripción
300 Múltiples posibilidades
301 Mudado permanentemente
302 Encontrado
303 Vea otros
304 No modificado
305 Utilice un proxy
307 Redirección temporal
  • 4xx Error por parte del cliente
Descripción
400 Solicitud incorrecta
401 No autorizado
402 Pago requerido
403 Prohibido
404 No encontrado
405 Método no permitido
406 No aceptable
407 Proxy requerido
408 Tiempo de espera agotado
409 Conflicto
410 Ya no disponible
411 Requiere longitud
412 Falló precondición
413 Entidad de solicitud demasiado larga
414 URL de solicitud demasiado largo
415 Tipo de medio no soportado
416 Rango solicitado no disponible
417 Falló expectativa
  • 5xx Error por parte del servidor
Descripción
500 Error interno
501 No implementado
502 Pasarela incorrecta
503 Servicio no disponible
504 Tiempo de espera de la pasarela agotado
505 Versión de HTTP no soportada

[ Ver articulo original ]

martes, 12 de enero de 2010

Pánico en la habitación reiser.

Un buen título para una película de terror sería el de este post. Tan pronto como hablo de leer particiones reiserfs desde Windows, no puedo acceder a una de 932GB dónde almaceno contenido multimedia.
El primer síntoma del "problema" es que no se podía acceder desde Gnome. "Ummm...que raro, si en este disco, que por cierto tiene cuatro(4) meses de vida útil en mi máquina, nunca me había dado problemas". El segundo síntoma lo he encontrado en /var/log/syslog y /var/log/messages, dónde se podía apreciar claramente cómo algo no marchaba bien en la unidad /dev/sdb1. Me temía lo peor. Dudaba en este post si reiserfs podía expandir el disco en caliente; ahora puedo afirmar que expandir en caliente sí; lo que no es posible es disminuir el espacio. Al grano. Este post me ha ayudado a recuperar los datos reconstruyendo el árbol. La verdad es que no me paran de llegar buenas impresiones y experiencias sobre EXT4; y teniendo en cuenta que Namesys parece que ya no sigue con el desarrollo de reiserfs, a lo mejor es buen momento para el cambio.
La operación que "copio-pego" ha llevado un buen rato, alrededor de cuatro(4) horas, así que paciencia. Debéis comprobar si tenéis instalado reiserfsprogs, que es el paquete de utilidades para "jugar" con particiones reiser. En Debian GNU/Linux, Ubuntu y derivados es muy sencillo.

apermuy@polinico:~$ dpkg -l|grep reiser
ii reiserfsprogs 1:3.6.21-1 User-level tools for ReiserFS filesystems

Ahora toca comprobar la consistencia del sistema de ficheros. Fácil.

root@polinico apermuy#reiserfsck --check /dev/sdb1

Si tenéis café a mano, o una buena película...ahora es el momento.Ups, me olvidaba comentar que es necesario desmontar la partición.

root@polinico apermuy#reiserfsck --rebuild-tree /dev/sdb1
reiserfsck 3.6.21 (2009 www.namesys.com)

*************************************************************
** Do not run the program with --rebuild-tree unless **
** something is broken and MAKE A BACKUP before using it. **
** If you have bad sectors on a drive it is usually a bad **
** idea to continue using it. Then you probably should get **
** a working hard drive, copy the file system from the bad **
** drive to the good one -- dd_rescue is a good tool for **
** that -- and only then run this program. **
** If you are using the latest reiserfsprogs and it fails **
** please email bug reports to reiserfs-list@namesys.com, **
** providing as much information as possible -- your **
** hardware, kernel, patches, settings, all reiserfsck **
** messages (including version), the reiserfsck logfile, **
** check the syslog file for any related information. **
** If you would like advice on using this program, support **
** is available for $25 at www.namesys.com/support.html. **
*************************************************************

Will rebuild the filesystem (/dev/sdb1) tree
Will put log info to 'stdout'

Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes
Replaying journal: Done.
Reiserfs journal '/dev/sdb1' in blocks [18..8211]: 0 transactions replayed
###########
reiserfsck --rebuild-tree started at Mon Jan 11 11:13:29 2010
###########

Pass 0:
####### Pass 0 #######
Loading on-disk bitmap .. ok, 229524466 blocks marked used
Skipping 15663 blocks (super block, journal, bitmaps) 229508803 blocks will be read
0%..block 23371164: The number of items (256) is incorrect, should be (1) - corrected
block 23371164: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 23371164, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 23467445: The number of items (256) is incorrect, should be (1) - corrected
block 23467445: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 23467445, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 24152599: The number of items (256) is incorrect, should be (1) - corrected
block 24152599: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 24152599, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
.block 35113524: The number of items (256) is incorrect, should be (1) - corrected
block 35113524: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 35113524, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 35250046: The number of items (256) is incorrect, should be (1) - corrected
block 35250046: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 35250046, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 37513382: The number of items (256) is incorrect, should be (1) - corrected
block 37513382: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 37513382, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
.block 68136197: The number of items (256) is incorrect, should be (1) - corrected
block 68136197: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 68136197, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 68192301: The number of items (256) is incorrect, should be (1) - corrected
block 68192301: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 68192301, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
left 0, 24118 /secc
168886 directory entries were hashed with "r5" hash.
"r5" hash is selected
Flushing..finished
Read blocks (but not data blocks) 229508803
Leaves among those 248377
- leaves all contents of which could not be saved and deleted 8
Objectids found 168888

Pass 1 (will try to insert 248369 leaves):
####### Pass 1 #######
Looking for allocable blocks .. finished
0%....20%....40%....60%....80%....100% left 0, 84 /sec
Flushing..finished
248369 leaves read
248234 inserted
- pointers in indirect items pointing to metadata 1 (zeroed)
135 not inserted
non-unique pointers in indirect items (zeroed) 2382
####### Pass 2 #######

Pass 2:
0%....20%....40%....60%....80%...vpf-10260: The file we are inserting the new item (5 8814 0x15eb8001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1a9d4001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1adc8001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1bd98001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1c974001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1d15c001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1d550001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
.vpf-10260: The file we are inserting the new item (5 8814 0x1d944001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1dd38001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
100% left 0, 11 /sec
Flushing..finished
Leaves inserted item by item 135
Pass 3 (semantic):
####### Pass 3 #########
/curre/ORDENAR/LIVE-CD/martes.tar.bz2vpf-10680: The file [162552 162553] has the wrong block count in the StatData (799872) - corrected to (781480)
Flushing..finished
Files found: 149084
Directories found: 17768
Symlinks found: 2035
Others: 1
Pass 3a (looking for lost dir/files):
####### Pass 3a (lost+found pass) #########
Looking for lost directories:
Flushing..finished55, 43 /sec
Pass 4 - finished done 248222, 36 /sec
Deleted unreachable items 28
Flushing..finished
Syncing..finished
###########
reiserfsck finished at Mon Jan 11 16:35:11 2010
###########


Un reboot(no sería necesario, pero yo lo he echo para evitar sorpresas) y listo!
Saludos.

viernes, 8 de enero de 2010

Leer particiones reiserfs desde Windows

Supongo que esta utilidad no será utilizada por la gran mayoría de Linuxeros, pero a mí, particularmente me ha resultado muy util. YAReG permite explorar en modo sólo-lectura particiones reiserfs desde Microsoft Windows. Lo he probado desde Window$ XP Service Pack 3 y funciona realmente bien. Tomad nota para un futuro.

Saludos.