Aprendiendo MobileProcessing

Desarrollo de software, Móvil March 26th, 2008

Bien, por fin he tomado la decisión inaplazable y definitiva. Voy a aprender MobileProcessing de una buena vez. De tantas cosas que hay en este mundo que quisiera tener el tiempo suficiente para aprenderlas, MP va a ser la siguiente que voy a aprender.Hice una búsqueda y no encontré una documentación muy sólida y estructurada que digamos, sin embargo encontré algunas cositas interesantes y suficientes para aprender lo necesario.

También estuve ojeando un poco el libro Processing: A Programming Handbook for Visual Designers and Artists el cual habla de muchas cosas en especial de temas de diseño y de imágenes, sin embargo debido a la hora me tocará posponer una mejor revisión para después.

Espero poder dedicarle mas tiempo para practicar un poco y hacer alguna cosita con el lenguaje, pero ya será la otra semana porque esta semana ya se acabó y el fin de semana tengo clases ... otra vez.

Tags:

Add-ons realmente útiles de Firefox

Desarrollo de software, Web March 26th, 2008

Firebug Es totalmente indispensable. No me imagino como será el desarrollo de software web sin él :-)
Web developer Es un excelente complemento para los desarrolladores web, permite manipular la página de maneras muy útiles.
Colorzilla Permite capturar cualquier color que se encuentre en la pantalla y copiarlo en diferentes formatos.
FireShot Permite capturar screenshots de las páginas ya sea del área visible o del total de la página y permite añadir elementos gráficos a ella.
IE Tab Permite crear pestañas con el mecanismo de presentación de Internet Explorer para mostrar las páginas web.
MeasureIt Permite realizar mediciones de ancho y largo de los objetos en pantalla.
ViewSourceWith Permite establecer terceras aplicaciones para editar/mostrar el código fuente de las páginas web.
Yet Another Window Resizer Permite modificar el tamaño del navegador para simular la presentación de las páginas ante diferentes resoluciones de pantalla.
YSlow Analiza el desempeño de una página según su contenido y distribución y presenta sugerencias para su mejora.

Tags:

Introspección de Objetos con Prototype

Desarrollo de software, Web March 26th, 2008

La introspección de objetos permite consultar información del objeto mismo. En Prototype los métodos descritos a continuación pertenecen a la clase Object.

Object.inspect(e) : string Retorna la representanción de cadena del elemento, útil para labores de depuración.
Object.isArray(e) : boolean Retorna verdadero si el elemento es un arreglo, falso de lo contrario.
Object.isElement(e) : boolean Retorna verdadero si el elemento es un objeto DOM, falso de lo contrario.
Object.isFunction(e) : boolean Retrona verdadero si el elemento es una función, falso de lo contrario.
Object.isHash(e) : boolean Retorna verdadero si el elemento es un hash, falso de lo contrario.
Object.isNumber(e) : boolean Retorna verdadero si el elemento es un número, falso de lo contrario.
Object:isString(e) : boolean Retorna verdadero si el elemento es una cadena, falso de lo contrario.
Object.isUndefined(e) : boolean Retorna verdadero si el valor del elemento es undefined, falso de lo contrario.
Object.keys(e) : [string, ...] Retorna un arreglo con las llaves del elemento.
Object.values(e) : [string, ...] Retorna un arreglo con los valores del elemento.
Object.toQueryString(e) : string Retorna la representación de consulta en cadena codificada para URL del elemento.

La función inspect realiza el siguiente procedimiento para calcular la representación en cadena de un objeto.

  • Si el objeto es null o undefined utiliza los nombres de estos valores.
  • Si el objeto presenta el método inspect, este es llamado.
  • De lo contrario se utiliza el método toString presente en todos los objetos.

Revise el siguiente ejemplo para conocer como utilizar estos métodos de introspección.

Para mas información acerca de estos métodos consulte el API referente a la clase Object.

