Post del autor

Montar SVN en tu proyecto web

Escrito en Tutoriales

Subversion (SVN) es, junto a GIT el líder en control de versiones de software libre. Subversion es una mejora del antiguo sistema llamado CVS que tenía sus limitaciones; aunque aún se sigue utilizando en multitud de proyectos creo que es mucha mejor opción Subversion.

Subversion logo

En esta entrada no voy a hablaros de montar un servidor SVN, principalmente porque es una tarea compleja que está destinada más bien a administradores de sistemas. Os voy a hablar de como configurar vuestro proyecto para beneficiarse del funcionamiento de un servidor existente. Si lo que necesitas es crear tú mismo un servidor para estos fines, te recomendaría mejor el libro de O’Reilly de SVN.

Para proyectos en los que trabaje más de una persona creo que es una herramienta que una vez se conoce es poco menos que imprescindible. Incluso si trabajamos solos puede servirnos de gran ayuda para no perder ninguno de los cambios que hagamos y poder tener un histórico permanente del proceso de desarrollo.

Antes de adentrarme a explicar la configuración, diré básicamente en qué puede ayudarnos este sistema:

  • Cada cambio que se envíe al servidor será guardado sin sobreescritura. Si nos cargamos sin querer un archivo podremos echar mano del SVN para recuperarlo.
  • Posibilidad de mezclar dos archivos para ver las diferencias respecto a versiones. Podemos ver, por ejemplo, los cambios que hizo algún compañero en cada línea para comprender como han cambiado las cosas.
  • Se añade un comentario a cada subida de archivos al servidor que hagamos. Esto ayuda a saber para qué se tocó ese fichero.
  • Todos los cambios de los demás se podrán descargar de una vez, solamente aquellos archivos que tengan cambios. A veces, sobre todo en proyectos de programación web, se tocan archivos diversos de carpetas diferentes y en vez de tener que explorar y mirar las fechas de modificación, con SVN hacer un par de clics hará que ya lo tengamos todo más reciente.
  • Control del trabajo de cada uno. Para empresas puede ser muy útil para saber quienes hacen tal cosa. Conocer los porcentajes de código que escribe cada empleado, etc.
  • En caso de tratarse de un proyecto de software libre tener un control de versiones es imprescindible, puesto que necesitamos un lugar en el que la gente que quiera aportar cosas al proyecto pueda conectarse. De cualquier otra manera sería un caos.

Hasta aquí la enumeración de algunas de las ventajas, estoy seguro que me he saltado decenas de ellas.

Conseguir servidor:

Bueno, pues lo primero que necesitamos para empezar es un hosting de Subversion. Hostings hay muchos, aunque la mayoría son de pago y hay que saber encontrar el óptimo. Si tu proyecto es de software libre no debes preocuparte lo más mínimo de tener que pagar ni nada, puesto que para apoyar el Software Libre hay hostings gratuitos con capacidades ilimitadas para sus usuarios.

Una comparativa genial de los distintos hostings de Subversion que hay se puede encontrar en http://www.svnhostingcomparison.com/

Para software libre está claro que las dos opciones idóneas deben ser Google Code y SourceForge.net. Hay más que ofrecen capacidades ilimitadas, pero creo que esos están por delante.

Si nuestro proyecto es de software propietario entonces tendremos que ajustarnos un poco más, tendremos que escoger entre pagar para tener algo holgado o encontrar un hosting que permita privacidad en los proyectos y una cantidad de almacenamiento y usuarios aceptable.

Sin duda alguna, la mejor opción gratuita para software propietario es Assembla. Brinda de manera gratuita 2GB de almacenamiento, un número ilimitado de programadores e incluso SSL; sin contar que la velocidad de subida y bajada es super apropiada.

Hay más opciones, aunque la siguiente mejor ofrece 1/4 del almacenamiento que da Assembla, por lo que no merecen la pena. Si queremos pagar ya solo depende de lo que necesitemos y lo que podamos pagar, hay un punto en el que compensa tener un servidor dedicado tanto propio como alquilado para que se encargue únicamente del control de versiones.

Montar servidor:

Para montar el servidor habrá que seguir los pasos por los que nos guíe el sitio web del servicio web escogido hasta que finalmente obtendremos una dirección URL tal que así:

https://subversion.assembla.com/svn/sortea2

Hay que tenerla muy en cuenta puesto que a esta URL es a la que nos conectaremos. El usuario y la contraseña para conectarse será exactamente el mismo que el que tuvimos que usar para loguearnos en la página web.

Programa cliente:

A continuación tendremos que usar nuestro programa de lado del cliente para conectarnos; esto es, un programa en nuestro ordenador al que le daremos URL, password y usuario y estaremos conectados.

Para Windows el que se utiliza casi siempre es el Tortoise SVN, que es un cliente de escritorio de software libre también con una interfaz inmejorable. Una vez lo tengamos instalado este programa lo que hace es añadir unas opciones a los menús contextuales del explorador de Windows relativas a repositorios SVN.

Una nota importante a tener en cuenta para pasos posteriores es que si utilizamos Dreamweaver nos interesará descargar la versión de 32 bits de Tortoise si luego queremos conectar ambos sistemas. Se puede tener instalada la versión de 32 y de 64 bits al mismo tiempo de cualquier manera, pero conviene tenerlo en cuenta.

Conectarse al repositorio:

La primera vez que queramos establecer conexión tendremos que dar click derecho sobre la carpeta y seleccionar SVN Checkout…, en el cuadro que nos saldrá pegaremos la URL del repositorio que nos proporcionó el sistema de hosting y a continuación se nos pedirá un par de usuario/contraseña. Si le damos a «recordar» no volverá a preguntar ni pedir autorización.

Ejemplo de Checkout con Tortoise

Una vez aquí, si todo ha ido correctamente lo que tendremos que hacer es subir los archivos al repositorio. Para ello haremos click derecho sobre la carpeta y le daremos a «SVN Commit». De ahí seleccionaremos archivos que no estén versionados («show unversioned files»), seleccionaremos los que queramos y se subirán uno a uno al hosting de SVN.

Si por el contrario nuestro hosting ya estaba montado anteriormente y lo que queremos es descargar las cosas para tener las copias en local, en vez de «Commit» seleccionaremos «SVN Update» y nos descargaremos todo lo que no tengamos descargado.

Integrar con Dreamweaver:

Si utilizas Adobe Dreamweaver como entorno de desarrollo quizás lo que más te interese es tener las posibilidades de envío y recepción de archivos en la misma ventana del programa en vez de estar intercambiando con el explorador de windows para hacer las operaciones.

Dreamweaver desde la versión CS4 incluía un cliente de SVN integrado, el problema viene de que si tenemos un repositorio creado con Tortoise y luego los usamos con el cliente ese de DW no nos servirá, porque tiene una incompatibilidad documentada que Adobe contempla en su sitio web ofreciendonos un parche. Dicho parche está escrito en Python, por lo que si no tenemos instalado Python (90% de los mortales) no funcionará, además hay que tener en cuenta que la versión de Python deberá ser la de 32 bits, porque si no tampoco se iba a poder instalar el parche, debido a que DW dirá que no encuentra una instalación de Python válida.

En definitiva, es mejor olvidarse de todos estos escollos y simplemente usar una extensión para Dreamweaver llamada SubWeaver que actúa como intermediario entre Dreameaver y Tortoise. Ya es cuestión de usar los menús contextuales que nos brinda la extensión y estaremos 100% integrados con Tortoise desde Dreamweaver.


Escrito por .

10 consejos para optimizar MySQL

Escrito en Tutoriales

En un proyecto web medianamente ambicioso llega siempre el momento en que la parte «sagrada» de la aplicación es la Base de Datos. El problema reside cuando las tablas de nuestra Base de Datos empiezan a tener más de 10.000 registros. A partir de ese momento debemos pensar de diferente manera: los accesos deben optimizarse, el sistema de búsqueda ya es demasiado lento y a veces llega incluso al límite de tiempo de ejecución, ya no se puede hacer un ALTER TABLE sin tener que tener la tabla bloqueada unos segundos, etc. Cuando nos empezamos a encontrar con estos problemas es cuando no hemos hecho una predicción suficientemente buena y debemos actuar rápidamente para remediarlo.

Optimizar MySQL es una tarea que debemos tener en mente desde el minuto cero, aunque sin obsesionarse. Siempre es mejor avanzar que quedarse atascado.

