jueves, 24 de junio de 2010

...lo he aprendido del software libre


Año 2010.
Existen multitud de herramientas para potenciar el trabajo colaborativo entre miembros de un mismo proyecto: GoogleDocs, Twitter...Sin embargo, a menudo, casi a diario, una bofetada de realidad consigue que aterrice de nuevo en tierra firme.

¿Qué le ocurre al usuario? ¿Por qué no comparte? ¿Miedo? ¿Por qué no colabora? A mi entender, la respuesta en muy sencilla: educación.

El concepto de alfabetización informática, entendido como el proceso por el cual el usuario adquiere los conocimientos necesarios para moverse con soltura en el "mundo binario" es la clave.

En mi opinión, existen dos métodos de alfabetización informática: la oscura y la luminosa.

A través del método oscuro, el usuario, en un falso y difuso proceso de aprendizaje repetitivo, "aprende", entrecomillo aprende, a utilizar aplicaciones asociando conceptos a "programas informáticos", "para escribir, el Word; para navegar, Internet Explorer". A su vez, las grandes corporaciones, utilizando el mismo método difuso, inculcan a los usuarios definiciones erróneas de "legalidad" y "aprendizaje"; y lo que aún es más triste, en ocasiones(muchas más de las que pensamos) son los propios gobiernos los que apoyan a las grandes multinacionales para que , cual borregos, ayuden que ningún usuario salga del redil, cumpla sus normas y se aleje del "pirateo".



[Breve intervalo para imaginar, discurrir o reflexionar]
"Pirata", qué palabra más bonita. Me recuerda al Capitán Garfio, a islas desiertas y galeones llenos del tesoros. Según la definición de la Real Academia de la Lengua una de las acepciones de "pirata" es : "persona que, junto con otros de igual condición,se dedica al abordaje de barcos en el mar para robar". Otra es "persona cruel y despiadada". Adjetivos como "cruel" , "despiadada/o" no encajan en la definición de usuario. Me estoy desviando del tema....
[Fin del intervalo]

Los usuarios que son víctimas del método oscuro temen compartir. Lejos de una opinión personal, esta afirmación es la triste realidad.¿Por qué temen compartir? Por la misma razón por la que las grandes corporaciones cobran por sus aplicaciones(programas informáticos): ocultar y hacerse fuertes. Por la misma razón que los gobiernos tildan de "piratas" a los usuarios: hacer fuertes a las multinacionales y atemorizar al usuario. Salvo contadas excepciones: Andalucía,Extremadura,Brasil,Venezuela y algún caso aislado en Francia, el apoyo a las multimillonarias corporaciones es generalizado.Me gustaría recordar que en es España, copiar música, por ejemplo, para uso personal sin ánimo de lucro, no es delito.

Usted que ahora mismo está leyendo este artículo pregunte a un usuario que ha tenido la desgracia a ser víctima "¿cuales han sido sus últimas aportaciones abiertas a una comunidad de conocimiento?". Es probable que este usuario desconozca la definición de "comunidad". Si no es así ¡me gustaría conocerlo!
A través del método luminoso, el usuario, a través de un proceso transparente, "aprende", entrecomillo aprende, sólo conceptos "para escribir, un editor de textos", "para navegar, un navegador". Existen miles de comunidades en la red, asociaciones y grupos de usuarios sin ningún ánimo de lucro que promueven y fomentan el conocimiento libre y colaborativo. El recelo a preguntar, utilizar y asimilar, desaparece con el método luminoso. El brillo de la libertad para elegir qué, cómo y dónde aprender, guía al usuario a lo largo de su viaje.
[Breve intervalo para imaginar, discurrir o reflexionar]
"Libertad", qué palabra más bonita. Me recuerda el cuadro "La libertad guiando al pueblo" de Delacroix.
[Fin del intervalo]


No me gustaría terminar de escribir nunca este post, por eso no lo voy a cerrar con [ Fin del intervalo ], dejando abierta la libre interpretación a cada uno de los lectores.

Año 2045.

.- Sr. Permuy ¿cómo ha aprendido a compartir?
.- ...lo he aprendido del software libre.

miércoles, 23 de junio de 2010

VII Xornadas y OpenSuSE



