Jun 25, 2014 - Web    1 Comment

Carta de un hincha al plantel de La Roja

Hace unos minutos vi esta publicación en Facebook. La publicó un amigo diciendo que otro amigo se la mandó por Whatsapp. No se cuánto ha estado dando vueltas por ahí, pero me pareció notable y quise compartirla.

Aparentemente es una carta anónima. Ojalá podamos difundirla hasta que llegue a oídos de nuestros Seleccionados.

Claudio, Gary, Arturo, Edu. Por favor. No podemos más. No queremos morirnos sin haber ganado nada jamás. Sin celebrar nunca nada. Un par de Dusseldorf y un Esperanzas de Toulon. Todo está en sus manos. Chile no le debe nada a nadie. Tratatamos de mentir el 89 y nos mataron dos generaciones. Nos dieron la Copa América del 2015 porque la botó Brasil. Nadie nunca nos regala nada. Cada 25 años un terremoto nos echa abajo. Cada 25 años una generación cree que podemos ser campeones del mundo. Yo ya me ilusioné varias veces, y ahora yo sé que es distinto. Ustedes son los distintos. Son capaces de demostrar que sí se puede. No sólo en el fútbol, en la vida. Yo sé que el fútbol no es de vida o muerte, pero les juro que la muerte sería mucho más dulce con una Copa en la vitrina más larga y angosta del mundo. Que el mundo hable de nosotros. Del equipo que dejó fuera a España, a Brasil, a la Fifa, a la trampa, los miedos, las vergüenzas, todo. Si ustedes pueden ganar un Mundial, un niño pobre podrá ser profesional. Si ustedes le pueden ganar a Brasil, un sedentario puede hacer ejercicios. Si ustedes le pueden ganar a los locales, el indeciso puede pedirle pololeo a su amor platónico. No levantarán sólo una Copa, levantarán a una generación frustrada, pisoteada, aplastada. Donde el perder seguido es parte de la vida. El no tener lo que queremos es lo único que nos regalan al nacer.

Charles, Marcelo, Keno, Alexis. Por favor. No podemos más. No queremos ser más campeones morales. El jugador que más pases dio bien o el arquero que más atajó. Nos encanta el himno, nos emociona el himno, pero no queremos quedarnos sólo con el himno mejor cantado del Mundial. Ese es un plus, un gran plus, pero estamos en Brasil para competir, para ganar. Ustedes son 17 millones, son la alegría de los embarrados, quemados, terremoteados, mojados, quebrados, desfalcados, sin presupuesto.

Gato, Pipe, Mago, Huaso. Ya los tuteo a todos. Cómo no, si ustedes son nosotros. Da lo mismo que sean de la U, de Colo Colo, de la UC o si debutaron en Italia antes que en su país. Vidal, gracias por recuperarte para jugar por tu país. Pinilla, gracias por pedir perdón para volver a la selección. Alexis, gracias por los regalos todas las navidades. Albornoz, gracias por aprenderte el himno y demostrar que eres más chileno que muchos. De eso nos sentiremos orgullosos siempre. Pero esta vez, sólo esta vez, sólo queremos que traigan la Copa. Si quieren, no lo hagan nunca más. Esta vez queremos ser campeones mundiales. Queremos que valga la pena las deudas para viajar o lo que dejamos de hacer para ahorrar cuatro años para viajar a verlos. La Copa es la que vale. Ya perdimos con Holanda, no podemos perder más. La Copa es la que vale. También les damos permiso para pensar en ustedes mismos y no sólo en todo un país. Piensen en todos los campeones del mundo que tienen en su currículum “Campeón del Mundo”. En los que ayudaron a Maradona el 86, a Romario el 94, a Zidane el 98 o a Ronaldo el 2002. Todos esos anónimos son ustedes. Los del trabajo silencioso, de hormiga. Ahora todos son famosos, reconocidos, admirados. Ellos entendieron mejor que nadie que La Copa es la que Vale.

