jueves, 31 de octubre de 2013

Resumen DrupalCampSpain 2013 Cáceres

DrupalCampSpain 2013 Cáceres



El pasado fin de semana @jcartelle , @erosante y el que suscribe acudimos a Cáceres a la DrupalCampSpain 2013. Si tengo que resumir el evento, podría hacerlo usando sólo una única palabra: impresionante!

Salimos de Bertamiráns el viernes 25 a las 12:00 de la mañana, y tras una parada en Puebla de Sanabria, llegamos a Cáceres a las 19:00. Checkin rápido en el hotel y a recorrer la zona vieja de la ciudad. No conocía Cáceres de nada, pero estoy seguro que después de esta visita, no tardaré mucho en regresar.

Sábado 26. Llega el día más esperado: comienza el evento. DrupalCampSpain 2013 se celebró en el Complejo Cultural San Francisco, un antiguo convento reclicado y adaptado para celebrar todo tipo de eventos. Es un lugar increíble, bien equipo tanto a nivel técnico(wifi, rampas de acceso..) como a nivel de espacio y distribución de salas.
[Complejo Cultural San Francisco - Cáceres ]


Intentaré resumir todas las sesiones en las que estuve presente:

Sábado 26

Sesión: El programador moderno:
Speaker: David Bonilla
Nota: Buena
Interés técnico : 0
Notas: David me parece un crack, aunque no hablase sobre Drupal

 [ @david_bonilla a punto de comenzar su sesión]

Sesión: Anantomía de una petición de formulario Drupal
Speaker: Ricardo Sanz
Nota: Regular:
Interés técnico: 8
Notas: Muy aburrida, transparencias demasiado densas, speaker poco comunicativo.

Sesión: Migrate, una herramienta de trabajo y desarrollo
Speaker: Ramón Vilar
Nota: Muy buena
Interés técnico: 9,5
Notas: Impresionante. Transparencias claras y al grano. Muy buenos ejemplos. Ramón es un tipo que sabe lo que dice y cómo lo dice, otro #crack.

Sesión: Flujo de desarrollo en Drupal
Speaker: ISHolgueras:
Nota: Muy buena
Interés técnico:7
Notas: Muy completa, con sus dosis ágiles y ejemplo reales. Buena comunicación.

Sesión: Otra de views, plugins y handlers
Speaker: Luigi Guevara
Nota: Regular
Interés técnico: 8
Notas: Aburrida, demasiado código en las transparencias, poco ordenada.

Sesión: Twig y otros temas en Drupal 8
Speaker : Cristina Chumillas y Pako García
Nota: Buena
Interés técnico: 8
Notas: Nada que destacar. Es la clásica sesión "que te cunde".

Sesión : Front-end automated testing
Speaker: Rubén Teijeiro
Nota: Buena
Interés técnico: 9
Notas: Quizá demasiado técnica, pero es no es malo, verdad?

Sesión: Responsive web design en Drupal, presente y futuro
Speaker : Cristina Chumillas y Pako García
Nota: Buena
Interés técnico:7
Notas: Nada que destacar.

Domingo 27

Sesión: Automate Drupal deployments with Linux containers, Docker and Vagrant
Speaker : Ricardo Amaro
Nota:Muy buena
Interés técnico:9,5
Notas:Se nota mucho cuando tienes un crack delante. Sesión muy preparada, con ejemplos y al grano. Genial!


Sesión: Gestión semántica de contenidos en Drupal
Speaker : Rafa Haro y Sergio Fernández
Nota:Muy buena
Interés técnico: 9,5
Notas: Lo único que se podría mejorar sería la comunicación con el público; la mayor parte del tiempo el ponente fijaba su vista en un punto imaginario y a correr. Por lo demas, caviar del bueno.


Sesión: Analítica web sobre Drupal
Speaker : Alvaro Hurtado
Nota:Muy buena
Interés técnico: 7
Notas:Otro crack. Sesión con destape incluído.

[Alvaro a punto de comenzar su sesión]
Sesión: Arquitectura de información en Drupal
Speaker : Samuel Solís
Nota:Regular
Interés técnico: 7
Notas:Demasiado aburrida, con contenido muy trillado.

En resumen. Un 11 sobre 10 a la organización. Los que ya sabemos lo mucho que cuesta(no sólo hablo de €, sino de esfuerzo y dedicación) organizar un evento de este tipo, sabemos que los organizadores se lo han currado y mucho: enhorabuena! . Otro 10 a la comunidad Drupal. Hoy en día no es nada fácil juntar a 276 en Cáceres para hablar sobre un CMS.

