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?