Panic mode: Apache no reinicia!


Hay muchos problemas que pueden llevarte a que no puedas iniciar Apache una vez que se te ha caído. Pero me parece interesante comentar aquí uno de estos problemas porque nos ha traído bastante de cabeza este último par de días.

Un poquito de contexto: tenemos un instalador en Java que te instala en la máquina SidelabCode Stack, la forja de desarrollo software de Sidelab de la que puedes ver un ejemplo funcionando aquí. Este instalador se encarga de montar toda la forja sobre una Ubuntu 10.04 (estamos actualizando a 12.04, pero antes queremos estabilizar el instalador). Entre otras cosas, el instalador monta Apache con módulos para php, svn, y otras cosillas. Para el caso que nos ocupa, lo que nos interesa es que el instalador configura la forja según se indica en un fichero de configuración. Ese fichero contiene, entre otras cosas, las IPs donde hay que poner a escuchar a Apache.

Y aquí viene el problema. El instalador, por su cuenta y riesgo, añade en /etc/hosts lo siguiente siempre:

Listen 127.0.0.1:80

Entonces, si en el fichero de configuración le indicamos como IP pública del servicio 127.0.0.1, acabamos con dos líneas iguales:


Listen 127.0.0.1:80
Listen 127.0.0.1:80

Y Apache nos escupe este bonito mensaje de error, donde no sabes si los palos te vienen por el binding al puerto 80, por los permisos para acceder a los logs, o por cualquier otra razón…


httpd not running, trying to start
(98)Address already in use: make_sock: could not bind to address 127.0.0.1:80
no listening sockets available, shutting down
Unable to open logs

El problema es que intenta atarse dos veces al puerto 80 en 127.0.0.1, fallando la segunda vez, lo que produce como resultado que termine el proceso completamente. En el caso de nuestro instalador, la solución pasa por comprobar que la IP que te configuran no es la 127.0.0.1, para evitar poner dos veces la misma combinación de IP y puerto en el fichero.

Jornada de presentación de trabajos fin de grado

Este año es el primero que se ofertan Trabajos Fin de Grado en la Universidad Rey Juan Carlos. Las cosas han cambiado un poco respecto a lo que era el Proyecto Fin de Carrera en las titulaciones del antiguo plan de estudios. Uno de los cambios principales es que hay que hacer una oferta oficial de TFGs por parte de los profesores a través de una aplicación corporativa, y los alumnos a su vez tienen que «apuntarse» en las ofertas que más les atraigan.

Como consecuencia, esto ha traído un continuado goteo de emails de alumnos pidiendo reuniones con nosotros para informarse de los TFGs que tanto Mica como yo hemos ofertado a través de la herramienta a la que me refería antes. Para facilitar un poco las cosas (en la medida en que podemos hacerlo), hemos decidido hacer una presentación conjunta de los proyectos que ambos hemos propuesto. Puedes ver las ofertas, y una breve descripción (que sabemos que no tenéis disponible en la herramienta), en esta página web en el wiki de Sidelab.

Además, hablaremos también de la normativa relativa al Trabajo Fin de Grado, tratando de aclarar algunos puntos al respecto. Mica se ha currado un breve resumen que va directamente al grano al que quizá te interese echar un vistazo. Hay cosas que aún están por decidir desde la escuela (como la forma de defensa de las prácticas, si se podrá presentar el proyecto en cualquier momento del curso académico, etc), pero daremos toda la información de la que dispongamos.

Así que ya lo sabes, si quieres enterarte de qué van esas propuestas de TFGs que te intrigan, vente el jueves 24 de mayo, a las 17:30 a la presentación de ofertas de TFGs de Sidelab, en el seminario 270 del edificio Departamental II (según se sube a la izquierda).

Te esperamos.

Una pequeña puesta al día


Normalmente, cada vez que cambiamos el año la blogosfera se llena de propósitos más o menos realistas para el nuevo año. A nosotros también nos hubiera gustado iniciar este 2012 con una entrada en el blog de este tipo pero la verdad es que no tenemos tiempo para nada. En estos últimos meses apenas hemos podido escribir sobre los proyectos en los que estamos involucrados. Valga esta entrada para dar algunas pinceladas…