Mi tercera DrupalCamp ha sido una experiencia inolvidable. Estoy deseando desde ya, acudir a la del próximo ano 2014.

Saludos.























lunes, 30 de septiembre de 2013

Multiples versiones de PHP corriendo en la misma máquina

El pasado viernes migramos de Ubuntu Server 12.04 a Debian 7 Wheezy en el servidor de la oficina. El motivo es muy sencillo: rendimiento. A pesar de no tener a mano los datos los benchmarks realizados, el rendimiento del sistema era paupérrimo, hasta el punto de tener que esperar unos 30 segundos por una petición http. 


Supongo que sabréis que Debian 7 incluye PHP 5.4 en los repositorios oficiales. Nada nuevo si trabajas con aplicaciones realtivamente recientes. El caso es que mantengo un Drupal 6.x corriendo PHP 5.3. Al actualizar el ssoo del servidor, os podéis imaginar : crash! La primera opción es intentar actualizar los módulos de Drupal, a versiones actuales o dev: error. Una pérdida de tiempo. La segunda opción es mantener la calma. La versiones de pre-producción y producción corren sobre una RHEL y php 5.3.15 creo recordar, y conociendo al cliente, seguirán así muchos años. La solución: instalar dos versiones PHP en el mismo servidor. El artículo en el que se basan estos apuntes es un clásico en How To Forge : How To Use Multiple PHP Versions (PHP-FPM & FastCGI) With ISPConfig 3 (Debian Wheezy) , pero claro, en Codery no usamos ISP Config, ni falta que hace. He adaptado el links anterior a nuestras necesidades. Comentaré que he modificado, donde cada punto coincide con el post de How To Forge:

1) La idea es servir con PHP5.4.X con libapache2-mod-php5 y los sitios que nos interesen con PHP5.3.27 vía FPM(última versión en el momento de escribir este post).

2) En este paso nada que añadir, salvo algún paquete extra, por lo tanto los pre-requisitos quedarían así
apt-get build-dep php5 && apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libapache2-mod-fastcgi apache2-suexec

Entre el "make" y el "make install", en mi caso, y por curiosidad también he ejecutado un "make test", todo en orden salvo un warning con ftp_ssl; nada que me/nos preocupase por el momento. De este punto sólo hemos instalado a mayores APC y hemos cambiado en modo de ejecución del FPM a modo socket. La modificación es muy sencilla. En el fichero /opt/php-5.3.27/etc/php-fpm.conf cambiamos el valor de la directiva "listen". Revisad también el uusario y el grupo bajo el que se ejecutará el proceso.

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = www-data
group = www-data

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses on a
;                            specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
;listen = 127.0.0.1:8889
listen = /var/run/php-fpm.sock 
 

