menéame, novedades, problemas

Migración de servidores el domingo 28 de setiembre

En las últimas semanas hemos tenido un incremento importante de tráfico, con picos que casi ponían al límite al servidor de base de datos actual. Ya tenemos en marcha otros servidores más potentes (el central de la base de datos es un Dual Quad de 8GB de RAM).

Este domingo entre las 10 y 13 hs GMT+2 –sólo depende de que tengamos el nivel de cafeína adecuado– haremos la migración hacia los nuevos servidores. En total no tardará más de 10 minutos, quizás los DNS tarden un poco más, pero en ningún caso debería tomar más de 20 minutos.

Minutos antes de comenzar la migración avisaremos en el Nótame.

Perdón por las molestias.

karma, menéame, novedades, software

Penalización de “endogamia de votos”

Desde hace unas horas está funcionando el nuevo “promote” (código fuente) que calcula y penaliza las “altas endogamias” (o afinidades) de votos entre usuarios. Así se evitarán que un grupo de usuarios se voten siempre entre ellos y puedan publicar las noticias más fácilmente.

La técnica es algo similar a la “diversidad” que usan en Digg –al menos así lo cuentan– pero en nuestro caso se usa directamente el karma que aporta cada usuario a una noticia y se aplicará a aquellos usuarios que votan a [casi] todos los envíos de otros usuarios.

La penalización consiste de un coeficiente entre 0 y <1  que se calcula al karma aportado por cada usuario. El coeficiente de afinidad representa el porcentaje de votos a los envíos de un usuario. Así en el último mes A votó un 30% de los envíos de B que obtuvieron muchos votos (aunque no haya salido publicada), los siguientes votos de A a B valdrán 0.7. Si en cambio votó al 90%, el voto valdrá 0.1 de su valor original –con un mínimo de 5–. Si en cambió no llegó a votar al 10% (por ahora, mientras está de pruebas) el voto no sufrirá penalización alguna.

Además de la ventaja fundamental de evitar “endogamias”, también penaliza a aquellos usuarios que votan “a lo loco” basado sólo en el título o autor del envío.

Pueden surgir problemas, como que requiera varias horas hasta que los coeficientes de cálculo se estabilicen, o que haya que hacer ajustes al promote por penalizaciones injustas. Estaremos muy pendientes de esto en los días siguientes.

Actualización (9/10 21 hs): Después de probar en parelelo durante casi 24 horas –casi no hay casos para comprobar–, lo mismo funciona para los votos negativos. El cálculo es similar pero negativos, es decir que el mínimo valor negativo que puede dar es -5.

Aclaración: No afecta al karma de los usuarios, sólo afecta al cálculo del karma total de las noticias. Aunque haya “afinidad” del 100% el voto siempre cuenta como positivo y suma karma según lo explicado arriba.

Nota: Para los que vayan a mirar el código fuente, la función que calcula la afinidad está al final, se llama check_affinity(). Puede verse como se aplica en el coeficiente un par de líneas más abajo desde donde es llamada la función (que devuelve un diccionario con los coeficientes para cada usuario).

[*] Sí, los hay, especialmente esos que usan foros –y mésenyers— para avisar que han subido noticias de sus sitios/foros/temáticas. Últimamente hemos detectado varios, es la motivación, para evitar estos “abusos” sin que nos obliguen a banear sitios o cuentas de usuarios.

menéame, novedades, pruebas, software

Beta del Menéame v3

Finalmente después de semanas de estrés. agobios, discusiones pruebas y correcciones ya podemos hacer pública para pruebas la tercera iteración del Menéame: beta.meneame.net.

El diseño lo hicieron y maquetaron Damián Vila y Benjamí, este pringao se ocupó de código y dar el coñazo a los dos. Pusimos tambień mucho esfuerzo en mantener la velocidad de carga y visualización de las páginas.

Pasamos los últimos días corrigiendo errores graves de visualización y usabilidad para IE, especialmente IE6 (incluso tuvimos que poner un fichero especial de hacks para el IE6) que representa más o menos un 16% de la audiencia del Menéame.

