Archivo

Posts Tagged ‘menéame’

Un apunte personal rápido sobre el canon AEDE

julio 22, 2014 71 comentarios

Hoy es un día bastante triste para mí, o quizás debería decir, decepcionante, de esos días que maldices haber montado tu proyecto vital más importante en España y no en el extranjero. Hace años recibimos ofertas millonarias para comprar Menéame, podríamos haber aceptado y hoy tendría varios millones de euros en mi cuenta. Pero no lo hicimos, queríamos mucho al proyecto, considerábamos que estábamos haciendo algo que es útil y que venderlo hubiese significado su muerte (al menos en ese momento). Curiosamente fue el Grupo Planeta el que hizo la oferta más alta, el mismo grupo que hoy apoya medidas como el canon AEDE y leyes Sinde-Wert. Es decir, acertamos en nuestro diagnóstico, y aunque no somos millonarios podemos decir todavía que defendemos unos principios al que fuimos siempre fieles, aún a costa de nuestros propios intereses.

Durante estos casi nueve años tuvimos muchos problemas, acusaciones injustas, difamaciones (hasta me acusaron de pederasta), ataques DDoS, amenazas físicas, acosos,  demandas, juicios, intentos de engañar a los controles antispam en Menéame (incluso de periodistas de los medios que hoy piden canon AEDE, medios de PRISA incluidos), la tan mal redactada LSSI que con la inseguridad jurídica que genera nos deja en posición muy difícil entre defender la libertad de expresión y censurar la opinión de terceros para que no nos consideren corresponsables de ilícitos (ahora mismo estamos acusados en un juicio penal, por un enlace). Es decir, no fue nunca un camino fácil, y por la crisis y la caída de los ingresos de publicidad apenas nos da para mantener y desarrollar lo necesario… y pagar los gastos judiciales y de abogados para defender la libertad de opinar y enlazar.

Una de las cosas que siempre defendimos en Menéame (con mejor o pero criterio, con nuestras dudas y errores humanos) es que son los creadores de contenidos los que deben ser los beneficiados por las visitas. Así tomamos medidas técnicas para favorecer a los enlazados (cabeceras <H1> en el titular con enlace para favorecer su posicionamiento en buscadores), los titulares no enlazan a páginas de Menéame sino siempre al sitio enlazado (los que nos perjudica enormemente en número de páginas impresas, casi expulsamos a los visitantes), penalización y bloqueo de sitios que se dedican al copy&paste o plagio de otros sitios, o que sólo enlazan a material no autorizado, etc.

Pensábamos que en todos estos años hicimos relativamente un buen trabajo en este sentido. De hecho la mayoría de medios incluyeron un botón de enviar a Menéame (hasta lo hace la BBC, o el mismísimo Youtube) y sus propios periodistas hasta hacían trampas para enlazar (supongo que no es para auto castigarse, Menéame genera anualmente unas 300 millones de visitas a sitios externos).

Pero un día el gobierno anuncia que pondrá un canon para sitios como Menéame. La tasa Google le llamaron y pretenden que se siga llamando así, cuando la realidad es que proporcionalmente afecta mucho más a Menéame que a Google. Google News España no genera ingresos, y el volumen total de visitas es proporcionalmente ínfimo para esa empresa. Podrían cerrarlo y ni se darían cuenta.

No quiero repetir lo que se ha escrito ya demasiado (análisis económicos, legales, de competencia, de inseguridad jurídicas, de eliminar el derecho a cita, etc.) que podéis consultar desde la recopilación que hay en el sitio de la Coalición ProInternet, o el posicionamiento y análisis económico que hicimos en Menéame, o mi reflexión sobre el derecho a cita y los medios en El Mundo, pero voy a hacer un resumen de los argumentos de AEDE y el gobierno desde el punto de vista personal y de Menéame.

