Mejorar el rendimiento de las aplicaciones Web con Perl


Hace un tiempo me pidieron que buscara una solución para mejorar el rendimiento de una aplicación Web escrita en perl a base de CGIs. La verdad es que este tipo de aplicaciones escasean ya bastante, y las soluciones no son tan numerosas como las de PHP, como eAccelerator o XCaché.

Podemos encontrar una solución bastante aceptable en el libro de O'Reilly Apache Cookbook en los capítulos: 11.14. Speeding Up Perl CGI Programs with mod_perl y 11.15. Caching Dynamic Content

También nos puede servir la presentación de SlideShare From CGI to mod_perl 2.0, Fast!.

El mercado de los smartphones

Hace ya casi un año, mi esposa perdió su móvil con diseño de Agatha Ruiz de la Prada durante una celebración a la que no fuí invitado. Al día siguiente compró un móvil básico por 0 euros. Me resultaba muy curioso comprobar como todos mis sobrinos se reian de su movil con comentarios como "no tiene juegos", "no tiene internet", "no puedes cambiar el fondo", "no tiene músicas chulas", "no tiene bluetooth", y una largo etc. Estos sobrinos tienen 5,6,7,12 y 15 años. Todos coincidían y mi respuesta siempre era la misma: Un móvil sirve para llamar por telefóno, no para cambiar el fondo de la pantalla, y ellos más se extrañaban.

Cuando mi esposa se cansó de oirlos, un día empezó a decirles: "Me voy a pillar un móvil que vais a flipar". Meses después consiguió un iPhone 3G liberado. Ahora los sobrinos se pegan (literalmente), por usar el móvil para jugar, tocar el piano, navegar, etc.

La moraleja de esta historieta es que lo suplementario despierta ya más interés que lo necesario cuando hablamos de casi cualquier cosa, y comprobar cómo los más pequeños ya tienen configurados mentalmente determinados patrones de consumo, que cuando sean adultos seguro ayudarán a perpetuar aún más, una sociedad económica basada en el consumo voraz.

Lo que no deja de sorprenderme es la forma en la que Apple ha irrumpido en un mercado en el que no tenía ninguna presencia y ha desbancado a toda la competencia con sus propios recursos y sus ideas. Posiblemente existan aparatos técnicamente mucho más equipados, eficentes y baratos que el iPhone, pero el éxito de Apple, a mi juicio, radica en dos factores fundamentales:

  1. Mejorar la experiencia del usuario, que lo han hecho extremadamente bien y han marcado toda una tendencia en el mercado: El móvil que viene con teclado numérico nos evoca recuerdos de los Walkie-Talkies, y ya no digo nada de las Blackberry.Siempre me he maravillado con la ingeniera de Telecomunicaciones, cómo consiguieron crear un aparato que con sólo 12 botones era capaz de ponerte en contacto con cualquier lugar del planeta, mientras que nosotros los informáticos, sólo habíamos logrado reducir el número de botones a 105. Apple ha ido más allá, y ha quitado todos los botones del aparato... cada vez que veo un movil sin teclado lo recuerdo, y no puedo evitar asombrarme.

  2. El mercado de aplicaciones, ha abierto todo un nuevo sector económico dentro del mundo del software, lleno de oportunidades. Este creo que ha sido el mayor logro de Apple: Se han reinventado como ya hicieran con el mercado del ordenador personal.