Aunque podríamos estar semanas perfeccionándolo, es hora de parar y que nos aviséis en los comentarios si veis problemas graves de usabilidad o visualización.

Si todo va razonablemente bien, lo pasaremos a “producción” a principios de la semana qe viene.

Qué hay de nuevo

En principio no queríamos cambiar la estructura básica. Pero con el tiempo nos dimos cuenta que la barra de la izquierda, con sus casi infinitas opciones, era prácticamente invisible a pesar que ocupaba la mejor parte de la pantalla. El objetivo era poner las noticias a la izquierda así darles más notoriedad y que sean más fáciles de leer en monitores pequeños o dispositivos móviles.

En la barra de la izquierda sí había unos enlaces importantes (enviar noticias, fisgona…) que debían seguir siendo relevantes, así que tomamos la decisión de ponerlas al lado del logo pero el mismo tiempo dar una imagen no tan tradicional y que al mismo tiempo “envolviese” mejor al megabanner superior. De allí la posición actual en diagonal. Además trabajamos en la cabecera para reducir al mínimo el espacio ocupado y que además diese más funcionalidad.

Las demás opciones de la barra de la izquierda las pusimos en el pié de página de las “página largas”, fundamentalmente los índices.

El otro objetivo importante era mostrar con más relevancia los comentarios más votados  y además mostrar en la misma portada las noticias más “populares” de las últimas horas. Así es que se hizo la barra lateral más ancha que además sirve para colocar el “robapáginas” de publicidad, que es lo más solicitado por los publicistas.

Aunque desde hace tiempo existe la pestaña de populares, esta no era muy visitada, y de hecho nos preguntaban muchas veces cómo hacer para ver esas noticias. Otros nos criticaban de que no lo hayamos hecho antes cuando es obvio. Había que darles más visibilidad, pero eso exigía una restructuración importante como la de ahora. Así, ahora  se muestran las más votadas en las últimas 24 horas pero ordenadas con una función que da prioridad a las más nuevas (un decay temporal). Usamos la misma técnica para ordenar los mejores comentarios, aunque en ese caso sólo se consideran los de las últimas 6 horas.

Siguiendo con la idea de ahorrar espacio vertical entre la cabecera y las noticias hemos reducido el espacio necesario para mostrar las meta y categorías que se están visualizando.

Aprovechando el espacio de la barra lateral también agregamos:

  • Las candidatas a ser publicadas –pero para votar con responsabilidad, recordad que el voto karmawhore o becerro está fuertemente penalizado :-)– en la página de pendientes. Esta información era accesible desde la pestaña “popular” en pendientes y también en el promote, pero poniéndolas allí damos una visión rápida.
  • Mapa de geolocalización de la noticia. Antes estaba incrustada en el texto, era muy pequeña y “molestaba” a la lectura. Ahora es más grande y a la derecha.
  • Comentarios más populares de la noticia. Cuando una noticia supera los 20 comentarios se le agrega una caja lateral que muestra ordenado los comentarios más valorados. El número de comentarios que aparecen en la caja depende del número de comentarios de la noticia (total/4 con un máximo de 25).
  • También agregamos la misma barra al nótame, allí también hay una caja con las notas más votadas (y más abajo la de comentarios).
  • La nube de etiquetas. Ya estaba en la versión anterior, pero ahora es más legible. Cuando se está en portada muestra las etiquetas más usadas –48 horas– en las publicadas, la nube de pendientes las etiquetas de pendientes.

Luego mejoramos o arreglamos varios detalles, entre ellos (me olvido de unos cuantos):

  • La referencia #0 –bastante usada en los comentarios para señalar al texto del envío– ahora se comporta igual que para las referencias cruzadas a otros comentarios. Es decir, mostrará un tooltip con el contenido.
  • El promote ya obtiene los datos de la base de datos (y valida correctamente).
  • Se agregó un ranking a cada usuario. Eso da una idea de cuántas personas tiene un karma superior. Así todos los que tengan 20 serán el #1, y los que tengan 6 –por ejemplo– también tendran el mismo ranking que todos los demás con el mismo karma. El ranking es visible en el perfil del usuario y también en los tooltips. Se actualiza al instante, es decir que si a alguien se le modifica el karma durante el día el cambio se refleja inmediatamente.