En mi caso particular, últimamente he estado trabajando en la adaptación de Drupal (un CMS que vamos descubriendo poco a poco) para un sitio de comercio electrónico muy particular del que espero poder hablaros en breve, una vez que lo pongamos en producción. Si los plazos que nos hemos marcado son razonables, en un par de iteraciones más debería ver la luz. Además, he estado redactando un libro que se acaba de publicar, en cuya redacción me invitaron a participar Raquel Martínez y Víctor Fresno, de la Universidad Nacional de Educación a Distancia (UNED).

Junto con Mica estoy colaborando en un proyecto de red social para investigadores, al cual reservaremos una entrada también cuando esté maduro. En un alarde de pésima estimación, los compañeros del departamento al que pertenezco, me pidieron que llevara a cabo el proyecto de cambio de la web del departamento, y sin pensármelo dos veces acepté. Estamos intentando hacerlo con Joomla (un CMS que conocemos pero en el que no somos expertos) porque el alumno que lo lleva tiene experiencia, ya os comentaremos lo que sale de aquí.

Con ocasión de un nuevo programa de proyectos de innovación educativa de la URJC, estamos dirigiendo un proyecto en el que se está preparando un instalador de un sistema de integración continua que pueda usarse out of the box, tanto a nivel profesional como en determinadas asignaturas para realizar una primera validación de las prácticas entregadas por los alumnos.

En el tema docente, tanto Mica como yo estamos impartiendo docencia nueva este año. Mica está impartiento Programación Concurrente y Desarrollo de Aplicaciones Web en el grado, y yo estoy dando Lenguajes de Programación (paradigma funcional y lenguajes dinámicos) y Desarrollo de Aplicaciones Distribuidas. Además este curso nos invitaron a dar parte de la asignatura Development Tools del Máster de Software Libre de la URJC, donde hemos hablado de herramientas para mejorar la productividad.

Además, hemos seguido con la asignatura de Arquitecturas Software de Sistemas Complejos, donde impartimos la parte de OSGi y servicios web, y las que están más relacionadas con la investigación, del Máster de Sistemas Telemáticos e Informáticos (Optimización de Sistemas de Comunicación y Algoritmos Avanzados). Os dejo aquí una foto de la última sesión de Algoritmos Avanzados, donde Rafael Martí, Catedrático de la Facultad de Matemáticas de la Universidad de Valencia impartió la primare parte de un ciclo de sesiones sobre Programación Matemática.

Es mucho trabajo como para poder además ir publicando entradas en el blog al ritmo al que nos gustaría. Hay muchas cosas que contar, pero escribir una entrada (medianamente elaborada) cuesta un tiempo del que actualmente apenas disponemos. Pero bueno, habrá que sacar el tiempo de debajo de las piedras. A ver si en las próximas semanas podemos ir desgranando algo más de cada uno de estos proyectos.

Eso sí, de lo que no paramos es de leer sobre los temas que nos interesan. Aunque no siempre podemos escribir una entrada larga como esta, al menos tratamos de publicar aquello que nos parece más importante a través del twitter de sidelab. Si quieres puedes seguirnos en @sidelab_ para estar al día de los temas por los que nos movemos.

Sidelab cumple 2 años!!!

Tal día como hoy hace 2 años, el 23 de Octubre de 2009, registramos dominio sidelab.es. Es cierto que un laboratorio de desarrollo no nace el día en el que se registra el dominio, pero es uno de esos eventos que marcan un antes y un después.

En realidad sidelab se viene forjando desde hace mucho mucho tiempo. Patxi y yo, las dos personas que dirigimos el laboratorio, siempre hemos estado involucrados en el mundo del desarrollo de software. Llevamos colaborando desde hace bastante años y también hemos realizado desarrollos de forma independiente. Hoy no voy a entrar en los detalles de lo que hacemos en el día a día de Sidelab, pero sin duda lo mejor de todo son las interminables conversaciones sobre desarrollo, administración, ingeniería del software, orientación a objetos, ALM, Eclipse, proyectos, ideas, algoritmos, estructuras de datos, tecnologías, Android y demás frikadas… como dice una conocida marca de comunicaciones… «compartida, la vida es más».

Para ilustrar esta entrada, os dejo la tarta más freak que he tenido, la que me regaló mi novia por un cumpleaños con Duke, la mascota de Java.