En un curso de formación interna en la empresa en la que actualmente trabajo he coincidido con Pablo Nimo y con Xose Luis. Son, el curso aún está en marcha, los docentes. Si bien el temario me ha parecido interesante, considero que mi perfil no encaja del todo en el modelo de alumno tipo para este curso. El caso es que estoy disfrutando bastante.Incluso un día me dejaron molestarlos con lo poco que sé de S.E.O y posicionamiento en Internet. Los días que me aburro(los menos), me pongo a programar como un poseso en los 3 módulos para Drupal en los que estoy trabajando.
El caso es que tengo la mala(o buena) costumbre de fijarme antes de nada en la máquina y el ss.oo de todo el que está a mi alrededor. Pablo y Xose Luis usan openSuSE. Es obvio que, superada la timidez inicial, les pregunté por qué usaban openSuSE, y creo recordar que Xose Luis respondió "eu comencei con openSuSE hai uns anos e funciona moi ben". "rpm-eros pensaba yo".
Conozo SuSE desde hace unos cuantos años, de echo la primera versión en la que recuerdo "trastear" fue una 6.3, hace casi doce años(cómo pasa el tiempo!). La verdad es que no me apetecía probar openSuSE. Me parece una buena distribución pero claro, acostumbrado a Debian GNU/Linux y Ubuntu...cuesta cambiar.
Actualmente tengo 4 máquinas.
1.- PC Sobremesa : AMDX2 4800+ 1x160GB + 2x250GB+1xTB+1x80GB + 8GB RAM
2.- Portátil Macbook : Core2Duro 2,4Ghz, 1x160GB, 2 GB RAM
3.- HP Compaq T5000 ThinClient: Via800Mhz, 64MB Flash , 128MB RAM
4.- Portátil Lenovo : Intel Centrino Duo 1,6Ghz , 2GB RAM, 1x80GB

En este último es dónde realizo las pruebas y testeos después de pasar la fase de experimentación en el entorno virtualizando(Virtualbox casi siempre, Xen si la cosa se pone seria). Hace unas horas esta máquina tenía OpenFiler instalado, un sistema operativo Linux ideal para soluciones SAN. Quiero llevar el Lenovo para utilizarlo en las VII Xornadas de SwLibre de Mugardos, en las que daré una charla introductoria sobre Drupal. Pienso..."¿y si instalo OpenSusE?". Toma!
Esta tarde la he dedicado a instalar y actualizar OpenSuSE. Ahora mismo, a las 23:09 horas tengo aún el yast(consola, por supuesto) actualizando la distribución. ¿Mis impresiones?
  • Me ha gustado el instalador. Ha fallado en el primer intento al indicar que eliminase el esquema de particionado. Pero claro, a lo mejor no contaba con que tenía un LVM y ha cascado. He eliminado a "mano" las particiones y todo OK!.
  • EXT4 y Btrfs. Al igual que Ubuntu 10.04 por defecto el sistema de archivos es EXT4. Me ha llamado la atención que permita Btrfs en la instalación. Mini punto para openSuSE.
  • KDE. Después de la desilusión de la 4.0, la versión incluida en openSuSE 11.2 (creo que es la 4.3) funciona muy bien, fluida y muy cuidada.
  • Bluetooth, Wireless y sonido. He conectado el Mighty Mouse de Apple sin problemas y configurado la conexión a la red internet via wireless Intel 3945ABG.
A las 23:20 aún me falta instalar nginx, php5 y mysql, pero todo indica que no tendré demasiados problemas para rular con OpenSuSE 11.2 en las VII Xornadas de Sw Libre de Mugardos.

jueves, 10 de junio de 2010

Pistas para crear un módulo en Drupal.



Una vez has pasado la fase de theming y construcción del sitio en Drupal, es probable que tus inquietudes personales o bien exigencias profesionales te lleven a plantearte construír un módulo en Drupal.
Si bien es cierto que en castellano no abunda la documentación(de calidad me refiero), en el idioma de Shakespeare es impresionante todo lo que puedes encontrar en la red.
A modo de reseñas, dejo unos consejos que personalmente me han servido de mucho.
  • No obsesionarse con escribir código. Es probable que entre los más de 4.000 módulos encuentres algo que cubra parcialmente tus necesidades.
  • Lectura y compresión. El A.P.I de Drupal es muy completo, hay mucha y muy buena información. Su lectura, aunque sea parcial, es imprescindible.
  • Foros de Drupal.org. Los foros de Drupal imprescindibles.
  • Examinar código. Leer y comprender el código que otras personas han escrito te ayudará.
  • No desesperarse. No tires la toalla a las primeras de cambio. Puede ser frustrante al inicio, pero a medida que vas cumpliendo objetivos verás como todo cambia de color.
Enlaces que considero interesantes:
  • Mustarseedmedia: Aunque no tratan exclusivamente el tema de creación de módulos en Drupal, el videopodcast es de lo mejor que he visto hasta ahora en la red sobre Drupal(sobre videopodcast,claro)
  • Alan Palazzolo: La verdad es que este tipo es un crack. Ya me dejó impresionado en su charla sobre Openstreetmap en la DrupalCamp Spain 2010. En este enlace deja unas pista acerca como crear un módulo para que la localización sea un proceso sencillo.
  • Node Example: Ejemplo a estudiar en Drupal.org.
  • Cómo crear/añadir campos CCK: Este enlace es muy bueno, este también, y este, este otro es muy completo. Node export es la clave para exportar los campos CCK.