Los usuarios de Menéame envían enlaces (a cualquier sitio) y le añaden una entradilla explicativa de hasta 500 caracteres. Esta entradilla puede ser redactada por ellos o hacen un copy&paste de alguna frase, i.e. una cita, del sitio enlazado. Antes del boicot de los propios usuarios, Menéame generaba unos 2 millones de visitas mensuales a los medios AEDE, dado que son artículos públicos con publicidad, esas visitas generan ingresos a esos medios (mínimo unas 20 veces superiores a los que genera una página en Menéame). Lo que parece una relación que beneficia a todos (lectores, medios y Menéame) ahora se divulga que en realidad les estamos ocasionando pérdidas. El argumento fundamental de AEDE es que en realidad si no se les enlaza en Menéame habrían recibido más de las 2 millones que les genera. Intuitivamente no tiene ningún sentido, y se explica por el deseo de los medios de aparecer en los agregadores y redes sociales, pero es que además hay estudios que confirman lo contrario, que les está generando beneficios.

Aún así, el gobierno del PP, con el apoyo del PSOE y CiU, siguen adelante con esta propuesta, que además de todas las injusticias (y ventajas a empresas que no están en España) se cargan una limitación fundamental de los derechos de autor, ya enunciada en el Convenio de Berna de Derechos de Autor en su artículo 10, específicamente el 10.1:

Artículo 10
Libre utilización de obras en algunos casos:
1. Citas; 2. Ilustración de la enseñanza; 3. Mención de la fuente y del autor

1) Son lícitas las citas tomadas de una obra que se haya hecho lícitamente accesible al público, a condición de que se hagan conforme a los usos honrados y en la medida justificada por el fin que se persiga, comprendiéndose las citas de artículos periodísticos y colecciones periódicas bajo la forma de revistas de prensa.

Con esta propuesta se cargan este derecho a cita, pero además de forma selectiva: los medios que reclaman podrán seguir disfrutando de ese derecho a cita -de hecho, no podrían hacer nada sin él-, pero se les quita el mismo derecho a otros sitios web. No sólo eso, se les obliga a pagar un canon irrenunciable, aunque no les enlacen.

Un sinsentido desde todos los puntos de vista.

¿Cuánto dinero piensan ingresar por este concepto? Nadie lo sabe, no dicen lo que piensan, pero hablan de millones de euros al mes. ¿Cómo piensan recaudar, cuáles son las tasas? Tampoco se sabe, eso se debe negociar después de aprobada la ley. Otro absurdo: se hace una ley con objetivos económicos (de subvencionar a unos pocos) pero en ningún sitio aparecen estudios ni cifras aproximadas.

La realidad es otra, casi puedo apostar que Google cerrará Google News España antes que pagar un canon. A Facebook también debería cobrarse, pero les basta con cerrar su oficina en España. Igual para Twitter (porque ¿qué es un texto no significativo?). ¿Qué pasará con Youtube donde los usuarios suben vídeos de noticias sacadas de TV? Nadie lo sabe, más inseguridad jurídica, pero dudo que estén por la labor de pagar. Después de estas empresas, por volumen viene Menéame, que ya hemos comentado que no podemos pagar. Además nos deja en situación de desventaja de otros sitios similares (que incluso usan el software libre de Menéame) localizados fuera de España.

Un argumento es que hay que esperar y ver cómo se cobra, que quizás es una cantidad simbólica. Lo que es otro sinsentido, ¿modificar toda una ley de derechos de autor que se carga selectivamente el derecho a cita para cobrar un canon que es simbólico?  ¿Generar tanta inseguridad jurídica -y que ocasionará que empresas grandes como Google o Facebook inicien interminables procesos judiciales- por una birria de dinero que no soluciona nada?

No hay por donde cogerlo, no tiene justificación, ni ética, ni económica, ni jurídica, y que ni siquiera tiene el apoyo de la mayoría de los medios de noticias.

Si de verdad el problema es que les “ocasionamos pérdidas” al enlazar con una cita, se podría haber negociado y solucionado el problema de forma muy sencilla:

  • No enlazarlos más desde Menéame, o que fuese opt-in, los medios que lo consideren podrían solicitar que se les incluya.
  • Eliminar la entradilla -i.e. dejar sólo el titular- en los enlaces a los periódicos.

