Cena con Obie Fernandez

eventos, ruby, rails 0 comentarios »

Obie Fernandez ha sido el encargado de cerrar la Conferencia Rails 2007. El pasado miércoles 21, los integrantes del equipo organizador (aunque no estuvimos todos) tuvimos el privilegio de cenar con él y con su chica Desi. Siempre es enriquecedor conocer de primera mano la opinión de un gurú como él (séptimo puesto en el ranking de popularidad de Working With Rails).

Cena con Obie Fernandez

Esta es una lista de los temas que tocamos:

  • Nos enseñó su iPhone (el primero que tengo entre manos) y hablamos sobre el futuro de los dispositivos móviles.
  • Nos habló de la poca burocracia que es necesaria en EEUU para montar una empresa.
  • Nos contó las tarifas que se manejan en EEUU a la hora de presupuestar proyectos de desarrollo y hablamos de estrategias de negociación de precios.
  • Hablamos de city cliq, proyecto en el que actualmente está trabajando, pero que personalmente no termino de entender cuál es su propósito.
  • Con Desi hablamos de devChix, una comunidad de mujeres desarrolladoras fundada por ella.
  • Hablamos del libro que acaba de publicar Obie, The Rails Way y de lo que suelen pagar las editoriales a los autores.
  • Hicimos un brainstorming sobre el concurso de programación rápida de la Conferencia Rails 2007.
  • Hablamos sobre el spanglish.
  • Discutimos sobre Test Driven Development, peer programming, extreme programming y ping-pong programming.
  • Hablamos sobre la motivación a la hora de escribir en twiter.
  • Y también nos enseñó en qué consiste un Irish Car Bomb.

Atención a la foto, la tienda que tenemos detrás se llama “Ruby Room”. ¿Casualidad?

 


Cómo programar un blog REST

eventos, ruby, rails 1 comentario »

El pasado viernes 23 impartí el taller “Cómo programar un blog REST” en la Conferencia Rails 2007. Aquí podéis descargaros la presentación:

blog REST

En la ponencia presenté primero los conceptos del modelo de arquitectura REST y posteriormente desarrollé un sencillo blog con un modelo “post” y otro modelo “comment”, habiendo entre ellos una relación 1 a N.

Para relacionar ambos modelos utilicé una tabla intermedia, y como bien señaló uno de los asistentes, habría sido más sencillo utilizar recursos anidados. La ventaja de utilizar tablas intermedias es mucho mayor en relaciones N a M.

Actualización: He subido la presentación a slideshare.


Seré ponente en la Conferencia Rails 2007

eventos, ruby, rails 0 comentarios »

Los próximos días 22 y 23 de noviembre se celebra en Madrid la segunda edición de la Conferencia Rails 2007. En ambas ediciones he colaborado en la organización, siendo mi tarea principal el desarrollo de la aplicación de registro. Este año, además, voy a impartir un taller titulado “Cómo programar un blog REST”.

ponente conferencia rails 2007

Este taller práctico está pensado para aquellos que han oído hablar de Rails y quieren ver su potencia en acción. Se hará una breve introducción a Rails, al patrón de arquitectura MVC y a REST. A continuación se programará un sencillo blog siguiendo la arquitectura REST.


Instalación de MySQL, Apache y PHP en Solaris 10

mysql, sysadmin 6 comentarios »

Apache + MySQL + PHP

¿Alguna vez has intentado compilar PHP en Solaris? Yo sí, y he de reconocer que no es una tarea sencilla. Hace varios años decidí utilizar cacti en Solaris. cacti es un programa escrito en PHP para generar gráficas, generalmente de rendimiento, y necesita Apache + MySQL + PHP . Por aquel entonces los paquetes de sunfreeware no estaban compilados de forma que PHP pudiera funcionar como módulo de Apache. Así que no tuve más remedio que compilar y compilar hasta que logré dar con una combinación adecuada de versiones y de opciones de compilación. La versión de Solaris que utilicé fue la 8, y escribí un documento donde contaba los detalles.

