Novedades en la categoría akarru

I wasn't Smarty

| | Comentarios (0) | TrackBacks (0)

Por si no se dieron cuenta Blogmemes está cambiando, digo está, porque muchas cosas aún no están terminadas.

En el cambio hemos mejorado muchas cosas.

Uno de los impactos más grandes es darme cuenta que si uno escribe una plantilla adecuada para smarty, sin abusar de la inclusión de plantillas, el desempeño es realmente bueno. Antes escribí que Smarty tomaba más del 80% del tiempo.
Estaba en un error, y creo que debemos reconsiderar el tema.

La verdad es que la plantilla estaba muy mal diseñada, y además no había configurado adecuadamente algunos parámetros, como colocar compile_check en false, por ejemplo, que puede disminuir el tiempo de generación a la mitad.

Actualmente el 77% del tiempo se gasta en la consulta a la base de datos, siendo el tiempo ocupad por Smarty de un 19%, en promedio. El despliegue del index de blogmemes se genera con smarty en 15 milisegundos, lo cual es bastante bueno. Considerando que está en un servidor que tiene varios otros sitios y sistemas en ejecución al mismo tiempo.

Así que mil perdones a todos los usuarios de Smarty que pensaron que esta herramienta no es tan eficiente. La verdad es que a veces hay que leer los manuales :)

Sí hay balas de plata, pero las balas de plata sirven con los hombres lobo. Para matar un vampiro mejor usar una estaca.

Este post tiene que ver con la interesante discusión con respecto al uso de Smarty. No es que esté en contra de lo que dice Ricardo Galli, al contrario, ya lo he dicho, creo que tiene toda la razón.

Lo que pasa es que para el caso de akarrú (blogmemes), el uso de Smarty no aporta mucho, y se ha convertido en un problema.

No se trata de que no usemos Smarty adecuadamente, es que esta herramienta es realmente útil cuando se le saca partido al caché., y por diversas razones técnicas, que no voy a enumerar ahora, ese no es nuestro caso. Sospecho que a Meneame tampoco le aportará mucho.

Si tuviera que hacer otro tipo aplicaciones en PHP, usaría Smarty sin lugar a dudas, pero esta aplicación no tiene que ser tan dinámica como BlogMemes o Meneame.

¿Acaso estas aplicaciones pertenecen a una clase especial de aplicaciones dinámicas ?

Quiero decir, estas aplicaciones son "impactadas" en mayor medida por los usuarios que en otras aplicaciones.
En un foro, o un blog, el frontpage cambia de manera más controlada. En un CMS el frontpage cambia muy pocas veces, incluso si se trata de un sitio de noticias. Pero digg, meneame, blogmemes, etc, cambian su frontpage de una manera menos controlada, y se hace impracticable el uso de cache.

En particular, Blogmemes aprovecha los hits para realizar cálculos de promoción, relevancia, antiguedad, etc. No hay un proceso externo que calcule la distribución en la cola de publicación. En Meneame el proceso es externo, y de hecho por esa razón, el caché siempre queda totalmente desactualizado.
Creo que es más fácil modificar Akarrú para que use cache, que Meneame, claro que es un esfuerzo que no creo que valga la pena.

Un hack en css

| | Comentarios (0) | TrackBacks (0)

Este dato puede ser util para los diseñadores: acabo de escribir en pmétodos un hack para saltarse un bug de Internet explorer.
Resulta que IE no soporta el atributo min-height, lo que provoca que muchos divs se "desarmen" en Internet Explorer.

Era el caso de Blogmemes, que tenía este problema en varias páginas, con este simple hack queda resuelto, y con esto eliminamos un bichito que nos molestaba hace rato.

El cambió aparecerá publicado pronto en el repositorio cvs de akarru para los que estén usando el sistema. El próximo release será el fin de semana, para los que bajan el archivo tgz.

No pesquen

| | Comentarios (3) | TrackBacks (1)

Dicen que Facundo Cabral alguna vez dijo:

"en general la gente es buena,
hay algunos boludos,
pero la mayoría de la gente es buena

La verdad es que ya expliqué que blogmemes y meneame tienen filosofías de diseño distintas.

En menéame existe votación positiva y negativa.
En blogmemes sólo votación positiva.

En menéame existe karma.
En blogmemes libre albedrío :)

En la comunidad de meneame se ve con malos ojos el autobombo.
Yo no lo veo con malos ojos, pero no se que opinará la comunidad de blogmemes.

