Contenido

MooTools 1.2.2

28 abr

+ 2

MooTools anuncia la versión 1.2.2 de su framework JS. Esta revisión solventa problemas con la generación de Clases y algunos problemas menores.

OmniGrid, excelente DataGrid con MooTools

31 mar

+ 4

OmniGrid es una excelente alternativa a los DataGrid basados en Javascript. Gracias a la potencia de MooTools, esta aplicación nos permitirá conseguir que mostremos datos de una forma más dinámica y con unas capacidades realmente intersantes.

Menús contextuales con MooTools

17 mar

+ 5

Si estás pensando en añadir un menú contextual a tu aplicación web, esta opción desarrollada en MooTools es de las más bonitas que he visto. Con una gran cantidad de opciones podrás ajustar este menú a tu aplicación e integrarlo perfectamente.[Demo][Descargar]

Se busca gurú.

13 mar

+ 7

Buenas, estoy preparando un test de frameworks JS y me gustaría encontrar un gurú (o alguien que se defienda) con alguno de los siguientes frameworks:

  1. MooTools 1.2.1
  2. Dojo 1.2.3
  3. Prototype 1.6.3
  4. Ext 2.2.1

Es bastante sencillo, tengo un script en jQuery con una serie de funciones que me gustaría migrar de la forma más optima a cada uno de los frameworks indicados arriba. Si alguien puede, y quiere, echarme una mano.

He dejado un mensaje en foro.

Muchas gracias a todos!!!

Rendimiento de las técnicas de POO en Javascript

18 feb

+ 10

Hace unos días hablamos de programación orientada a objetos en Javascript y vimos que es una técnica interesante y las diferentes opciones usadas para conseguirla. Pero ¿cual de ellas es más eficiente en cuanto a rendimiento?

class_performance_javascript

En Broofa.com (y via Ajaxian) descubro que han hecho una prueba de rendimiento a las declaraciones en diferentes navegadores haciendo 100.000 llamadas al constructor de cada uno de estos métodos, ha generado subclases y ha llamado a métodos de dichas clases parada despues comparar la memoria usada en el proceso y los tiempos usados en dichos procesos.

Viendo los resultados observamos que Base2 se corona como técnica más rápida y más eficiente en cuanto a consumo de memoria seguida de la propuesta por John Resig. Por otro lado el rendimiento de Prototype llega a ser hasta 20x inferior que sus competidores.

¿Y MooTools?

Como no han incluido a MooTools en las pruebas me he tomado la libertad de añadirla yo y los resultados son realmente buenos.

mootools_class_performance

Podeis ver los resultados en diferentes navegadores en este script de ejemplo.

Actualización

He tenido un fallo en la comprensión del funcionamiento de JSLitmus y di por supuesto que a menor “amarillo” mejor cuando es diferente ya que esto mide el número de operaciones por segundo y no el número de segundos en realizar N operaciones.

Desde este punto, Prototype me sorprende con la potencia que obtenemos, dejando muy atrás a MooTools y Base2 que pasarían a ser los más lentos de los mostrados. Por otro lado el script de John Resig se mentiene al frente de la comparativa.

Cambia el tamaño de la fuente dependiendo del tamaño del párrafo

26 ene

+ 4

En CSS-Tricks nos muestran como cambiar el tamaño de la fuente de nuestros parrafos dependiendo del número de palabras que estos contengan.

bigandsmallquote

// Código para MooTools
window.addEvent('domready',function() {

	$quote = $$('.post p')[0];

        var $numWords = $quote.get('text').split(' ').length; 

        if (($numWords >= 1) && ($numWords < 10)) {
                $quote.setStyle('font-size','36px');
        }
        else if (($numWords >= 10) && ($numWords < 20)) {
                $quote.setStyle('font-size','32px');
        }
        else if (($numWords >= 20) && ($numWords < 30)) {
                $quote.setStyle('font-size','28px');
        }
        else if (($numWords >= 30) && ($numWords < 40)) {
                $quote.setStyle('font-size','24px');
            }
        else {
                $quote.setStyle('font-size','20px');
        };
});
// Código para jQuery
$(function(){

    var $quote = $(".post p:first");

    var $numWords = $quote.text().split(" ").length;

    if (($numWords >= 1) && ($numWords < 10)) {
        $quote.css("font-size", "36px");
    }
    else if (($numWords >= 10) && ($numWords < 20)) {
        $quote.css("font-size", "32px");
    }
    else if (($numWords >= 20) && ($numWords < 30)) {
        $quote.css("font-size", "28px");
    }
    else if (($numWords >= 30) && ($numWords < 40)) {
        $quote.css("font-size", "24px");
    }
    else {
        $quote.css("font-size", "20px");
    }    

});

Una idea muy interesante pare tener presente….

Recopilación de cosillas interesantes

21 ene

+ 6

Me he pasado unos días peleandome con código y no he tenido tiempo de escribir, pero creo que hay cosas que valen la pena conocer para estar más al día en el mundillo en el que nos movemos.

Más de 65 plugins de MooTools

15 dic

+ 3

MooTools ha dado está dando lugar a grandes aplicaciones y sobretodo herramientas que fortalecen las aplicaciones web de todo el mundo. Algunos de ellos están recopilados en estos más de 65 plugins de MooTools.

Extendiendo los selectores de MooToos y jQuery

15 dic

+ 0

Hace unos días James Padolsey publicó un interesante artículo en el que nos explica como extender las capacidades del selector CSS3 de jQuery. Nos muestra un ejemplo de añadir la posibilidad de encontrar los elementos :inline con el que nos muestra lo fácil que es extender el selector CSS3, núcleo de jQuery.

$.extend($.expr[':'],{
    inline: function(a) {
        return $(a).css('display') === 'inline';
    }
});
// Ejemplo de uso
$(":inline");

Por otro lado, David Walsh ha hecho lo propio con MooTools y nos muestra lo sencillo que es añadir nuevos selectores CSS, pero esta vez a MooTools. Además ha hecho una interesante recopilación de selectores que extenderán perfectamente MooTools.

Selectors.Pseudo.checked = function() {
	return ('input' == this.get('tag') && ('radio' == this.get('type') || 'checkbox' == this.get('type')) && this.checked);
};

Valerio Proietti (MooTools) opina sobre Sizzle

5 dic

+ 7

Valerio Proietti, padre de MooTools, nos cuenta el por que NUNCA Sizzle será parte del código base de MooTools. Al contrario que la gente de Dojo que parece estar sopesando la idea de incluirlo como código de Dojo.

Entre los motivos que Valerio expone, me quedo con estos.

  1. El código que tienen actualmente es rápido y lo más importante, lo conocen. Imprescindible para el día a día.
  2. Los resultados de SlickSpeed se basan en la ejecución de 5 veces la selección lo que hace que el sistema de cacheo haga reducir los tiempos, “engañando” a los números.Lo mismo nos pasa con Peppy.
  3. La dinámica de trabajo de MooTools es incompatible con el código de Sizzle. Al parecer ya tienen una hoja de estilos a la que siguen a raja tabla y entrar ahora con Sizzle supondría un atraso.
  4. El código de Sizzle es realmente grande (cierto) y no ayuda a la reducción de peso que están planeando para la nueva versión.

Para demostrar que los resultados de Sizzle no son tan asombrosos como parecen, ha modificado el código de SlickSpeed para que las consultas se ejecuten una sola vez y además ha usado una versión modificada de MooTools que no devuelve los elementos extendidos para realizar la prueba con el selector de MooTools 1.2.1 y los resultados demuestran que la diferencia es inapreciable.