Después de tres años de espera, en octubre de 2007 se anunció la versión 0.8.7 de cacti, la cual estoy deseando probar. Esta vez lo haré en Solaris 10, y con gran alegría encuentro que esta vez sí es posible la instalación de Apache + MySQL + PHP en Solaris (SAMP) sin tener que compilar, utilizando únicamente paquetes binarios de sunfreeware.

Por otro lado, leo que Sun ha publicado su propia pila AMP, la cual no he tenido tiempo de probar.

En este post os contaré qué 20 paquetes de sunfreeware es necesario instalar y qué pasos hay que seguir para poder ejecutar Apache + MySQL + PHP en Solaris. Es importante seguir el orden aquí descrito, ya que hay paquetes que dependen de otros paquetes.

MySQL 5.0.41

Es necesario instalar los siguientes paquetes:

  • libgcc-3.4.6
  • openssl-0.9.8f
  • zlib-1.2.3
  • ncurses-5.6
  • mysql-5.0.41

Después es necesario ejecutar como root:

# groupadd mysql
# useradd -g mysql -d /export/home/mysql -s /usr/bin/bash mysql
# passwd mysql
# cd /usr/local/mysql
# chown -R mysql .
# chgrp -R mysql .
# ln /usr/bin/hostname /usr/local/bin/hostname
# bin/mysql_install_db --user=mysql
# cp share/mysql/mysql.server /etc/init.d/mysql
# ln -s /etc/init.d/mysql /etc/rc3.d/S99mysql
# ln -s /etc/init.d/mysql /etc/rc0.d/K00mysql
# /etc/init.d/mysql start

Será conveniente también añadir al PATH el directorio /usr/local/mysql/bin y poner una contraseña al root de MySQL:

# mysqladmin -u root password 'password'
# mysqladmin -u root -h hostname password '

Apache 2.2.4

Como tarea opcional, se pueden desinstalar todos los paquetes de apache que vienen con Solaris. Para ver qué paquetes hay que desinstalar:

$ pkginfo  grep -i apache

aunque puede que haya otros paquetes que dependan de los paquetes de apache.

Instalar los siguientes paquetes:

  • expat-1.95.5
  • libiconv-1.11
  • apache-2.2.4

Hará falta crear los scripts para que apache arranque en el arranque de la máquina. Para ello, crear /etc/init.d/apache:

#!/usr/bin/sh
PATH=/usr/bin:/usr/sbin
export PATH
case "$1" in
'start')
  echo "Arrancando Apache"
  /usr/local/apache2/bin/apachectl start
  
'stop')
  echo "Parando Apache"
  /usr/local/apache2/bin/apachectl stop
  
*)
  echo "Uso: $0 startstop"
  exit 1
  
esac
exit 0

y crear los enlaces necesarios:

# ln -s /etc/init.d/apache /etc/rc3.d/S99apache
# ln -s /etc/init.d/apache /etc/rc0.d/K00apache

PHP 5.2.3

Instalar los paquetes:

  • db-4.2.52.NC
  • sasl-2.1.21
  • libxml2-2.6.26
  • openldap-2.3.35
  • jpeg-6b
  • libpng-1.2.23
  • xpm-3.4k
  • gd-2.0.33
  • freetype-2.3.1
  • fontconfig-2.4.2
  • curl-7.17.1
  • php-5.2.3

Añadir /usr/local/php/bin al PATH.

Y por último editar el fichero httpd.conf y rearrancar el servidor apache:

AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
LoadModule php5_module modules/libphp5.so
# /etc/init.d/apache restart

Sistemas complejos

citas 0 comentarios »

A complex system that works is invariably found to have evolved from a simple system that worked.

Invariablemente se encuentra que un sistema complejo que funciona ha evolucionado desde un sistema simple que funcionaba.

John Gall
(En Systemantics)