Ambas eran muy sencillas y bastaba con un mínimo de intercambio de emails, lo podríamos haber puesto en marcha en una hora. Pero no hubo tal diálogo, desde instancias del gobierno y de AEDE nunca nos llamaron ni preguntaron. Tiene una explicación: es completamente falso que les perjudiquemos. El interés no es el falaz “compensarle las pérdidas”, simplemente recaudar dinero de otras empresas que suponen -erróneamente- que ganan fortunas por enlazarlos.

La realidad es más sencilla, querían ir contra Google y redactaron una ley francotirador, pero de forma tan ignorante que les salió una bomba que afecta a todos. Y lo peor, a algunas empresas nos obligarán a emigrar, y otras a no instalarse en España.

Desde el punto de vista económico-social sólo perjudicará a España y no salvará a ninguna prensa o periodismo.

Desde el punto de vista personal es -como decía al principio, muy triste, ya tenemos que sortear muchos problemas (muchos rozando el absurdo) para mantener el sitio en marcha. Ya es muy complicado en España desarrollar proyectos relacionados con noticias, que involucren derechos de autor y libertad de expresión, pero nos siguen poniendo piedras.

Bueno, esto no es una piedra más, es una patada en los genitales, con tanta alevosía como ignorancia.

Señores diputados, ¿sabéis de verdad los efectos de lo que estáis a punto de aprobar? ¿sabéis que estáis siendo engañados?

Y me alejo de internet por unas horas, es todo una locura.

 

Técnicas y trucos para la versión móvil “responsive” del Menéame

noviembre 18, 2013 19 comentarios

No sé si habréis notado, pero si accedéis a Menéame desde un móvil o tableta, se carga muy rápido y están disponibles prácticamente todas las funcionalidades de la versión “normal” de la web. Aunque en realidad no se tratan de dos versiones diferentes, es la misma pero con cambios muy pequeños en la lógica del servidor, y muy poco de Javascript.

El 30% de los accesos a Menéame son desde móviles, antes teníamos una versión más reducida (sigue disponible en m.meneame.net), pero recibíamos quejas por ser muy limitado en cuanto a funcionalidades. Por otro lado, era demasiado trabajo mantener dos versiones diferentes.

También queríamos adaptar la web para los monitores Retina y de alta definición que tienen la mayoría de teléfonos y tabletas de gama media y alta (su densidad de pixels por pulgada es mayor -hasta dobla- a los típicos 96 px/pulgada de los monitores tradicionales), para ello hay que detectarlos y servir en estos casos una imagen del doble de resolución.

Así, hace unas semanas nos pusimos a tope para lograr una única versión integrada, con pocas diferencias en la lógica del backend, y casi ninguna modificación hecha con Javascript en el lado cliente. Aunque el PageSpeed no es una medida cualitativa absoluta, sí que da bastante idea de velocidad y ligereza:

Image

Como se puede deducir, las mejoras de velocidad de carga para móviles también afectó positivamente a la versión normal del web. A continuación describiré cuáles fueron los trucos y técnicas más importantes.

Leer más…

“Particionado funcional” económico en Amazon RDS… y cachea todo ¡estúpido!

marzo 17, 2013 6 comentarios

El miércoles pasado di una charla de cómo tenemos Menéame en Amazon AWS. Iba a explicar, al final de la charla, un truco de “particionado” [ver nota al final] económico, pero que no pudo ser: me tocó vivir en directo una saturación de la base de datos, producida por el nombramiento del nuevo Papa. Ahora explico cuál es ese “truco” de “particionado” económico y sencillo que sirve para ahorrar costes en RDS, y luego qué pasó y cómo solucioné la saturación de una de las bases de datos (de allí la frase “cachea todo ¡estúpido!”, el estúpido soy yo ;) ).

La base de datos principal de Menéame está en MySQL sobre Amazon RDS, con Multi AZ, lo que significa que tenemos failback y failover over automático y desantendido si el master falla. Da mucha comodidad, pero también tiene su coste: se paga el doble (el tamaño que tenemos es el large).

Leer más…

Seis años de Menéame