A continuación os mostraré 10 consejos que pueden acelerar los accesos a vuestras tablas:

  1. Usa índices:

    Un índice es un sistema informático que permite al gestor de base de datos (MySQL) acceder a la información (registros de una tabla) de una forma más directa que si tuviera que ir dato a dato comprobando si cumple las condiciones.

    Los campos que solamos incluir dentro del «WHERE» de las consultas más comunes deben estar indexadas o bien controladas.

    Los accesos vía PRIMARY KEY son, con diferencia los más veloces. De hecho, cuando utilizamos el motor InnoDB, los datos se encuentran físicamente ordenados por el valor de la clave primaria. Esto hace que acceder a los datos sea trivial.

    Si sabemos que un determinado registro no va a poderse repetir, debemos incluirle un índice UNIQUE y si vamos a realizar búsquedas sobre un campo de fecha por ejemplo, le podemos añadir un INDEX simple.

    Siempre que indexamos un campo disminuimos la velocidad de escritura en la tabla porque cada vez que la manipulamos MySQL tiene que asegurarse de actualizar el índice. Hay que encontrar el equilibrio que permita a la aplicación funcionar rápidamente. Si una tabla recibe muchas modificaciones quizás haya que sacrificar algo de velocidad en las consultas.

    Otro dato a tener en cuenta es que MySQL utiliza mayoritariamente índices B-Tree, en el cual se va creando un árbol con las posibles combinaciones. Por ejemplo, en un índice compuesto por los campos (nombre, apellido1, apellido2) será agrupado primero por nombre, luego por apellido1 y luego por apellido2. Una consulta que busque por apellido2 únicamente no utilizaría el índice. En cambio, una consulta por nombre sería rápida. Una consulta consultando por nombre, apellido1 y apellido2 sería bastante óptima también porque podríamos recorrer el índice de arriba a abajo para encontrar el dato.

  2. Utilización de campos binarios

    Los tipos de dato binario son BINARY, VARBINARY y BLOB que van en consonancia con CHAR, VARCHAR y TEXT. Si el texto que vas a almacenar no va a tener una codificación como UTF-8 es mucho más conveniente utilizar campos binarios, puesto que ocupan mucho menos espacio y las comparaciones se hacen como datos numéricos internamente.

    Por ejemplo, campos que guarden cadenas codificadas como MD5, campos de permalink (URL amigable para buscadores), nombres de usuario que sepamos que no permiten caracteres extraños, etc. pueden ser puestos como binarios. Por cada unidad de información utilizaremos menos bytes y por lo tanto el motor de almacenamiento de MySQL podrá manejar los datos con más soltura.

  3. Utiliza UNSIGNED

    Si al crear una tabla, sabes que un campo solamente contendrá valores numéricos positivos, utiliza UNSIGNED. Esto aumenta al doble la capacidad máxima de los campos sin alterar el número de bytes necesarios para almacenar cada dato. Por ejemplo, todos los campos que utilicen un AUTO_INCREMENT deben utilizarlo, puesto que de la otra manera tendremos un rango enorme de números que jamás utilizaremos.

    En aplicaciones que manejen gran cantidad de datos es posible que un campo INT se nos quede corto para almacenar un AUTO_INCREMENT. Si estuviera UNSIGNED habríamos tenido un campo con el doble de vida útil.

  4. Guarda información redundante

    Con esto nos estaríamos saltando la normalización de las tablas. Pero la realidad es que en las aplicaciones web lo más común es que por cada inserción de datos tengamos muchas más consultas de datos. Lo habitual es que la información cambie cada cierto tiempo pero que sea consultada a todas horas.

    Puede ser útil tener campos calculados. Por ejemplo, total de comentarios en una entrada, número de opiniones sobre un producto, ID del último comentario, etc.  Cada vez que se realice una modificación en esas tablas tendremos que hacer más trabajo, pero normalmente compensa.

  5. No uses tipos de datos gigantes

    Me atrevería a decir que el 99% de las personas jamás necesitarán un campo LONGTEXT a no ser que se trate de un gestor de contenidos o algo por el estilo; incluso habrá muy pocas que necesiten un campo BIGINT para uso normal. Un BIGINT ocupa cada número 8 bytes y puede almacenar un número de un 9 seguido de 18 ceros (aproximadamente). El campo LONGTEXT almacena hasta 4 billones y pico de caracteres, que pueden ser mucho más de 50 páginas de Word por ejemplo.

    Los tipos de dato exageradamente grandes ocupan más espacio en disco y rara vez se utilizan por completo. Es por eso que es más recomendable usar los campos adecuados sin pasarse demasiado.

  6. Trata de usar los simplificadores del lenguaje

    MySQL proporciona algunas maneras que ayudan a hacer las consultas más cortas y más fáciles de entender. Estos métodos no solo nos ayudan a nosotros, sino que internamente son mucho más eficientes. Por ejemplo, usar la expresion " WHERE sorteo = 1 OR sorteo = 2 OR sorteo = 5" es mucho menos eficiente que la siguiente: " WHERE sorteo IN(1,2,5)".

    Algunas de estas expresiones pueden ser BETWEEN, IN, LEAST, GREATEST o INTERVAL.

    Ten en cuenta además de que cuanto más cortas sean las consultas, menos bytes ocuparán y menos tardará el servidor de MySQL en recibirlas. Sobre todo en conexiones remotas.

  7. Intenta unificar consultas

    Intenta siempre hacer una consulta cuando normalmente lo harías con varias. INSERT puede insertar varios registros al mismo tiempo si se separan los «VALUES» por paréntesis y comas, por ejemplo: INSERT INTO sorteo VALUES (1,2, 3),(4,5,6),(7,8,9).

    DELETE múltiples se pueden construir en vez de en bucle insertando los valores a borrar dentro de un IN() de MySQL.

    También es posible modificar varios registros desde una consulta. Para ello tendremos que utilizar una sintaxis un tanto peculiar, pero que puede ser útil. Podéis ver esa sintaxis en el siguiente enlace: http://stackoverflow.com/a/84111

    Es útil sobre todo para modificaciones masivas a través de un script.  Por ejemplo, un script que descargue imágenes para cada producto y luego actualice el campo «imagen» de la tabla «producto». Ir uno a uno modificando cada registro sería muy lento e intensivo. Podríamos agrupar las modificaciones de 10 en 10 registros para aliviar la carga de la base de datos.

    Cada vez que mandamos una consulta tenemos que contar con el tiempo de ping, que es lo que tarda el cliente de mysql en «llegar» al servidor. Si tenemos un ping de 10ms ninguna consulta tardará menos de 10ms porque es el tiempo mínimo. Si unificamos 100 consultas en una, esos 10ms solo los tenemos que perder una vez.

  8. Evita operaciones matemáticas

    No es buena idea hacer cálculos complejos en una SELECT. Siempre que sea posible hay que traer los datos al lenguaje que utilices (PHP por ejemplo) y hacer estos cálculos. Por ejemplo, realizar redondeos, medias, divisiones y demás puede resultar problemático y hay que tener siempre en mente que cuanto menos trabajo haga la Base de Datos, más rápida será.

    Normalmente las únicas operaciones matemáticas que compensan son las asociadas a un GROUP BY.

  9. Utiliza MyISAM si es posible

    Un denominador común en las aplicaciones web es que casi siempre se hacen más selects que inserts/updates/deletes. Si este es nuestro caso, podemos renunciar a las posibilidades relacionales que permite InnoDB para tener un gestor más rápido en las consultas.

    Si recibimos muchas consultas de manipulación de datos MyISAM es insostenible y deja corruptas las tablas con frecuencia. Debemos encontrar el equilibrio. Para un blog MyISAM es ideal. Para un bróker online en tiempo real no lo es.

  10. Utiliza el PROCEDURE ANALYSE() de MySQL

    Esta es una característica muy desconocida de MySQL pero de gran utilidad. Se añade tras una consulta y lo que hace es procesarla y devolver estadísticas sobre cada campo seleccionado. Dice máximos, mínimos, medias y lo más importante, propone el tipo de campo óptimo para cada columna.

    Pruébalo tú mismo, ejecuta SELECT * FROM mytabla PROCEDURE ANALYSE(); y comprueba los resultados.

    Ten en cuenta que a nada que haya menos de 100 posibles valores para un campo ya va a proponerte que utilices un ENUM. No siempre esto será aplicable a tu aplicación.

    Este procedimiento es bastante desconocido pero es muy útil sobre todo cuando tenemos que empezar a dar soporte a tablas creadas por otras personas. Es posible que así identifiquemos campos que en realidad no se usan, tipos de datos que son erróneos, etc.

