Archivo

Archive for the ‘menéame’ Category

Amazon EC2: actualizar Ubuntu 10.04 a 12.04, y a 14.04

julio 28, 2014 Los comentarios están cerrados

Este es un apunte rápido y corto ya que a algunos les vendrá bien. Estoy preparando la migración del servidor principal (el que hace de control, repositorio de software e imágenes) de Menéame. Es una instancia EBS (con dos volúmenes adicionales) con Ubuntu 10.04 y ya toca migrar a la 12.04 o 14.04 por su antigüedad y porque se quedará sin soporte.

En general no tuve problemas, pero hay que tener un poco de cuidado cuando se migra de 12.04 a 14.04. Los pasos a hacer desde la consola web son los siguientes (no hace falta hacer nada con comandos):

  1. Crear un AMI del servidor a actualizar: esto generará una imagen arrancable idéntica al servidor, hay que seleccionar que cree también la imagen para los otros volúmenes montados.
  2. Arrancar una nueva instancia con ese AMI creado. Esta instancia debe ser idéntica a la original. Ten cuidado de deshabilitar los procesos que puedan interferir con la otra, por ejemplo los que tengan en cron. Verás que creó un AMI y los snapshots correspondientes a cada volumen.
  3. Ejecutar do-release-upgrade -d para actualizar a 12.04. Esto pasará a la siguiente versión LTS. Como comencé con 10.04 se actualiza a 12.04. Es un proceso que tarda pocos minutos y no me dio ningún problema. Luego hay que hacerlo nuevamente para actualizar a la versión 14.04, antes es mejor reiniciarlo para estar seguro que todo funciona correctamente (mira los mensajes de arranque con el dmesg).
  4. Ejecutar de nuevo do-release-upgrade -d para actualizar a 14.04. Como el anterior, pero si no vas con cuidado, luego no arrancará porque no encontrará los dispositivos EBS. El problema es sencillo, en la 14.04 se renombran de dispositivos, por ejemplo, el /dev/sda1 se renombra a /dev/vxda1, el /dev/sdc a /dev/vxdc, etc. Antes de reiniciar con la versión 14.04 debes cambiar el /etc/fstab para indicar esos nuevos nombres. Si te olvidas -como yo- no hay problemas, más abajo te explico cómo arreglarlo rápidamente si la instancia no te arranca.
  5. Ya está, es relativamente sencillo. Ahora debes verificar que las configuraciones te funcionan, reinstalar los módulos que han instalado con herramientas como el pip (Python), o pecl (PHP). Verifica también la configuración del PHP (si lo usas), ya que cambió la estructura de directorios en /etc/php5. Te aconsejo crear otro AMI de este nuevo servidor y probar que arranque correctamente.

Cómo reparar el /etc/fstab (o cualquier otra configuración que impide arrancar una instancia)

Si en el paso #4 te olvidaste de cambiar los nombres de los dispositivos, o lo hiciste pero te equivocaste (o falla cualquier otro fichero), la instancia no arrancará, pero es relativamente sencillo de arreglarlo:

  1. Detén el servidor que no arranca (Stop desde la consola web).
  2. Arranca otra instancia (si no tienes ninguna en marcha) con una imagen que funcione, incluso con una Ubuntu oficial. Cualquiera sirve.
  3. En la ventana de Volumes haz un deattach del volumen raíz de ese disco (no te olvides de apuntar el nombre de /dev con el que estaba enlazado, habitualmente /dev/sda1 o /dev/sda).
  4. Haz un attach de ese dispositivo a la otra instancia de trabajo, te sugerirá nombres, usa alguno que no tengas en esa instancia, por ejemplo /dev/sdc.
  5. Monta el dispositivo en la instancia, por ejemplo: mkdir /work; mount /dev/sdc /work (ojo, si estás trabajando en una Ubuntu 14.04 será mount /dev/vxdc).
  6. Ahora puedes modificar el /work/etc/fstab (o el fichero que tengas que reparar).
  7. Desmonta el dispositivo (umount /work) y el deattach del volumen a esa instancia.
  8. Ya puedes hacer el attach del mismo volumen a la instancia que habías detenido y hacer el start.

 

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

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.

 

Las instancias m3 de EC2 no son lo que prometen

marzo 13, 2014 4 comentarios

