De LAMP a LEMP

Ud. probablemente ya sabe lo que es LAMP (Linux Apache MySQL PHP) el stack sobre el que corren los más populares CMS Open Source como Drupal, Joomla o WordPress, pero probablemente aún no haya escuchado de LEMP (Linux Nginx MySQL PHP), ya que incluso en Wikipedia el término aún no está definido. La diferencia es pues el servidor web. La idea detras de LEMP es muy simple reemplazar el muy flexible y casi omnipresente servidor Apache por el más liviano y ágil Nginx. Si esa fuera la única diferencia, pues no valdría la pena el cambio. Pero que pensaría si le dijera que hacer ese cambio puede transformar radicalmente la performance de su página web y permitir que por ejemplo con un pequeño VPS se pueda atender decenas de miles de visitas diarias. Pues bien en este post les contaré la historia destras de la migración de LAMP a LEMP y como este blog pudo reducir increíblemente su tiempo de carga.

Seguir leyendo

Cambiemos algo para que todo siga igual

Esta frase de "cambiemos algo para que todo siga igual", la leí por primera vez cuando comencé a seguir el blog de Santiago Niño Becerra en La Carta de la Bolsa, y la usa para indicar que el statu quo se puede mantener haciendo algunos cambios, incluso algunos espectaculares, siempre y cuando la estructura siga siendo la misma. He decidido hacer algunos cambios en mi blog para que todo siga siendo igual entonces.

Lo que siempre me ha preocupado de mi blog y todo lo que escribo en el es que pasaría si por alguna razón de fuerza mayor (enfermedad, muerte o despido) no puedo seguir manteniendolo en mi propio servidor o conservando el nombre de dominio. Entonces se me ha ocurrido comenzar a tener otros lugares que sirvan como fuente alterna en caso de que mi blog principal esté caído, o no pueda ser mantenido. Logicamente esto tiene consecuencias, la primera es que a Google no le gusta el contenido duplicado porque estropea sus índices de búsqueda y tiende a penalizar dichos websites, pero por otro lado ya desde hace buen tiempo la principal fuente de tráfico de mi blog no es Google sino las redes sociales y supongo que con el tiempo esto se convertirá en regla, por lo que en cierto modo tener una presencia en todas las posibles redes sociales ayudará en cierto modo.

Por lo pronto ya he comenzado ha hacer una primera migración a todos estos websites:

http://volkan68.wordpress.com/

http://volkan68.posterous.com/

Pero la idea es ir agregando otros servicios de blogging como tumblr y blogger, aunque aún tengo problemas para poder exportar desde wordpress a dichos servicios, pero espero en el transcurso de los próximos días poder hacerlo. Además no sólo es importante mover lo que ya he escrito, más de mil post a la fecha, sino mantener todo sincronizado para que el contenido siempre esté actualizado en todos los websites, esto último aún no he podido conseguirlo, pero le dedicaré un tiempo para que publicando una sóla vez aquí automáticamente el contendio sea repetido en toda mi red de blogs a través de Internet.

Otro pequeño cambio en el servidor virtual que utilizo ha sido incrementar la RAM de 512MB a 1 GB, espero que esto permita que siga respondiendo de igual modo en caso de que el tráfico al site continúe su tendencia al alza. Pero no puedo negar que estoy muy interesado en cambiar de DB, como todos sabran WordPress actualmente sólo soporta MySQL, aunque hay la posibilidad de usar otros motores de base de datos, pero haciendo un cambio profundo en el CMS que incluye instalar un PDO plugin. La idea que tengo sería usar WordPress con MongoDB como motor de base de datos, al parecer no es algo tan sencillo pero quien sabe con tiempo se pueda hacer.

¿Por qué usar MongoDB?, la primera razón es porque esta base de datos NoSQL está emergiendo como uno de los estándares de facto, la segunda es la noticia que leí ayer en Business Insiders de que Sequoia Capital invertirá 6.5 millones de dólares en 10gen la compañía que está detras del desarrollo de MongoDB. Finalmente, la tercera y última razón es que MongoDB puede ser instalado en un sólo server y luego escalar al tamaño que se desee, con lo que en principio comenzar a utilizar MongoDB debería de ser tan simple como usar cualquier otra instalación de motores de base de datos como MySQL o PostgreSQL, algo que he comprobado cuando instalé a modo de prueba Diaspora.

Como dice el título "cambiemos algo para que todo siga igual".

Probando Blackbird Pie en WordPress

En TechCrunch comentaron hoy la aparición de un plugin para WordPress que permite añadir tweets dentro de los post, con tan sólo copiar el URL o el id del tweet en lugar de hacer un screenshot y luego pegar el gráfico. El plugin llamado Twitter Blackbird Pie, tiene la ventaja de que los links dentro del tweet son funcionales y eso muchas veces es importante.

