lunes, 21 de febrero de 2011

Parsear XML con Python



Desde hace unas semanas estoy leyendo, estudiando y practicando Python. Es un lenguaje tan apasionante como interesante. En pocos días, me atrevería a decir que incluso horas, con unos conocimientos básicos de programación, puedes crear verdaderas maravillas pythonianas.
El caso es en la Asociación Comunidade O Zulo , hemos puesto en marcha un proyecto para customizar una distribución Ubuntu Linux y completarla con material multimedia. Para realización las aportaciones multimedia de este proyecto, todavía un embrión pero os adelanto que tiene muy buena pinta, hemos levantado un sitio web en Drupal dónde los usuarios podrán enviar las imágenes. [Explicación técnica que omito para no aburrir al personal] Para recuperar las imágenes estamos desarrollando un script en Python que lee el XML y vía SQLite completa un álbum en Shotwell. El script básico para parsear el XML es el siguiente:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# xml-parser-ozulo-0.0.1-dev.py
#
# Copyright 2011 Alberto Permuy Leal
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
import sys, urllib
from xml.etree import ElementTree as et


def main():
documento = et.parse(urllib.urlopen('http://www.comunidadeozulo.org/rss.xml')).getroot()
entradas = documento.getiterator('item')
for una_entrada in entradas:
elementos = una_entrada.getiterator()
for un_elemento in elementos:
if un_elemento.tag == 'title':
print un_elemento.text
return 0

if __name__ == '__main__':
main()

Es casi idéntico a esta entrada, salvo que he añadido el parse vía urllib.

martes, 8 de febrero de 2011

Validar formato IPv4 con bash

#!/bin/bash
test $(echo $1 | egrep '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$')
if [ $? == 0 ]; then
echo "Ip correcta"
else
echo "Ip no válida"
fi
A modo de minichuleta, dejo por aquí este sencillo script en bash para comprobar si el formato de una IPv4 que se pasa como parámetro al script es correcto o no.

lunes, 7 de febrero de 2011

Debian 6.0 ¡Cómo pasa el tiempo!



Recuerdo la primera vez que escuché hablar de Debian GNU/Linux. Un tal Carlos, me comentaba que no perdiese el tiempo con RedHat, mientras me "dejaba" tres CDs con Debian Potato 2.2 terminando el año 2000. Con sólo un año de experiencia en GNU/Linux, la primera vez que me puse a instalar Debian GNU/Linux creí conocer de cerca el infierno.

Recuerdo que en 2003 y cuando aún por aquel entonces usaba como distribución de escritorio SuSE Linux, un chico que realizaba las prácticas en la misma empresa que yo por aquel entonces, llegaba con 7CDs de Debian Woody. Luego llegarían Sarge, Etch, Lenny y ahora Squeeze.

Cada release de Debian GNU/Linux, a mi entender debe ser celebrada, como mínimo tanto como un título de cualquier equipo de fútbol o selección que se precie. Es un esfuerzo de miles de personas que trabajan por y para la comunidad. No voy a soltar ahora mismo la clásica chapa acerca del software libre y las bondades de Debian GNU/Linux. Mi particular celebración para esta versión 6.0 es citar los aspectos que me han resultado, cuando menos, curiosos en relación con otras versiones.

  • Han renovado el aspecto de www.debian.org. Todo hay que decir, que si bien la versión anterior y la actual no difieren mucho, esta última si está mejor estructurada y por lo menos, a primera vista, no parece que te encuentras preso de un flashback a los '90.
  • Debian Social. Impresionante el seguimiento desde Twitter e Identi.ca de todos los twitteros linuxeros. Para muestra, un botón.
  • ¿Ha sido la release menos mediática? Es posible, lo respeto pero no lo comparto. Leo en ZDNet que sí, que quizá el asentamiento de Ubuntu como distro más amigable a desplazado al ostracismo a Debian GNU/Linux. A lo mejor soy un bicho raro, pero cuando me hablan de Ubuntu, mis pensamientos siempre pasan o se dirigen a Debian GNU/Linux.
  • GNU/kFreeBSD. Es la primera release que tiene una versión sin un núcleo Linux. ¡ Muy buena noticia!
  • Núcleo Linux completamente libre. Cito directamente de Debian.org "Otra novedad es el núcleo de Linux completamente libre. En esta versión el núcleo ya no contiene archivos problemáticos de firmware. Estos se han dividido en paquetes separados y se han movido fuera del archivo principal de Debian al área no libre («non-free») del archivo, la cual no está activada de manera predeterminada".
Quizá no haya sido la versión más mediática, pero, estimados lectores, el reconocer el gran trabajo y enorme esfuerzo de la comunidad Debian para release de Squeeze, es cuando menos, digno de elogio. Por lo me que a mi respecta, como siempre que la decisión sobre el SSOO y arquitectura dependan de mi criterio: siempre Debian GNU/Linux.¡Enhorabuena a toda la comunidad!

martes, 1 de febrero de 2011

Firmware WRT54G v7


Desde hace algunos años(2005) usos productos Linksys. Tengo dos WRT54G, uno v1 y otro v7. Alguna tarjeta PCI Wireless, otra USB, y creo recordar que algún AP por ahí perdido. Me gusta por la relación calidad precio y por que Cisco Systems está por detrás.