Actualización: sigo estudiando el tema porque es muy raro, si pongo un proceso en bucle no consume el 100% de CPU, sino el 50%. Parece que hay un problema de medición (tanto localmente como lo que mide Amazon CloudWatch). Si descubro algo más lo pondré.

En enero de este año Amazon habilitó el uso general de sus nuevas instancias “m3″ (las originales son m1). Además del almacenamiento SSD, estas instancias tienen -según ellos- más CPU (3 ECU vs 2 ECU de las m1). Para los servidores web de Menéame usamos instancias m1.medium, pero las m3.medium parecían más adecuadas, nos podíamos ahorrar alrededor del 50% del coste. No las cambié inmediatamente porque el espacio disponible en /mnt en las m3 es muy pequeño (sólo 4GB) y allí es donde generábamos los logs del NGInx.

Pero estos días Amazon también empezó a ofrecer almacenar los logs del balanceador de carga (ELB) en S3, por lo que habilté estos y deshabilité los generados por NGInx en las instancias. Así, ya no hacían faltan varias decenas de GB por cada 24 horas de funcionamiento de cada instancia y podíamos pasar a usar las instancias m3 sin ningún otro cambio. Lo hice a partir de las 12 de la noche, tal como es visible en el siguiente gráfico.

Leer más…

Categorías:menéame Etiquetas: , ,

Tendencias (“trends”) históricas del uso de palabras con Sphinx

febrero 13, 2014 4 comentarios

Hace unos días quise saber desde cuándo se empezó a hablar de desahucios y suicidios en la prensa en España. Fui a Google Trends y el gráfico mostraba una evolución demasiada plana, que no se correspondía con tantas noticias que leímos en la prensa española. Me pregunté si, y cómo, podía obtener esas estadísticas en Menéame. Se me ocurrió que debería haber un truco relativamente sencillo usando los índices de de búsqueda de Sphinx (lo usamos para el buscador de Menéame). Así fue que en pocas horas pude implementar un sistema similar a Google Trends en Menéame.

Esto es lo que salió con las tendencias de esas dos palabras por su frecuencia de aparición por meses:

Evolución de suicidios y deshaucios

Leer más…

Cuando la “esclavitud” de la publicidad tampoco te permite dar mejor servicio a tus usuarios

diciembre 18, 2013 15 comentarios

Haced la siguiente prueba, si es con un móvil mucho mejor. Acceded a peta.meneame.net, navegad entre artículos y páginas. ¿Notáis que os va mucho más rápido que el original www.meneame.net? No se trata sólo de que no hay publicidad (la forma en que lo tenemos implementado casi no afecta a la velocidad de carga y dibujo después de la primera carga), está muy optimizado con “ajax”. En vez de cargar la página cada vez que se sigue un enlace interno sólo se carga el contenido que cambia, se elimina el anterior y se reemplaza por el HTML “resumido” (parcial) que envía el servidor.

Es lo que usa mucho Google+ o Facebook (y Twitter ayudado por el entorno Bootstrap) para cargas parciales, lo que evita que el navegador tenga que interpretar cada vez las hojas de estilo y compilar el Javascript. En Menéame lo tenemos desde hace varias semanas, pero no podemos publicarlo. ¿La razón? AdSense no lo deja, interpreta como si fuese una sola página (a pesar que se cambia la dirección URL dinámicamente) y deja de servir anuncios. Es decir, no es “compatible AJAX”.

Como nuestros únicos ingresos vienen de la publicidad (que está cada vez peor), y la mayoría de ellas por AdSense, por lo que si habilitamos esta nueva funcionalidad (es sólo cambiar una variable de configuración) sería nuestra sentencia de muerte… por mejorar sensiblemente el servicio a los usuarios de móviles (especialmente móviles: menos tráfico, más velocidad, menor consumo de CPU, menor consumo de batería).

Es una putada, pagamos una vez más la esclavitud de la publicidad, y de un entorno casi monopólico.

Posdatas

  1. Ya pedimos a nuestro “gerente de cuenta” de AdSense que intente conseguirnos una autorización o versión AJAX. No soy muy optimista, tenían un plan para ello y lo han cancelado.
  2. También estamos desarrollando una webapp (ver vídeo),  aunque no está claro lo de publicidad, y tiene sus propios problemas.
  3. La webapp para Android es usable y estable (aunque sin publicidad), cuando le agregue algunas funcionalidades básicas publicaremos la beta.
  4. Ya, tendremos que buscar alternativas al menos para la versión móvil, en ello estamos.

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