diciembre 7, 2011 68 comentarios

En 3 horas se cumplirán 6 años de Menéame (el primer anuncio público, en la lista de Bulma). Estoy muy cansado para escribir mucho más, pero en mi desvelo de la noche pasada conté algunas anécdotas por Twitter:

  1. En 27 horas Menéame cumple 6 años desde que salió al aire. Incosciencia de juventud ;)
  2. Cuando comenzamos Menéame pensé que sabía bastante de bases de datos. Hoy sé que no tenía ni puta idea, y todavía me falta.
  3. Cuando comenzamos Menéame pensé que luego de un par de meses de estabilización sería relajado, qué iluso.
  4. Queda poco código de hace 6 años, pero cuando lo veo me quiero dar hostias, por capullo.
  5. Me llevo bien con el PHP, HTML, Python, Javascript, SQL y Perl de Menéame. Pero el CSS me sigue frustrando, mucho.
  6. Hace 6 años pensaba que el Javascript era una chapuza de lenguaje, hoy sé que es muy bueno.
  7. En 6 años recibimos miles de críticas, sólo un premio: PC Actual al mejor proyecto 2.0, en 2008. Gracias ;-)
  8. Lo peor del desarrollo de Menéame fue dar soporte a IE6. Además ni tenía un Windows en casa, era a ojo, y pidiendo que otros prueben
  9. ¿Qué técnica nos ahorró miles de líneas de código y tiempo? Las expresiones regulares, imprescindibles para desarrollo web.
  10. Lo peor de Menéame, las llamadas telefónicas con amenazas, emails con amenazas de muerte, y los pesados de burofaxes de abogados ;-)
  11. Al principio me angustiaban los burofaxes y cartas certificadas, hoy ya nos descojonamos.
  12. Lo mejor de Menéame, las quedadas con mucha bebida por toda España (y hasta una en Argentina, y una boda). Habrá que recuperarlas.
  13. También hubo una quedada en Amsterdam, pero ni @benjami ni yo pudimos ir, creo.
  14. Un sábado el CEO de Digg y K. Rose nos piden reunión en Nueva York el martes, dijimos podríamos el miércoles, ellos no. Nunca se hizo.

Una de las cosas más importantes es la cantidad de lo que aprendí en programación, bases de datos, administración de sistemas y desarrollo de proyecto webs. Estoy escribiendo un libro para escribir para contarlo, especialmente orientado a programadores sin mucha experiencia en desarrollo para web (en realidad llevo muchos meses dándole vueltas, pero el índice de capítulos y temas -lo más duro de hacer- va convergiendo). Me voy a centrar en las técnicas fundamentales que se deben dominar en este tipo de proyecto. Desde mi humilde y honesta opinión, por supuesto.

Categorías:menéame, personal Etiquetas: ,

Diseñar y administrar un sistema requiere mucho de sentido común, aunque no lo creas

agosto 12, 2011 46 comentarios

En mi apunte sobre los que nos pasó con Amazon AWS dejaron todo tipo de comentarios, la mayoría razonable, pero otros simplemente comentan de oídas, sin conocer las características, precios, limitaciones de la arquitectura de AWS… e incluso temas básicos de costes. El siguiente comentario es un estereotipo del que repite blablás con mucha autoridad sin conocer a fondo el problema de lo que ocurrió, por lo que aprovecharé para contestar:

Leer más…

Categorías:desarrollo, menéame Etiquetas: , , ,

La crisis con Amazon AWS

agosto 10, 2011 88 comentarios

El viernes 5 de agosto  me voy con toda la familia a un pueblo de Extremadura cerca de la frontera con Portugal (Valencia de Alcántara) a visitar a unos amigos. Regresábamos el martes 9 a la tarde, ¿qué podía pasar en Menéame que no se pudiese solucionar con una navegador y la consola web de AWS si nunca habíamos tenido problemas graves? Si necesitaba algo más, podía instalar las herramientas de AWS en otro ordenador y solucionarlo en pocos minutos. Así que por primera vez viajo sin mi portátil, sólo mi tablet Android con conexión 3G Vodafone (además de mi teléfono también con 3G).