No cabe duda que el mercado de aplicaciones de Apple es todo un éxito en plena crisis económica, pero pienso que está en peligro a medio y largo plazo: Me temo que el futuro está en el mercado de aplicaciones de Android, por varias razones.
  1. iOS es de Apple para dispositivos de Apple. Pronto los fabricantes de móviles que han sido desbancados, como Nokia, empezarán adoptar Android en sus dispositivos, como ya están haciendo HTC, Samsumg y Motorola, simplemente por una razón de coste: no tendrán que mantener el desarrollo de sistemas operativos para sus móviles, sólo adaptar Android para que funcione de manera óptima, y así centrar sus esfuerzos en I+D para mejorar las características técnicas de los dispositivos. Volverán a innovar las funcionalidades de los dispositivos, y a precios que serán más asequibles que los equivalentes al iPhone. La batalla de los sistemas operativos para móviles se reducirá a dos contrincantes.

  2. Actualmente los nuevos cacharros de Apple tienen problemas de stock en los mercados. Siempre hay que esperar, como cuando hace unos años intentabas comprar un coche Audi. Cuando la mayoría de fabricantes apuesten por Android, inundarán el mercado de equipos con el sistema operativo de Google, donde la elección entre elegir un móvil u otro estará en las características técnicas y complementos que traiga de serie, y en función de ello, en el coste: Cuando alguien intente comprar un móvil, y tenga que elegir entre esperar unas semanas o llevárselo puesto, no todos estarán dispuestos a esperar, de la misma manera que no todos estarán dispuestos a desembolsar el precio que hay que pagar, por pertenecer al exquisito club de clientes de Apple.

  3. La política y el celo en pro de la calidad, con el que Apple gestiona las aplicaciones que forman parte de su mercado, hace que no tengamos disponibles mucha clase de aplicaciones. Poco a poco, irán apareciendo nuevas aplicaciones en el mercado de Android que no estarán disponibles en el mercado de Apple, y algunas tendrán mucho éxito: Estas empezarán a ser determinantes para que los consumidores se decidan a elegir un dispositivo u otro.

  4. Aunque no he tenido la ocasión de hacer aún nada para móviles, sí que he hablado con gente que ha sido capaz de desarrollar el juego de las tres en raya para Android, en un domingo por la tarde, sin saber nada excepto programar en java. Y también me han comentado que para Apple es mucho más complicado y no tienen tantas facilidades para hacerlo, como te ofrece Google. En definitiva, es más fácil desarrollar aplicaciones para Android que para iOS.

En resumen, a medio y largo plazo, habrá más dispositivos con Android, y habrá muchas más aplicaciones para Android porque la política de publicación no es tan restrictiva y son más fáciles de desarrollar, por lo que pienso que el futuro es Android, aunque no estoy seguro del todo, porque pienso que la historia se repite, y me recuerda mucho a lo que pasó con Apple y Microsoft en los años 80 con el mercado del ordenador personal: ¿Habrán aprendido de los errores del pasado?, ¿volverá Steve Jobs a tropezar dos veces con la misma piedra? ... espero con curiosidad ver la reacción de Apple ante esta amenaza, pero pienso, que la solución pasa por abrir su plataforma y tener políticas menos restrictivas, en definitiva seguir el juego de la estrategia Open Source de Google, y aprender de la estrategia que llevó a cabo Microsoft en el pasado.

Máster

Mi querida sobrina Gema me preguntó el domingo pasado:
- Tate ... ¿qué es un Máster?

...y esta fue mi respuesta, que espero forme parte de alguna recopilación de citas célebres digna:


Un máster es lo que va antes de un miéscoler.

Ignacio Barrancos - Explicaciones del sentido de la vida

Continuidad de la implantación de Ossim

Dentro de la gran variedad de servicios que podemos ofrecer basados en Software Libre, está el de monitorización de la seguridad de la red, con ayuda de Ossim. Esta herramienta es todo un referente entre las de su género y resulta complicado decir con exactitud qué es, por ello usaré la definición que usa la Wikipedia: OSSIM (Open Source Security Information Management) es una colección de herramientas bajo la licencia BSD, diseñadas para ayudar a los administradores de la red en la seguridad de los equipos, la detección de intrusos y la prevención.
Inicialmente nos pueden contratar para el despliegue inicial de la herramienta y la correcta configuración de todas y cada una de las herramientas que componen la suite: Esto no sólo consiste en instalar la ISO que podemos descargar desde la web. Deberíamos considerar realizar trabajos como:

  • Revisión y actualización de firmware de servidores con los que trabajar
  • Instalación y configuración del sistema operativo en los equipos destinados a Ossim
  • Instalación y configuración básica de Ossim y agentes en las sondas. Configuración jerárquica.
  • Configuración de switches.
  • Desarrollo de scripts, y programas que permitan la integración entre las diferentes herramientas y Ossim (purgas de BBDD, recuperaciones, backups, agentes windows, linux, ossec... )
  • Desarrollo de nuevos plugins para Ossim según se requiera (monitorización desde Nagios, monitorización Windows Update, NRPE-Windows, etc)
  • Instalación y configuración de los agentes necesarios en los equipos a monitorizar (snare, syslog, etc)
  • Y por supuesto, lograr la adecuación de Ossim al Plan de Seguridad:
    • Configuración de activos (servidores, redes), alertas, respuestas, notificaciones,
    • Programación de análisis de vulnerabilidades, Ponderación de los riesgos, y priorización de activos
    • Definición de nuevas reglas de correlación