En definitiva todos los puntos se refieren a que hay que tener control total de los datos que tenemos almacenados, siempre teniendo en cuenta las limitaciones y tratando de mantener una integridad de los datos.

Fuentes: MySQL Certification Study Guide, Building Scalabe Web Sites (The Flickr way).


Etiquetas: , , ,
Escrito por .

Telecinco envía mensajes de pago con publicidad

Escrito en Sorteos, Timos

Hola, yo también envié sms al concurso para ganar un millón y ahora no dejo de recibir sms del 25552.
Alguien me podría decir cómo darlo de baja? he enviado BAJA al 25552 y recibo sms de tele5 para que siga participando en nuevos concursos.
También he llamado a un 902010150 y me dicen que o bien ya estoy de baja o no es esa la empresa que me envía los sms.
En vodafone me dicen que no estoy suscrito en nada, pero sí es cierto que me cobran los sms que recibo.
Alguien me puede ayudar, porfavor? gracias.

Llevamos un tiempo recibiendo una serie de comentarios en una entrada anterior quejándose sobre unos mensajes que les llegaban y que ellos tenían que pagar.

Imagen millón de euros

Bien, dicha entrada versaba sobre la anterior promoción, aquella en la que se sorteaba un millón de euros entre todos los nºs de teléfono de España. Dado que los títulos eran similares a los de la actual, cantidad de gente llegó ahí buscando por la nueva promoción.

