Archivo de la categoría ‘Informática’

qrcode link
19 de abril de 2008

Type hinting en PHP 5

Otra pregunta del curso de PHP5 se refirió a que ocurre si recibimos una clase en un método que ha definido una restricción de tipo, y esa clase es hija de la que se ha restringido. ¿Las acepta? ¿Podemos acceder a los métodos y propiedades de la clase hija?

La respuesta es que sí a las dos. La “restricción de tipo” lo único que hace es verificar que la clase de la instancia que se le pasa al método es la misma que se restringe, como si usáramos la función is_a(), que devuelve true tanto si una instancia es de una clase concreta o de sus clases derivadas.
(más…)

qrcode link
18 de abril de 2008

Recolector de Basura de PHP5

A partir de una pregunta en el Curso de PHP que estoy impartiendo, me surgieron dudas acerca del funcionamiento del recolector de basura de PHP5.

Gratamente sorprendido, descubro que la implementación que PHP5 hace del recolector de basura es bastante mejor de lo esperado, aunque no exenta de algunas deficiencias.

Vamos a mostrar a continuación un ejemplo práctico de como funciona el recolector:

(más…)

qrcode link
31 de marzo de 2008

Soitu.es libera el widget de las elecciones

Soitu.es ha liberado el código del widget hecho en flash con el que mostraban los datos de los resultados electorales de 2008.

Me parece genial que lo hayan hecho. Así, los que tengan tiempo podrán pasarlo a OOP , cosa que no creo que sea difícil. El código en sí me ha defraudado por su calidad. Aunque funciona bien, el hecho de hacer referencias a _root ,y el no utilizar OOP limita su uso, hace inviable su inclusión en otros proyectos de una manera directa.
Ha sido publicado con licencia GPL3. Lo que permite utilizarlo con bastante libertad.

Artículo en soitu.es

qrcode link
26 de marzo de 2008

Transformación de contenidos responsable

La proliferación de transcodificadores en las pasarelas de conexión de los operadores móviles está provocando reacciones de todo tipo en el mundo de los servicios para móviles. En contra de su utilización se escuchan las voces de desarrolladores y empresas de provisión de contenidos, entre otros, ya que impiden ofrecer sus servicios. A su favor, los operadores móviles argumentan que favorecen la experiencia en Internet del usuario móvil.

Sin embargo esta situación puede cambiar. Al fin parece que hay movimientos por parte de los operadores, que hasta ahora se cerraban en banda o ignoraban las solicitudes de los desarrolladores. El motivo ha sido la publicación de un “manifiesto para la transformación de contenidos responsable” por parte de la lista de desarrollo de WURFL. A continuación una libre traducción del mismo.

(más…)

qrcode link
20 de marzo de 2008

Usando Actionscript 3

Llevo unos días probando AS3 con Flex SDK y Flash CS3. Ya iba siendo hora. He aprovechado las vacaciones para echarle un vistazo y después de unos días de uso encuentro importantes mejoras con respecto a AS2:

  • La principal y más importante es la posibilidad de crear instancias de MovieClip (y derivados) en tiempo de ejecución sin tener que hacer malabarismos.
  • Usa espacios de nombres (packages) para las clases.
  • Está disponible un compilador externo, de manera que no hay que depender más de herramientas de terceros para generar nuestros SWF.
  • Ya no es necesario esperar al evento “load” para acceder a las propiedades de una clase asociada a un MovieClip de la biblioteca.
  • Incluye la clase Event de forma nativa.

Es lógico creer que AS3 permita cierta flexibilidad, ya que va a ser utilizado por diseñadores con pocos conocimientos de programación. Sin embargo creo que es mucho más sano el trabajo de cualquiera, aunque sea mínimo y casual, si se hace con un lenguaje bien estructurado, y con una lógica bien definida. Se están ganado puntos para el futuro.

He aquí una lista de los problemas principales a nivel estructural del lenguaje. Según mi parecer, claro:

  • AS3 no tiene clases abstractas, ni métodos abstractos o virtuales.
  • AS3 no ofrece herencia de los miembros estáticos.
  • AS3 sigue teniendo tipado débil. Permite acceder a propiedades”fantasmas” de los objetos “Object”
  • AS3 no admite sobrecargas de métodos. Esto es especialmente ruinoso, porque hay que hacer uso de constructores que acepten “Object” como parámetros, o peor aún, el tipo “*”. Se puede también hacer uso de los valores por defecto de los parámetros, aunque es muy limitado.
  • AS3 a veces asigna por referencia y otras por copia. No queda muy claro cuándo usa qué.
  • AS3 no soporta constructores privados o protegidos. Adiós, Singleton, Adiós.

Por otro lado tenemos pequeños detalles o bugs. No son problemas estructurales, sino de cómo se han creado las clases que forman las bibliotecas de Flash o de fallos del reproductor:

  • Para acceder a los eventos de un objeto Loader, hay que “escuchar” los eventos de un atributo suyo (contentLoaderInfo), a persar de que Loader hereda de EventDispatcher.
  • Los delegados han sido eliminados, y han ampliado el funcionamiento de los eventos, enterrando la posibilidad de pasar delegados como parámetros de funciones, y pasar parámetros a los delegados. (Suena raro, pero es así)
  • Hay un bug en la propiedad filters de un MovieClip. Al crearse el MovieClip es un array vacío, que debería permitir agregar nuevos filtros con “push”, sin embargo no lo permite. Debe asignarse a una nueva matriz para que funcione correctamente
  • Para dibujar algo sobre en Sprite tienes que acceder a una propiedad “graphics”, que en realidad no es otra cosa que una biblioteca de funciones para poder dibujar. Quizá hubiera sido mejor integrar esos métodos en la clase Sprite, y/o hacerlos estáticos.

PD: La lista irá creciendo según vaya encontrando bondades y defectos.

  • qrcode link