Pero una vez que hemos realizado estos trabajos... ¿qué pasa?, somos conscientes que la seguridad es un proyecto del día a día, y no es algo con un comienzo y final, se debe estar contínuamente encima de ello, ¿cómo podemos vender esto?. Esta es mi propuesta:
  1. Trabajos de mantenimiento de la infraestructura Ossim que incluyen, la serie de tareas que habría que realizar para mantener operativa tal cual se diseñó todo el despliegue de Ossim:
    • la actualización controlada del sistemas Debian y aplicación de actualizaciones,
    • Solución y respuesta de alertas reportadas por Nagios sobre los equipos OSSIM
    • Revisión periódica de la base de datos y el resto de servidores, para detectar problemas de capacidad y rendimiento
    • Adaptar las configuraciones a los cambios que pudiera haber en la red y en la infraestructura de servidores
    • Configuración de servidores Windows y Linux, para reportar correctamente los eventos de seguridad a las sondas
    • Mantenimiento de la política de seguridad, que consistiría en mantener actualizados el inventario de hosts, redes, Assets, Niveles C&A, etc.
  2. Trabajos de soporte de Ossim, que incluirían los trabajos para adaptar y mejorar el despliegue el diseño inicial en base a los nuevos retos y problemas que vayan surgiendo en el futuro:
    • Desarrollo de nuevas alertas, directivas y plugins para monitorizar nuevos eventos de seguridad Implantación de nuevas sondas para adecuar la infraestructura de monitorización a cambios de topología de red y cambios en la infraestructura de la red
    • Revisión periódica de las alertas de seguridad para detectar la necesidad de configurar nuevas directivas y adaptar la política de seguridad
    • Actualización de las sondas a las nuevas versiones de OSSIM, que en la mayoría de los casos requerirán de modificar el fuente de la aplicación (phps de la consola web, cambios en BBDD), como ya me ha sucedido con las actualizaciones realizadas.
    • Aumentar el nivel de monitorización con el despliegue de agentes de Ossim en los propios servidores herramienta.
    • Revisión periódica de las anomalías detectadas y solución
    • Gestión y mantenimiento periódicos de informes de la herramienta
  3. Trabajos de soporte avanzados de seguridad para aumentar y mejorar el nivel de monitorización y dar respuesta a los incidentes de seguridad detectados por OSSIM
    • Dar respuesta a los tickets generados por OSSIM: El administrador de seguridad generará tickets a partir de las alertas, y estos tickets habrá que darles una solución, en la mayoría de los casos interviniendo en la configuración del servidor que presenta la alerta
    • Programación de escaneado de vulnerabilidades y solución a las mismas en base al informe de OpenVAS y la aplicación de cambios en la configuración del servidor afectado
    • Aumentar el nivel de monitorización implantado HIDS (Ossec) en los servidores más sensibles a la seguridad.

El primer grupo de trabajos, mantenimiento de la infraestructura, debería ser posible acometerlos con la documentación que se adjunte con el proyecto inicial, de forma que se mantenga la infraestructura tal cual está diseñada.

El segundo grupo de trabajos requiere de un conocimiento más avanzado sobre la herramienta e incluso multidisciplinar dado que algunos de ellos requieren de desarrollos en diferentes lenguajes de programación y sistemas al tratarse de tareas no rutinarias. Para llevarlos a cabo con éxito se requiere de una formación exhaustiva en la herramienta Ossim que se puede conseguir leyendo la documentación oficial o en su defecto, se recomienda contar con apoyo de un técnico experto formado para ello.