En la actual, que finalizará el próximo 2 de mayo, se sorteará un millón de euros pero repartido en diferentes cantidades y en diferentes días, lo cual hace que este premio si sea entregable integramente en principio. Las bases están disponibles online para que todo el mundo pueda consultarlas a fondo para conocer todos los entresijos.

Antes de explicar cuales son los problemas que presenta la participación en dicho concurso, opto por dar las indicaciones para darse de baja completamente de este servicio:

Enviar un SMS con la palabra STOP al 7125

Dicho mensaje tendrá una tarificación estándar de 0,174€.

Se trataría de una promoción normal y corriente, cualquier cadena tiene concursos de este tipo, en el que regalan 10.000€ – 20.000€ entre su audiencia, el problema de esta es que envían publicidad de pago durante las 24 horas del día. Tampoco es una promoción al uso completamente, puesto que tiene un sistema de puntuaciones bastante oscuro en el que dependiendo de las horas a las que contestes la serie de preguntas que luego te envían puedes llegar a ganar 290 puntos más de lo normal. Sin contar con que para participar primero hay que enviar un SMS, luegon nos envían otro (de pago) para que confirmemos que queremos jugar y luego responder otra vez (de pago otra vez) para aceptarlo. En el momento de aceptar la participación estaremos aceptando la base principal por la que se rige este engaño: http://www.usuariosteleco.es/Derechos/TelefoniaMovil/Paginas/Condiciones.aspx#4 , estamos haciendo que sea completamente legal el que nos suscriban a un servicio continuo de pago de alertas.

Pondré de ejemplo un comentarios recibido para ilustrar mejor la situación de mano de una persona ya afectada:

Comentario de Rosa María:

Hola mi nombre es Rosa maria , y he sido estafada como la mayoria de gente con los mensajes de T5 son un fraude , encima ke te manda ellos los mensajes te cobran por recibirlos tu , tiene tela la cosa, asin que no caigas mas en esos tipos de concursos son todo mentira. Y gracias por los comentarios de la gente yo estoy igual ke todos a ver si tengo suerte y me puedo dar de baja . Muchas gracias a todos.

Se hablan de casos en los que la afectada tenía que pagar más de 5€ de saldo diarios, lo que se convierte en 150€ mensuales rápidamente. Para un usuario de saldo le imposibilita el poder realizar llamadas normalmente y a un usuario de contrato le puede arruinar la factura astronómica con la que se encontraría al mes siguiente.