Sabemos que hay muchos otros detalles que mejorar y optimizar (o espacios que rellenar). Pero eso es parte de la evolución de esta versión –como las dos anteriores–, que esperemos tarde mucho en hacerse obsoleta, es como un parto y este ya es el tercero 🙂

PS: Ojalá que para la siguiente iteración el IE6 ya no exista, en serio.

hosting, menéame, novedades, software

Novedades: votos a comentarios, anotaciones, cálculo del karma, promote, Amazon EC2 y fútbol

Estos últimos días hemos hecho varias mejoras importantes (si fuésemos anglosajones diríamos algo como estamos realmente excitados). La principal es que los votos a comentarios son públicos desde hace unos días, se muestran en una ventana modal.

Votos de comentarios públicos

La idea de los votos a comentarios es para resaltar a los buenos comentarios y penalizar a aquellos que insultan o provocan gratuitamente. Al principio no pensábamos que hiciese falta hacer público los datos de estos votos, ya que hay suficientes controles para evitar los abusos de negativos y en general funcionan bastante bien.

Pero hay usuarios que abusan y votan negativo sólo para expresar su desconformidad con los argumentos expuestos, otros como “venganza”, esto generaba bastantes cabreos y consultas a los admins.

Así que habíamos decidido hace tiempo hacerlos públicos, sólo nos demoramos porque estábamos buscando la forma de hacerlo usable, simple y que no afecte la velocidad de todo el sitio. Creo que lo hemos logrado, so we are excited… 🙂

Servidor adicional en Amazon EC2

El otro cambio importante es más técnico y de las tripas del Menéame, pero casi obligaron a acelerar la implementación de las otras  características, tiene que ver con la avalancha de visitas que recibimos durantes las hora siguientes al partido contra Italia, tanto que la primera hora el sitio iba muy lento por llegar al límite de las 800 conexiones simultáneas.

Para prepararnos para el partido contra Rusia tuvimos que hacer modificaciones importantes al código del Menéame –pre-diseñada, pero pendientes de implementar– para permitir agregar servidores y réplicas remotas temporales de la base de datos.

Así fue que implementamos esta característica y ya está funcionan en un servidor alquilado en Amazon EC2 (amazon1.meneame.net). Si esta noche se produce otra vez la saturación lo habilitaremos para que también sirva al dominio meneame.net.

Sólo tiene un problema importante.

Los tiempos de latencias entre los centros de datos de Amazon en EEUU y nuestros servidores de Ferca en Madrid son muy elevados. Cuando un usuario modifica algo –comentario, voto, chat en la fisgona–, el servidor de Amazon tiene que enviar sincrónicamente los datos al de Madrid para que la visualización sea consistente. Así que en estos casos mencionados veréis –si lo habilitamos para después del partido– que la respuesta es lenta [*]. Pero compensa con la velocidad de navegación que aportará.

[*] No habría este problema si tuviésemos todos los servidores en Amazon EC2, pero los tiempos de ping de estos con Europa son muy malos.

Anotaciones

Al permitir tener varios servidores distribuidos y con altas latencias  ya no podíamos usar ficheros estáticos (compartidos vía NFS). Eso nos generó problemas con los logs públicos del promote y del karma que son visibles en el perfil de usuarios. Para solucionarlo hemos implementado un sistema de “anotaciones” de texto que permiten guardar los logs en la base de datos y así ser accesibles desde cualquier servidor.

Está diseñado para ser muy rápida y de uso genérico. En el futuro seguramente usaremos esta característica para otros tipos de avisos.

Cálculo del karma

En el perfil de cada usuario se puede consultar los resultados del karma. Al mismo tiempo que implementamos la visualización de votos comentarios hicimos algo similar para visualizar el log del cálculo.

Al tener las anotaciones hicimos los cambios para adaptarla y además tradujimos todo el texto al castellano, con mensajes más comprensibles.