El tercer grupo requiere de conocimientos expertos más avanzados en diferentes sistemas para dar solución a cada uno de los incidentes que puedan detectarse y que en la mayoría de los casos tendrán solución distinta: Montar cortafuegos, configurar sistemas Windows y Linux, securizar servicios, actualizar versiones de software, etc.
Para cada uno de estos tipos de trabajos el procedimiento de actuación consistirá en solucionar el incidente de seguridad, pero lo que variará serán las entradas y salidas de ellos:
  • Como entradas de estos incidentes, se tendrán tickets generados en Ossim, que se comunicarán al responsable de solucionarlos con una llamada telefónica, una solicitud de asistencia. Ello derivará en un diagnóstico inicial y la elaboración de una propuesta de solución.
  • Las salidas de estos incidentes deberían ser informes de actuación donde se detalle el origen y diagnóstico del problema y las medidas realizadas para solucionarlo.

La propuesta para la contratación de ayuda externa podría ir en función de diferentes factores:
  • En función del tiempo de respuesta ante incidentes para la elaboración de un diagnóstico preventivo, y en función del tiempo en el que existe compromiso de resolver el incidente.
  • En función de una cantidad fija horas en las que el apoyo realizaría labores proactivas que darían como resultado una serie de informes periódicos y otra cantidad de horas destinada a solucionar incidentes y realización de tareas.

Bueno, este es mi punto de vista.

Qué no me gusta de Spotify