A lo mejor muchos no participan en blogmemes porque consideran desagradable que alguien se auto promocione.

En ese sentido sigo la filosofía del control remoto, me explico, si tu proveedor de cable ofrece una película que te ofende, entonces cambia de canal, pero no armes escándalo ni pidas que se prohiba la película.

Si no te parece una historia, no la votes, no la leas.
Como decimos en Chile, "no la pesques".

Y qué pasa con los abusos?
Bueno, ahí llamamos a la Melania, pero esa es otra historia......

Un nuevo release de akarru ha sido liberado hoy.
Hay muchos errores corregidos.

Sin embargo, quienes visiten blogmemes verán que tenemos nuevas características que no están en este release de akarrú. Lo que pasa es que las nuevas características tienen que ver con FeedBurner, y están muy amarradas a los datos de blogmemes. Vamos a dejar ese soporte más genérico para incorporarlo después.

Un poco de historia de Blogmemes

Uno puede leer la historia de Meneame en el blog de Ricardo Galli, y es super interesante, pues nos ha dejado documentado su proceso.
Para mi es interesante, porque no conocía a Ricardo, y no sabía de su proyecto cuando el lo estaba programando.

Lo interesante es que blogmemes publicó su primera nota el 07/12/2005 a las 09:49 EST (tiempo del este de USA, donde está el servidor), y Meneame publicó su primera noticia más o menos al mismo tiempo.

Algunos han comentado que partimos después o que llegamos tarde, cuando la verdad podrían decir que somos gemelos. De hecho, la primera mención a Blogmemes en Ñblog fue el 8 de enero, un mes después de partir.

Comparando las engines

Hay que decir que meneame partió con su propio código, y nosotros usamos DiggClone, el cual dejamos atrás, pero que lamentablemente provocó una serie de problemas debido a que decidimos (erroneamente en restrospectiva) mantener su modelo de datos. Eso ha llevado a tener que hacer una serie de parches y cosas bastantes feas para mantener un desempeño razonable. En ese sentido, meneame es una mejor engine que akarrú, pues tiene un desempeño mejor al tener un mejor modelamiento de datos.

Sin embargo, creo que desde el punto de vista del diseño gráfico, el uso de Smarty le da más flexibilidad a akarrú, pues cambiar las plantillas es sencillo, y lo será aún más cuando mejoremos el mecanismo de configuración. Esto permite separar la presentación del código, cosa que no veo tan fácil con meneame. De hecho, cuando configuré la versión portuguesa de blogmemes la instalación fue sencilla, y la traducción la realizó Jorge de Sá Peliteiro, un usuario que no sabe nada de informática, y que sólo cambió los textos en los archivos conf, y en algunos templates (aún faltan algunas traducciones, pero ha sido por razones de fuerza mayor).

Blogmemes y la blogosfera

Han habido menciones interesantes a blogmemes en la blogosfera, y mucho he leido sobre el fenomeno de los clones digg.
Pero quien se ha vuelto un experto en el tema es bonhamled, quien desde su blog Recuerdos del día de mañana ha seguido el fenómeno y ha aportado interesantes descubrimientos.

Divergencia

Pero blogmemes, que partió emulando a digg empezará a evolucionar en una dirección bastante distinta.
Nos apoyaremos en hombros de gigantes, para empezar a realizar cosas interesantes, uno de los primeros resultados es el concepto de Circulación. Gracias a FeedBurner podemos explorar que pasa con las noticias publicadas en blogmemes. Como circulan por la blogosfera, y como eso impacta en visitas a los sitios de los corresponsales de blogmemes.

Blogmemes se volverá una herramienta de exploración de la blogosfera. El núcleo de blogmemes seguirá siendo el mismo, pero innovaremos en otras vías gracias al uso de las muchas APIs disponibles para explorar la blogosfera.

Autobombo, Spam y otras yerbas

Filosóficamente soy un amante de la libertad absoluta, para mi es el más alto valor que guía toda la ética de los seres humanos. En blogmemes confiaremos en la sabiduría de la comunidad, aunque esto cueste caro.

En blogmemes no hay restricción para publicar, tampoco nadie vota en contra de una noticia. No es obligatorio poner un url para publicar, basta el título y el texto. En ese sentido blogmemes es como un gran blog comunitario, con la diferencia que los usuarios votan por las entradas que les gustan.

