Archivos para Diciembre 2007

30
Dic
07

El Aprendiz se va de Vacaciones

Pues, sí. También me toca ¿no? Teniendo en cuenta que ya es 30 de Diciembre (al menos en mi país) y que mañana recibiremos al Nuevo Año, y también tomando en cuenta que mi esposa y yo nos iremos a casa de mi familia en Valencia una semanita (que me hacen falta vacaciones y este año, por segunda vez, no lo pasaré con ellos) quiero aprovechar de desear a todos(as) un Muy Feliz Año Nuevo, que lo pasen muy bien y no les dé resaca ;)

De cualquier forma, ya nos veremos a partir de la segunda semana de enero, para continuar fastidiándolos.

A todos los que siguen este blog (Hola Otaku Rzo!) y a quienes caen aquí por alguna mala pasada del destino (o algún shinigami que espera que mis posts le causen la muerte ;) ) quiero desearles de todo corazón un año nuevo lleno de felicidad y éxitos, sumamente productivo y -por supuesto- divertido.

Y para aquellos que no recibieron regalos, pues tendrán que conformarse con este:

¡¡¡Feliz Año!!!

Desagradable ¿no? PSJ U_U

28
Dic
07

Programación Orientada a Objetos – Características de la POO

Este post es parte de una serie de artículos sobre POO y viene a continuación de ¿Qué es P.O.O.?

Características de la P.O.O.:

No hay un acuerdo aceptado por todo el mundo respecto a cuáles son las características que definen la POO, pero al menos todos concuerdan en estas tres:

  1. Abstracción.
  2. Encapsulación.
  3. Herencia.

Abstracción:

Cada vez que pronunciamos una palabra, realmente lo que hacemos es asociar ese sonido (o ese conjunto de garabatos al escribir) con una serie de cosas. Decimos que una ave es tal cosa, que una silla es tal otra, etc.

Cuando vamos a aplicar la POO, lo primero que debemos hacer es cumplir con una vieja máxima de guerra: Divide y Vencerás. Es decir, lo que hacemos es seccionar nuestro código en grupos de código más pequeño que, al unirlos, hacen el trabajo. Un buen ejemplo de abstracción es el cuerpo humano, aunque el cuerpo es una unidad, está dividido en lo que conocemos por sistemas (el sistema respiratorio, el sistema linfático, cardiovascular, etc., etc.). Estos sistemas, a su vez están compuestos por otros más pequeños: los órganos, y así sucesivamente. La abstracción nos permite dividir nuestro programa en distintos objetos que se agrupan para formar cosas más complejas.

Pero ¿qué demonios es realmente la abstracción? Básicamente es la capacidad de separar los elementos (al menos mentalmente) para poder verlos de forma singular. Como cuando describimos el cuerpo humano y decimos cabeza, brazo(s), pierna(s), etc.

Encapsulación:

También conocida como ocultamiento. Cuando me acuesto a ver televisión no me preocupo del modo como éste funciona, o lo que hace para cambiar de canal o aumentar el volumen. A menos que seas experto en electrónica o técnico en televisores, te pasará lo mismo: no lo sabes y no te importa; sólo sabes que al presionar un botón ocurre la magia.

La encapsulación se encarga de mantener ocultos los procesos internos que necesita para hacer lo que sea que haga, dándole al programador acceso sólo a lo que necesita. Esto da dos ventajas iniciales: Lo que hace el usuario puede ser controlado internamente (incluso sus errores), evitando que todo colapse por una intervención indeseada (tú no quieres que tu mamá, que no tiene ni idea de electrónica, abra tu televisor y empiece a jugar con los circuitos para cambiar los canales manualmente ¿verdad?). La segunda ventaja es que, al hacer que la mayor parte del código esté oculto, puedes hacer cambios y/o mejoras sin que eso afecte el modo como los usuarios van a utilizar tu código. Sólo tienes que mantener igual la forma de acceder a él (en el caso del control de la tele, que los botones sigan siendo los mismos y que el botón de “apagado” no cambie el volumen). Por cierto, estas puertas de acceso que das a los usuarios son lo que se conoce como interfaz.

Herencia:

Uno de los elementos (a mi modo de ver) más interesantes de la P.O.O. La herencia es la capacidad que tiene una clase de derivar las propiedades y métodos de otra (suena a chino ¿no? Calma, lo veremos luego con paciencia ;) ). Tratemos de explicarlo con un ejemplo:

Decimos que una gallina es un ave; esto quiere decir que las gallinas tienen características comunes con otras aves (pico, plumas, etc.), es decir que la gallina hereda las características comunes de todas las aves. Pero además, resulta que un ave es un animal, lo que significa que también comparte características comunes al caballo, el perro, el hombre (seeee, somos animales) y cualquier otra cosa que pueda ser clasificada como animal.

La herencia nos permite, entre otras cosas, evitar tener que escribir el mismo código una y otra vez, puesto que al definir que una categoría (que en programación llamaremos clase) pertenece a otra, automáticamente estamos atribuyéndoles las características generales de la primera, sin tener que definirlas de nuevo.

Una vez establecidas las características de la P.O.O., veamos sus elementos básicos: Clase e Instancia

Technorati Tags: , ,

28
Dic
07

Programación Orientada a Objetos – ¿Qué es POO?

Hace tiempo había prometido a mis alumnos de ActionScript que les daría algunos apuntes acerca de la Programación Orientada a Objetos y cómo aplicarla en AS2. Pues bien, el momento de cumplir esa promesa ha llegado; para ello voy a darme a la tarea de estructurar una serie de posts al respecto, tratando de comprender lo que significa la Programación Orientada a Objetos y como aplicarla en AS2 dirigida a no-programadores (que son la mayoría de mis alumnos). La idea que tengo en mente es estructurar un material que permita entrar en el fascinante mundo de la Programación, principalmente pero no limitándonos a AS2, para luego hacer un paso seguro y firme a AS3 y ver también como podemos aplicar esto en otros lenguajes sumamente útiles en el desarrollo web, como PHP y Javascript. Ya veremos como nos va. :-|