He probado el plugin y puedo recomendalo funciona muy bien, por ejemplo aquí he incluído un tweet mío para que vean el resultado de usarlo:

[blackbirdpie id=29661531628]

¿Cómo funciona?, muy sencillo sólo es necesario indicar entre brackets que deseamos usar blackbirdpie y señalar el id del tweet que deseamos publicar. Para el ejemplo anterior deberiamos tipear esto:

 how to use blackbird

Malas prácticas de programación

Luego de haber sufrido infinidad de ataques a muchos de los blogs que hosteo, hace ya buen tiempo decidí cortar por lo sano, simplemente instalé Suhosin, en mis servers y deje que todo tipo de actividad extraña fuera bloqueada (Ojo, esto es sólo a nivel PHP, eso no quiere decir que no intalen firewalls, IDS u otras medidas adicionales de seguridad en sus servidores). Hasta el día de hoy creía no tener efectos secundarios. Sin embargo, debido a que éste blog usa un viejo plugin para el módulo de "Contactame", descubrí que luego de la última actualización dicho plugin no estaba funcionando.

Al principio creí que era debido a la última migración/actualización que hice de mi server. Si mi memoria no me falla este es el septimo server que hospeda mi blog. Luego de recibir el reporte de @cnieto de que el formulario tenía problemas, hice lo que siempre hago asegurarme de que el exim4 este seteado para hacer relays a dominios externos. Luego de ello pense que el problema se había solucionado, sin embargo para mi sorpresa en un test que hice luego de haber reconfigurado el exim, me di cuenta de que aún no funcionaba.

Luego de leer los logs, encontré este misterioso mensaje:

"ALERT – configured request variable name length limit exceeded – dropped variable"

Con detalles de la IP desde donde me estaba conectando y un increíblemente largo nombre de variable de 204 caracteres de largo. Seamos honestos a que mente retorcida se le puede ocurrir darle 204 caracteres de longitud al nombre de una variable. Al parecer el plugin que estoy usando lo hace, razón por lo cual tuve que editar el archivo "/etc/php5/conf.d/suhosin.ini" y cambiar los valores por defecto de estas dos variables:

;suhosin.post.max_name_length = 64
;suhosin.request.max_varname_length = 64

Por los siguientes:

suhosin.post.max_name_length = 254
suhosin.request.max_varname_length = 254

Luego de reiniciar el Apache, el formulario de "Contactame" ya estaba nuevamente operando como lo hacía en el anterior server. Creo que en Lenny el módulo Suhosin se ha vuelto más paranoico o sencillamente tampoco estaba funcionando en el anterior server que era Lenny también pero estaba en RackspaceCloud, si los chicos del "Fanatical Support", que terminaron desiluncionandome, razón por la cual  volví a hostear nuevamente el servidor virtual de mi blog en el server físico que tengo colocado en el data center de la compañía donde trabajo. Como sea el problema no estaba en el seteo del sistema que estaba racionalmente configurado, sino en las malas prácticas de programación que al parecer algunos desarrolladores de pequeños proyectos Open Source suelen tener. Es por eso que la gran mayoría de proyectos Open Source nunca crecen.

Bueno ya pude desahogar mi enojo, para eso también sirve el blog. Desde ahora ya esta activa nuevamente la página de "Contactame".

Los blogs sirven para muchas cosas, pero hacer dinero no es una de ellas.

El día de ayer Dan Lyons, el falso Steve Jobs del blog "The Secret Diary of Steve Jobs" envio un post que más asemejaba un tweet "Me siento extaño ¿Estoy en el cielo?". Ayer también leí en TechCrunch que Blogger, en este agosto próximo cumplirá 10 años, sigue siendo el líder en lo que a plataformas blogs se refiere, aunque Twitter surge amenazante ya habiendo desplazado a los blogs de Six Apart del tercer lugar y aproximandose peligrosamente al segundo puesto WordPress.com, según estadísticas recolectadas por comScore.

Y me vino a la memoria un artículo aparecido en Newsweek a principios de este año, escrito por Lyons titulado "Es tiempo de colgar las pijamas", cuyo subtítulo sintetizaba su experiencia tras haber sido blogger a tiempo completo por dos años, "He aprendido de la forma más difícil que mientras los blogs pueden servir para muchas cosas maravillosas, hacer mucho dinero no es una de ellas". Por experiencia propia como blogger ocacional desde el 2005 y más disciplinadamente desde el 2007, doy fé que lo que no te dará un blog será dinero. Es más en junio del año pasado, en el post titulado "Interesante, pero aburrido" hice una declaración tal vez egoísta con mis lectores pero no por eso falsa, "yo no blogueo por popularidad o dinero, yo blogueo porque quiero, es mi hobby".