Debería estar preparando el proyecto que empiezo mañana. Acabo de iniciar mi equipo Linux y al preparar el entorno de trabajo he ido a iniciar Spotify. Entonces me he acordao que hace unos días se publicó la versión nativa para Linux con algunas limitaciones, yo aún la uso con Wine (contra casi mi voluntad) y he pensado ¿la pruebo?, y a los dos minutos he decidido esperar hasta final de año, cuando actualice las distribuciones del equipo :(. Como se me ha activado el chip de la procrastinación, he pensado en algunos posts que leí hace tiempo sobre las limitaciones del reproductor, y para satifascer mi ansia procrastinadora, me he decido a escribir mi impresión sobre Spotify después de estar usándolo casi a diario durante meses.
Estas son:

  1. La publicidad está totalmente desaprovechada y no está nada dirigida, a pesar de tener todo a favor. Tíenen mis gustos musicales, la música que escucho, lo saben casi todo de mí en cuanto a música, y se empeñan en meterme anuncios del álbum de Bisbal, o de Alejandro Sanz ¿cuántas veces he escuchado a Bisbal?. Entiendo que deben financiarse y deben incluir anuncios de INGDirect o Movistar, pero sigo sin entender cómo pierden el tiempo y ancho de banda intentando venderme música que saben que no voy a comprar.

  2. El catálogo sigue siendo reducido: ¿dónde está toda la discografía de los Beatles o de AC/DC?. Supongo que esto estará causado por falta de acuerdo con las discográficas y sociedades de autores, pero creo que empieza a ser un problema para Spotify. Creo que como modelo de negocio es todo un acierto, pero si no consolidan el catálogo pueden venir competidores más voraces en las negociaciones con las discográficas y arrebatarles la oportunidad. Deberían completar el catálogo.

  3. Las sugerencias de música son demasiado pobres, tanto que no me ayudan a descubrir nueva música, y creo que es su principal problema. Me gusta escuchar determinada música, pero al final, termino cansado y me apetece escuchar nuevas cosas, pero en consonancia con mis gustos. Cuando buscas un grupo te aparecen grupos similares en cuanto al estilo, pero esto no creo que sea suficiente, de hecho, sólo recuerdo en un par de ocasiones haber seguido alguna recomendación. Lo ideal sería tener un sistema de recomendación similar a la tienda de Amazon: Otros usuarios que vieron este libro, también compraron este otro.Para descubir nueva música recurro a listasspotify, que no tiene nada que ver con la empresa Spotify. Esta web, que es un excelente idea, debería haber surgido de la propia compañía, deberían explotarla con publicidad y recompensar a los usuarios más activos con suscripciones gratuitas, para garantizar los contenidos sin aumentar su infraestructura.

  4. Sus opciones sociales. La integración con los grandes de las redes sociales como facebook y twitter sólo se queda en un sistema de recomendación musical, pero me temo que no ofrece a tus seguidores qué estás escuchando ahora mismo (para que ellos también puedan escucharlo al mismo tiempo) en su cliente Spotify. Creo que se puede explotar más el uso de tu red social, porque al final se fundamenta en la participación del usuario: Alguien que te hace una recomendación. Pienso que es mucho más fácil explotar la curiosidad humana¿qué estará escuchando esta persona ahora mismo?, que explotar ese sentido de la colaboración, que debemos tener todos :P, cuando nos animamos a arrastrar la canción que estamos escuchando, hasta alguno de nuestros contactos de facebook: Si estás escuchando música, normalmente estás haciendo otra cosa, y apenas visitas la consola de Spotify. La usamos cuando decidimos cambiar de música y es ahí cuando vendría bien tener: ¿qué estará escuchando esta persona?
    Esto también podría permitir optimizar el consumo de ancho del banda. Cada vez son más las personas que usan Spotify dentro de la misma organización y lo han sacrificado por la antigua unidad de red compartida donde todos dejaban su música y la usaban. El cliente Spotify podría observar vía multicast los clientes cercanos de la misma subred y hacer recomendaciones sobre que está escuchando ahora mismo la gente que tienes cerca, para reducir el ancho de banda hacia internet, porque no se tardará mucho tiempo en que las organizaciones empiecen a filtrar el tráfico musical.

  5. Jamendo. ¿Por qué dedicarse sólo a la música que te ofrecen las discográficas?, ¿por qué no un acuerdo con Jamendo para reproducir y vender música?, ¿por qué no ofrecer a grupos modestos y anónimos vender su música a través de Spotify?. Deberían aspirar a ser la única tienda de música de internet. No lo entiendo :(.

  6. Mejorar la experiencia del usuario. En general la usabilidad del programa es excelente, pero... ¿por qué conformarse sólo con la portada de los álbumes y algunas críticas? ¿por qué no indexar también vídeos musicales desde youtube, vimeo, etc, la web oficial de los artistas, su club de fans, la historia del grupo o las letras de las canciones que estamos escuchando?

  7. Las suscripciones. El modelo de pago por suscripción es acertado, y de hecho yo he sucumbido y pagado varios meses de suscripción, pero en casa, tampoco somos unos grandes consumidores de música. Pagamos la suscripción mensual pero claro, el pago está asociado a una cuenta de usuario, y el cliente no te permite iniciar sesión desde dos ubicaciones diferentes de forma simultánea. Sucede que si yo estoy escuchando música desde el trabajo, y mi hijo inicia sesión desde casa me echa y no me deja escuchar nada :(. Esto está bien, porque como empresa su objetivo será que todos los habitantes del planeta paguen su suscripción mensual, pero deben entender que una familia que tenga de 3 a 5 usuarios, no sucumbirá. Sin embargo, sería posible incrementando ligeramente el precio de la suscripción posibilitar la compartición de la cuenta, de forma que fuera más económico que pagarla por separado y es muy posible que les repercutiera más ingresos, evitando la huída de los usuarios: ¿Qué hago yo cuando no puedo escuchar música porque mi hijo me ha echado?... sencillamente buscar otro reproductor, web, servicio, etc... el día que encuentre algo mejor dejaré de pagar mensualmente a Spotify, es así de sencillo. No deberían darle oportunidad a sus clientes a probar otras alternativas.

En resumen: Está muy bien, pero en mi modesta opinión aún pueden hacerlo mucho mejor.

España campeona del mundo

Pensaba escribir una entrada en tono de crítica sobre el carácter separatista de algunas clases políticas de mi querida España, haciendo una reflexión sobre como, cuando un grupo de españoles de todas las regiones trabajan juntos, son capaces de conquistar el mundo, pero pensándolo mejor, creo que estos políticos no se merecen más protagonismo del que ya tienen, ni más recompensa que el sueldo que ya reciben, por intentar conquistar alguna competencia del estado y rebañar unos cuantos millones de euros de los presupuestos del estado: Les invito desde aquí a que reflexionen con el ejemplo de estos chavales de la selección, que sí parece que representan a la mayoría del pueblo, y ya han pasado a formar parte de la historia.

Enhorabuena España: Nunca imaginé que viviera esto. Gracias.

El otro día vi una viñeta de MEL, que me hizo mucha gracia, sobre todo esto :P