Tags: ,

Funciones básicas de Prototype

Desarrollo de software, Web March 26th, 2008

Para incluír Prototype en las páginas web se debe agregar la siguiente línea a la sección de head, reemplazando la ruta src con la adecuada.

<script src="lib/prototype.js" type="text/javascript"></script>

La función $() reemplaza a la expresión document.getElementById del JavaScript estándar revisando el árbol de elementos DOM y retornando una versión ampliada del elemento en cuestión. Esta función recibe como parámetro la etiqueta del ID del elemento o directamente la referencia al objeto DOM para obtener su versión ampliada. Más información.

a = document.getElementById('seccion_1');         // JavaScript convencional.
b = $('seccion_1');     // Estilo Prototype.
 
a.style.display = 'none';    // JavaScript convencional.
b.hide();     // Gracias a la extensión de los elementos que provee Prototype.

Esta función puede utilizarse con varios parámetros en un único llamado.

 
secciones = $('seccion_1', 'seccion_2', 'seccion_3');

Esto equivale a decir lo siguiente.

 
secciones = [];
secciones[0] = $('seccion_1');secciones[1] = $('seccion_2');
secciones[2] = $('seccion_3');

La función $w() convierte cadenas con palabras separadas por espacios en arreglos cuyas celdas corresponden a estas palabras. Más información.

 
numeros = $w('uno dos tres cuatro');

El contenido de numeros será entonces ['uno', 'dos', 'tres', 'cuatro'].

La función $$() realiza búsquedas basadas en los selectores de CSS, el resultado de esta función será siempre un arreglo toda vez que la búsqueda podrá arrojar múltiples resultados. Más información.

 
$$('div')     // Todos los divs.
$$('#seccion_1')     // Igual que $('seccion_1') pero en forma de arreglo.
$$('li.resaltado')     // Todos los LI que tengan la clase 'resaltado'.
$$('#seccion_1 p')     // Todos los P dentro de seccion_1.

Existen múltiples opciones para esta función flexible, para consultar mas información al respecto revise el API correspondiente.

La función $A() convierte (promueve a) los elementos estilo colección (o arreglo) en objetos Array de Prototype. La ventaja de utilizar este método es que enriqucerá el resultado con los método de la clase Array como each, indexOf y toJSON, facilitando el procesamiento de la información contenida en él. Más información.

Esta función opera bajo las siguientes premisas:

  • Si el valor es null, undefined o false, el arreglo resultante es vació.
  • Si el objeto presenta el método toArray() entonces este método es utilizado.
  • De lo contrario los valores del objeto son recorridos y manipulados de la manera convencional.

La función $F() toma un elemento campo de un formulario, ya sea el objeto DOM o su respectivo ID y retorna el valor contenido en el campo. Es una versión mejorada de la sentencia document.getElementByID('elemento').value. Más información.

Esta función opera bajo las siguientes premisas:

  • Para las listas de selección múltiple se obtiene un arreglo con cada uno de los valores selccionados.
  • Para los checkboxes y radiobuttons no seleccionados se obtiene null.
  • Para cualquier otro elemento se obtiene una cadena de texto con el valor del campo.

La función $H() convierte (promueve a) un hash de JavaScript un objeto Hash de Prototype con sus consiguientes métodos ampliados. Más información.

 
opciones = $H({color: 'rojo', sabor: 'salado', tipo: 'alimento'});
 
opciones.keys();    // Retorna ['color', 'sabor', 'tipo'].
opciones.values();    // Retorna ['rojo', 'salado', 'alimento'].

La función $R() crea objetos rango (ObjectRange) de Prototype con sus respectivos métodos y usos útiles. Más información.

 
$R(1, 10).each(function(i)
{
// Se ejecuta 10 veces iterando a i desde 1 hasta 10.
});
 
$A($R(1, 10));    // Retorna el arreglo [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].

Tags: ,