Creo que los afectados por esta auténtica estafa deberían ponerse de acuerdo para denunciarlos a Consumo, puesto que no es tolerable una publicidad tan sumamente engañosa, si bien las bases de legales explican que la publicidad se recibirá, en ninguna parte se dice que se cobren y ni muchísimo menos en los programas de televisión que se emiten en directo hablan sobre las consecuencias nefastas que nos puede traer la participación.

Probablemente muchos de los que lean esto pensarán que «Cómo hay gente que cae en estas cosas«; la cuestión no es esa, la cuestión es que la publicidad engañosa está afectando a cientos de personas y hay que conseguir acabar con esto. Desde aquí se expone el tema concreto y se presenta la manera de parar este caso concreto (sms con la palabra STOP al 7125), pero hay que conseguir parar este tema para siempre.


Etiquetas: , ,
Escrito por .

Ganar dinero en las porras

Escrito en Loterias, Sorteos

Resulta curioso que todo el mundo trata de ganar dinero con todo tipo de juegos de azar, o aprende complicadas y dudosas estrategias para vencer al póker o en los casinos y uno de los juegos más sencillos y rentables del mundo es ignorado sin motivo: las porras.

Una porra es una apuesta por el resultado, normalmente de una competición deportiva. Suele establecerse entre un grupo de amigos, compañeros de trabajo o socios de una asociación. La apuesta es de una módica cantidad (uno o dos euros) y el vencedor de la porra se lleva todo el dinero apostado por los demás.

Pues bien, las porras son probablemente el único juego de azar en que el jugador tiene una probabilidad más alta de ganar dinero que de perderlo.

Hay dos posibles formas de organizar una porra y cada una de ellas tiene una estrategia diferenciada.

En el primer sistema cada jugador da un posible resultado a la competición y no se pueden repetir resultados. En este caso, para ganar dinero lo sencillo es apostar pronto y por un resultado muy probable. Si hablamos del fútbol, se debe apostar por el 0-0, 1-0, 1-1, etc. nada de resultados rimbombantes.

Si se sabe que va a participar mucha gente y se permite la opción de apuestas múltiples, se debe apostar sin ningún tipo de tapujos de forma múltiple a todos los resultados altamente probables.

Hay que evitar el forofismo si lo que se quiere es ganar dinero. Si se quiere ser más forofo que nadie se puede apostar por la victoria de tu equipo 20-0, es una forma de hacer el payaso como cualquier otra.

En este tipo de apuestas en que no se permite repetir resultados llega un punto en que la gente se ve obligada a dar pronósticos que son más propios de los dibujos animados que de los deportes reales. Por ejemplo en fútbol apostar por un 2-7 o cosas así. Lo sorprendente es que hay mucha gente que quiere participar aún así, aún sabiendo que no queda ni un resultado razonable.

Y es por eso que es rentable participar en las porras deportivas, porque mucha gente paga ese dinero para perderlo, sin ningún tipo de pudor.

El segundo tipo de porras son aquellas en que se pueden repetir resultados. En estas apuestas lo más sencillo es irse a una casa de apuestas y ver cuál es el resultado que peor pagan. Si para la casa de apuestas un 0-0 está pagado 8 a 1 y un 1-2 está pagado 15 a 1 quiere decir que la gente de la casa de apuestas, que sabe más de deportes que nadie, entiende que es muchísimo más probable el 0-0 que el 1-2 y en tal caso ese es el resultado que habría que poner.

Porque en las porras la gente suele cometer los siguientes errores, causas fundamentales de que sean un juego sesgado en que se puede ganar dinero:

  • Apostar desmesuradamente por el equipo propio, para ser más forofo que nadie. El antes citado forofismo. Hay casos patológicos de personas que apuestan siempre por un mismo resultado, y abultadísimo, como 5-0 en un partido de fútbol, sin recurrir siquiera al más mínimo sentido común.
  • Apostar por resultados abultados. La gente suele apostar en fútbol por resultados como 3-2 o 4-1 que aunque se nos antojan como muy hipotéticos, en el mundo real se dan raramente. Las estadísticas históricas dicen que los tres resultados más probables son 1-0, 1-1 y 0-0.
  • Apostar por apostar. Gente sin idea alguna del deporte, que por no sentirse excluido da un pronóstico. Normalmente miran lo que ha puesto otra persona y le añaden un gol. Esto hace que su resultado sea aún más improbable.