Android KitKat… ¿pretenden matar el HTML5 en Android?

noviembre 27, 2013 13 comentarios

La pregunta no es tan sensacionalista como parece. Hace unos días me avisaron de problemas para subir fotos a Menéame con Android KitKat. Era muy raro que diese problemas, está todo programado respetando estándares de HTML5 y Javascript. Descubrí que ese caso se debía a problemas de la gestión de memoria de Android y cómo la trataba Chrome (al ejecutar otro programa para seleccionar la imagen, si necesita memoria se la quita al Chrome, por lo que hay un “cambio de configuración”, al volver a Chrome, éste recarga la página completa, en vez de “reconstruir” lo que tenía). Pero descubrí otro error aún peor y que sucede siempre: es imposible subir una fotografía. Lo probé con el Nexus 4 y con el 7, en ambos el mismo problema, da un error “fatal” al seleccionar cualquier foto.

Lo probé con el Firefox sobre los mismos dispositivos, y no hubo problemas (además de sorprenderme la velocidad de Firefox, ¡cómo ha mejorado!). Se puede observar el fallo (“Error abrir archivo seleccionado” [sic]) en el siguiente vídeo que hice en el Nexus 4:

Visto lo visto, y que no parecía simple de solucionar, además que quería solucionar lo de compartir más fácilmente a Menéame desde un móvil, me decidí a desarrollar una pequeña app:

app Menéame de pruebas

Esta app sólo crea una actividad, basada en WebView, que empotra el renderer HTML. Hasta la versión 4.3 de Android, este renderer era el del “webkit” básico, a partir de 4.4 (KitKat) ya se usa el Chromium (el proyecto libre del Chrome). Todo iba bien, y funcionaba muy rápido… hasta que probé la subida de ficheros: imposible, no funciona en KitKat, y es imposible arreglarla (al menos en teoría y con la información que hay hasta ahora).

Las WebView tienen una pequeña interfaz con unas pocas clases de Java para controlar cosas básicas, y también para que el programa haga algunas de las cosas que no hace la vista por sí misma, por ejemplo, seleccionar ficheros para el <input type=”file”> de HTML. Resulta que no había un API para ello, pero dado que es imprescindible para casi cualquier aplicación HTML5, la gente analizó el código fuente del navegador estándar de Android y encontró la función que se llama cuando se selecciona el campo de subir fichero. La implementé tal cuál, adaptadas a las diferentes versiones de Android:

WbeChromeClient

Pero no funcionaba en KitKat, sólo en las versiones anterior, sin problemas. En KitKat ni se llaman esas funciones, no hace nada cuando se selecciona el campo.

Así fue que busqué, y veo que eliminaron esa interfaz, sin ninguna alternativa. Sólo dicen “no estaba documentada como oficial, y ya pensaremos una alternativa para futuras versiones de Android”. En los comentarios queda claro cómo afecta a tantas aplicaciones, sobre todos a las de PhoneGap, que están basadas completamente en HTML5: con KitKat es imposible subir ficheros de apps programadas en HTML5.

Sumado a eso, el propio Chrome de Google también falla para subir imágenes.

Es decir, miles de apps que dejarán de funcionar en Android KitKat, por decisiones [estúpidas] de eliminar la única interfaz posible para poder subir ficheros desde el “navegador empotrado” para apps, y por fallos increíbles en el navegador por defecto, Chrome.

La pregunta es: ¿están perjudicando así a aplicaciones en HTML5 por simple estupidez? ¿O es una estrategia para que se usen apps completamente nativas? No hay otra explicación, en cualquier caso, vaya ceguera y/o ineptitud enorme de los ingenieros que toman decisiones de desarrollo en Android. Para miles de :facepalm:.

PS: Mientras tanto, si tenéis Android KitKat y queréis subir fotos en Menéame o cualquier otro sitio, tenéis que usar Firefox u Opera Mini. Si habéis desarrollado una app que usa WebViews, estáis jodidos, porque no hay otra alternativa, al menos hasta que salga el GeckoView for Android, pero le falta todavía mucho tiempo :(

Nota: cómo hacer esos vídeos de la pantalla.

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…

Seguir

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

Únete a otros 470 seguidores