Ciertamente aquellos que son bloggers por dinero están abandonando la blogosfera, según Technorati en su informe sobre la blogosfera del 2008, sólo el 5.56% de los blogs que contabiliza se actualizan con una frecuencia menor a los 4 meses. Pero si esas estadísticas son desalentadoras, también lo son las de Twitter que comenté en este mismo blog bajo el título "El espejismo de la web 2.0". Lo cierto es que la mayoría de personas lo que buscan es una forma fácil de hacer dinero, es por eso que funcionan las estáfas tipo pirámide, sino echen una mirada a este "Kit de hacer dinero en Twitter" de TwitterProfitHouse.com, que ofrece ingresos de hasta más de $850 diarios. Lo cuál no deja de ser interesante, ya que los creadores de Twitter hasta ahora no saben como hacer dinero con él.

La misma fiebre del oro ocurrió con la blogosfera a finales del 2006 y principios del 2007, todos corrian a crear sus blogs tratando de llegar a ser ricos o bloguear en el intento (Get rich or blog trying). La gran mayoría simplemente abandonaron sus blogs, los periodístas o comunicadores profesionales que tuvieron cierta aceptación del público, tuvieron que volver a los medios tradicionales para poder recibir un ingreso que les permita vivir, y es que tratar de vivir de los anuncios no es fácil como fue probado por el equipo de NewJerseyNewsroom.com. Y es que según las estadísticas que se manejan, los pocos "blogs" que generan buenos ingresos están formados por equipos de periodistas profesionales, es decir son en realidad periódicos o revistas que publican en la web en lugar de en papel.

Algo que he descubierto experimentando con blogs es que aquellos que tocan temas de humanidades suelen tener mucho más tráfico y desarrollan una audiencia mucho más leal y participativa. Lo cuál no debe de sorprender a nadie, sencillamente las personas odian la ciencia y las matemáticas, algo por lo cual estoy agradecido, de no ser así tendría demasiada competencia al momento de buscar trabajo. Así que si quiere bloguear y que lo lean, hagalo sobre temas relacionados a humanidades y si quiere hacer un blog "informático", en realidad toque temas meramente informativos y generales, si toca algún tema en profundidad no lo leeran.

Por otra lado, una forma de hacer dinero con una web es ciertamente tener tráfico y poner publicidad en ella, eso no es un misterio. Pero hacerlo generando contenido suele ser tedioso, costoso y de pocas recompensas. La mejor forma es hacer dinero es con el trabajo de otros, como lo hemos venido haciendo los seres humanos por milenios, un ejemplo de esto es Google. Google no genera contenido propio, ordena el contenido generado por otros. Blogger, MySpace, Facebook, Twitter, etc., ninguno de esos sites genera contenido por sí mismo, son servicios que millones usan y generan contenido queriendo hacer dinero en el intento.

Siguiendo el ejemplo de los que tienen éxito inicié un proyecto llamado flv2amv.com, que es una herramienta web que convierte videos de YouTube al formato AMV, muy utilizado en los clones de iPod chinos llamados ChiPod. Los resultados han sido más que sorprendentes, sin producir contenido propio, este website que no es más que un mashup del API de YouTube con algunos scripts de shell que corren la herramienta de conversión de formatos en el servidor, tiene unas métricas web envidiables. En primer lugar promedia 100 visitas únicas diarias, tras estar en la web hace sólo 5 meses, con una media de 8 impresiones por visitante, un tiempo promedio en el site de 15 minutos y una lealtad del 50% (es decir de cada 2 visitantes, uno vuelve al menos una vez más al mes) y un porcentaje de rebote de menos del 20%, todo esto según Google Analytics. Por otro lado este blog al cual le dedico varias horas a la semana para producir contenido, apenas exhibe un pobre 1.4 páginas vistas por visitante y el tiempo promedio en el site es apenas superior a un minuto.

Debo admitir sin embargo que tal vez una de las razones por las cuales este blog no es popular, se debe en parte a que no soy una persona muy popular, no se como serlo y tampoco aspiro a serlo. Tal vez una persona más social pueda hacer que su blog sea muy visitado y con ello obtener ingresos por el contenido que produce, esto no creo que ocurra con este blog, eso no significa que lo cerraré, por el contrario planeo conservarlo mientras tenga vida. Pero ya se que debo invertir más de mi tiempo en hacer "herramientas" y no "contenido". Como dice el viejo refran "zapatero a tus zapatos".