El caso es que el ModemRouter de R(proveedor de fibra para Galicia(España)) es una auténtica patata. Es un Scientific Altanta 217893036 .¿Por qué es una patata?
  • La interfaz web es de los 90, poco intuitiva y muy cutre.
  • Ayer quise jugar con RIP y nada, no soporta protocolos de enrutamiento.
  • Se cuelga. Misteriosamente después de unos 30 minutos el "cacharro" se queda colgado y tienes que reiniciarlo.
Si desactivas la interfaz wireless del aparato funciona como la seda. Conclusión: instalar el WRT54G v7 en el piso de arriba. De momento estoy probando con dos redes wireless, una para cada piso. El motivo de este post no deja de ser curioso. Después de estar un tiempo sin usar un cacharrito de este tipo, me gusta actualizar el firmware, ya que siempre suelen corregir bugs y añaden alguna que otra funcionalidad. El caso es que este modelo, dejando a un lado que no se le puede instalar el DDWRT al ser un router proscrito, parece ser que cuando la gente de Linksys "descubrió" que se podía flashear e instalar GNU/Linux , disminuyeron la RAM y el tamaño de la flash, amén de pasarse por el forro la licencia GPL, pero eso en otro post. Voy a seguir que me lio. El caso es que en la web de Linksys no existe ninguna referencia relacionada con el firmware de "mi cacharro", y claro ahora como está muy de moda el tema del "live chat", pues "click, vamos a chatear con estos tipos, a ver qué me cuentan...."

[ WRT54G ]

[2011-01-31 12:09:36] Please wait... Your number in the queue: 1
[2011-01-31 12:09:36] A representative will be joining shortly.
[2011-01-31 12:09:36] A representative will be with you in 4 minute(s)
[2011-01-31 12:09:57] A representative will be with you in 1 minute(s)
[2011-01-31 12:10:21] Vaughn (30070E) has joined this session.
[2011-01-31 12:10:32] Vaughn (30070E): Hello Alberto Permuy! Welcome to Linksys Live Chat. How may I help you?
[2011-01-31 12:10:47] Alberto Permuy: Hi! I'm looking for WRT54G firmware updates in linksys's website, but I can't find, could you help me?
[2011-01-31 12:11:00] Vaughn (30070E): Sure
[2011-01-31 12:11:08] Vaughn (30070E): May I know which country are you based in?
[2011-01-31 12:11:20] Alberto Permuy: Spain
[2011-01-31 12:11:48] Vaughn (30070E): Can you please confirm the serial number of your linksys product?
[2011-01-31 12:12:21] Alberto Permuy: CDFE1XXXXXX
[2011-01-31 12:13:38] Vaughn (30070E): The device seems to be Out of warranty, but I will provide you with the link, if you still face any issues, please contact our phone support at 902 027 997 0.09€/call + 0.07€/min Red fija: establecimiento de llamada 0.09€ + 0.07€/minuto. Estos precios pueden variar en función del operador o en el caso de que usted llame desde un teléfono móvil. Monday - Friday 10 AM - 8 PM (CET)
[2011-01-31 12:13:45] Vaughn (30070E): Please let me know the version
[2011-01-31 12:14:08] Alberto Permuy: V 7
[2011-01-31 12:18:31] Vaughn (30070E): Thank you for your patience!
[2011-01-31 12:18:38] Vaughn (30070E): Please click on following link

El caso es que, a pesar de que han tardado un par de horas en enviarme el enlace para la descarga, al final lo he recibido. Supongo que esto no dejará de ser más que una anécdota, pero si puedo ayudar a alguien que se encuentre en la misma situación, ahí os dejo el link.

Firmware Version: v7.00.8 build 008, Jul. 9, 2009
Firmware Verification: F3BF743BD7ED4D242EB84012F467C0B7
Descargar Web Oficial Linksys
Descargar desde pub.permuy.org

domingo, 30 de enero de 2011

Compilar Dropbox para AMD64

Desde hace unos días he cambiado Ubuntu por Debian AMD64 en el macbook. Salvo la tarjeta wireless y la webcam(que apenas utilizo) no he tenido mayores problemas.Usando module-assistant para la wireless en cinco minutos y previa lectura del wiki de Debian : "habemus wireless".

El problema viene cuando usas la rama unstable y quieres instalar aplicaciones que depende de librerías de versiones anteriores. Eso mismo ha sucedido con Dropbox.He descargado el .deb para arquitectura de 64 bits y no he podido concluir la instalación, por lo que decido compilar nautilus-dropbox. Es muy sencillo
aptitude update && aptitude install libnautilus-extension-dev python-docutils

Ahora descomprimimos el paquete , compilamos e instalamos:
tar jxvf nautilus-dropbox-0.6.7.tar.bz2 && cd nautilus-dropbox-0.6.7
./configure && make && make install




domingo, 16 de enero de 2011

BETT2011 Londres

He tenido la oportunidad de asistir al BETT2011, el mayor evento de tecnología educativa que se celebra anualmente en Londres.La opinión general del evento es muy positiva. Voy a intentar hacer un breve resumen indicando lo que me ha gustado y lo que no.

Me ha gustado.

