Making-of de un lanzamiento web

condenast-profesionalLlevo un tiempo sin escribir por estar bastante liado con Acilia, especialmente con el lanzamiento del sitio web de Condenast Profesional y el sistema de gestión de contenidos (CMS) para gestionarlo. Ha sido fruto de la cooperación entre el equipo de desarrollo y producto de Condenet, Uno Comunicación y Acilia Internet.

Desde el principio se planteó el proyecto con todos los ingredientes que un proyecto debe tener: Un buen análisis de concepto, usabilidad y diseño, para lo que contamos con Uno Comunicación, la implicación del cliente en el desarrollo, definición y seguimiento, para lo que el equipo de Condenet estuvo y estará implicado, ya que se encargará del mantenimiento evolutivo de la aplicación, y nosotros desde Acilia, que pusimos toda la carne en el asador para desarrollar la aplicación. Y no podían faltar los deadlines ajustados, por supuesto ;-)

El proyecto ha sido muy completo, hemos configurado infraestructura, servidores, programación, diseño, desarrollo tanto en frontend como en backend… ciertamente lo hemos hecho todo desde cero, por lo que la satisfacción es realmente mucho mayor. El tiempo ha sido muy justo y  récord, teniendo en cuenta que todo empezó a principios de Junio y empezamos a desarrollar a principios de Julio.

El verano en Madrid, los momentos de ajustes de última hora y días largos se han llevado mejor por el hecho de contar con gente muy implicada que se lo ha pasado bien con lo que hacía, con momentos buenos, malos y anéctotas que mejor nos guardamos para recordar frente a unas cervezas, respirando ambiente internetero del bueno. Da gusto lanzar proyectos así!

Creatas y Ejecutas

Me encanta re-encontrarme con chascarrillos de email antiguos, que en su día me hicieron mucha gracia, y que quedaron enterrados en un Inbox hace años. Hoy le toca el turno a Creatas y Ejecutas, una tira de Daniel Solana. En este episodio un Ejecuta trata de hacer un backup de la información de su disco duro ;-). Lo disfruten (mejor hacer click para verlo más grande)

Hackers de poca monta

hackerHoy en día sigue existiendo la idea de que por el hecho de ser o autoproclamarse hacker, se tiene un alto nivel informático y uno tiene una especie de halo cool, con un aire de peligrosidad amenazante, que puede ser letal para cualquier servidor en la red.

Lo cierto es que el 99% de los hackers, y un 100% de los que presumen de ello, son simples followers de agujeros que descubren otros y que comparten por canales propios y listas de distribución,  como cualquier otra comunidad. En definitiva, son meros ejecutores de descubrimientos de otros, lo que vienen a ser lurkers.

Un día cualquiera, en un servidor dedicado con el puerto 22 abierto, se ecuentran cosas en /var/log/auth.log como:

Aug 31 16:39:07 localhost sshd[7273]: Invalid user test from 119.70.132.135
Aug 31 16:39:07 localhost sshd[7273]: (pam_unix) check pass; user unknown
Aug 31 16:39:07 localhost sshd[7273]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=119.70.132.135
Aug 31 16:39:09 localhost sshd[7273]: Failed password for invalid user test from 119.70.132.135 port 21700 ssh2
Aug 31 16:39:11 localhost sshd[7275]: Invalid user webmaster from 119.70.132.135
Aug 31 16:39:11 localhost sshd[7275]: (pam_unix) check pass; user unknown
Aug 31 16:39:11 localhost sshd[7275]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=119.70.132.135
Aug 31 16:39:13 localhost sshd[7275]: Failed password for invalid user webmaster from 119.70.132.135 port 21870 ssh2
Aug 31 16:39:15 localhost sshd[7277]: Invalid user username from 119.70.132.135
Aug 31 16:39:15 localhost sshd[7277]: (pam_unix) check pass; user unknown
Aug 31 16:39:15 localhost sshd[7277]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=119.70.132.135

Son ataques automáticos, que hacen intentos de entrar en el sistema con passwords comunes para usuarios que pueden ser típicos, como “test”, “webmaster” o “root”. Sin embargo, salvo que hayas puesto como contraseña 1234 o aaaa, no habrá mayor problema, aunque siempre es recomendable tomar medidas, como sólo abrir el puerto para distintas IPs o cambiarlo de número, con lo que habrá ataques pero en menos cantidad y más manuales.

