Sortea2 Blog

  • Detectar a los comentaristas más antiguos en el blog

    Si queremos detectar quiénes son nuestros lectores más fieles, podemos mediante una simple select de SQL obtener una lista de nuestros lectores más veteranos que alguna vez han comentado.
    Calculamos la fecha del primer comentario que dejaron y la del último. Aquellos que tengan una diferencia mayor son los que han usando nuestra página durante más tiempo.

    Para WordPress, los diez comentaristas más veteranos:

    SELECT comment_author_email ,
    comment_author,
    max( comment_date ) – min( comment_date ) AS diferencia
    FROM wp_comments
    GROUP BY comment_author_email , comment_author
    ORDER BY diferencia DESC
    LIMIT 0,10

    Para Movable Type, los diez comentaristas más veteranos:

    SELECT comment_email, comment_author
    max(comment_created_on) – min(comment_created_on) as diferencia
    FROM mt_comment
    GROUP BY comment_email, comment_author
    ORDER BY diferencia DESC
    LIMIT 0,10

    Nótese que con este sistema se entiende como un mismo autor a aquel que siempre deja el mismo nombre de usuario y dirección de correo. Si cambiara alguna de estas, no habría forma de distinguirlo.

  • Octavos de final – Champions 08/09

    Resultados del sorteo de octavos de la UEFA Champions League 2008/2009:

    Juventus
    Chelsea
    Liverpool
    Real Madrid
    F.C. Barcelona
    O. Lyon
    Panathinaikos
    Villarreal
    Manchester United
    Inter de Milán
    Roma
    Arsenal
    Oporto
    Atlético de Madrid
    Bayern de Munich
    Sporting de Portugal

    El sorteo ha sido celebrado el 19 de diciembre de 2008 a las 12:00 (GMT+1), el objetivo consistía en conocer los enfrentamientos que protagonizarán los clasificados en la fase de grupos.

    Los criterios de este sorteo fueron los siguientes:

    1. No pueden enfrentarse dos equipos que hayan coincidido en la fase de grupos
    2. No pueden enfrentarse dos equipos del mismo país
    3. Los equipos que terminaron primeros de grupo jugarán el partido de vuelta en casa
    4. Los emparejamientos estarán compuestos por equipos de diferente bombo

    Bombo 1: Bayern, FC Barcelona, Juventus, Liverpool, Manchester United, Oporto, Panathinaikos y Roma.
    Bombo 2: Arsenal, Atlético, Chelsea, Inter de Milán, Olympique de Lyon, Sporting de Portugal, Real Madrid y Villarreal.

    Los partidos de ida se disputarán los días 24 y 25 de febrero, los de vuelta serán el 10 y el 11 de marzo.

  • Jquery. Plugin útiles y otros no tanto.

    La página de Sortea2 abunda en el uso de Javascript mediante librerías de Jquery. Quizás a veces los efectos sean hasta molestos (lo sentimos) pero no se puede decir que la página es estática.

    Cuando se utiliza Jquery una de las mayores ventajas que se esgrimen es la existencia de innumerables plugins, a cual más útil. Y es verdad. Pero también es complicado adaptarse a cada uno de ellos. Cada programador tiene sus manías, sus ideas propias, su forma de hacer las cosas diferente. El uso de plugins tomados cada uno de un sitio, creados por programadores diferentes, da una absoluta falta de homogeneidad en el código.

    Si uno se acostumbra a copiar trozos de código de aquí y de allí, es un script kiddie, un niñato que no sabe programar, sólo mal reutilizar.

    Pero ante la ingente cantidad de herramientas tecnológicas, cada una con sus peculiaridades, se debe elegir entre eso o luchar vanamente por tratar de conocer un lenguaje para que pocos días después surja uno nuevo y también imprescindible. Por eso creo que es justificable el copypasteo de código ajeno, aunque a veces obtengamos resultados poco coherentes. Pero operativos.

    Siempre luchando por entender las peculiaridades de cada uno de los plugins, a veces uno se frustra al ver que no hay forma de hacer funcionar uno en particular. Esto no se suele comentar mucho, porque se mira la página del desarrollador, con la demo operativa, se da plamas, se guarda el link y luego cae en el más oscuro de los olvidos, sin pensar la utilidad de aquello.

    Por eso si vas a desarrollar un plugin para Jquery, te recomendaría en que emplearas el máximo tiempo posible en tener una demo que funcione, con diseño excelente. Que luego el plugin sea operativo o no, es lo de menos porque no se va a usar tanto como parece.

    En fin, que paso a detallar los plugins que hemos usado en Sortea2.com, y cuales no y por qué. No trata de ser una lista de «mejores plugins», sino simplemente de plugins que han funcionado.

    1. Calendario.

    Hemos empleado el plugin datePicker.
    Su funcionamiento no es muy complejo de configurar y el resultado es sencillo, admitiendo días y fechas en castellano.
    Lo tenemos en la ventana de sorteos programados, para ver la fecha en que se programa un sorteo.

    Por contra, aunque existen varios plugins para seleccionar la hora que nos podían haber servido en esa misma página, tras probar con varios siempre obtuvimos resultados poco satisfactorios. No dudo que el plugin funcione, pero para nuestro caso no servía. Y no pedíamos nada especial, simplemente un selector de fechas.

    Tanto este TimePicker, com este otro timepicker llegaron a funcionar, pero la hora no había forma de ajustarla al control indicado, siempre aparecía en la parte de abajo de la página. También existe un tercer plugin para seleccionar horas, pero ya es suficiente por el momento.

    Seguramente la causa no era otra que algún tag de html mal cerrado por nuestra parte, o una mala configuración de las propiedades. El caso es que tras mucho tiempo perdido, decidimos descartarlo definitivamente.

    Preparar un selector de horas y minutos es trivial, ni siquiera hace falta javascript, por lo que al final tomamos ese camino, con el resultado que podéis ver en la página de sorteos avanzados.

    Quizás falte coherencia en el diseño entre la selección de fecha y hora. Es algo que podemos mejorar con el tiempo.

    2. Cookie.

    El que hayamos usado un plugin para manejar las cookies lo veo más como un error y un síntoma de la paranoia que hay en torno al uso de los plugins. Hasta para la tarea más sencilla se buscan utilidades hechas por otros. Creo que si hubiéramos usado javascript puro y duro, habríamos necesitado menos código que con este plugin. Pero al menos permite el uso sencillo de cookies.

    En la aplicación tenemos dos cookies, una para controlar el idioma con el que se accede a la página y otra para gestionar las identidades de los usuarios.

    El plugin al que me refiero es este.

    3. Subida de ficheros mediante Ajax.

    Una de las peores ideas que tuvimos al desarrollar la página fue permitir el subir un listado de nombres cargándolo desde un fichero. Es una de estas funcionalidades que consumen mucho tiempo de desarrollo y que luego nadie usa. O peor aún, nadie usa para bien porque son una puerta abierta a las vulnerabilidades.

    Al final la hicimos. También en la ventana de sorteos avanzados, se puede cargar una lista de nombres de un fichero, idealmente un .txt en que cada nombre ocupa una línea.

    De nuevo aquí tiramos de un plugin que permite hacer una subida de fichero en forma totalmente asíncrona, sin tener que recargar la página y sin causar problemas.

    Este es el plugin para subir ficheros con Jquery. Causó numerosos problemas conseguir adaptarlo al funcionamiento de la página, en gran parte porque fue una de las primeras tareas desempeñadas, cuando aún estábamos iniciándonos con el Jquery.

    La idea inicial y algo que llegamos a hacer era mostrar la lista de nombres en un espacio dentro de la ventana, para que el usuario pueda ver quiénes participarán en el sorteo. Pero con el tiempo se nos fue acabando el sitio en la ventana y ya era todo muy complicado. Costó quitar una funcionalidad que ya estaba hecha, pero era necesaria una mayor simplicidad.

    4. Livequery.

    Livequery es posiblemente el plugin más útil de todos los que hemos empleado.

    Nuestro problema es que cuando creábamos controles dinámicamente (como las listas de nombres y la de premios, que se amplian conforme el usuario va añadiendo más) era complicado hacer que estos controles heredaran los eventos de los controles iniciales en la página.

    La tarea de añadir un listener a los eventos para nuevos controles era un motivo de quebraderos de cabeza. Y sin embargo con usar livequery esto se solucionó automáticamente.

    Además fue el plugin más sencillo de implementar, pues es casi trivial. ¡Estamos enamorados de Livequery!

    5. Dynacloud.

    También tenemos una nube de etiquetas, como toda aplicación que quiera parecer 2.0. Y para ello lo primero era buscar el plugin correspondiente. En este caso, Dynacloud, para hacer una nube de tags.

    Pues bien, no conseguimos hacerlo funcionar en la forma en que nos hubiera gustado. De nuevo mil historias, y cuando lográbamos que apareciera algo, estaba fuera de formato o al final de la página. Hicimos la funcionalidad desde cero, no es nada difícil.

    6. Sugerir tag.

    Finalmente, un plugin para sugerir un tag cuando estás escribiendo un nuevo sorteo. Como se hace en delicious, cuando introduces las primeras letras realiza una consulta y obtiene tags similares ya empleados para crear mayor uniformidad en la información.

    No sin algo de sufrimiento, también se pudo poner en marcha con un resultado que consideramos muy bueno.

    Como se hacen consultas continuas al servidor, para cada uno de los caracteres, en orden a aliviar la carga sobre la base de datos, optamos por cargar todos los tags en un fichero. De esta forma, no se realiza ninguna consulta a base de datos, simplemente se abre el fichero, se vuelca directamente sobre un array y se buscan las coincidencias.

    Este fichero de tags se va actualizando cada cierto tiempo mediante una tarea y santas pascuas. Nos libramos de tener que estar machacando la base de datos realizando consultas poco eficientes (el «like» en SQL no es lo más rápido y directo que digamos).

    Como resumen, espero que esta entrada le sirva a alguien de ayuda para ver cómo los plugins te solucionan problemas y ahorran tiempo, pero a veces pierdes mucho tiempo sin poder hacerlos funcionar y otras es más eficaz codificar uno mismo la tarea que necesita.
    También puedes ver plugins que a lo mejor no son muy espectaculares, pero son operativos y necesarios para el funcionamiento de una página.

  • El piso de los cinco euros

    A finales de Mayo de 2008, un hombre al que la hipoteca y el paro le acercaban a una situación insostenible, decidió liquidar sus deudas de una forma ingeniosa: sorteando su piso online.

    Decidió vender papeletas a cinco euros cada una. En el momento que se vendieran todas, se sortearía el piso y el ganador se quedaría con él, sin tener que pagar hipoteca, por cuanto con el dinero de las papeletas se zanjaría la deuda.

    La idea era indudablemente ingeniosa y no sé a ciencia cierta cómo, pero consiguió una repercusión mediática extraordinaria: hablaron del sorteo en televisiones nacionales y en los principales periódicos del país. En apenas tres días había vendido ya 11.000 papeletas, levantando la friolera de 55.000 euros.

    Pero los mismos medios que ensalzaron tan ingeniosa idea, pronto empezaron a atacarla. Primero fue tirando de calculadora. Según el testimonio de Miguel Marina, el subastero detrás de esta idea, la deuda pendiente de saldar con el banco era de 200.000 euros. Sin embargo se vendían 64.000 papeletas, que si las multiplicamos por los cinco euros que costaban nos metemos en 320.000 euros. Lo cual da para pagar la casa ¡Y empezar a pagar otra!

    Pronto la admiración se convirtió en envidia, si se hacía para evitar un embargo la idea era honrosa, si se obtenía un beneficio, por pequeño que fuera, se convertía en deleznable.

    Y entonces, apareció Hacienda. Quizás por una denuncia anónima, el caso es que cualquier hijo de vecino se había enterado del caso de Miguel Marina y Hacienda le explicó mediante requerimiento legal que si quería sortear algo ellos, que somos todos, tenían que cobrar su parte. Y es que para hacer un sorteo legal hay que seguir una serie de requisitos oficiales, entre los que está una publicitación clara y pública de las bases, además de tener que pagar los impuestos correspondientes.

    Poco tiempo después Miguel Marina tenía una serie de requerimientos judiciales que le exigían el pago de estos impuestos. Además, obtuvo una pésima imagen porque los mismos medios de comunicación empezaron a hacer leña de este árbol caído. La gente le deseaba lo peor y ante estas, Hacienda es implacable.

    Hasta aquí la historia que todos conocemos. Lo que pasó luego es que Miguel Marina tuvo que mandar un escrito a los Organismos Oficiales, tratando de interrumpir las sanciones que se le avecinaban. Y por supuesto, tuvo que detener el sorteo.

    Para más inri el banco donde se habían ingresado todas las participaciones congeló la cuenta, por lo que este dinero tampoco estaba a su disposición. Según él cuenta en su página web, ha sido el propio banco el encargado de devolver estos ingresos, uno a uno. Aún hay dinero que no ha sido posible devolver, al no estar seguro del dueño. Pero apenas quedan unos 2.000 euros.

    Miguel Marina perderá el piso, y posiblemente Hacienda no haga la vista gorda ante la sanción pertinente. En un movimiento desesperado Miguel Marina ha optado por una nueva forma de recuperar su vida: Un no sorteo.

    Es decir, compras una papeleta pero esta vez no se sortea nada. Es una forma de donación para evitar que se vaya a pique. Sin repercusión mediática alguna, además de la falta de incentivo, esta idea está condenada al fracaso. En el blog de Miguel Marina explica otra idea: a cambio de la donación para el no sorteo puedes enviarle una foto tuya y con ellas él empapelará el piso. Demasiado bizarro.

    A pesar de que la picaresca española sea más motivo de vergüenza que de orgullo, en este caso el ingenio merece algo de reconocimiento. No digo que Miguel mereciera librarse de la hipoteca de una forma tan aparentemente sencilla, sino que tampoco es justo que se le machaque por haber tenido una mala idea. Un hombre en problemas que ha luchado de forma honrada por salvar su futuro. Quizás su mayor error fue el número de papeletas. Si hubieran cuadrado con la deuda, quizás hoy tendría menos preocupaciones en la cabeza.

    Como él mismo cuenta, otros han copiado la idea y sin tanto boom televisivo, parece que la podrán llevar a cabo.

    La historia de Miguel la cuenta él mismo en la página del sorteo.

  • Lotería en Arkansas

    Arkansas, uno de los Estados más pobres de todos los Estados Unidos, acaba de aprobar mediante un referendum la creación de una lotería estatal.
    Lo que en principio es una noticia sin interés alguno, tiene sin embargo mucho de revolución para este estado que, en su Constitución hacía una mención explícita a la prohibición de estos sorteos. Así, se ha tenido que hacer una enmienda constitucional para tener lotería.

    Cierto es que hay mucha gente a la que los sorteos y juegos de azar arruina la vida, pero también las loterías tienen sus ventajas. Por ejemplo, los puestos de trabajo y el dinero que se genera para la región. A pesar de que Arkansas no tenía lotería, sus Estados vecinos de Georgia, Missouri y Oklahoma se estaban haciendo de oro a costa de este veto. Y es que algunas de las administraciones de lotería con mayor volumen de negocio estaban en ciudades fronterizas con Arkansas. El juego de Arkansas estaba resultando una gratificante fuente de ingresos para otros Estados, más ricos, que se quedaban con las ganas de azar por parte de sus vecinos.

    En Estados Unidos los ingresos del juego a veces tienen un destino directo, no como en España que todo va a la caja del Estado y lo mismo el dinero con el que pagaste un boleto de lotería acaba pagando el arcén de una carretera que la pensión de un jubilado.

    En Norteamérica existen las becas de estudio pagadas por el juego, como las becas HOPE de Georgia, que se pagan exclusivamente con dinero del juego. Así, tu hijo puede estudiar en la Universidad gracias a una beca del juego, un concepto curioso. De hecho Arkansas tiene uno de los niveles educativos más bajos de todo el país en parte por la escasez de ayudas estatales. Quizás la lotería de Arkansas sea una gran noticia para la región.

    Fuente: The Economist (inglés)