Además aprovechando las características de las anotaciones, también se añaden en “tiempo real” los registros de cambios en el karma, por ejemplo con registros de incremento de karma por publicación de una noticia, las penalizaciones por votos cowboys, el descarte de noticias, comentarios con spam, etc. Esta información adicional al usuario ayudará a mejorar todavía más la “transparencia” del Menéame.

Promote

Al igual que tuvimos que adaptar el karma, también el log del promote donde se muestra el ajuste de karma que se hace a cada noticia (cada cinco minutos), o cuándo son seleccionadas para publicarse. Ahora tiene una nueva dirección meneame.net/promote.php.

Fútbol

Algunos dicen que el fútbol es pan y circo. Otros lo defienden. A otros les es indiferente (¿recordáis que podéis seleccionar o “anular” categorías en vuestro perfil?).

En cambio a nosotros nos da no sólo problemas y flames, también mucho trabajo de programación… y algo de gastos adicionales. But, it was quite exciting. 😉

menéame, novedades, pruebas, voto negativo

Voto negativos a publicadas (II), ahora con efecto

En setiembre del año pasado pusimos en marcha los votos negativos a publicadas.   Ahora estamos a punto de introducir una modificación que hará que los votos negativos sí tengan efecto: enviar de nuevo a cola de pendientes a las noticias con más votos negativos que positivos durante la primer hora de publicación.

Es una prueba atendiendo a la sugerencia de muchas personas –Digg lo hace así desde que puso el voto negativo –o bury–. Si no funciona o no cumple los objetivos, lo cambiaremos, mejoraremos o quitaremos. Las reglas son muy restrictivas y se aplica sólo a los votos errónea y copia/plagio:

  1. La noticia tiene que haber sido publicada en las últimas tres horas.
  2. El total de votos negativos debe ser al menos un 25% del número de votos positivos.
  3. Para las siguientes reglas sólo se cuentan los votos de usuarios autentificados y emitidos después que la noticia haya sido publicada.
  4. La suma del karma negativo de los votos debe ser superior al karma de los votos negativos en el mismo período.
  5. La suma del karma negativo debe ser como mínimo el 25% del karma con que ha salido publicada una noticia (para asegurar que haya los votos suficientes y evitar efectos ping-pong).
  6. En los logs de la noticia se verá un evento nuevo para este caso: link_depublished.

Nota: las fórmulas y parámetros pueden verse en el values.php, en el apartado “fórmulas”. El algoritmo actual (la versión 4) está implementado en discard.php (casi al principio, comienza justo debajo del comentario Count only those votes with karma > 6 to avoid abuses with new accounts with new accounts).

¿Qué quiere decir esto? Que si te das cuenta sólo al momento que sale publicada –como pasa algunas veces–  que una noticia es un magufo, un engaño claro, o es plagio evidente [*] puedes votarla negativo y ese voto tendrá efecto, no será inútil como hasta ahora.

Esperemos que mejore y que no haya abusos (aunque con las reglas tan restrictivas es bastante difícil).

Muchos no estarán de acuerdo o les parecerá mal. Esperad un tiempo por favor, veremos como funciona, estará todo visible y siempre podemos deshacerlo si es un error.  Otorgadnos la duda razonable que quizás sea una buena idea –además sugerida por muchas personas–.

[*] Tuvimos muchas quejas de autores que se quejaban por apuntes plagiados de ellos subieran a portada y no el original. Por eso hace tiempo agregamos el voto negativo copia/plagio y estamos sensibles con el tema.

menéame, novedades

Personalización de categorías

Hoy implementé algo que me pedían desde hace tiempo, la personalización de las categorías por defecto que se visualizarán, tanto en publicadas como pendientes.

Hay una nueva pestaña en el perfil de usuario donde se pueden seleccionar las categorías:

menu categorias en perfil

En caso de no tener seleccionadas a todas, en las páginas de publicadas y pendientes parecerá una nueva pestaña “personal”, que será la pestaña por defecto. Se podrán visualizar todas las noticias en la pestaña de “todas” que aparecerá la lado:

pestaña categor�as

También es posible suscribirse a la “personalización” desde el ícono de RSS que aparece a la derecha.