Pues ocurrió el desastre en Amazon, les falló todo lo que podía fallar, todos nuestros planes de contingencia no podía aplicarse (salvo el “rehacer desde cero” con los bakups) y yo sin mi portátil y con el 3G completamente inestable, prácticamente como si no tuviese conexión. Si no hubiese sido así Menéame no habría estado “off line” tanto tiempo, quizás sólo unas pocas horas. Fue una pesadilla.

Amazon tuvo varios fallos: primero el corte completo de la conectividad a todas las instancias, luego la desincronización del API de gestión, luego los EBS que quedaron totalmente inaccesibles y bloqueando la gestión de las instancias que los usaban, y para rematar un fallo en el software de creación de los “snapshots” (backups por bloques en S3) que borraba datos de algunos bloques (lo descubrieron durante la crisis, y nos afectó a nosotros).

Nota: es un relato rápido, ya corregiré erratas, ahora me voy a duchar, que la última vez fue en Valencia de Alcántara ;)

Leer más…

Categorías:personal Etiquetas: , , ,

Haanga: plantillas “Django” para PHP, über eficiente

agosto 11, 2010 15 comentarios

A mediados de mayo fui a Japón, la empresa de internet más grande de ese país estaba interesado en montar un Menéame en japonés. En junio las conversaciones estaban más o menos avanzadas y tenía la sensación que algo iba a salir. Sabía que si íbamos a mantener la versión sincronizada con la nuestra, íbamos a tener complicaciones. Así que empecé a pensar seriamente en que debíamos desarrollar o migrar a un sistema de plantillas.

Cuando empecé a desarrollar Menéame en noviembre de 2005 la única alternativa madura que había era Smarty. No me gustó nada, su lenguaje de macros era bastante complicado, además era muy ineficiente. Así, decidí hacerlo sólo en PHP y separar la generación de código en funciones específicas, de forma muy similar a como hace o hacía WordPress.

Mientras no teníamos que responsabilizarnos nosotros de mantener versiones sincronizadas iba muy bien. Como estaba separado por “módulos de interfaz” (cabecera, cajas, pie de página) y orientado a objetos (cada clase como Link, Comment, Post tiene su método print_summary() ) los cambios lo hacíamos rápido y sin complicaciones. Pero ya era hora de mejorarlo y modernizarlo.

Hace meses empecé a mirar si podía reusar el sistema de plantillas de Synfony, CodeIgniter, H2O. El que más se acercaba era H2O, pero no terminaba de convencerme, le faltaban características que necesitamos para Menéame,  su rendimiento tampoco es tan bueno.

Primero pensé que sería mejor hacerlo con el API C de PHP, y así en junio tiré un globo sonda a César Rodas, un chaval de Asunción (Paraguay) que es un puto crack de PHP (desaprovechado, y se dedica a empezar decenas de proyectos al mismo tiempo :-) ).

El globo sonda dio resultado, a los pocos días me dijo que lo estudiaría. Me propuso la alternativa, interpretar las plantillas con PHP, pero como resultado se generaría una función PHP que además se cachearía por el xcache (que es el que usamos en los servidores www de MnM) por lo que sería muy eficiente.

César lo siguió desarrollando, a finales de julio ya tenía una versión bastante madura, le llamó Haanga (en guaraní significa dibujo o figura). Después de una hora de conversación telefónica nos pusimos de acuerdo en qué es lo que faltaba programar, cuál era el fast path, cómo debería implementarlo, y cómo haríamos las pruebas con Menéame (también hablamos de dinero, pero esto no interesa a nadie ;-) ).

Las pruebas consistieron en instalarlo primero en sus servidores e implementar las plantillas para reemplazar el código HTML de print_summary() de las clases Post (las notas) y Comment (los comentarios). Una vez me confirmo funcionaban en su servidor, el viernes 6 de agosto (hace cinco días) lo instalamos en los servidores de Menéame para hacer las primeras pruebas con datos reales. Fueron sorprendentes.