Hoy he tenido la mala pata de tener una versión antigua de phpMyAdmin y alguien se aprovechó de esa vulnerabilidad, logrando hacer algunos destrocillos menores en el servidor que aloja este blog. Se notaba que era de poca monta porque cometía errores absurdos, tales como codificar mal algunas instrucciones que pasaba por url, con lo que fallaban. Tengo localizado el servidor desde donde atacó, con bastantes sospechas de que puede ser el suyo propio, pero la verdad es que meterse en un fregao de este tipo requiere tiempo y al final no se consigue nada.

La suerte que tenemos es que salvo que seas una gran corporación, un banco o similar, siempre te tocarán hackers de poca monta, que sí, molestan, pero mirándolo por el lado bueno, aprendes bastante de tu propio sistema.

Soy un romático y creo en la antigua ética hacker. Dejo las puertas medio abiertas, esperando que algún día entre uno de verdad y deje un .txt diciendo “Adrian Lamo was here”.

VirtualBox: La mejor forma de tener Windows en Linux

vbox_logo2_gradientUna de las mejores formas de escapar al bajo rendimiento que ofrece Windows Vista a la hora de elegir un portátil es instalar Linux. La ganancia en rendimiento puede llegar a ser impresionante, y lo digo por experiencia propia.

El problema de trabajar con Linux es que, aunque las posibilidades y estándares avanzan a pasos agigantados, siempre va a haber problemas de compatibilidad para ciertas aplicaciones y, por qué no decirlo, hay programas exclusivamente disponibles para plataformas Windows muy superiores. Ejemplos de esto puede ser MS Office (OpenOffice está por detrás aún en prestaciones y no es 100% compatible) o Photoshop (GIMP está lejos de ofrecer las mismas posibilidades y facilidad de uso). Además, en mi caso, es fundamental poder probar la visualización de los desarrollos web que hacemos en esa lacra aún existente llamada Internet Explorer 6.

Hay algunas alternativas, como pude ser instalar Wine. No he probado las últimas versiones, pero las anteriores que probé no ofrecían todas las posibilidades a la hora de instalar programas que sólo funcionan en Windows.

Pero la mejor sin duda es la virtualización, y para ello existe una aplicación perfecta para este propósito: VirtualBox, desarrollado por Sun. Está disponible para sistemas operativos Windows y Linux, y a partir de ahí se pueden instalar máquinas virtuales de multitud de sistemas operativos.

De esta forma podemos tener un sistema Linux, con lo que ganaremos en velocidad y prestaciones entre otros beneficios y utilizar el lento y viejo Windows sólo para las aplicaciones que necesitemos.

Puedes elegir hacer máquinas virtuales de sistemas operativos Linux en un Windows o al revés, hacer máquinas virtuales Windows si tu sistema operativo es Linux. De esta forma puedes disfrutar de las dos opciones.

Hablando de energía

infoener_logoDesde hace un par de meses estamos trabajando en un nuevo sitio de producción propia en Acilia. Se trata de Infoener, que girará en torno a la energía y el papel que tendrá Internet en mejorar los sistemas de información y optimización en torno a este tema que será crucial en los próximos años.

De momento podréis encontrar información de actualidad acerca de la energía, tanto en el aspecto más científico ( biomimetismo, energía inalámbrica, …) como innovaciones que vendrán en la producción de energía que tendrá su impacto en el día a día ( baterías con butano, coches eléctricos, …). Para el futuro tenemos planeadas algunas funcionalidades bastante interesantes en torno al asunto.

Esperamos que os resulte interesante y veros por ahí de vez en cuando.

Arranca la temporada de Quinielas en Quiniela15

Quiniela 15 - Pronóstico de la Quiniela de la JornadaYa tenemos todo listo en Quiniela15 para la temporada 2009-2010. Partimos básicamente con el site como lo dejamos el año pasado, aunque las mejoras están en camino y llegarán. Si quieres comprobar y mejorar tu capacidad de acierto en las quinielas y además compartir tus pronósticos con otros usuarios, pásate y comienza con tu pronóstico para la primera quiniela de la jornada.