¿Qué es la Programación Orientada a Objetos?

La P.O.O. (también conocida como O.O.P., por sus siglas en inglés) es lo que se conoce como un paradigma o modelo de programación. Esto significa que no es un lenguaje específico, o una tecnología, sino una forma de programar, una manera de plantearse la programación. No es la única (o necesariamente mejor o peor que otras), pero se ha constituido en una de las formas de programar más populares e incluso muchos de los lenguajes que usamos hoy día lo soportan o están diseñados bajo ese modelo (PHP, AS2, AS3,…).

Lo que caracteriza a la POO es que intenta llevar al mundo del código lo mismo que encontramos en El Mundo Real™. Cuando miramos a nuestro alrededor ¿qué vemos? pues, cosas, objetos, pero podemos reconocer estos objetos porque cada objeto pertenece a una clase, eso nos permite distinguir, por ejemplo, un perro de un auto (porque son de clases diferentes) y también un TV de otro (porque, aunque sean iguales, cada uno es un objeto distinto). Éste es el modelo que la POO intenta seguir para estructurar un sistema.

Es importante recalcar nuevamente que la POO no es un lenguaje de programación, es una forma de enfrentarse a ella. Esto significa que la POO le servirá para desarrollar en muchos de los lenguajes comunes de hoy en día (incluso en ASPuaj!) manteniendo un mismo esquema mental. Incluso le permitirá enfrentar otros proyectos que no necesariamente estén relacionados con escribir código… (Advertencia: La P.O.O. no cura el cáncer ;) )

Bien, ahora que hemos visto (someramente) de qué se trata , vamos a darnos un paseo por las Características de la POO

Technorati Tags: , ,

27
Dic
07

Este Blog no ha Muerto

Escribo esto principalmente para disculparme con las personas que se han dignado visitar este blog (es decir, mi hermano y tres amigos). Tanto con aquellos que lo siguen visitando de vez en cuando como con quienes lo han dado ya por abandonado.

Son varias las razones que no me han permitido postear con la frecuencia acostumbrada (y menos la deseada), principalmente la cantidad de trabajo y que -créanlo o no- tengo una vida (o algo así) allá afuera, en El Mundo Real™, a la que he debido dedicarle parte de mi tiempo.

Podría haber resuelto la cosa fácilmente posteando noticias u otras cosas no necesariamente relacionadas con el tema principal del blog (que puedes ver aquí), pero eso sería injusto con ustedes y con el blog mismo. Es por eso que he preferido esperar a estar un poco más disponible para hacer las cosas bien y centrarme en la idea original que dio vida a El Aprendiz…

Además, para bien o para mal de ustedes ;) , he decidido pasar el blog de experimento al estatus de proyecto, lo que significa que tendrá un tiempo fijo en mi agenda junto con los demás trabajos. Tanto para investigación y aprendizaje, como para publicación de posts. Aún no decido la frecuencia de los mismos porque siempre dependerá del tiempo que me lleve investigar y aprender… También significa que en el transcurso del próximo año (posiblemente luego de que saquen la nueva versión de WordPress) lo mude a mi dominio personal, para poder seguir experimentando.

Dicho esto, publicaré en uno o dos días máximo el prometido post sobre Programación Orientada a Objetos, aunque realmente será el primero de varios, porque el tema tiene para escribir y no quiero agobiar más de lo necesario, y luego dedicarme a otros temas que también resultan interesantes para mí y, espero, para ustedes.

Así que, sépanlo, El Aprendiz sigue vivo y coleando…

22
Dic
07

Swift 3D, ahora exporta a Papervision

Hace tres días, recibí un correo de Electric Rain anunciando la nueva versión de su principal producto, Swift 3D. Entre sus nuevas características, me llamó mucho la atención que ahora soporta Papervision, lo que permitirá exportar las animaciones 3D hechas con esta herramienta al formato de Papervision, permitiendo además interacción con el ratón de forma nativa. La lista de las nuevas características es:

  • Exportación de escenas 3D a Papervision3D con rotación y zoom integrados.
  • Animar fácilmente la maya de sus objetos 3D usando morph targets
  • Nueva interfaz con configuración para 4 vistas y vista ortográfica en el Editor de Escenas.
  • Aplicar rellenos y estilos de línea diferentes para cada objeto en la escena y el render en un solo paso.
  • Compresión de animaciones vectoriales mayor al 50% con optimización controlada por el usuario.
  • Exportación al formato 3DS para ser usada en otras aplicaciones, como Adobe Photoshop CS3 Extended.
  • Permite animaciones con easing para suavizado dinámico de las transiciones.
  • Importación, exportación y renderizado de materiales bitmap transparentes.
  • Exportación a Silverlight.

Como ven, hay una buena cantidad de características interesantes en esta nueva versión, que repotencia una vez más a Swift3D como una gran herramienta de animación vectorial en 3D. Aún habrá que ver en la práctica si han logrado bajar el peso de sus animaciones al exportarlas a Flash (que solían ser muy pesadas), pero promete dar de que hablar en el juego del 3D en Flash.

Si quieres más información sobre Swift3D, puedes verla en la página de Electric Rain (en inglés)

Si no sabes qué es Papervision, puedes enterarte en su blog (en inglés)




“Do the impossible, see the invisible. Raw! Raw! Fight The Power!”

 

Diciembre 2007
L M X J V S D
« Nov   Ene »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Aquí Hablamos de

¿De dónde nos visitan?

Delicious