Jorge, Sebastián, Profe. Esta carta es para usted y sus jugadores. No se escribió el 98 ni el 2010. Se escribió el 2014 porque este es el año en que se puede. Llevo horas escribiéndola, días pensándola. Tiempo en el que podría descansar o seguir haciendo una vida llena de mini triunfos personales, silenciosos, sólo míos. Alguna vez quiero uno grande y en lo que me apasiona. Ustedes y sólo ustedes pueden conseguirlo. Privilegiados y con toda la historia por delante. Comencemos el sábado. Por favor. No podemos más. No queremos morirnos sin haber ganado nada jamás. Sin celebrar nunca nada…

Preceptos Digitales: un podcast sobre desarrollo Web

Preceptos Digitales es un Podcast en español dedicado a tratar temas relacionados a la planificación, diseño y desarrollo de proyectos Web.
Este es un nuevo proyecto en el que me embarco y espero que sea un aporte pata todos.
Los invito a suscribirse y a seguirlo en las redes sociales (en el sitio están los enlaces).

http://www.preceptosdigitales.com

20140404-173837.jpg

Jun 24, 2013 - Audio, Otros temas    No Comments

Windows 7 + ASIO4ALL + (Pro-Tools | FL Studio | Audition | Cubase | Etc.)

Instalé Pro Tools y FL Studio en mi computador y funcionaron perfecto. Primero usé FL Studio y no tuve ningún problema con el sonido. Luego usé Pro Tools y no podía grabar ni escuchar. Comencé a averiguar y la razón era que Pro Tools utiliza como salida por defecto el software ASIO4ALL.

Averiguando, descubrí que ASIO4ALL es una versión gratuita de los drivers ASIO (Audio Stream Input / Output) de Steinberg, que se utilizan como salida de sonido (sobre todo en Windows) ya que poseen muy baja latencia entre los sonidos que ingresan y que salen del computador. En palabras simples, si enchufas un micrófono para grabar algo en tu computador y hablas, probablemente el sonido se reproduzca unos milisegundos después de hablados… y por supuesto, si pretendes grabar una canción escuchando las pistas previamente grabadas, será imposible ya que la “latencia” (ese retraso del sonido) será mucha. Esto sucede porque el computador procesa la señal y eso genera un retraso. Entonces el protocolo ASIO soluciona ese problema disminuyendo la latencia. Es por esto que casi todos los programas de audio incluyen ASIO4ALL e intentan utilizarlo en lo posible.

Asique, decidí usar ASIO4ALL… pero por alguna razón no funcionaba en Windows 7. Luego descubrí que el sistema no estaba dejando a ASIO ocupar algunas entradas y algunas salidas de audio ya que estaban siendo previamente ocupadas por algún otro software. El tema es que al iniciarse Windows, el sonido de partida del sistema operativo (esa musiquita que suena al iniciar sesión en Windows) toma de inmediato la salida y esta queda bloqueada.

La solución entonces es dejar libre la salida y entradas (la tarjeta de sonido en el fondo) y luego iniciar el programa que queremos que utilice ASIO4ALL.

Para esto, creé en el escritorio un archivo de texto y lo renombré a “Pro Tools.bat”. Al ser un archivo .bat es un archivo ejecutable por Windows. Luego le hice clic derecho y seleccioné “Editar” (en el fondo esto es para abrirlo en el “bloc de notas”) y escribí lo siguiente:

@net stop AudioSrv
@net start AudioSrv
@cd C:\Program Files (x86)\Avid\Pro Tools\
@ProTools.exe
@net stop AudioSrv
@net start AudioSrv

 

Al ejecutar esto, es lo mismo que hacer clic en “Inicio” y luego escribir “cmd” para abrir una ventana de comandos y ahí escribir una por una las líneas.

Si se fijan, al principio de cada línea aparece una @. Estas sirven para que no se muestre la línea de comandos a ejecutar (sólo por motivos estéticos). Y lo que hice fue detener los servicios de audio, luego reiniciarlos y (antes de que otro programa los tome), voy a la carpeta donde está el programa a ejecutar y luego lo ejecuto. Finalmente vuelvo a reinicar el audio, lo cual se ejecutará una vez que se cierre el programa (para que todo vuelva a funcionar como antes, pues sino, el audio queda tomado por Pro Tools).

Claramente, esto se puede hacer para el programa que quieran. Sólo deben reemplazar la carpeta y el archivo a ejecutar dentro del .bat.