En Quiniela15 además recopilamos los pronósticos de todos los usuarios para hacer un pronóstico conjunto. El año pasado, en media, ese pronóstico fue mejor que cualquier quinielista individual. Es una buena forma de hacer una quiniela base potente y luego combinarla con pronósticos propios y posibles resultados sorpresa.

Suerte en esta nueva temporada!

SEO: La página con optimización perfecta

Publican un artículo en SEOmoz donde hablan de consejos para construir lo que ellos llaman la página perfectamente optimizada con criterios de SEO. Es un resumen muy interesante que pone al día conceptos que se llevan barajando años. Lo más resaltable, le da una importacia relativa (imposible de medir por otra parte) a cada criterio basada en evidencias actuales. Algunos criterios SEO que no se suelen tomar muy en cuenta:

  • Utilizar etiquetas de texto Italic tiene un efecto similar a utilizar Blod/Strong.
  • La densidad de palabras no es un criterio importante a medir: Lo es el número de repeticiones.
  • Los algoritmos están empezando a diferenciar entre enlaces de navegación (a los que les da pagerank) y enlaces en footer y sidebars, a los que les desplaza menos pagerank.
  • Subdominios vs. Directorios, la ventaja (pequeña) que ganamos con el keyword como subdominio la perdemos con creces en la transmisión del pagerank.
  • El tag canonical sí es importante para evitar contenido duplicado en el site.

Con el resumen de SEOmoz, completado con la excelente guía de SEO de Javier Casares tenemos optimizaciones para rato. Los criterios se acercan cada vez más a premiar contenido relevante de verdad. Esto implica que las optimizaciones SEO serán importantes para el nivel de tráfico de un site, pero que el servicio web sea bueno lo es cada vez más.

Chrome para Linux

Ya es posibgoogle-chromele instalar el nuevo navegador de Google, Chrome, en sistemas Linux. No hay aún versión estable, pero podremos evaluar qué tal es la integración con nuestro PC. Lo primero que vamos a notar es un incremento de velocidad muy notable. Habrá que buscarse un poco la vida para hacer funcionar algunas cosas como Flash y posiblemente echemos de menos muchas de las extensiones de Firefox. Todas las instrucciones para instalar Chrome en Linux.com.

Una excelente noticia para los que usamos Linux en el día a día.

Novedades en HTML 5, a la vuelta de la esquina

Algunos navegadores ya están implementando parcialmente algunas especificaciones de HTML 5, que viene con algunas novedades interesantes. Entre los nuevo elementos podemos destacar:

  • Elementos de estructura, representados por los tags section, nav, article, header, footer y aside. Estos elementos dotarán a la web de una mejor estructura y eliminarán bastantes “divs” en el códido. No sólo eso, también añadirán semántica al documento HTML. Es seguro que los grandes buscadores incorporarán a sus algoritmos formas de reconocer las partes de los documentos.
  • Mejoras en la presentación de elementos multimedia, con tags como figure, que añadirá captions a los elementos, o video y audio, que se incluirán prácticamente como el elemento img funciona ahora.
  • Más tipos de elementos en los formularios. Ya se echaban en falta, se incluirán datetime, datetime-local, date, month, week, time, number, range, email, url, search, color.
  • Mejoras con el File API, que permitirá entre otras cosas hacer Drag and Drop desde el escritorio a la web.
  • Etiqueta progress, para indicar progreso de alguna acción que se lleve a cabo.
  • Etiqueta Dialog, para encapsular conversaciones tipo Twitter.

Todo esto y mucho más en el W3C.

Lenguajes de programación más populares

He intentando encontrar alguna estadística fiable del nivel uso de los lenguajes de programación y la verdad es que los datos son dispares según la fuente. El primer problema es encontrar la forma de medición, que no es trivial. Hay algunas aproximaciones interesantes:

Número de resultados en los principales buscadores. Es uno de los mejores criterios, pero no necesariamente el más actual, ya que puede haber resultados indexados totalmente obsoletos, pero sirve para hacernos una idea. Para este método destaca la lista TIOBE, que cada mes ofrece sus resultados. Para el mes de Agosto 2009 así va la liga:

Position
Aug 2009
Programming Language Ratings
Aug 2009
1 Java 19.527%
2 C 17.220%
3 C++ 10.501%
4 PHP 9.390%
5 (Visual) Basic 8.486%
6 Python 4.489%
7 C# 4.443%
8 Perl 4.028%
9 JavaScript 2.812%
10 Ruby 2.490%

Es un poco mezclar churras con merinas, ya que estamos comparando lenguajes como PHP o Ruby, prácticamente exclusivos Web, y otros como C++ o Java, que son multipropósito, o Javascript, que no tiene nada que ver con los anteriores. En cualquier caso, parece claro que Java, C/C++ y PHP copan las primeras posiciones.

Desconfío bastante de las mediciones de resultados de C y C++, especialmente del primero. ¿Cómo es posible discernir “C” entre resultados de búsquedas de los buscadores, teniendo cada uno además su propio criterio? Aunque no aparece ene el Top 10, merece la pena mencionar Objective-C, en el puesto 20 con una entrada muy fuerte en la lista TIOBE, impulsado sin duda por Mac OS X y iPhone.

– Por número de Ofertas de Trabajo. Quizá este criterio de una visión práctica, aunque está sujeta a necesidades de crecimiento de los distintos lenguajes y no a su uso actual. La gente de Langpop ha creado un gráfico con el API de Craiglist y este es el resultado:

Como bien se indica en Langpop, pude haber algo de “jet lag” en las cifras, ya que la demanda de uso de un lenguaje se produce bastante después de el lenguaje crezca y se popularice. En cualquier caso, llama la atención que PHP sobrepasa a Java de forma significativa, justo al contrario que en el caso de la lista TIOBE. Echando un vistazo rápido a la lista de oferta de trabajos en España, no sucede esto, y la verdad es que en otros buscadores de empleo de EE.UU. tampoco ocurre. Java gana por mucho a PHP normalmente. Curioso que esto sólo suceda en Craiglist.

– Por número de libros editados/vendidos. Quizá sea la peor medición, ya que hay muchas publicaciones gratuitas, tutoriales y otras formas de conseguir información. Uno de los mejores sitios para ver este tipo de estadísticas en en O’Reilly Radar, donde hacen periódicamente un seguimiento del estado del mercado de libros informáticos. Este es el estado en la mitad de 2009 :

languages-books1

Según esto, C# es el líder indiscutible, posiblemente por la menor cultura en el entorno del software de Microsoft para compartir y colaborar online. Los desarrolladores tienen que recurrir a los libros técnicos. Además se ve un descenso en la venta de libros de Java, que pierden terreno con respecto a PHP. Como sucedía en la lista TIOBE, Objective-C demuestra estar de actualidad con un importante tirón.

En un intento de sacar conclusiones, basadas en estadística-ficción, se podría interpretar:

  1. Java: Parece el líder indiscutible actualmente, aunque está perdiendo algo de tirón, reflejado en la lista TIOBE y en la venta de libros.
  2. C/C++: Es dificil de medir y los resultados de las mediciones, salvo en la venta de libros, son dudosos. En cualquier caso, históricamente, posiblemente haya sido el lenguaje de programación más importante.
  3. PHP: Sigue una tendencia alcista, reflejada en la lista TIOBE y por ventas de libros. El lenguaje goza de buena salud y una comunidad muy activa que lo continua evolucionando.
  4. C#: Con una mediciones un tanto variables según el criterio. Todo indica en cualquier caso que está a la zaga de los grandes: Java, C/C++ y PHP.
  5. Visual Basic: Al igual que el anterior, mediciones un tanto erráticas según criterio, pero parece ocupar la quinta posición.

Merece la pena mencionar:

  • Python: Muy estable como tercera alternativa en programación web, por detrás de Java y PHP.
  • Ruby: Bajada importante en la lista TIOBE y en la lista de libros. Sorprende que el lenguaje haga tanto ruido y esté alderedor de la posición 10… y bajando!
  • Objective-C: Con una entrada impresionante en la lista de lenguajes más utilizados actualmente.