Los puntos 3,4 y 5 no nos interesan para estas notas.  Vamos a la configuración del "vhost". Habilitamos los módulos necesarios en Apache2:
[apermuy@dorogo#] a2enmod fastcgi actions suexec && apache2ctl -t

Si todo está en orden

[apermuy@dorogo#] service apache2 restart


Esta en la configuración que he añadido en el fichero /etc/apache2/sites-available/misitio
  
                       
                                SetHandler php-script
                       

                        SuexecUserGroup www-data www-data
                        Alias /php5.fastcgi /var/www/fastcgi/php5.fastcgi
                        AddHandler php-script .php
                        FastCGIExternalServer /var/www/fastcgi/php5.fastcgi -socket /var/run/php-fpm.sock
                        Action php-script /php5.fastcgi virtual
 
Si todo está en orden

[apermuy@dorogo#] service apache2 restart

Nota: El directorio indicado en Alias /php5.fastcgi debe existir. Creando un fichero con phpinfo(); deberíais tener observar:


Salud!




viernes, 5 de julio de 2013

Configurar drush Drupal en hosting compartido



Sin aire no hay vida y sin drush no hay Drupal, así de claro. 
Desplegar cambios desde desarrollo, preproducción y producción con drush es una auténtica gozada. Entendiendo por gozada que tú o tu equipo de desarrollo tiene el control sobre el/los servidores del proyecto. ¿Qué sucede cuando el servidor de producción es un hosting compartido o una máquina corporativa en la que no puedes instalar drush?

En Codery solucionamos esta papeleta del siguiente modo.

Servidor no administrado:

1.- Descargamos el paquete "drush" a un directorio, p.e nuestro $HOME.

wget http://ftp.drupal.org/files/projects/drush-7.x-5.9.tar.gz
tar zxf drush-7.x-5.9.tar.gz

2.- La ejecución de drush desde $HOME es tan sencillo como:

php drush/drush.php -r www drush cc all

En ocasiones incluimos un 'alias' en .bashrc para 'agilizar'.

Servidor origen:

1.- Aquí es dónde está el 'truco'. En el fichero sitio.aliases.drushrc.php incluímos la ruta a drush en el servidor remoto

 $aliases['www.c'] = array(
  'root' => '/home/c/www',
  'uri' => 'http://www.ces',
  'remote-host' => 'www.c.es',
  'remote-user' => 'c',
  'db_url' => 'mysql://c:c@h.c.es/www',
  'path-aliases' => array(
    '%drush-script' => '/home/c/drush/drush',
    '%dump' => '/home/c/drush-backups/c-www.sql',
    '%files' => '/home/c/www',
  ),
);







Qué fácil es la vida con drush! :P

lunes, 1 de julio de 2013

Postfix masquerading


Dejo unas notas sobre cómo modificar el email del remitente de la cuenta root en una máquina corriendo Postfix.

Problema:

El destinatario recibe el email de la cuenta root@nombremáquina en lugar de una FQDN.

La solución es muy sencilla. Antes de ponerse a trastear, recomiendo encarecidamente leer el "Postfix Address Rewriting" . Al grano.

1.- Crear el fichero smtp_generic_maps con el contenido
root@nombredemimaquina  info@midominiomolon.org
2.- Hashear el fichero:

postmap hash:/etc/postfix/smtp_generic_maps

3.- Incluir la directiva smtp_generic_maps en el fichero main.cf

smtp_generic_maps = hash:/etc/postfix/smtp_generic_maps

4.- Reiniciar postfix

service postfix restart

Configuración testeada en :

SSOO: Ubuntu Server 12.04.1 64 bits
Postfix: 2.9.6-1~12.04.1




domingo, 30 de junio de 2013

"Sábados libres na Altamar" - Vigo - Junio 2013

Ayer tuve la oportunidad de asistir a la jornada "Sábados libres na Altamar" organizados por los amigos/as de GALPon en Vigo.

A las 08:00 salí de Ames y en menos de una hora ya estaba en Vigo. El evento tuvo lugar en la residencia Altamar, un lugar bastante céntrico y accesible(vamos, que es fácil llegar).

Antes de comenzar de manera oficial jornada,ya estábamos por allí unos cuantos con ganas de conocer más detalles sobre RaspberryPI. El evento de dividió en dos sesiones de mañana, de 10:00 a 13:30 y tarde, de 16:30 a 19:00 horas.


La primera charla introductoria a RaspberryPI a cargo de Miguel Bouzada(GALPon) se extendió de 10:00 a 12:00. Lo primero que me llamó la atención es la calidad de la documentación aportada en el wiki de GALPon en general, y en particular el apartado "Argallando cunha RaspberryPI". Otro tema que me llamó la atención fue el número de asistentes: 30 de 30 plazas posibles. 

A continuación turno para Xavier Villar, miembro de Inestable, que nos deleitó con unha charla super-hardcore de clustering con RaspeberryPI.  Para un ser tema muy técnico, la explicación e introducción inicial fueron muy amenas. A pesar de las dificultades técnicas de la instalación y configuración, al final de la charla pudimos comprobar las bondades de la ejecución de procesos en paralelo.


14:00, turno para comer en buena compañía con miembros de Melide, GALPon, OZulo y público en general. Por cuestiones personales no pude asistir a toda la jornada de tarde, pero me quedo con un muy buen sabor de boca y con ganas de asistir a próximas ediciones. Enhorabuena a GALPon!

Cosillas interesantes sobre RaspberryPI
  • Openmediavault
  • Moebius
  • Uso de tarjetas SDHC clase 10 y montaje de /var /home /tmp en disco o llave USB para mejorar el rendimiento.

Puntos positivos:
  • La temática.
  • La calidad de las charlas.
  • Los conocimientos de los ponentes.
  • Los asistentes.Sin conocernos prácticamente de nada, el compañerismo y el espíritu de enseñar / compartir fue excepcional.
  •  
Puntos no tan positivos:
  • La conexión a Internet.
  • Desde mi punto de vista, y a pesar de que las tres charlas me han parecido muy buenas, pienso que el nivel fue demasiado alto.