Nótese, que la votación es en positivo, como en la democracia, votas por tu favorito, pero no votas en contra de las entradas que no te gustan. Tampoco las informas (me molestan los informantes) las notas que son basura, o autobombo, o cualquier otro calificativo. Eso no es necesario, y es un comportamiento que no está en las democracias, y sólo se observa cuando se instauran democracias vigiladas, dictaduras, o estados policiales, en donde los ciudadanos actúan como soplones.

Como a mí no me gustan los soplones, no hay un mecanismo para informar de estos supuestos problemas en blogmemes. Blogmemes tiene un modelo democrático, hoy muchos critican la democracia, y ponen como ejemplos la elección de Evo Morales, o de Hamas. Pero de eso se trata la democracia. Que el pueblo decida, aunque no nos guste quienes salen elegidos.

Yo creo que si alguien quiere hacer autobombo, que lo haga, de hecho he dejado una categoría para quienes quieran hacer autobombo.

Newton nos enseña que toda acción genera una reacción de la misma intensidad pero en sentido contrario. Si ponemos barreras al autobombo, la masa encontrará el mecanismo de burlar el sistema.
En lo personal estoy de acuerdo con las críticas a la obligación de tener que votar obligadamente en meneame, más que nada por que me da lata ser obligado a hacer algo.

En blogmemes no hay karma, pero tenemos un mecanismo de ranking de los usuarios por influencia y popularidad. La influencia tiene que ver con como vota la persona, y como participa, con comentarios. La popularidad tiene que ver con como la gente vota una nota, es decir, como esta es evaluada por los pares.

Pero el tener una alta popularidad, o influencia no te da más poderes sobre el resto, sólo te destaca, y yo quiero destacar a aquellos que hacen que blogmemes se convierta en un sitio interesante de leer y visitar.

Con la incorporación de la circulación, podremos afinar más este ranking, porque incorporaremos cómo es percibida cada noticia fuera del ámbito del sitio.

No creo que sea necesario poner mecanismos para filtrar las historias ni a las personas, el sistema debería auto regularse. Yo creo que al colocar mecanismos como un clasificador de noticias, la obligación de votar, y el karma, se logra el efecto contrario. Sería interesante saber que pasaría si meneame quitara todas las cortapisas. ¿Se llegaría a un equilibrio?

Yo creo que sí, el sistema encontrará su punto de equilibrio.

A lo mejor confío mucho en la gente, debe ser porque soy estúpido ;)

Como estoy muy interesado en este tema, por razones obvias, he decidido traducir la entrevista a Kevin Rose, fundador de digg.com.

Entrevista a Kevin Rose

La entrevista original (en inglés) la pueden leer en el sitio de Jonathan Cohen, Philoneist.

Los invito a seguir leyendo mi traducción de las preguntas y sus respuestas:

He estado enfrascado en 2 problemas:

  • El primero es el problema de la promoción de los posts en blogmemes hacia el tope de la cola.
  • El otro problema es como incentivar la participación de los usuarios.

El primer problema tiene que ver con la Relevancia, y el segundo problema tiene que ver con la influencia y la popularidad.

Me explico. Una historia publicada en blogmemes debe ser interesante para estar en la primera página. Pero no basta que sea interesante por si misma, blogmemes es un sistema democrático, por lo tanto lo que importa es el grado participación activa y pasiva de los usuarios con la noticia. Por lo tanto la popularidad de un artículo, no es suficiente. El concepto adecuado para ordenar las noticias en la primera página tiene que ver con la relevancia.

relevancia

El diccionario de la RAE define relevancia como:

1. f. Cualidad o condición de relevante, importancia, significación.

y relevante se define como:

(Del lat. relĕvans, -antis, part. act. de relevāre, levantar, alzar). 1. adj. Sobresaliente, destacado.
2. adj. Importante, significativo.

¿Cómo podemos medir lo significativo de una historia?

En us sistema tipo Digg, como Meneame o Blogmemes contamos con estas variables medibles:

  1. La cantidad de votos recibidos por un artículo o noticia
  2. La cantidad de comentarios recibidos por la misma
  3. La cantidad de veces que los usuarios han seguido el enlace a la historia original
  4. La antiguedad de la historia

Por último, yo he considerado otro factor, que es el instante en que un meme ha sido afectado por un voto, un comentario o un click en el enlace.

Por eso que el modelo de promoción de blogmemes es el siguiente:

  • Un meme pasa a primera página si la cantidad de votos recibidos sobrepasa un umbral. Actualmente ese umbral es 7 votos, pero puede variar en el futuro.
  • Una vez promovido, un meme es ordenado por su grado de relevancia.