.- La organización: La inscripción vía web ha sido muy sencilla.Al llegar al Olympia lo único que tenías que hacer es presentar el código de barras que previamente te habían enviado al buzón de correo e inmediatamente generaban tus credenciales. A posteriori ese código de barras impreso en la credencial, servía para que te lo escaneasen en los expositores para hacer SPAM.
.- Localización: Muy fácil llegar en autobús o en metro. El último día, cansado ya de tanta tecnología educativa, decidí dar una vuelta por el barrio a descubrir el otro BETT.
.- Variedad: Si en esto está el gusto, han acertado. Desde pizarras digitales, software para pizarras, filtros de contenido por hardware y software, robots, maletines, cámaras, telefonía IP, casi de todo podías encontrar en el BETT2011.
.- Internet café: Por cortesía de Netgear, se habilitaron unas zonas de libre acceso a internet, tanto access point como PCs para uso común.
.- Cafetería: He contado alrededor de unos 6 o 7 espacios para comer o reponer fuerzas.


No me ha gustado.
.- Demasiada paja. Muchos stands de software para pizarras, en muchos casos podría decir que muy pobres. Abundancia de información en papel, una vergüenza para los tiempos que corren.
.- Demasiado grande. El BETT2011 es inmenso, necesitaría dos días completos para ver todos y cada unos de los stands. En una ocasión he tenido la sensación de estar completamente perdido.
.- Software privativo. Todo, a excepción de un par de stands, estaban relacionados con software privativo. Una pena.
.- Muy caro. Comer y beber en el BETT2011 es muy caro. Una Pepsi 2,10 libras, es decir, casi 2,50€. Podéis imaginar lo que cuesta un menú "enlatado" con ensalada y bebida....un robo!


Lo mejor.
[ Detalle de SumoBot Kit ]

Active Robots. Una empresa dedicada a comercializar kits para introducirse en la robótica y la electrónica. Estos kits sirven para aprender a programar en C y en PBASIC, y de paso para divertirse con estos robots. La verdad es que para mí fue lo mejor. Los dos días estuve en el stand. He de decir que los tipos de ActiveRobots son muy majos, y respondieron a todas y cada una de las preguntas planteadas...unos cracks! Enhorabuena!
Netsweeper: Filtro de contenidos web para centros educativos. Por lo que me han comentado, ellos te proporcionan un RPM que aconsejan correr en CentOS, y después te aconsejan cómo integrar éste dentro de tu infraestructura de red: detrás o delante de un firewall, dentro de una VPN...
Bloxx: Más filtro de contenido. En este caso software y hardware. Similar al Netsweeper, salvo la diferencia de que con BLOXX no tienes que comprar hardware, ellos te proporcionan un servidor de 1U con el producto. BLOXX es capaz de filtrar contenido web, email, contenido de Youtube y un sin fin de funcionalidades, todo desde una cuidada interfaz web. Me sorpendió la facilidad con la que se puede integrar la solución con un Active Directory de Microsoft Windows, así como crear reglas para grupos de usuarios.


El tema de las pizarras digitales lo pasaré muy por encima, es un mundo que desconozco, y salvo casos concretos, mi interés es obligatoriamente profesional. No me gusta que me traten como un idiota, esa es la sensación que he tenido en el mini-tour por el stand de SMART. En lugar de explicar como una ametralladora todo lo que hacen sus pizarras, podrían haber montando en su espacio un aula y hacer una demostración de cómo usar una pizarra en clase. Eso sí sería interesante.

Microsoft, DELL, HP, Toshiba, Asus y demás fabricantes tenían presencia en BETT2011. A mi modo de ver más "a calzador" que por tener una relación directa con la formación. Por eso no voy a hacer ninguna referencia al respecto.

Para finalizar, señalar que no había un espacio tipo auditorio dónde asistir a ponencia de gente versada en la materia, y eso, señoras y señores organizadores del BETT, es algo que se puede mejorar para ediciones posteriores.

¿Volverías al BETT? Por supuesto, la primera para aprender. En la segunda supongo iré al grano.

domingo, 19 de diciembre de 2010

¡No al cierre de webs! ¡Red SOStenible!

Habilitar CKEditor para Chrome y Safari en Moodle

Para que el editor WYSIWYG CKEditor pueda "funcionar" correctamente en Chrome y Safari modificaremos

Fichero: /lib/moodlelib.php

Donde nos topamos con :


function can_use_html_editor() {
global $USER, $CFG;

if (!empty($USER->htmleditor) and !empty($CFG->htmleditor)) {
if (check_browser_version('MSIE', 5.5)) {
return 'MSIE';
} else if (check_browser_version('Gecko', 20030516)) {
return 'Gecko';
}
}
return false;
}


usaremos este código :


function can_use_html_editor() {
global $USER, $CFG;

if (!empty($USER->htmleditor) and !empty($CFG->htmleditor)) {
if (check_browser_version('MSIE', 5.5)) {
return 'MSIE';
} else if (check_browser_version('Gecko', 20030516)) {
return 'Gecko';
}
else {

return 1;

}
}
return false;
}


Fichero /lib/editor/htmlarea/htmlarea.php

Donde nos topamos con:



HTMLArea.checkSupportedBrowser = function() {
if (HTMLArea.is_gecko) {
if (navigator.productSub < 20021201) {
alert("You need at least Mozilla-1.3 Alpha.\n" +
"Sorry, your Gecko is not supported.");
return false;
}
if (navigator.productSub < 20030210) {
alert("Mozilla < 1.3 Beta is not supported!\n" +
"I'll try, though, but it might not work.");
}
}
if(HTMLArea.is_safari) {
return false;
}
return HTMLArea.is_gecko || HTMLArea.is_ie;
};


deberíamos ....


HTMLArea.checkSupportedBrowser = function() {
if (HTMLArea.is_gecko) {
if (navigator.productSub < 20021201) {
alert("You need at least Mozilla-1.3 Alpha.\n" +
"Sorry, your Gecko is not supported.");
return false;
}
if (navigator.productSub < 20030210) {
//alert("Mozilla < 1.3 Beta is not supported!\n" +
// "I'll try, though, but it might not work.");
return 'HTMLArea.is_gecko';
}
}
if(HTMLArea.is_safari) {
//return false;
return 'HTMLArea.is_gecko';
}
return HTMLArea.is_gecko || HTMLArea.is_ie;
};


Visto en http://lewiscarr.co.uk/

lunes, 22 de noviembre de 2010

Charla Servidores UNIX/Linux

El pasado fin de semana tuve el placer de impartir en formato charla+taller una ponencia sobre Servidores Linux, enmarcada dentro de unas "Xornadas sobre software libre, internet seguro" en A Coruña. Este próximo fin de semana, 26 y 27 de Noviembre de 2010 haré lo propio en Santiago de Compostela.

Divida en jornada teórico-evangelizadora, resumí muy brevemente la historia del SSOO GNU/Linux siguiendo como guión esta presentación:




En la jornada matutina del día siguiente y en horario de10:30 a 13:30, tomando como base una distribución Ubuntu Server 10.10 tratamos temas relacionados con:
  • Mini introducción al terminal
  • Introducción apt en Debian GNU/Linux
  • Instalación y configuración de SAMBA.
  • Hablamos además de : nano, touch, rsync, ext4, ext3, reiserfs, zfs, upstart, init.d, gz, virtualbox, lvm.....
La verdad es que ha sido un placer, sobre todo por la atención, tanto de los asistentes como por parte de la gente de Academia Postal, en especial Manuel Bustabad. ¡Gracias por todo!

Apache2 , SSL y passphrase

Si utilizais Apache2 con SSL es probable que cuando instaléis el certificado en vuestro sitio y reinicies el servicio, Apache2 se "queje" pidiendo la contraseña del certificado. Saltar este paso es muy sencillo.

1.- Editamos el fichero /etc/apache2/mod-enabled/ssl.conf
2.- Cambiamos SSLPassPhraseDiaglog builtin por SSLPassPhraseDialog exec:/usr/sbin/asslpass
donde asslpass contiene

#!/bin/bash
echo "mi-pass-del-certificado"
3.- chmod +x /usr/bin/asslpass para otorgar permisos de ejecución y asunto resuelto.

martes, 26 de octubre de 2010

¡Apoya a Wikipedia!

Apoya Wikipedia
Hoy he aportado un euro ( 1€ ) a Wikipedia. Estoy redactando un proyecto y me he acordado leyendo un artículo en Wikipedia de la veces que he sacado partido a este magnífico proyecto colaborativo. Cierto, puedo donar más dinero, pero no considero que el importe de la donación sea lo importante, es el propio acto en sí. Siento que mi pequeña deuda con este proyecto, al menos durante un corto período de tiempo está saldada.


Dear Alberto,

Thank you for your gift of EUR 1.00 to the Wikimedia Foundation, received on October 26, 2010. I’m very grateful for your support.
Your donation celebrates everything Wikipedia stands for: the power of information to help people live better lives, and the importance of sharing, freedom, learning and discovery. Thank you so much for helping to keep Wikipedia freely available for its 380 million readers around the world.

These funds support technology and people. The Wikimedia Foundation develops and improves the technology behind Wikipedia, and sustains the infrastructure that keeps it up and running. The foundation has a staff of about fifty, which provides technical, administrative, legal and outreach support for the global community of volunteers who write and edit Wikipedia.
Many people love Wikipedia, but a surprising number don't know it's run by a non-profit. Please help us spread the word by telling a few of your friends.

And again, thank you for supporting free knowledge.

Sincerely Yours,


Sue Gardner
Executive Director

* To donate: http://donate.wikimedia.org
* To visit our Blog: http://blog.wikimedia.org
* To follow us on Twitter: http://twitter.com/wikimedia
* To follow us on Facebook: http://www.facebook.com/wikipedia


This letter can serve as a record for tax purposes. No goods or
services were provided, in whole or in part, for this contribution.
The Wikimedia Foundation, Inc. is a non-profit charitable corporation
with 501(c)(3) tax exempt status in the United States. Our address is 149 New Montgomery, 3rd Floor, San Francisco, CA, 94105. Tax-exempt number: 20-0049703

jueves, 21 de octubre de 2010

Hp Mini y Meego

Hace aproximadamente diez días me he regalado un netbook. La máquina en cuestión es un HP Mini "el negro". Por 278€ tenemos "out of the box":
  • Procesador Intel Atom 1,6 Ghz con 512Kb de caché de L2
  • 1 GB RAM DDR2 (2GB Max)
  • Disco duro SATA 160GB 5400 rpm
  • Pantalla WSVGA 10'1 1024x600
  • Intel GMA 3150
  • Batería de 6 celdas
  • LAN Ethernet 10/100 y Wireless b/g/n