Es evidente que estas pistas se centrar en crear un módulo que defina el un tipo de contenido. A medida que avance en los dos módulos en los que estoy trabajando, intentaré postear alguna porción de código y a modo de ejemplo.

viernes, 4 de junio de 2010

mod_bw , control ancho banda en Apache2



Como he comentado en anteriores posts, no suelo usar apache2 en las instalaciones y proyectos que de mi dependen al 100%. Prefiero soluciones como Cherokee y NGINX.El caso que es últimamente "juego" bastante con apache2, por suerte o por desgracia.Por desgracia cuando compruebo que aún existen administradores de sistemas que piensan que no hay vida después de apache2 ¡qué pena!. Por suerte por que no dejo de sorprenderme.Apache Software Foundation es un monstruo.Basta con echarle un vistazo a su sitio web para darse cuenta.No dejo de sorprenderme al comprobar lo maravilloso, increíble y prolífico que es el mundo del software libre. No prentendo que este post sea una lección de evangelización, simplemente quiero reconocer el trabajo de la gente de http://ivn.cl/. ¿Necesitas controlar el ancho de banda de tu servidor Apache2? Ellos lo han echo. Han desarrollado mod_bw para apache2. Funciona muy bien y está muy bien documentado en un fichero .txt que se puede leer antes de compilar el módulo.¿Compilar?!Tengo miedo! Nada de eso. Doy las claves para instalar y configurar mod_bw en apache2. Ya vereis como es muy sencillo.


[root@patriciaconde] aptitude update && aptitude install apache2-dev


Un poco de paciencia y ya tenemos instaladas las herramientas de desarrollo para apache2.Sólo utilizaremoso apxs, que es el acrónimo de APache eXtenSion tool, una herramienta para construir e instalar extensiones(módulos) para apache2.


[root@patriciaconde] wget http://ivn.cl/files/source/mod_bw-0.91.tgz
[root@patriciaconde] tar zxvf mod_bw-0.91.tgz
[root@patriciaconde] apxs2 -i -a -c mod_bw.c


Deberíamos visualiar algo parecido a ...