El grado de relevancia, R, es una funcion proporcional a la suma de los votos+comentarios+clicks, pero que "decae" en función de la antiguedad de la noticia.

Actualmente tenemos que R se mide con esta formula:
R = (1000+log(votos+comentarios+clicks+horas_promovido)* 1/(1+log(horas_publicado) * 10/(1+log(horas_promovido)) * log(Votos);

Las razones de usar el logaritmo es que es una función creciente pero con una pendiente decreciente (la derivadad de log es 1/x). Esto tiende a achatar la importancia de los votos+comeentarios+clicks+horas_promovido.
Al dividir por el logaritmo de las horas publicado y horas promovido hacemos que la historia vaya decayendo en el tiempo.
¿Por qué se multiplica por log(Votos) ? Porque ese factor resuelve el problema de los memes publicados casi al mismo tiempo, donde queremos que el que tiene mas popularidad se vea primero que el de menos popularidad.

¿Es este un buen modelo para la relevancia?

No lo sé. Es muy experimental, y algo arbitrario, pero hasta ahora parece funcionar de acuerdo a lo que necesito.
Someto el modelo a vuestra consideración.

Popularidad e Influencia

Nuevamente, el diccionario define popularidad como:

popularidad. (Del lat. popularĭtas, -ātis).
1. f. Aceptación y aplauso que alguien tiene en el pueblo.
y la influencia como:
influencia. (Del lat. inflŭens, -entis, part. act. de influĕre).
1. f. Acción y efecto de influir.
2. f. Poder, valimiento, autoridad de alguien para con otra u otras personas o para intervenir en un negocio.
3. f. Persona con poder o autoridad con cuya intervención se puede obtener una ventaja, favor o beneficio. U. m. en pl.
4. f. desus. Gracia e inspiración que Dios envía interiormente a las almas.

Bien, he decidido promover estos dos atributos entre los usuarios de akarrú, o blogmemes.

Un usuario influyente es uno que logra que las historias cobren relevancia.
Un usuario popular es aquel que recibe el voto de los demás usuarios.

En estos casos los cálculos son más simples, y en el caso de la influencia, esta es proporcional a la cantidad de memes publicados multiplicado por el logaritmo de los votos y comentarios emitidos por el influenciador.
En el caso de la popularidad, es el logaritmo de la cantidad de votos recibidos menos la cantidad de historias publicadas (asumo que cada autor vota por si mismo), multiplicado por la cantidad de historias publicadas.

La influencia es más neutra en este caso porque depende del total de memes en la base de datos. En cambio la popularidad depende de la cantidad de memes publicados. Es decir, un usuario que publica mucho tiende a ser más popular.

Si asumimos que las democracias reales no son perfectas, y que efectivamente hay grupos (partidos) o personas (lideres, caudillos) que mueven a la población, entonces me pareció que blogmemes debe reflejar eso.
Por otro lado, la popularidad es importante en una democracia, que se caracteriza por el voto de la mayoría.

¿Que consecuencias tendrán estos parámetros en blogmemes?

Yo veo las siguientes consecuencias:

  1. Se formarán grupos de usuarios que se voten entre sí.
  2. Estos grupos que provocarán que las historias pasen a primera plana
  3. Se respetan las mayorías, y son estas las que llevan a que alguien sea popular
  4. Hay que ver si el incentivo de ser influyente o popular genera más participación de los usuarios.

De todas maneras quiero evitar los problemas de Ricardo Galli ha tenido con meneame. El tomó decisiones de diseño que han provocado molestias. Personalmente no me gusta que uno tenga que estar obligado a votar para poder publicar una historia, y estoy de acuerdo en parte con algunas de las críticas, pero prefiero no polemizar pues el equipo de meneame es soberano en las decisiones de su proyecto.

Por ahora, blogmemes es una anarquía en busca de auto organización. Si esto resulta en algo positivo, o un paraiso para los spammers, entonces tendremos que invocar nuestros poderes divinos para establecer un estado de excepción. Pero mientras eso no pase, blogmemes está abierto al autobombo y a la auto moderación, glup.

Sobre este archivo

Esta página es un archivo de las entradas recientes en la categoría akarru.

Anumerismo es la siguiente categoría.

Encontrará los contenidos recientes en la página principal. Consulte los archivos para ver todos los contenidos.

Technorati

Technorati search

» Blogs que enlazan aquí

Creative Commons License
Este weblog está licenciado bajo una Licencia Creative Commons.

BloGalaxia website stats
Google
Encuentro Blogpower 2008