Los principales motivos para elegir este modelo han sido:
  1. Batería de 6 celdas. Para tener entre 2 y 3 horas de autonomía me llegaba con el Macbook. Con el HP Mini puedo llegar a las 7 horas sin demasiados sacrificios.
  2. Marca. Me gusta HP. Si bien el diseño se podría mejorar, la calidad del producto está muy bien compensada en relación calidad/precio.



[ HP Mini 110-3005SS WS62EA]

La duda llegaba con el SSOO a instalar.
  • Si instalo Debian GNU/Linux, opción principal, tendría que dedicarle mucho tiempo, y la verdad, dada mi situación personal y laboral actual, ahora mismo es mi principal carencia: el tiempo. Descartada.
  • Ubuntu. Fue la opción durante 8 días. Tenía que viajar y tener Ubuntu 10.10 instalada y con todo el hardware funcionando fue cuestión de invertir 45 minutos y algún que otro quebradero de cabeza. El driver para la wireless ralink da problemas con ACPI, así que debemos "blacklistar" el módulo para que no lo cargue al iniciar el sistema. La verdad es que la primera semana con Ubuntu 10.10 no tuve queja alguna, todo perfecto, con las limitaciones del propio hardware de la máquina(pasar de 8GB de RAM a 1GB se nota).
echo "blacklist rt2800pci" >> /etc/modprobe.d/blacklist.conf
  • Meego. Conocía Meego, de echo tenía un par de imágenes en mi máquina de escritorio, pero claro, la falta de tiempo....Para los que no conozcan Meego, resumiendo el resumen , comentar que es el fruto de la fusión de Maemo y Moblin , es decir, el resultado del trabajo de Intel y Nokia basado en el núcleo de Linux para competir con Android. Al final he optado por la opción Meego.No quiero entrar en polémicas acerca de que si Meego es mejor o peor que Android. Simplemente daré mi opinión después de instalar y utilizar Meego en el HP Mini.
Primeras impresiones de Meego.
  • Modo Live! Increíble. Todavía no he podido indagar cómo lo han hecho, pero en 20 segundos(a ojímetro) tenemos el sistema funcionando en modo Live!. No hay que hacer nada especial para tener el usb, sólo seguir las instrucciones del sitio web de Meego. Como anécdota comentar que la imagen la he creado con el clásico dd sin ningún tipo de problema. Lo qué mas llama atención la primera vez que "juegas" con Meego es el propio entorno. Si vienes de GNOME o KDE olvídate de menús infinitos, olvídate de la clásica estructura de escritorio "linuxero" panel-menú-panel, por que Meego va más allá. Un panel superior es suficiente para controlar y disfrutar de todo el sistema.
  • Instalación. Si te ha gustado el modo Live! y te ha sorprendido lo ligero y sencillo que es el uso, la instalación es de lo más simple que he visto en mucho tiempo. Particionar el disco, configurar el idioma, red y en 5 minutos está instalado.




[ Meego funcionando en el HP Mini ]

¿Qué es lo que más me ha gustado?
  • Fluidez. Es increíble lo fluído y rápido que "se mueve" el entorno gráfico.
  • Simple e intuitivo. Tareas como configurar una conexión wifi son tan simples como "clickear" dos botones y navegar.
  • La interfaz es bonita y agradable, parece que acabas de entra en los mundos de yupi!
  • Es Linux! Es Gnome! Es Kde! Es increíble!. De serie instala el reproductor multimedia banshee, Google Chrome(ojo, tienes que descargar la ISO con el EULA de Google Chrome), Empathy...
  • Tiene un terminal!
  • Tiene un Kernel actualizado, ayer de noche instaló el solito un 2.6.35....
  • Usa YUM como gestor de paquetes, aunque prefiero apt, no hay mejor excusa para retomar el asunto "yumero"...
¿Qué es no lo que NO me ha gustado?
  • Haber tardado tanto en probarlo...
  • Nada más.
P.D: Gracias a Simón Pena por recordame el tema Meego!


domingo, 17 de octubre de 2010

Así fue la Trasnada 10 en Ordes



Llegaba tarde a Ordes. El día anterior regresaba de Expocampus 2010 en Madrid y necesitaba descansar. Expocampus es un evento que todo docente o persona relacionada con las nuevas tecnologías y/o docencia no debería perderse; si bien es cierto que este post no va dedicado a Expocampus, sí está relacionado con la Trasnada'10.
A mi entender, existe una gran diferencia de concepto entre eventos tipo Expocampus y Trasnada. Atónito escuchaba en Madrid a un gurú del e-learning afirmar "el gran impacto en EEUU es la colaboración web entre grupos de usuarios para realizar proyectos". Pero por favor, si la comunidad de software libre lleva casi 20 años haciendo lo mismo....y el auditorio se llena de aplausos. En contraposición, eventos como la Trasnada'10, no hacen más que reafirmar la excelente salud del software libre, y en particular la comunidad de traductores y personas que apoyan el software libre.