NOTA1: si al ejecutar el .bat están ejecutando algún programa de sonido (como iTunes o Windows Media), el programa tomará el control del audio apenas se reinicie y Pro Tools no alcanzará a tomarlo. Por lo tanto, cierren cualquier programa de audio que esté corriendo antes de ejecutar el .bat.

Nota2: Para crear el .bat deben asegurarse de que vean las extensiones de los archivos pues sino, al cambiarle el nombre al archivo de texto que crearon en su escritorio, este quedará como “Pro Tools.bat.txt” y nunca se podrá ejecutar. Para ver los nombres de los archivos, hagan clic en “Inicio” y busquen “opciones de carpeta”. Dentro de las opciones vayan a pestaña “Ver” y sáquenle el check a “Ocultar las extensiones de archivo para tipos de archivo conocidos”.

Nota 3: Si no les funciona este método, simplemente hagan clic derecho en el parlante junto al reloj y hagan clic en “sonido”. Luego vayan a la pestaña “Reproducción” y deshabiliten la salida de audio principal haciendo clic derecho sobre ella. Luego ejecutan el programa y listo.

Apr 17, 2013 - Otros temas    No Comments

Los monos ambiciosos

Esta es otra historia de monos bastante interesante, que también da bastante que pensar…

Un grupo de monos estaba molestando constantemente a unos aldeanos en África. Bajaban de los árboles, robaban su comida y luego se escapaban.

Ante la impotencia, a uno de los aldeanos se le ocurrió la genial idea de poner al medio de la aldea una jarra de greda de cuello muy delgado, donde sólo cabía la mano del mono. Dentro de la jarra echó unos cuantos manís (asegurándose de que los monos lo vieran) y se sentó a esperar.

Al poco rato comenzaron a bajar los monos con la intención de robarse el maní. El primer mono se acercó y metió la mano. Tomó el maní y al intentar sacar la mano empuñada se quedó atrapado. Ambicioso, el mono no podía soltar el maní e intentaba escapar infructuosamente. El aldeano atrapó al mono, y sucesivamente fue atrapando a los demás monos que quedaban atrapados.

Apr 14, 2013 - MySQL, PHP, Web    3 Comments

Cómo trabajar con bases de datos grandes en MySQL

Primero que nada, quiero aclarar que por bases de datos “grandes” me refiero a aquellas que tienen más de 100.000 filas.

Una base de datos muy grande puede generar bastantes problemas, como por ejemplo que un sitio se demore una eternidad en cargar o incluso que deje de responder. Pero el problema no es la base de datos ni el motor. Dicen que cuando hay que trabajar con grandes cantidades de datos debe dejar de usarse MySQL y usar SQL, pero finalmente una base de datos MySQL puede funcionar tan bien como una SQL si está bien configurada.

En base a mi experiencia, realmente lo complicado de las bases de datos grandes no son la cantidad de filas que tengan, sino la cantidad de datos que deben cruzarse.

Voy a poner un ejemplo práctico. Yo tengo una base de datos que tiene 3 tablas:

ciudades: 2.650.000 filas
regiones: 3850 filas
paises: 250 filas

Una de las formas más eficientes de mejorar las consultas son los “índices”, para lo cual se debe definir (idealmente) un largo y que columna se indexará. Lo que hacen los índices es generar una especie de “libro” donde tomará los X primeros caracteres de cada palabra de la columna definida y los agrupará (indexará). De esta forma, cuando yo busque algo, el sistema buscará en su índice primero y verá cuales son los que cumplen con esas caracteríscticas y luego irá a consultar esos datos (de esa manera no busca en toda la base de datos, sino en los que dice el índice).

Otra manera es utilizando LIMIT. Si estamos consultando algo que sabemos que retornará 1 sólo dato (por ejemplo cuando buscamos algo por ID), al ponerle LIMIT 1 se reducen considerablemente los tiempos. Esto es lógico pues al consultar dentro de 2.650.000 filas, si el sistema encuentra el dato en la fila n°4 (por ejemplo), al no tener un “LIMIT”, continuará consultando hasta el final de la base de datos. Por el contrario, si tiene el LIMIT, dejará de consultar apenas obtenga la cantidad de resultados especificada.