… Dennis Ritchie también

Dennis Ritchie, premio Turing en 1983, falleció el pasado 8 de octubre. Aun no siendo tan conocido como Steve Jobs, sus aportaciones al mundo de la informática han sido trascendentales. Dennis Ritchie fue el creador del lenguaje C, el lenguaje por antonomasia de los sistemas operativos. C sigue siendo un lenguaje de gran importancia hoy en día, casi 40 años después de que fuera creado.

.

Incluso si eres un fan de Java, como lo somos nosotros, no puedes dejar de tener un ojo puesto en C. Este lenguaje se encuentra en la base de casi todos los dispositivos que utilizamos, incluyendo nuestros móviles Android. De hecho, hace unos años, impartimos un seminario sobre la integración de Java y C mediante JNI y JNA (por cierto, tanto las transparencias como el código utilizado están disponibles aquí)

Ritchie fue además co-autor del sistema operativo Unix, y trabajó en Alcatel-Lucent creando Plan9 e Inferno, grandes conocidos de los alumnos de nuestra universidad.

Steve Jobs nos deja…

Si alguien me conoce personalmente sabrá que desde hace un tiempo critico la actitud de Apple en ciertas estrategias empresariales. No tengo mucho reparo que hacer desde el punto de vista tecnológico, todos mis comentarios se dirigen habitualmente a las medidas político-comerciales de esta empresa. Apple es la plataforma más cerrada que existe. Creo que todos tenemos un punto de vista sobre este tema… algunas personas tiene un punto de vista más práctico, otros tienen más ideales y otros consideran que el modelo de Apple es como debería de ser toda la electrónica de consumo. Pero hoy no estamos aquí para eso… estamos aquí para rendir el merecido homenaje a una persona que ha cambiado el mundo en el que vivimos.

Creo que el cambio más radical para todos fue la llegada del iPhone al mundo. Todos los amantes de la tecnología llevábamos años esperando un «cacharro» como el iPhone, pero ningún fabricante conseguía hacer nada con un mínimo de calidad. Hasta que Apple, una empresa de ordenadores, presentó un teléfono móvil que revolucionó el mundo.

Lo dicho, Steve Jobs… descanse en paz.

 

Programación (segura) en Java

A no ser que estés programando una prueba de concepto, deberías programar pensando en la seguridad del código. Incluso aunque estés programando una prueba de concepto, deberías programar pensando en la seguridad del código. ¿Por qué? Porque no nos engañemos… hay una alta probabilidad de que las pruebas de concepto acaben en producción tarde o temprano.

Acaba de publicarse The CERT Oracle Secure Coding Standard for Java, un libro con buenas prácticas de programación segura en Java. Ahora mismo estoy haciendo la petición a la biblioteca de la URJC.

 

 

Sidelab en el Máster Oficial de Software Libre de la URJC

Sidelab siempre ha sido «simpatizante» del software libre. Entendemos que es un movimiento muy beneficioso para el desarrollo y la informática. Hace unos años sólo unos pocos confiaban en la viabilidad de ofrecer el software de forma gratuita, que se pudiera copiar legalmente e incluso que se pudiera modificar. Ahora está demostrado cómo hay muchos ejemplos de empresas que pueden ser rentables y apoyar esta forma de entender el software.

La Universidad Rey Juan Carlos tiene la fortuna de contar con el grupo LibreSoft, un grupo de investigación que entre otras muchas cosas estudian el software libre desde un punto de vista formal. Por supuesto, también hacen muchas otras cosas como buenos frikis que son. De entre todos sus proyectos, organizan el Master Oficial en Software Libre. Ya llevan unos cuantos años impartiendo el máster. Si eres asiduo de Barrapunto habrás visto varias entradas relacionadas con él.

El pasado verano, Jesús G. Barahona y Gregorio Robles, nos propusieron a Patxi y a mi participar en su máster, impartiendo unas sesiones en la asignatura de Development Tools para hablar sobre Eclipse, Git, forjas de desarrollo, Redmine, Mylyn, etc…  Nosotros, por supuesto, aceptamos encantados.

Ya hemos tenido la primera sesión, que trató sobre Eclipse, el desarrollo de Python en él y su integración con Git. Pasamos una tarde entretenida 🙂