A parti de ese momento se aceleró y en menos de dos días corregimos bugs, lo optimizamos aún más y en la madrugada del domingo al lunes creamos la versión 4 de menéame en el svn y migramos  el servidor en “porducción” al sistema de plantillas. Por ahora sólo con esos dos templates, pero poco a poco vamos migrando a nuevos templates (ya tenemos seis).

Vale, vale ¿pero qué es el Haanga?

Un sistema de plantillas, software libre, con la conocida sintaxis de Django o I2O, con algunas extensiones necesarias para Menéame (como tratar uniformemente objetos y diccionarios, facilitar la traducción con el GNU gettext, ejecutar funciones de forma controlada, pre definir variables globales, eliminar los espacios de sangrados en la plantilla…). Está desarrollado por César Rodas a pedido nuestro para cubrir nuestras necesidades, pero se hizo de tal forma que pueda ser fácilmente integrado en cualquier proyecto PHP de la misma forma en que se integró en Menéame.

Por ese interés de que sea de uso genérico, se mantendrá como proyecto independiente, liderado por César y en su propio repositorio GIT.

Su funcionamiento es simple:

  • Se llama a una función para inicializar variables básicas, como el directorio donde almacenará los ficheros PHP. Por ejemplo en Menéame:
    /* Load template engine here */
    $config = array(
    	'template_dir' => mnmpath.'/'.$globals['haanga_templates'],
    	'cache_dir' =>  $globals['haanga_cache'] .'/Haanga/'.$_SERVER['HTTP_HOST'],
    	'autoload' => FALSE, /* Don't use Haanga's autoloader */
    	'bootstrap' => 'haanga_bootstrap',
    	'compiler' => array( /* opts for the tpl compiler */
    		'if_empty' => FALSE,
    		'autoescape' => FALSE,
    		'strip_whitespace' => TRUE,
    		'allow_exec'  => TRUE,
    		'global' => array('globals', 'current_user'),
    	),
    	'use_hash_filename' => FALSE, /* don't use hash filename for generated php */
    );
    
    require mnminclude.'Haanga.php';
    Haanga::configure($config);
    
  • Se llama a la función para generar la salida en HTML:
        $vars = compact('title', 'greeting', 'id');
        return Haanga::Load('header.html', $vars);
    
  • Haanga::Load verifica si existe el fichero de caché PHP y si es más nuevo que la plantilla. Si no se así, carga el compilador, genera el PHP, lo almacena y lo evalúa.

El código generado es muy eficiente, elimina los espacios innecesarios, no hace cambios de contexto, usa el echo –es construcción del lenguaje–, no usa comillas dobles para los strings. El template más complicado y largo que tenemos por ahora es el header.html, genera las cabeceras XHML y el HTML de los menús superiores. Este es el código generado en PHP, se puede ver que es prácticamente imposible hacerlo más eficiente (diría que imposible, pero seguro se nos escapan algunos trucos que no conocemos).

Actualizado: la plantilla de “links” es la más complicada por ahora, el código generado.

Desde que está funcionando en Menéame no hemos notado variación considerable (es muy difícil medir con precisión tan fina) con el sistema sin plantillas. Hay un pequeño overhead en la verficación de fechas de los ficheros originales y el cache compilado, pero muchas veces se ve compensado porque el código generado es más óptimo que el original programado manualmente a base de echo.

¿Qué falta?

Faltan implementar algunos detalles que queremos para Menéame, como el include condicional de otra plantilla (será la etiqueta try_include), como no usamos en Menéame el sistema de herencia/bloques (para reducir latencias y consumo de memoria, eso da para otro apunte) no lo tenemos probados en “caso real”, pero están implementados y superan los unit tests.

Lo que sí falta es documentarlo y traducir esta documentación al inglés. Lo que queráis colaborar o probar, poneros en contacto con César: crodas en php.net.

Si tenéis sitios PHP con mucho tráfico/carga y probáis el Haanga, seguro que quedaréis muy contentos. En Menéame nos está cambiando la vida… bueno, es una exageración, pero nos divierte mogollón.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 481 seguidores