A pesar de conocer de antemano, y hablo desde una concepción global y generalista, el estado de grupos de traducción en Galicia; salí de la Trasnada'10 con una satisfacción enorme. Sólo el pensar que gente, de un modo altruista y perfectamente organizado(aunque parezca lo contrario) invierte horas, días y meses de su vida en traducir aplicaciones libres á galego es digno de mi más sincera admiración.

Entrando ya en la parte práctica de la jornada. Los "newbies" nos reunimos en una sala anexa donde Miguel Branco en una sesión de aproximadamente 120 minutos son describió las claves para introducirse en el apasionamente mundo del software libre y la traducción. Comentaba entre otros aspectos:
En resumen, una jornada que ha superado mis espectativas personales. ¿Por qué? Muy sencillo, si al terminar la jornada has aprendido nuevos conceptos, has ayudado a impulsar y mantener viva la comunidad del swlibre, eso, ya es un éxito. Enhorabuena a Trasno!


lunes, 4 de octubre de 2010

Phyton...Monty

Python es un lenguaje de programación creado por Guido van Rossum a principios de los años 90 cuyo nombre está inspirado en el grupo de cómicos ingleses “Monty Python”. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que favorece un código legible.
Se trata de un lenguaje interpretado o de script, con tipado dinámico, fuertemente tipado, multiplataforma y orientado a objetos.

¿Quieres aprender Python? Te recomiendo que leas este enlace.
¿Quieres flipar con Python?
  1. Abre un terminal
  2. cd /tmp
  3. python -m SimpleHTTPServer
Si abres un navegador y tecleas en la URL http://127.0.0.1:8000 observarás como está corriendo sin mayore problemas un servidor web bajo Python. Lo sabía desde hace tiempo, pero no lo recordaba.

martes, 28 de septiembre de 2010

Flyback, el time machine para GNU/Linux

La semana pasada he perdido el disco duro del Macbook. Lo importante: el fichero cifrado con TrueCrypt estaba a salvo, pero el resto lo he perdido. Algunas fotos, máquinas virtuales y demás se han ido por la borda. Lo que más me fastidia del tema es que siempre predico en entornos empresariales la importancia de los backups y al final soy yo mismo el peor ejemplo. El caso es que he configurado(prometo post) una máquina Linux para que MacOSX detecte el volumen que se desee como un XServe y vía AFP poder usar dicho volumen para almacenar las copias de Time Machine. Buscando y rebuscando por Google he encontrado Flyback, una herramienta similar a Time Machine pero para GNU/Linux. La instalación es muy sencilla: descargas el paquete .deb, resuelve dependencias y listo! Claro ejemplo de las bondades del apt-get.... En la web del proyecto hay más información, y por supuesto el código fuente. La aplicación en sí no es gran cosa, pero nunca está de más tomar nota.

domingo, 26 de septiembre de 2010

FreeNX, acceso seguro a GNOME(y otros...)

¿Necesitas acceder al escritorio de una máquina corriendo algún sabor de Unix o Linux? FreeNX es la solución, por lo menos para mí.NX realiza una conexión por el protocolo X11 pero encapsulado por SSH !fuera paranoias!

En la actualidad sólo lo he probado desde MacOSX Snow Leopard 10.6.4 hacia una máquina Ubuntu 10.04 LTS y la verdad es que los resultados son increíbles. [Descargar cliente Mac OS X].
Si utilizais Microsoft Windows supongo no será difícil encontrar un cliente de FreeNX.

Siempre , y cuando digo siempre es siempre, uso SSH para acceder a máquinas Unix vía remota, pero desde que he probado "en serio" NX, más de una vez incio sesión y descargo algún torrent.

Si usais Ubuntu 10.04 la instalación de FreeNX es muy sencilla, desde un terminal y como root


[root@barney]aptitude install python-software-properties && add-apt-repository ppa:freenx-team

[root@barney] aptitude update && aptitude install neatx-server


Con estos sencillo pasos ya es posible conectarse desde otra máquina a nuestra Ubuntu / Debian GNU/Linux. Sencillo, seguro y fácil: alguien da más?

viernes, 17 de septiembre de 2010

VII Kernel 2010 Mugardos - Parte 1

Son las 04:59 de la madrugada. Escribo desde una Ophcrack Linux. Estoy en el Kernel2010 en Mugardos en la party mas molona del noroeste peninsular.
No he tenido mucho tiempo ultimamente para escribir, asi que voy a hacer un mini-resumen de lo que configurado a nivel de sistemas en el Kernel 2010.
El firewall es un clasico, Debian, Squid e iptables.No falla. Forward en DROP y proxy transparente. DNS y DHCP en otra maquina, con Bind9. Este si falla, pero tampoco es para tanto.
La novedad este anho es OpenVZ. He configurado una maquina con 4GB de RAM donde corremos ahora mismos 3 SSOO Debian 5.0 amd64 dando servicios a la LAN de webserver con Drupal y MySQL, otro server para servidor Direct Connect con OpenDCHub y un tercero de backup por si se cae el DNS-DHCP.
Intentare subir alguna grafica de Munin a lo largo de estos dias.
Saludos.

lunes, 30 de agosto de 2010

Miscelánea

Siendo sincero no he tenido mucho tiempo últimamente para escribir en el blog. Esta semana toca mudanza, nos marchamos a Bertamiráns, hemos encontrado un dúplex pequeño pero muy acojedor, con lo cual, y aún trabajando para la misma organización(espero que por muchos años!), comienza una nueva etapa.