La opción de seleccionar la metacategoría por defecto –vía cookie– sigue disponible para los usuarios anónimos, no así para los auntentificados que deberán hacerlo desde el perfil (donde también es posible seleccionar o deseleccionar categorías que pertenecen a la misma metacategoría).

novedades, problemas

Balanceo de carga en pruebas

Hace unos momentos pusimos en marcha un segundo servidor para balancear la carga del servidor web. No era estrictamente necesario pero algún día teníamos que probarlo, el lunes son los días de mayor tráfico por lo que lo pusimos en marcha el domingo a la noche para que afectase a menos gente.

Durante unos minutos hubieron unos problemas de “no tiene permiso”. Esto se debía a problemas con el NFS y la resolución de nombre de las IP del segundo servidor. Es un glicth del /etc/exports del NFS [*], pero la culpa fue mía por no saberlo antes y hacer todas las pruebas posibles antes de cambios en el DNS 😦

Ya está arreglado y ajustado, esperamos que no se vuelva a repetir.  Perdón a los que lo notaron.

[*] Si en el /etc/exports especificas direcciones IP (del tipo 192.168.0.*) pero la dirección del cliente tiene resolución inversa entonces no la usa, sólo busca por el nombre. He tenido que poner ambos casos (*private.meneame.net y *private) por las dudas, para que no vuelva a suceder si modificamos el DNS o el /etc/hosts.

menéame, novedades

Opción para evitar que envíen un apunte al Menéame: <!--noshare-->

Si no desean que algún artículo de tu sitio o web sea envíado al Menéame ahora puedes indicarlo dentro del propio apunte. Basta con poner <!--noshare--> o <!-- noshare -->, es decir un comentario HTML (con dos guiones), con o sin espaciones antes y después de la palabra noshare.

Nota: el software del Menéame evitará que se pueda enviar ese apunte –y pide al usuario que respete los deseos del autor–, pero no puede evitar que se envíean otros URLs o artículos que hagan referencia a él.

autobombo, menéame, novedades

Fusión de menéame y coRank: meneaRank

meneaRankEsta era la noticia que adelantábamos hace unos días (también lo adelantó Rogelio Bernal). Estoy con un gripazo muy fuerte (y Benjamí tampoco se encuentra muy bien), así que seré muy breve, daremos más detalles más adelante. Rogelio también lo cuenta en su blog.

coRank y menéame se fusionan al 50% para crear una nueva empresa meneaRank. Rogelio vino a España para para terminar de arreglar los asuntos burocráticos –además fue complicado porque Martín Varsavsky estaba de viaje y hacía falta su aprobación. Hizo falta discutir y tomar decisiones técnicas importantes que necesitaban largas charlas.

Por ahora menéame y coRank seguirán igual y se abrirá un nuevo portal, menearank.com, donde serán accesibles los nuevos servicios agregados de coRank y menéame. Los usuarios de menéame y coRank podrán participar en ambos sitios de forma indistinta gracias al nuevo sistema de autentificación basado en OpenID. Esta integración comenzará a funcionar desde finales de enero.

Los datos en tiempo real de coRank y menéame se usarán para mejorar ambos sistemas y además tener portadas independientes y por preferencias en cualquiera de los dos sitios.

Uno de los primeros servicios de meneaRank será un ranking de blogs agrupados por temáticas y preferencias (se espera para finales de enero). Luego lanzaremos un buscador que no sólo tendrá en cuenta las palabras claves y frecuencias de aparición, sino también el número de votos que han recibido y el número de lecturas desde menéame o coRank.

Aunque todavía tenemos que negociar más y hacer una auditoria de copyrights fichero a fichero, esperamos poder liberar todo el código fuente.

agradecimientos, novedades

Felicidades

logo nadal Que paséis bien el puente, el solsticio de invierno, el aniversario del nacimiento de Newton o cualquier otra festividad religiosa o no –incluida la de El Corte Inglés– que festejéis estos días.

Queríamos además dar un notición estos días, pero el retraso de los trámites por las fiestas nos arruinó la noticia de nochebuena. Pero esperamos poder hacerlo al menos antes de fin de año, o en nochevieja.

Stay tuned 🙂