[root@patriciaconde] apxs2 -i -a -c mod_bw.c
/usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static i486-linux-gnu-gcc -prefer-pic -DLINUX=2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_REENTRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -c -o mod_bw.lo mod_bw.c && touch mod_bw.slo
(..)
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 644 /usr/lib/apache2/modules/mod_bw.so
[preparing module `bw' in /etc/apache2/mods-available/bw.load]
Enabling module bw.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Fácil, verdad? Ahora sólo tenemos que aplicar las directivas de mod_bw a un vhost de apache2.He subido una imagen ISO de Ubuntu 10.04 al raiz del webserver y he probado a descargar el fichero sin aplicar restricción alguna de ancho de banda.Después he modificado el fichero /etc/apache2/sites-available/default. El contenido del fichero con mod_bw activado es:


Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 10240
MinBandwidth all -1

http://ivn.cl/
Más información para freaks

root@patriciaconde:~/compilaciones# apache2 -V
Server version: Apache/2.2.14 (Ubuntu)
Server built: Apr 13 2010 19:28:27
Server's Module Magic Number: 20051115:23
Server loaded: APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"


[Pantallazo de una descarga con mod_bw activado en un Apache 2.2.14 con Ubuntu 10.04]

Señoras y señores: jubilen 'top'.

No tengo que presentar top, ¿verdad?. Si bien es cierto es una herramienta que, si mal no recuerdo, me ha acompañado en mi viajes por los terminales desde 1999, toca jubilar. A todos nos llega nuestra hora, y top merece descansar en paz.

Hace tiempo que conocía htop, pero desde hace unos meses es mi herramienta de monitorización de proceso favorita. Las razones las dejan bien claras la página web del proyecto, aunque me he tomado la molestias de enumeras algunas en el siguiente listado....

  • .- 'htop' puede desplazarse por la lista vertical y horizontalmente para ver todos los procesos y líneas de comandos completo.
  • .-'top' está sujeto a un retraso por cada tecla que presione sin asignar (especialmente molesto cuando la llave de secuencias de escape-multi son provocados por accidente).
  • .-'htop' inicia más rápido.
  • .-'Con htop' no es necesario que escriba el número de proceso para matar un proceso.
  • .-En 'htop' no es necesario que escriba el número de proceso o el valor renice prioridad a un proceso en el 'top' que hace.
  • .-'top' es más viejo
A modo de anécdota comentar que tanto en Debian GNU/Linux como en Ubuntu Linux htop viene incluído en los repositorios oficiales de las distribuciones.

jueves, 3 de junio de 2010

Drupal 6.17 disponible



Unos de los proyectos que más ha crecido en los últimos años ha sido Drupal. Via @pcambra me entero de que se ha liberado la versión 6.17. Es evidente que no soy ningún experto en la materia, pero poco a poco, y tras mucha lectura y posterior testeo e implementación de los conocimientos adquiridos he aprendido a entender Drupal. "Aprender a entender", suena raro...pero con dosis de paciencia y muchas horas de trabajo estoy aprendiendo a entender el proyecto, pese a lo que alguno pueda pensar...

Drupal.org es un monstruo. Necesitas otra vida(ojalá) simplemente para llegar a ver la dimensión que ha alcanzado. Drupal no es sólo PHP y módulos. Ja! Esta es la visión de la ignorancia! Cachés, webservers, optimización de BBDD, backups y demás van de la mano de Drupal. Si te atreves a descuidar algún punto de esta enumeración, tu proyecto puede tener un acta de defunción en breves.

¿Aún no han oído hablar de NGINX? ¿lighttpd?¿APC?¿memcached? ¿Drupal Theming?

miércoles, 26 de mayo de 2010

Unable to boot please use a kernel appropiate for your CPU

Openfiler es un sistema operativo para almacenamiento en red. La próxima semana instalaré un sistema SAN con RAID5/iSCSI con Openfiler para que dos máquinas con Microsoft Windows 2003 Server R2 puedan acceder a los volúmenes vía iSCSI. Antes de aventurarme a trastear con máquinas en producción(supongo que nadie será tan osado, sólo supongo), he clonado la instalación con VirtualBox y me he encontrado con el error de podeis leer en el título del post "Unable to boot please use a kernel appropiate for your CPU". Después de leer en los foros de Vbox, dejo constancia de una serie de consejos para instalar Openfiler dentro de VirtualBox.

[Error Virtual Box configuración por defecto]






[Habilitamos PAE en VBOX]








[Seleccionamos interfaz de red Intel]









[Finalmente Openfiler funcionando]











He cambiado la interfaz de red por que "out of the box" Openfiler no carga el módulo la para el chipset AM79Cxx. Sí lo hace con las interfaces Intel, así que un último briconsejo : ojo con las interfaces de red!

jueves, 20 de mayo de 2010

En resumidas cuentas..




...he regresado de mis vacaciones en Praga y cuando he visto y analizado todo lo que tengo que hacer casi me caigo del susto. Pasar una semana desconectado del mundo es reconfortante y necesario, pero no me gusta.Quiero y puedo vivir pegado a un computador las 24 horas del día pero no debo.
En Praga he encontrado infinidad de locales con wireless, bien abierta o simplemente con un "Is avaliable wireless...." el/la camarero/a te facilita la clave para conectarte.He twitteado lo que he podido,consultado el correo y demás, pero no he podido ni leer RSS y navegar con un PC, sólo desde el X5800, que si bien a día hoy estoy muy contento, el rendimiento considero que podría ser mayor. Lo cierto es que sí han sucedido cosas interesante en estos días, y quería dejar mi reseña en este cuaderno de bitácora.
.- Cherokee 1.0. Han liberado la versión 1.0. La he instalado y jugado un poco con cherokee-admin. La han mejorado mucho y creo(a ojímetro y en una primera impresión) que el consumo de recursos es mucho menor. No he podido asistir a la Cherokee Summit, a pesar de tener los billetes, por la nube de humo y por temas laborales.
.- VP8. Resulta que se ha montado un revuelo tremendo con el tema del codec VP8 de Google. Aún no he leído mucho sobre el tema, pero cuando Google suena, software lleva, así que intentaré documentarme y opinar con posterioridad.
.- Ubuntu 10.04. Canonical ha liberado una nueva versión de Ubuntu. La he instalado en el PC de casa, desde 0.Antes usaba 9.10 y no he notado grandes cambios. GNOME 2.30 tiene buena pinta, me da la impresión de que es más ligero y la interfaz y el nuevo tema están muy cuidados. Me ha llamado la atención de que no ha sido necesario indicarle que mi máquina tiene 8GB de RAM y el solito ha instalado un Kernel con soporte PAE.Bravo por Ubuntu.
.- Asociación. Desde hace una semana soy el presidente de "Asociación Comunidade O Zulo", una asociación sin ánimo de lucro que fomenta las nuevas tecnologías y la cultura libre. Organizamos charlas y obradoiros, así como una party Kernel 2010, que este año llegará a su séptima edición.Estoy finalizando la programación de un portal basado en Drupal que se abrirá muy pronto en www.comunidadeozulo.org. Estoy muy contento a nivel personal y colectivo, pues el echo de que esta asociación se consituyese como tal con todas las de la ley, no es ni más ni menos, que la recompensa a un trabajo que inciamos en 2003 Pablo, Evaristo y el que escribe. Con mucha ilusión y sacando tiempo de dónde no lo hay, se ha unido a nosotros Carola, que nos ha ayudado (y de qué manera) a salvar todos los escollos legales que los que nos hemos ido encontrando. Gracias a tod@s los que han echo posible que la Asociación por fin sea una realidad!.

domingo, 9 de mayo de 2010

sshfs MacOSX



No suelo utilizar MacOSX para desarrollo, pero en ocasiones sí necesito acceso vía SSH a alguna máquina. Ultimamente necesito realizar ciertas operaciones que requieren un acceso al directorio remoto constante, y lanzar multitud de conexiones SSH no es una opción ni práctica ni elegante.Si no conocéis sshfs, os recomiendo documentaros y desde ya utilizarlo.
Echo de menos apt-get en MacOSX(ya, los ports y demás(no me apetece)), y "out of the box" no tiene soporte sshfs. He encontrado "ssh for Mac OS X". De la instalación ni hablar. Descargar, instalar, reiniciar y ya tenemos soporte sshfs. Como anécdota comentar que he modificado el $PATH y he añadido la ruta del binario de sshfs. Accedemos al terminal y editamos $HOME/.bash_profile

export PATH=/undir/otrodir:/Applications/sshfs/bin/:$PATH

El resto no tiene más historia. Por cierto, el próximo miércoles 12 cierro el chiringo por vacaciones.

jueves, 29 de abril de 2010

openldap, paciencia y algunas tazas de café...



A estas alturas no voy a presentaros openldap. La web del proyecto, aunque un poco cutre en su diseño, viene repleta de información. Este post es simplemente un recordatorio de una receta que me ha servido de mucho a la hora exportar configuraciones desde un entorno de pruebas virtualizado a un entorno en testing con máquinas físicas y usuarios reales haciendo pruebas.

El primer problema lo he tenido, hablamos de Debian GNU/Linux Lenny por supuesto, a la hora de instalar el paquete slapd. Cuando pregunta si a la hora de purgar el paquete deseamos eliminar la base de datos, muchos de vosotros responderíais un NO. Bien, discrepo.Después de unos cuantos días haciendo pruebas, puedo decir que yo respondería que Sí. ¿Por qué? Si por alguna razón deseas reinstalar el paquete, recupera los backups anteriores del base de datos de openldap, y como no coíncidan los dc's lo tienes crudo. Me encuentro en la tesitura de que en el entorno virtualizado los dos servidores Debian corriendo slpad funcionan muy bien. Drupal se valida contra ldap sin problemas y la vida parece ser maravillosa en Maple Town Monogatari. Al migrar las configuraciones al servidor de pruebas: crack! No logro ni siquiera validarme. Por un momento pienso ¿qué he echo mal, si todo parece estar exactamente igual? En una mala decisión, decido purgar el paquete(conservando los registros de la bbdd de ldap). Es aquí cuando todo se torna de color negro y no consigo avanzar. Hoy día 29 era el día marcado en el proyecto para tener ldap corriendo en testing y no llego(al final sí ;) ) a tiempo.Después de perder tiempo leyendo y releyendo documentación y listas de correo decido compilar el paquete.
En algún post anterior he hablado de apt-build, pues hoy me ha salvado la vida.A compilar se ha dicho.

[root@baltasargarzon]time apt-build --build-dir /tmp/slapd --yes --force-yes build-source slapd

En unos 50 minutos tenemos el paquetito listo. Nos damos una vuelta por ....

[root@baltasargarzon] cd /var/cache/apt-build/repository/ && dpkg -i slapd_2.4.11-1_i386.deb && apt-get -f install

Ahora unos pequeños ajustes los ficheros ldap.conf

[root@baltasargarzon]cat /etc/ldap/ldap.conf
#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE dc=dominio,dc=eu
URI ldap://192.168.15.91

#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never

Otros ajustes en slapd.conf

[root@baltasargarzon]cat /etc/ldap/slapd.conf
(..)
#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend
#######################################################################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database bdb
#The base of your directory in database #1
suffix dc=dominio,dc=eu
rootdn cn=admin,dc=dominio,dc=eu
rootpw admin
# for syncrepl.
# rootdn "cn=admin,dc=dominio,dc=com"
# Where the database file are physically stored for database #1
directory "/var/lib/ldap"

Briconsejo: cifrar el password de root con {SSHA}loquesea.
Ahora sólo falta crear un fichero .ldif con el siguiente contenido para crear la "organización".

dn: dc=dominio,dc=eu
objectclass: dcObject
objectclass: organization
o: Organización
dc: Organización

Como root añadimos el fichero inicial.lidf a la estructura ldap:

ldapadd -x -D "cn=admin,dc=dominio,dc=eu" -W -f inicial.ldif

El password es que le hemos indicado(cifrado o no en el fichero slapd.conf en el parámetro rootpw).
¿Qué herramienta GUI utilizo para gestionar ldap? Gracias un lector de este blog, desde hace unas semanas uso Apache Directory Studio.
Ahora todo parece funcionar correctamente. He tomado alguna que otra taza de café, mi paciencia casi llega a su límite, pero ya estás openldap funcionando bajo Debian GNU/Linux.

lunes, 26 de abril de 2010

EBOX: un proyecto con futuro



Respondía esta mañana un post a un compañero de trabajo, y pensando en ello de camino a casa, me vino a la mente mi afirmación en dicho post acerca del "Software libre como servicio" y no pude para de pensar en EBOX. En párrafos posteriores resumiré qué es y para qué sirve EBOX, pero ahora me quiero centrar la afirmación anterior.Considero que sí es posible ganar dinero con el software libre, ya que mi mente la ecuación software libre = software gratis está rota.De todos es conocida Red Hat Inc como un ejemplo a seguir a nivel mundial en cuanto a viabilidad empresarial con software libre como bandera. Pero no tenemos que mirar hacia EE.UU para fijarnos en empresas viables. Ebox Technologies es la empresa que está detrás de EBOX y un claro ejemplo de una empresa que sobrevive gracias al swlibre.Tampoco tenemos que irnos hasta Zaragoza, en Galicia también tenemos dos ejemplos: TEGNIX y Sognus.
Volviendo al hilo del título del post, EBOX es un todo en uno espectacular.Ahora mismo me pregunto cómo no lo he tenido noticias de este proyecto antes.La verdad es que sí había oído hablar de él, pero mi visión "console based" me impedía dedicarle tiempo.Una cosa no debe estar reñida con la otra y mañana por la tarde instalaré mi primer EBOX en pruebas para una PYME.La documentación del proyecto está muy trabajada, y han liberado docs tanto para usuarios como para desarrolladores, lo cual les honra, y dice mucho de su trabajo.
Por lo visto en su web, EBOX simplifica al máximo la administración de servicios básicos para un SysAdmin, como pueden ser : Firewall, Proxy , Radius ...etc, a través de una interfaz web escrita en PERL desde la que podemos, menos hacer un bocadillo, prácticamente de todo. Intentaré escribir en este blog mi impresiones sobre EBOX en un entorno de producción que es dónde mejor se pueden testear los sistemas y aplicaciones. Mientras esperáis el post, os dejo un vídeo para abrir boca.


eBox Platform - Basic network configuration from eBox Platform on Vimeo.

Instalar logstalgia en Ubuntu 9.10

Si os ha gustado el vídeo anterior, verlo en "modo live" es todavía mejor.Os dejo unos pequeños pasos para instarlalo en una máquina corriendo Ubuntu 9.10.
.- Descargar la aplicación

[apermuy@jabba]cd /tmp && wget http://logstalgia.googlecode.com/files/logstalgia-1.0.0.tar.gz


.- Descomprimir el fichero

[apermuy@jabba] tar zxvf logstalgia-1.0.0.tar.gz && cd logstalgia-1.0.0

.-Instalar las dependencias necesarias para la compilación de los fuentes

[apermuy@jabba] aptitude install libsdl-console-dev ftgl-dev libpcre++-dev

.- A compilar se ha dicho

[apermuy@jabba] ./configure && make && make install

.- A ejecutar se ha dicho

[apermuy@jabba]/usr/local/bin/logstalgia /var/log/apache2/access-sitio-1.log

domingo, 25 de abril de 2010

Logstalgia para Apache

Vía @vnico me entero de la existencia del proyecto Logstalgia. Un proyecto que a modo de "batalla pong" muestra los logs del servidor web Apache2. A muchos de vosotros os parecerá una tontería, pero a mí me ha parecido espectacular. Aviso a navegantes, necesitáis soporte OpenGL y aceleración 3D activada.

viernes, 23 de abril de 2010

Dudas RHEL y Debian GNU/Linux


Es cierto, no he tenido mucho tiempo para escribir durante este último mes, pero he regresado con fuerza.El próximo viernes tengo que "defender" una reestructuración de las máquinas del proyecto web el que actualmente trabajo.El planteamiento inicial, por lo que podido comprobar es correcto, y muy a mi pesar la "discusión" se centra únicamente en la elección del sistema operativo, en lugar de comenzar y tratar en profundidad temas, a mi modo de ver, más importantes como pueden ser la escalabilidad, el rendimiento o la seguridad.
Si sois lectores habituales de este blog os habreis dado cuenta de mi predilección por Debian GNU/Linux como sistema operativo. Con el tiempo he intentado huir de la radicalidad de los tiempos más "duros" y ser más sensato en relación a lo que pienso y cómo actúo. Usar Debian GNU/Linux como sistema operativo de escritorio puede resultar una experiencia enriquecedora pero al mismo tiempo frustrante. Enriquecedora por todos los conceptos que puedes llegar a aprender(!= asimilar) y frustrante por que, en ocasiones, el usuario se puede encontrar con trabas que non con poco esfuerzo podrá resolver. Aquí tocamos un tema delicado a mi entender: el tiempo. ¿Cuánto tiempo necesito invertir en mi ss.oo para encontrar un equilibrio entre estabilidad-seguridad-usabilidad? Con Debian GNU/Linux bastante. Reconozco que en los últimos años he desarrollado una especie de manía hacia Ubuntu Linux.Concretamente hacia una parte de "falsos usuarios" que, aprovechando el reciente éxito y penetración en el mercado de Ubuntu Linux, se dedican a inundar la red de iconos cutres de tres al cuarto "usuario ubuntu xxxxx" y comentarios anti-window$, en lugar de aprender y conocer el mundo del software libre, gnu y linux.Uso Ubuntu desde la versión 4.x de 2004, cuando el instalador aún era el propocionado por el proyecto Debian.He de reconocer mi error al criticar Ubuntu cegado por una visión "Debian based" del mundo. Ubuntu en su versión de escritorio es perfecta para el trabajo diario, tanto profesional como personal.Canonical, la empresa que apoya y desarrolla Ubuntu, libera cada 2 años una versión con soporte durante 3 años para máquinas de escritorio y de 5 años para servidores. Qué gran acierto!

Dejo de irme por las ramas y vuelvo al hilo. Debian GNU/Linux para servidores roza la perfección, por lo menos en cuanto a estabilidad,seguridad y "facilidad" de administración. Ubuntu idem pero a nivel de escritorio.¿Qué pinta CentOS en todo esto? La verdad es que no lo sé. Realmente no puedo entender como en una infraestructura de red basada en Debian GNU/Linux, donde hasta hace pocos meses aún podías encontrar alguna máquina con Debian 3.0 Woody, puedes migrar a Red Hat. No lo entiendo. No hay Oracle, no hay Symantec, no hay Java. Sólo Apache2, MySQL y PHP. Que Red Hat tiene su propio modelo de negocio y funciona, pues claro! Eso nadie lo duda. Que sea la opción ideal siempre, amigos lectores, creo que me van a conceder el beneficio de la duda.

De Red Hat me gusta el concepto de RHN. Yum es una gran herramienta para administrar paquetes, pero aún está muy lejos de apt y portage.Las versiones de los paquetes están "bien parcheadas", es decir, con un montón de bugs corregidos, pero a menudo hablamos de versiones muy antiguas...Si a todo esto unimos que RHEL es una distribución de pago, señoras y señores: ustedes mismos!

jueves, 22 de abril de 2010

Drush, Drupal y CLI

Hay días en los que es mejor no levantarse y otros en los que das gracias a quién sea por los nuevos conocimientos adquiridos. Hoy es uno de esos días. Como sabrán los lectores de este blog, desde hace un año y medio trabajo en un proyecto web que tiene como base el CMS Drupal.

Drupal es más que un CMS. Más que un framework de desarrollo. Drupal es un monstruo construído por miles de voluntarios organizados en http://www.drupal.org que a menudo se reúnen en eventos como DrupalCampSpain o DrupalCon y similares.A día de hoy no hay libro ni evento que describa la magnitud de este proyecto. Miles de voluntarios trabajan para mantener el core del CMS, documentar, reportar bugs, escribir módulos que añadan funcionalidades...

Conocía Drush.He leído mucho sobre este módulo, pero he preferido ir paso a paso, aprendiendo y asimilando conceptos en lugar de intentar absorver lo máximo en el menor tiempo posible.He aprendido a usar Views, CCK, implementar funcionalidades con el API, crear temas...pero faltaba drush.

¿Usas Drupal y no usas Drush? Pues mal hecho. No te atrevas a considerarte webmaster si no usas Drush.Mucha gente se apunta al carro de "drupalero" por el simple hecho de haber instalado Drupal en Ubuntu(uauuuuu!) o peor aún, en Windows XP!. Después te hablan de X e Y sin haber pasado antes por A,B,C,D...Aún no he llegado a la mitad del camino, pero poco a poco voy tachando items en mi TODO y las piezas comienzan a encajar.Pero bueno, ¿qué es Drush? Es acrónimos de DRupal y SHell. Básicamente es una "interfaz de linea comandos"(CLI) que nos permite realizar tareas rutinas de mantenimiento del sitio, tales como actualizar/habilitar módulos, actualizar la BBDD, realizar backups y un sin fin de operaciones. Si llegas a Drupal desde el mundo CLI/Linux/Unix entenderás de lo que hablo. He léido que también funciona en plataformas Micro$oft Window$, pero por "suerte" aún no he tenido el placer de testear su funcionamiento.Lo dicho, hoy ha sido un gran día. Realmente necesito muy poco para ser feliz: CLI!

Charla SEO y posicionamiento

Mañana viernes 23 de Abril tengo que realizar una breve introducción a SEO y posicionamiento en Internet para usuarios con poca experiencia. Esta es la presentación que voy a utilizar.

viernes, 16 de abril de 2010

Resumen II Moodle Moot Castilla y León

A las 09:15 llegamos Carlos Parada y Permuy al C.I.T.A en Peñaranda de Bracamonte. Lo primero que llama la atención, más allá del programa de la MoodleMoot, son las instalaciones.

El C.I.T.A es un edificio que pertenece a la fundación Germán Sánchez Ruipérez, ubicada en el municipio de Peñaranda de Bracamonte, provincia de Salamanca. Son unas instalaciones modernas, en perfecta armonía con el entorno, que centra su actividad en el desarrollo de tecnologías para la sociedad.Al hablar de instalaciones modernas me refiero a:

.- Espacios amplios y accesibles.

.- Aulas, espacios de encuentro numerosos.

.- Personal cualificado.

.- Acceso a Internet de calidad: wifi, cable y PCs

A las 10: 00 de la mañana y tras la presentaciones de rigor por los encargados de turno, comienza la ponencia de Ismail Ali Gago, para mí,la mejor de la Moodle Moot. Comienza de menos a más, hablando de la "nueva educación basada en competencias" , la L.O.E y la necesidad de definir un nuevo paradigma educativo. La llegada de la "Escuela 2.0" supone también el punto de encuentro entre tecnología y educación. Comenta, a mi modo de ver, con gran acierto, que el concepto de "educación 2.0" no es sólo "un PC por alumno", y puntualiza que ese sí ha sido, en parte, el papel propagandístico del gobierno del Estado, y si no en parte, si han centrado sus esfuerzos más "mediáticos" en el lema "un PC por alumno". Me ha gustado mucho la importancia que ha dado a las licencias no restrictivas. En definitiva una gran ponencia. Por cierto, ha declinado amable y educadamente la invitación de los miembros del C.I.T.A a utilizar el equipo que proporcionaban para presentar la ponencia y ha usado su tablet PC con Ubuntu Linux. Bravo Ismail! Ese es el ejemplo a seguir: " verba" y "facta".

En el tramo horario de 11:00 a 14:00 asistimos a seis(6) ponencias más, sobre todo de experiencias con Moodle en la educación secundaria. La que más me ha llamado la atención ha sido "Dinamización del profesorado para el uso eficiente de Moodle en el aula" por Juan Carlos Gacitúa Araneda, docente de UP Salamaca. A modo de trama intenta involucrar al profesorado en su resolución proponiendo un juego muy 2.0 que tiene como desenlace Moolde. Genial!

Desde las 14:30 a las 16:00 disfrutamos de una comida muy amena en compañía de asistentes al evento. Me ha sorprendido gratamente como ha calado GNU/Linux(Ubuntu en particular), Creative Commons, OpenOffice y Moodle en la comunidad educativa.

En el tramo de 16:00 a 19: 00 asistimos a un Taller de Moodle Avanzado. Tenía grandes expectativas en este taller, pero se fueron diluyendo a medida que pasaban los minutos. La docente y asistentes han puesto el resto para hacer del taller una experiencia muy amena y divertida.Gracias!

Por pura casualidad y con Drupal de fondo entablé conversación con dos empleados del C.I.T.A y que nos sirvieron de guía por el propio edificio y otro anexo, que sirvió para certificar mi sorpresa por la instalaciones, actividades y organización de la fundación. Enhorabuena!

Como punto negativo, resulta curioso observar, que un centro con los medios de C.I.T.A, "impulsor de lo 2.0" , se esclaviza a un sistema de video streaming que sólo funciona bajo Internet Explorer, no publica "nada" en las redes sociales(por lo menos de momento), y usa en el 99% de sus máquinas Microsoft Windows XP. El 1% supongo será Macintosh o algún sabor de GNU/Linux.

Para finalizar comentar que ha sido una experiencia muy gratificamente y enriquecedora. La educación 2.0 y el software libre van de la mano, quién no asuma esta realidad niega el presente, y lo peor, pone barreras al futuro.

Recursos:

Videos en Qik.com

Programa Moodle Moot

Y esto ha sido todo! Enhorabuena a los ponentes, organización y asistentes!


POST ORIGINAL ESCRITO POR ALBERTO PERMUY LEAL EN WWW.PROXECTODESIRE.EU

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.