Otra cosa a considerar es que a utilizar LIKE (‘%xxx%’), el largo del string xxx influye mucho en los tiempos de respuesta. Por ejemplo, si busco (en la base de datos de las ciudades) alguna que contenga “%s%”, la consulta tarda 0,0022 seg. Si busco alguna que contenga “%santiago de %”, la consulta tarda 3,877.

Y finalmente el GRAN problema es cuando se cruzan datos. La tabla paises tiene 3 datos: ID, nombre, region. La región es un ID que va asociado al ID de la tabla regiones (de ahí sacaré los nombres de cada región). Y la región pertenece a un país, cuyo nombre está en la tabla de paises (ID, nombre pais).

Si quiero pedir el nombre de la ciudad, el nombre de la región y el nombre del país de todas las ciudades que comiencen con “santiag%”, tendría una consulta como la siguiente:

SELECT ciudad.nombre, region.nombre, pais.nombre FROM ciudades, regiones, paises WHERE ciudad.nombre LIKE ("santiag%") AND ciudad.region=region.id AND region.pais=pais.id

 

Esta consulta, al tener que cruzar datos entre tablas demorará mucho tiempo, ya que obligaremos al motor de base de datos a tener en memoria los nombres de todas las ciudades, regiones y países y hacerlos coincidir. Mientras más WHERE apliquemos, más lenta se tornará la consulta.

¿Qué hacemos en casos como este, en que la consulta demore por ejemplo 35 segundos?… claramente no podemos dejar esperando a nuestros clientes todo ese rato. Para casos como estos, la solución es tan simple como hacer 3 consultas a la base de datos:

  1. Primero, se consulta el listado de paises y se guarda en un array asociativo, donde el Key sea el ID del pais y el valor sea el Nombre del pais.
  2. Luego se hace lo mismo con las regiones
  3. Finalmente se hace la consulta SOLAMENTE de las ciudades que partan con “santiag%”. Sin cruce de datos ni nada.

Entonces, cuando queramos mostrar los datos del pais y la región haremos algo como: <? echo $regiones[ID_CIUDAD]; ?>, <? echo $paises[ID_CIUDAD]; ?>, lo cual mostraría en pantalla algo como “Región Metropoitana, Chile”.

Esta manera, en algunos casos es mucho más eficiente que esperar 35 segundos por consulta, ya que como son 3 consultas simples, demorarían menos de 0,5 seg. cada una.

Estas son algunas formas de optimizar las consultas a la base de datos. Aunque se diga lo contrario por ahí, SI es posible manejar millones de datos en MySQL sin tener problemas de tiempos de respuesta. Sólo basta con configurar y optimizar las consultas.

Feb 28, 2013 - Web    No Comments

Convertir colores hexadecimales a su tono en escala de grises en PHP

El siguiente es una función desarrollada en PHP para convertir colores hexadecimales (colores Web) en su color equivalente en escala de grises.