En las porras en que se pueden repetir resultados se debe intentar apostar lo más tarde posible para, a ser posible, ver lo que han apostado otros y elegir uno de los resultados más probables (de acuerdo a lo que pague la casa de apuestas) y que menos gente haya puesto. Es fácil encontrar que un resultado altamente probable no ha sido elegido.

En un ejemplo práctico, pensemos en el partido del Real Madrid – Barcelona que se juega hoy. En una porra de 40 amigos es fácil que 5 apuesten por el 3-1 o el 1-3 y sin embargo es perfectamente posible que nadie lo haga por el 0-0.

En tal caso, en un sistema en que cada persona pague dos euros, si el resultado final es de 3-1 y él apostó por eso, su beneficio esperado es de (40 * 2 / 5 -2 = 14 euros). Sin embargo si es el único ganador con un resultado de 0-0, ganará 78 euros. Y lo mejor de todo es que en este caso el 0-0 es incluso más probable que el 3-1, por lo que sus probabilidades de ganar son excelentes se mire como se mire.

Con este sistema lo único que se garantiza es tener la esperanza matemática de ganar dinero. Es decir, que en promedio, pase lo que pase, se ganará dinero. Aunque lo más normal es fallar el resultado, al igual que ocurre con la Lotería Primitiva o la Quiniela. Sólo que en esos dos juegos la esperanza matemática es siempre de perder dinero.

Lo bueno es que las casas de apuestas permiten convertir un resultado matemático abstracto (esperanza matemática, que en promedio se gane) en un beneficio tangible. En el caso anteriormente indicado, en que se apueste por el 0-0 en una porra de 40 personas, se puede apostar en una casa de apuestas 40 euros a que no habrá un resultado de 0-0. En este caso pueden pasar dos cosas:

a) Que el partido acabe 0-0. Ganamos 78 euros de la porra de los amigos y perdemos 40 de la casa de apuestas. Resultado: ganamos 38 euros.
b) Que el partido no acabe 0-0. En este caso perdemos los dos euros de los amigos y ganamos lo que la casa de apuestas diera por acertar ese resultado, que será mucho más que 2 euros.

En general el truco para ganar en las porras es aprovechar que las apuestas de los amigos suelen ser poco racionales e incluso poco razonables. Y aprovechamos que existe un mercado como es el de las apuestas deportivas para crear una cobertura y hacer una apuesta win-win, (ganar-ganar) en que no importa el resultado que surja, siempre estaremos ganando dinero.


Escrito por .

Plugin Legible Comments for WordPress

Escrito en blogs

Download Legible Comments for WordPress 0.4 (4,57 KB)

Versión en castellano

In Sortea2 we have developed a WordPress plugin that convert the comments we receive in our blog in text clearer and cleaner, easier to read. To achieve it, it will capitalize the sentences in the right way, always trying to meet the punctuation in the rightest possible way. Also, the annoying comments written entirely with uppercase will be automatically converted into lowercase, making them easier to read.

Installation:

  • Download the plugin.
  • Unzip it and upload the folder legible-comments into the directory wp-content/plugins/ of your WordPress installation.
  • Activate the plugin from the plugin area in the control panel of your wordpress blog.

Why you have to use this plugin?

Because it is great for Search Engine Optimization, because convert poor texts into quality content.

Because it makes more easy for you and for your users to read the entry comments making they stay more time on your page and it promotes comment participation.

Features included in version 0.4 of Legible Comments for WordPress are:

  • Right capitalization of the words: letters at the beginning of the line or after a point will appear uppercase.
  • The repetition of a letter more than twice will be shortened into only two of them. We all are used to comments like: «Heeeeeeeeeeeeeeellllllo» for instance, and with Legible Comments this comment will end like «Heello«.
  • Posibility of changing into italic text what is written between quotes. It improves the comment legibility and it is also interesting in the eyes of search engines like Google.
  • It includes a period after a paragraph and uppercase in the first word of the next paragraph.
  • Transform wrong sentences uses, like the misuse of periods. When the periods have not a space after them and before the next letter, the plugin will include this missing space automatically. Ellipses have a special treatment and more than three consecutive periods are shortened into ellipses.
  • Period.
  • Download Legible Comments for WordPress 0.4 (4,57 KB)


Escrito por .