alexbm8_apuntes_09_03_09

= = =Apuntes del 9 de Marzo de 2009=

En primer lugar nos hizo el resumen de la clase anterior [|Vallesquino], (durante el mismo, aclaramos que la orden //prompt// se usa para capturar datos en el navegador). Hecho esto pasamos a ver los tres primeros ejercicios del tema de JavaScript: el primero de [|Vallesquino], el segundo de alexbm8 y el tercero de [|Carlos] , que no estaba del todo completo. Durante esta revisión aclaramos conceptos tales como que XML es un lenguaje general de descripción de estructuras de datos. En relación con el bloque T1.1, vimos que los Servlets se ejecutan en el servidor no en el navegador. CSS sí que se puede considerar un lenguaje al igual que HTML. También existen [|VBScript], [|Silverlight] (para C#) ( [|Moonlight] , alternativa libre). Ajax, sin embargo, es una forma de trabajar entre el cliente y el servidor, no es de por sí un lenguaje, es más un protocolo de comunicación. Luego existen lenguajes que se ejecutan en el servidor: [|PHP], [|Python] , [|RubyOnRails] (entorno de desarrollo de aplicaciones cliente servidor basado en ruby, [|Twitter] o [|laCoctelera] están diseñados en este lenguaje), [|Django] , [|Catalyst] (equivalente en Perl a Django), etc. Cualquiera de estos entornos de programación es muy útil para el desarrollo profesional. También hablamos de [|Google Gears] (entorno tipo Ajax). Se planteó la [|segunda práctica], y se estableció como fecha de entrega el día jueves, 19 de Marzo. Seguimos con el temario, viendo las matrices asociativas. Éstas contienen valores a los que se puede acceder mediante su índice. La clave para acceder a un valor es una cadena alfanumérica (también se les suele denominar hash, típicamente en Java o diccionario, como en Python). Se usan en casi todos los lenguajes, ya sean más o menos dinámicos. Tienen una sintaxis especial para diferenciarlos de las arrays (se pone “%”) y para referirnos a un elemento usamos la “$” de “escalares”. Para acceder a un vector necesitamos saber su dimensión, sin embargo, en una matriz asociativa, hay que conocer las claves. Para poder acceder a cada valor de la matriz asociativa necesitamos conocer la clave asociada a dicho valor. Podemos usar “splice” en una matriz asociativa y quedarnos con las claves, etc. En Perl podemos obtener las claves existentes con la orden ‘keys’. En Ruby vimos el siguiente ejemplo: // matriz_asociativa[‘segunda_clave’]=’Segundo_valor_ruby’ // // puts matriz_asociativa.keys // || Se comentó el proyecto [|Google Summer Of Code]. De la UGR habrá 10-15 mentores (más información [|aquí] ) También se comentó la presentación de proyectos de la oficina de [|software libre]. JavaScript lo almacena todo prácticamente de la misma forma, y por tanto, no debemos declarar nunca un array asociativo como array, sino como objeto, porque si trabajamos como array, existen propiedades como el tamaño del array pueden dar lugar a errores. Para crear variables privadas usaremos ‘var’. Si queremos acceder a funciones específicas de cadenas (“split”, por ejemplo), debemos declararla como cadena de caracteres (String). Tenemos String, Object, Array como clases ya definidas de JavaScript. Con Rhino (implementación de la máquina virtual 1.6 de JavaScript sobre Java) podemos emplear cualquiera de las librerías de Java. Por tanto, para emplear clases de Java de forma nativa dentro de JavaScript, podemos usar esta alternativa Así aquello que sea más fácil hacerlo desde JavaScript lo haremos desde JavaScript y lo que sea mejor desde Java lo haremos en Java. Mediante //load// podemos también cargar ficheros, eso sí, en formato XML. En openjsan existen multitud de librerías para JavaScript. Por último vimos la sintaxis [|JSON], que es directamente código JavaScript. Y vimos un ejemplo donde se hacía una petición a un servicio, y el resultado lo devolvía directamente en JSON.
 * // matriz_asociativa={‘clave_ruby’ => “valor_ruby”} //