Ojo que esto NO ES para convertir imágenes a grayscale, sino que para convertir los colores (tipo #ffcc00) a su equivalente en escala de grises.

function grayscale($color,$antecesor="#"){
    $coloresWeb=array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
    $color=strtolower(str_replace("#","",$color));
    if(strlen($color)==3){ $color=$color[0].$color[0].$color[1].$color[1].$color[2].$color[2]; }
    $posiciones=array(
        array_search($color[0],$coloresWeb,true),
        array_search($color[1],$coloresWeb,true),
        array_search($color[2],$coloresWeb,true),
        array_search($color[3],$coloresWeb,true),
        array_search($color[4],$coloresWeb,true),
        array_search($color[5],$coloresWeb,true)
    );
    $total=0;
    foreach($posiciones as $posicion){
        $total+=$posicion;
    }
    $promedio=0;
    if($total){
        $promedio=$coloresWeb[round($total/6)];
    }
    return $antecesor.$promedio.$promedio.$promedio.$promedio.$promedio.$promedio;
}

Como siempre, todos los comentarios son bienvenidos…

Feb 28, 2013 - Teoría, Web    No Comments

La revolución de Internet y el cambio de mentalidad

Este es un artículo que redacté para la revista Carrusel
El siguiente es el texto que fue publicado en la revista

Aparentemente no nos hemos dado cuenta, pero Internet ha revolucionado por completo nuestras vidas y la manera de comunicarnos como sociedad.

Creemos habernos dado cuenta porque hemos estado viviendo el cambio, pero si lo analizamos en profundidad, esta revolución es mucho mayor de lo que parece.

Como menciona Clay Shirky en una de sus charlas para el TED, en los últimos 500 años han existido 5 grandes revoluciones en los medios y que han ayudado por completo a la comunicación, o más específicamente, a la divulgación de la información y conocimiento.

La imprenta fue la primera gran revolución y que permitió la difusión masiva del conocimiento; el telégrafo y el teléfono vinieron después a revolucionar la comunicación directa entre 2 personas; los medios grabados y codificados (audio, imágenes, y video) permitieron almacenar y difundir información “no escrita” y capturar momentos para la posteridad; y el aprovechamiento de las ondas electromagnéticas permitió generar la radio y televisión, con lo cual fue posible difundir una cantidad enorme de información a todo el mundo.

Todos estos han sido grandes inventos y revoluciones, pero si lo analizamos en detalle, todos estos medios tienen la particularidad de ser “uno a uno” o “uno a muchos”, lo cual ha sido la forma de comunicarse durante prácticamente toda la historia de la humanidad, hasta ahora.

Internet ha sido la 5ª gran revolución. Internet ha permitido la comunicación “muchos a muchos”, es decir, que ha abierto el espectro comunicacional permitiendo a cualquier persona ser productor de conocimiento y entregarlo a quien esté dispuesto a recibirlo. En Internet todos somos profesores y todos somos alumnos; todos somos emisores y todos receptores.

Internet y toda su tecnología adyacente (computadores, tablets, celulares, etc.) se han transformado en un medio que abarca a las 4 revoluciones anteriores, permitiendo a las personas crear contenido (audio, videos, textos, imágenes, aplicaciones, juegos, etc.) e incluso conceptos sobre los cuales todos pueden discutir, opinar y comentar.

Imaginémoslo como una analogía en una sala de clases: hasta antes de Internet, el profesor se paraba frente a los alumnos y les daba una charla, con lo cual todos aprendían lo que se les enseñaba y toda la comunicación venía de una única fuente. Ahora, las clases son algo así como una terapia grupal, donde ya no hay un orador, sino alguien que propone un tema, el cual es complementado con el conocimiento de todos los alumnos.

Esto es la gran revolución que ha producido Internet. Es algo que hay que “querer” entender y debemos darnos cuenta hoy mismo de este cambio. Internet no es una moda, es una revolución que ha producido un cambio de mentalidad en la sociedad, y sobre todo en los niños que quieren participar del conocimiento y no solamente recibirlo.

A los niños de hoy hay que permitirles dar el gran paso, pues de una manera u otra lo darán. La sociedad avanza, y así también debe hacerlo la comunicación y enseñanza que los padres les entreguen. Tenemos que dejarlos (y enseñarles a) utilizar las herramientas que Internet ha traído consigo, para que ellos mismos investiguen y creen contenido; hay que dejarlos experimentar y comunicarse de la manera en que sus cerebros vienen programados, pues recordemos que los más jóvenes ya no son como nosotros, sino personas con una nueva mentalidad que ha venido de la mano con este proceso de revolución comunicacional que estamos viviendo.

 

Oct 1, 2012 - PHP, Web    2 Comments

Código PHP para generar automáticamente palabras claves (meta keywords)

Imagino que a muchos de ustedes les sucederá que al desarrollar un sitio hay que poner las palabras claves, idealmente, diferentes en cada página, lo cual es un trabajo de lo más aburrido (y que probablemente al final no hacen)… yo tampoco, por supuesto.

PEOR AÚN!!!… están desarrollando un sitio que lo va a administrar uno de sus clientes, que poco y nada sabe de Internet… osea que las posibilidades de que el sitio vaya a tener keywords son infinitamente nulas!!!

Pues bien… para quienes trabajan “como hombres”, machos y vikingos de la Web (es decir, sin sistemas como WordPress, Joomla o cualquier otro que use plugins para salvarle la vida al programador), les dejo este código PHP  (script, snippet o como quieran llamarlo) hecho por mi para auto-generar una cierta cantidad de palabras claves (keywords) basado en algún texto que se le envíe (idealmente el cuerpo de la página en cuestión). Es IDEAL para generar meta keywords, por ejemplo.

Odio los comentarios en los códigos PHP (al menos nunca he visto uno realmente útil), asique no los voy a poner… sólo les dejaré el código “pelado”, a lo mero macho.

function keywords($texto,$cantidad=20){
$keywords=array();
$palabrasNoConsideradas="que,qué,cuán,cuan,los,las,una,unos,unas,donde,dónde,como,cómo,cuando,porque,por,para,según,sin,con,mas,más,pero,del";
$palabrasNoConsideradas=explode(",",$palabrasNoConsideradas);
$texto=strip_tags(html_entity_decode($texto,ENT_NOQUOTES,"UTF-8"));
$texto=preg_replace(array('/\s+/'),' ',$texto);
$texto=preg_replace(array('/\r/', '/\n/','/[¿!¡;,:\.\?#@()"]/'),'',$texto);
$texto=explode(" ",$texto);
$palabras=array();
foreach($texto as $palabra){
if(ctype_upper($palabra) and count($keywords)<$cantidad and !in_array($palabra,$keywords)){ array_push($keywords,$palabra); } //las palabras en mayúscula son keywords automáticamente
else{
if(strlen($palabra)>2 and !in_array($palabra,$palabrasNoConsideradas)){
if($palabras[$palabra]){ $palabras[$palabra]++; }
else{ $palabras[$palabra]=1; }
}
}
}
arsort($palabras);
$palabras=array_keys(array_slice($palabras,0,$cantidad-count($keywords)));
$keywords=array_merge($palabras,$keywords);
return implode(",",$keywords);
}

Voilá!… cualquier mejora o comentario, por favor háganmelo llegar. Gracias!

PD: se habrán dado cuenta que insinué que los que usan WordPress no son “machos vikingos” y casualmente este sitio está hecho con WordPress… bueno, es sólo una coincidencia… jajaja.

Jan 11, 2012 - Otros temas    No Comments

La paradoja de los monos

Les contaré una historia que me encanta, pues da bastante para pensar sobre el comportamiento de la raza humana.

En un experimento se metieron cinco monos en una habitación. En el centro de la misma ubicaron una escalera, y en lo alto, unos plátanos. Cuando uno de los monos subía por la escalera para acceder a los plátanos, los cinetíficos rociaban al resto de los monos con un chorro de agua fría. Al cabo de un tiempo, los monos asimilaron la conexión entre el uso de la escalera y el chorro de agua fría, de modo que cuando uno de ellos se aventuraba a subir en busca de un plátano, el resto de monos se lo impedía con violencia. Al final, e incluso ante la tentación del alimento, ningún mono se atrevía a subir por la escalera.

En ese momento, los científicos sacaron a uno de los cinco monos iniciales e introdujeron uno nuevo en la habitación.

El mono nuevo, naturalmente, trepó por la escalera en busca de los plátanos. En cuanto los demás observaron sus intenciones, se abalanzaron sobre él y lo bajaron a golpes antes de que el chorro de agua fría hiciera su aparición. Después de repetirse la experiencia varias veces, al final el nuevo mono comprendió que era mejor para su integridad renunciar a ascender por la escalera.

Los científicos sustituyeron otra vez a uno de los monos del grupo inicial. Posteriormente se repitió el proceso con el tercer, cuarto y quinto mono, hasta que llegó un momento en que todos los monos del experimento inicial habían sido sustituidos.

En ese momento, los científicos se encontraron con algo sorprendente. Ninguno de los monos que había en la habitación había recibido nunca el chorro de agua fría, sin embargo, ninguno se atrevía a trepar para tomar un plátano.

Si hubieran podido preguntar a los primates por qué no subían para alcanzar el alimento, probablemente la respuesta hubiera sido “No lo sé. Esto siempre ha sido así”.

Oct 21, 2011 - Javascript, Mootools, Recomiendo, Web    7 Comments

Mootools vs jQuery

Este post es en parte para realizar una comparativa entre Mootools y jQuery. Ambas son librerías de javascript que permiten hacer cosas como animar objetos, seleccionar elementos, etc. en cada página donde se ejecuten, es decir que en la práctica lo que hacen es entregarnos funciones pre-hechas para realizar las tareas de javascript y así permitir, entre otras cosas, simplicarnos la vida y compatibilizar los navegadores. Ambas sirven para lo mismo y de hecho funcionan de manera bastante similar.

Muchas personas no conocen Mootools y, como generalmente ven más sitios o ejemplos hechos en jQuery creen que “es mejor”, pero a mi juicio Mootools es mucho mejor que jQuery. De hecho, NUNCA he visto algo que se pueda hacer en jQuery y que no se pueda hacer en Mootools (por favor si alguien sabe de algo que lo publique acá), y en teoría no tendría porqué jQuery ser mejor que Mootools en ese sentido si ambos están basados únicamente en lo que permite hacer javascript.

El gran plus de jQuery: su documentación

Me he encontrado que cuando quiero buscar algo relacionado a jQuery me es bastante fácil encontrar una solución o ejemplos, a diferencia de Mootools, que su documentación es bastante pobre (sólo lo justo y necesario). Además de eso, mootools tiene unos ejemplos online muy antiguos (de la versión 1.1) y para las últimas versiones ofrecen descargar los ejemplos o revisar su funcionalidad en una interfaz llamada jsFiddle, en la cual también se encuentran ejemplos de las demás librerías como YUI o prototype.

Por su parte jQuery ofrece cosas mucho más simples como jQueryUI o su listado de plugins, los cuales ofrecen ejemplos bastante claros, concretos y simples. Quizás por eso es tan popular jQuery, porque es mucho más fácil encontrar una librería que se ajuste a las necesidades de algún proyecto, la cual puedes implementar incluso con poco conocimiento. De todas formas Mootools no se queda atrás y ofrece Mootools Forge (que en la práctica es un repositorio de plugins) y existen sitios como JOURMOLY que tiene muchos ejemplos realmente útilies y que le “salvan el pellejo”.

El gran plus de Mootools: su funcionalidad

Vamos directo con un ejemplo: cuando tengo un link y quiero que al hacer click haga submit a un formulario simplemente pongo lo siguiente en mootools:

$('id_del_formulario').submit();

En jQuery esto no funciona. Es algo complejo de explicarselo a humanos (yo no soy programador de profesión asique tampoco me gusta explicar las cosas como programador), pero en resumidas cuentas, mootools permite seleccionar un objeto con $ y eso al final es lo mismo que decir document.getElementById. En jQuery, al usar el $ el objeto se convierte en un objeto de jQuery y si quiero hacer un submit tengo que usar una función interna que trae jQuery para dichos efectos. Al ser un objeto de jQuery aparentemente no puede interactuar con todas las funciones básicas de javascript, y eso a la larga es confuso.

NOTA: puede ser que en las últimas versiones de jQuery esto ya no suceda. Me tocó hace tiempo hacer algo como esto y últimamente no me ha tocado desarrollar en jQuery, asique si estoy mal avísenme.

Lo importante es que Mootools es más flexible en ese sentido. Es bastante fácil de implementar y tiene métodos muy simples. Como es obvio, también, hay cosas que son más simples en jQuery, asique creo que en ese sentido es mejor que cada uno decida.

Mi opinión personal

Por mi parte recomiendo Mootools. Personalmente no me gusta jQuery (es como escoger entre WordPress o Joomla, entre los cuales prefiero WordPress), y encuentro que es un poco más engorroso de entender y programar.

Personalmente uso un archivo que pesa 213k pero que contiene TODO Mootools (ya que hay un Mootools “básico” y un “core” que tiene más funcionalidades) y con eso puedo hacer todo lo que quiera en cualquier sitio. Como los .js se cargan una sola vez y luego se toman del caché el impacto que esto produce es imperceptible y además de esa manera no se llama a n archivos (como sucede en jQuery, donde se carga la base y luego se van cargando librerías para efectos, desplegables, carruseles, etc.), sino que se carga sólo 1, lo cual optimiza bastante la carga de la página.

Con esto inicio el debate por si alguien se quiere sumar…

Pages:12345678»
css.php