Como sabéis este año 2010 "Comunidade O Zulo" se ha constituído como Asociación, con lo cual los compromisos y responsabilidades también son mayores. El evento Kernel 2010, del que soy fundador y responsable técnico, llega este año a la 7º edición. Estamos con los preparativos, configuración de servidores y demás...

A parte de todo este lío, estoy inmerso en tres proyectos más:
.- OpenFiler: He instalado y configurado un servidor SAN con OpenFiler y me han encargado el mantenimiento en horario NO laboral, por lo tanto lio++
.- Drupal: Estoy a punto de finalizar y entregar un proyecto de "Gestión de tiempos de trabajo" basado en Drupal 6.X. He desarrollado un par de módulo para Drupal, trabajado algo el diseño y un par de temas a mayores(backup,correo...etc)
.- Moodle: He participado en un proyecto con de re-estructuración de una plataforma Moodle 1.9.

Si a todo esto sumamos los numerosos cambios que he vivido en el trabajo, el resultado es una especie de caos cíclico del que no me han salvado ni las vacaciones, las cuales las he dedicado prácticamente a cerrar y avanzar proyectos en marcha.

Prometo en los próximos días seguir escribiendo.
Saludos.

lunes, 9 de agosto de 2010

Instalar CKEditor en Moodle


Estoy trabajando en un proyecto para "renovar" la cara a una instalación de Moodle. Si hay algo que no me gusta, estéticamente hablando por supuesto, de Moodle 1.9.X es el editor por defecto. No soy muy amigo de los editores WYSIWYG , pero si sois usuarios de Moodle estareis de acuerdo que el editor por defecto es un poquitín cutre.
En Drupal uso CKEditor y funciona muy bien. Revisando los foros de Moodle, fuente eterna de sabiduría para newbies como que el escribe este blog, he encontrado un post que me ha servido de ayuda para instalar CKEditor. Comento los pasos:

.- Lo primero que debemos tener claro es que vamos a "tocar" ficheros de configuración claves, por lo tanto recomiendo realizar un backup antes de nada.
.- Debemos tener acceso al servidor vía SSH(hablamos de servidores Linux/*BSD). Añadimos la siguiente línea al fichero config.php

$CFG->defaulthtmleditor = 'ckeditor';

.- Visitamos http://ckeditor.com/download y descargamos la ultima versión de CKEditor(3.3.2 en mi caso) en el directorio moodle/lib/editor.Descomprimimos el fichero.
.-!Mucho cuidado ahora! Backup de moodle/lib/weblib.php y lo actualizamos con este fichero.

Ahora limpiamos caché et..violá! Ya tenemos CKEditor como editor por defecto en Moodle!

He vuelto...

Después de casi un mes sin postear confirmo que he regresado.
La pérdida de un compañero de trabajo y amigo es algo duro, que cuesta asumir, pero que no debe impedir continuar luchando por aquello en lo que crees. Las dos últimas semanas de este pasado mes de Julio han sido duras, pero tengo la gran suerte de trabajar al lado de profesionales, que en su mayor parte(siempre hay excepciones) , son grandes personas. Tengo mucha suerte a nivel personal, vivo con personas a las que quiero y que me quieren,y claro, este factor siempre ayuda.

Han pasado las vacaciones como si nada. He estado 15 días en Mugardos. No he descansado prácticamente nada, y la última semana la he pasado en A Coruña liado con DFS,Openfiler y demás. Pero como esto no es un blog sentimental ni nada que se le parezca, en 10 minutos os dejo un post nuevo...
Saludos y gracias por leerme!

jueves, 15 de julio de 2010

Cómo me haces esto....

...justo ahora que empezábamos a vivir nuestros trabajos como un hobbie! No puedes irte así, sin despedirte, sin dedicarnos un último tweet a quienes seguíamos a diario tus peripecias en la www, escuchando y retwitteando tus ilusiones y futuros proyectos.
Supongo que a partir de hoy, nada volverá a ser como antes.Ya no me volveré a quedar charlando 45 minutos antes de entrar, ni te buscaré por la ventana pensando "a ver si viene Koldo y me cuenta en qué esta metido...".
Por aquí te van a echar mucho de menos, pero con tu marcha se van más cosas, más de las que incluso pueda llegar a enumerar en esta especie de post de despedida. Como ya no estás aquí, y aún a sabiendas de que no me leerás(sé que sí, dónde estés ya tienen iPad's), te he enviado un último tweet esta mañana, como solía hacerlo.

Sólo puedo darte las gracias por todo lo que he aprendido de ti durante este tiempo. Por lo que a mi respecta, puedes viajar tranquilo: has hecho de mi una mejor persona.

Koldo, amigo, te echaré de menos!

martes, 6 de julio de 2010

Kernel driver not installed (rc=-1908)

Si actualizas Ubuntu 10.04 es posible que al intentar ejecutar VirtualBox después de la actualización devuelva este error:

Kernel driver not installed (rc=-1908)

Solucionarlo es muy sencillo, abrimos un terminal y como root, o sudo, a gusto del consumidor,como primera opción:

root@polinico:/home/apermuy# dpkg-reconfigure virtualbox-ose-dkms
Removing all DKMS Modules
Done.
Loading new virtualbox-ose-3.1.6 DKMS files...
Building only for 2.6.32-23-generic-pae
Building for architecture i686
Building initial module for 2.6.32-23-generic-pae
Done.

Si continúan los problemas...

root@polinico:/home/apermuy# apt-get install --reinstall virtualbox-ose
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
0 actualizados, 0 se instalarán, 1 reinstalados, 0 para eliminar y 0 no actualizados.
Necesito descargar 8265kB de archivos.
Se utilizarán 0B de espacio de disco adicional después de esta operación.
¿Desea continuar [S/n]? S
Des:1 http://es.archive.ubuntu.com/ubuntu/ lucid/universe virtualbox-ose 3.1.6-dfsg-2ubuntu2 [8265kB]
Descargados 8265kB en 59s (139kB/s)
(Leyendo la base de datos ... 00%
206245 ficheros y directorios instalados actualmente.)
Preparando para reemplazar virtualbox-ose 3.1.6-dfsg-2ubuntu2 (usando .../virtualbox-ose_3.1.6-dfsg-2ubuntu2_i386.deb) ...
Desempaquetando el reemplazo de virtualbox-ose ...
Procesando disparadores para ureadahead ...
ureadahead will be reprofiled on next reboot
Configurando virtualbox-ose (3.1.6-dfsg-2ubuntu2) ...
* Stopping VirtualBox kernel modules [ OK ]
* Starting VirtualBox kernel modules [ OK ]

Procesando disparadores para python-central

lunes, 5 de julio de 2010

“The plain HTTP request was sent to HTTPS port” en nginx

“The plain HTTP request was sent to HTTPS port” es un error que puede devolver NGINX a tratar de forzar la redirección a https.A mi me ha sucedido con phpmyadmin, y es por que me había olvidado de incluir en la configuración del virtual host:

fastcgi_param HTTPS on;



La solución completa sería:

location ~ \.php$ {
fastcgi_param HTTPS on;
fastcgi_pass 127.0.0.1:xxxx;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi_params;
}


Articulo original [aquí]

ipfire, otra sorpresa...


Distrowatch es una referencia en la web si hablamos de lista de distribuciones GNU/Linux y BSDs. A menudo suelo dar una vuelta por Distrowatch para ver las últimas novedades; hoy la he visitado y me he topado con una sopresa : ipfire.

Si hace unas semanas hablaba de Ebox como una solución ideal para servidor empresarial: ficheros,firewall,vpn...etc, ahora toca el turno de ipfire.

Ipfire es una distribución Linux que "sólo" sirve para realizar una función : firewall. En la página oficial del proyecto la definen como "una distribución linux-like,de instalación sencilla y segura".

Me ha llamado mucho la atención la cuidada interfaz web de administración, desde la que podemos realizar prácticamente cualquier función de administración del sistema. En este enlace podéis ver unas capturas de pantalla.

Entre sus muchas caraterísticas destacan:
  • módulo firewall basado en inspección de paquetes netfilter.
  • IDS
  • Posibilidad de crear DMZ
  • Servicios: ntp,dhcp,proxy...
  • Sistema basado en módulos para ampliar funcionalidades
  • VPN
Aún no sé si usaremos Ebox o Ipfire para el Kernel 2010 de Mugardos, pero si me preguntais ahroa mismo, Ipfire tiene las mismas posibilidades que Ebox.

miércoles, 30 de junio de 2010

thttpd, la confirmación de lo minimalista



Dentro del mundo de los webservers todos sabemos que Apache2 se lleva la fama y los aplausos. Por otro lado, Cherokee, nginx y lighttpd poco a poco se hacen con un hueco en difícil campo de los servidores web.
Esta semana he estado jugando un con las listas de correo en Mailman para la recién creada Asociación Comunidade O Zulo. Una Asociación que fomenta la tecnología y cultura libres, de la cual tengo el honor de ser presidente.
Sinceramente, configurar Mailman con Postfix sólo con "auth local" y apache2 es muy sencillo. Pero claro, si tienes un VPS con 128Mb de RAM , el tema se complica. Apache2 consume muchísimos recursos, tanto de RAM como de CPU.
Tocaba buscar una alternativa a Apache2. Lo cierto es que no pensé nunca en dejar Apache2 como servidor www, pero he de reconocer que para la configuración base es ideal y apenas tienes que tocar nada para que funcione. Una vez funcione el servicio, sí me he planteado cambiar el software servidor www.
Paseando por el wiki de Mailman intentando buscar el equilibrio perfecto entre rendimiento y consumo de recursos encuentro thttpd.
La solución que proponen es nginx+thttpd. Como nginx no soporta la ejecución de CGIs en modo "out of the box" proponen enviar las peticiones a CGIs vía directiva proxy_pass de nginx a una instancia de thttpd escuchando en otro puerto del mismo server. ¡Genial! Me ha parecido una idea estupenda y muy profesional. Lo cierto es que ayer de noche no conseguí que funcionase, y al final para salir del paso usamos lighttpd.
La idea no sólo me ha parecido genial a mí, si no que esta solución(la de usar thttpd) la están usando en PayPal.com y en otros sitios web.La instalación en Debian GNU/Linux es tan sencilla como "aptitude install thttpd". En la web del proyecto hay más información sobre directivas, instalación y demás.



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.