martes, 14 de agosto de 2012

Cristalab

Cristalab


La historia y muerte del Flash Player en iPhone y Android

Posted: 14 Aug 2012 06:40 AM PDT

Todo empezó hace cinco años. Cuando el iPhone salió y Apple, famosamente, prohibió la existencia de Flash en el teléfono. De ahí se desprende una saga gigantesca:


2007, salida del iPhone


El 2007 sacudió al planeta entero. La salida del primer dispositivo multitouch, teléfono, navegador completo, computador real de bolsillo, a un precio semi-sensato, fue una sorpresa para la que nadie estaba preparado. Lo mejor de la época era el N95 de Nokia y el Blackberry Bold. El iPhone cambiaría para siempre la computación.

Muchas preguntas circularon a Apple, la principal ¿Habrá Flash Player para Safari Mobile? La respuesta:
"There will be no Flash support at the moment on the iPhone."



2008, la bipolaridad de Apple y Adobe


El iPhone es un éxito absoluto. Pero nadie sabe aun si quiera si habrán apps para la cosa. En la época recibí información bajo NDA de varios empleados de Adobe con Flash Player en sus iPhone y obvio, la reporté como rumor. Pero era muy real. El Flash Player corría standalone en iPhones con jailbreak e ingeniería inversa.

Luego, Apple libera el SDK de apps y dice que no está convencida que Flash Player sea buena idea. Aun no se pronuncia Adobe al respecto.

Para finales del 2008, Adobe confirma estar trabajando en un Flash Player. La razón de la confirmación es presionar a Apple de dejarles instalar el player en Safari. Apple se sigue negando tras el escenario.



2009, Adobe se cansa. Android brilla. Adobe mete el player al iPhone por detrás


La gran noticia del 2009 es que, tras dos años, la competencia estaba lista para pelear. La Palm Pre y Android presentan sus versiones más maduras. Google y Palm confirman lo mucho que quieren a Flash de su lado

Sale el HTC Hero, el primer teléfono Android con Flash Player. Inicialmente es el horrible Flash Lite, pero eventualmente será el Flash Player 10.

Adobe crea el Flash Player Compiler for iPhone y muestra que, a escondidas, a metido multiples juegos a la App Store de iPhone que fueron croscompilados a Objective-C usando Actionscript 3 y el core del Flash Player. A Apple no le gusta la noticia. El año termina con Flash Player 10 en Windows Mobile, WebOS (Palm Pre), Symbian y Android.



2010: La hecatombe de Steve Jobs


Sale el iPhone OS 4 (Aun no se llama iOS) y Apple anuncia muchas cosas lindas, entre ellas que queda prohibido desarrollar apps para iPhone con cualquier cosa que no sea Objective-C y XCode, matando el esfuerzo de Adobe y el punto de venta #1 de Flash CS5. Adobe peleará esta decisión en tribunales y comisiones anti monopolio.


Ese mismo mes, Adobe asume la realidad y abandona para siempre la idea de un Flash Player para iPhone. Declarando que se dedicará a apoyar las plataformas "abiertas" y declarando su compromiso con Android.

Apple recibe UNA LLUVIA DE IRA como nunca y Steve Jobs decide usar un arma nuclear. El CEO de Apple publica una carta donde explica la historia de Apple y Adobe, como ellos intentaron ayudar a Adobe y como Adobe, en opinión de Apple, nunca fue capaz de entregarles un Flash Player decente para móviles.

La cosa se pone peor cuando la industria del porno abandona Flash y declara su soporte por video en HTML5. HTML5 no estaba listo para prime-time, pero Apple y el porno estaban decididos a empujarlo. Google y hasta Microsoft se montan en la misma tarea.


La presión legal de Adobe logra que Apple acepte apps nativas croscompiladas desde AS3 y Flash hacia el iPhone. Esta es la misma época en la que Android empieza a ganarle terreno al iPhone y la FTC de USA empieza a investigar a Apple por monopolio abusivo.


2011: El Fin del Flash Player


El uso del Flash Player en Android estaba en su punto más bajo y nadie realmente lo usaba. El empuje de Chrome, Firefox, Safari, IE9 y los webkit móviles convirtió al 2011 en el año de HTML5. Adobe seguía viendo crecimiento en el desarrollo de juegos con Flash y apps con Flex que eran croscompiladas a apps nativas en Android y iPhone, pero no veía tal cosa en el player embebido en el navegador.


En el 2011, Adobe perdió su último aliado. Microsoft anuncia que Windows 8 no correrá el Flash Player en Internet Explorer 10 en la interfaz Metro por defecto. Habrá que desactivar Metro, algo que rara vez hace un usuario normal. El Flash Player obtiene su golpe más fuerte.

Adobe declara, en noviembre del 2011, que abandona el Flash Player móvil y que se enfocará en HTML5.

Incidentalmente, es por este artículo que gran parte de la fanaticada flashera hispana se volca en contra del fundador de Cristalab (miren los comments), lo que lleva a "Una explicación honesta del clusterfuck de Adobe, Flash y Flex" que resulta peor.


2012: Wake up and smell the ashes


Adobe, tal como lo prometió, desactivará mañana 15 de agosto toda instalación de Flash Player en Android, acabando oficialmente su desarrollo.

El Adobe del 2012 está enfocado en crear herramientas que exporten a HTML5 y en convertir a Flash y Flex en una plataforma de desarrollo de juegos y apps empresariales para teléfonos y tablets. El uso e interés de Flash decae, obviamente, debido a su final como herramienta de multiple proposito, pero el nicho por el que están peleando puede convenirle a Adobe a largo plazo.




Este es el adiós a la época donde CSS era opcional, donde los diseños pixel perfect eran fáciles y donde animar para la web era dibujar en vectores, entender la linea de tiempo e insertar un SWF.

Hola al responsive design, a CSS3, a HTML5, a Objective-C, a Dalvik Java, a Coffescript, Less y Stylus, a Node.js, al futuro del web.

Enviar comentario

Operadores de asignación en Python

Posted: 14 Aug 2012 05:04 AM PDT

Cualquier desarrollo implica la asignación de datos para su manipulación. Sin embargo existen algunos operadores de este tipo, que muchos desarrolladores no ocupan, que sin embargo son de suma utilidad y requieren conocimiento experimentado del lenguaje.
En este videotutorial de Python te muestro los más comunes:

Enviar comentario

Ajustes de músculos en sistemas animados en 3D Maya

Posted: 14 Aug 2012 04:48 AM PDT

En este videotutorial de 3D Maya volveremos a retomar la conversión de huesos clásicos en sistemas musculares de cápsulas, conservando los pesos de la influencia de éstos sobre la geometría, al mismo tiempo que comprobamos varios de los problemas que pueden surgir al efectuar este tipo de procesos y cual es el flujo de trabajo más recomendable para evitarlos, trabajando en el ajuste de la posición inicial de nuestro carácter, para obtener los resultados más efectivos, al añadir nuevos músculos al sistema.

Incluiremos el sistema animado del visor en la escena y lo transformaremos en sistema muscular, chequeando el resultado de una primera asignación directa de músculos y procediendo a corregir a ajustar varios aspectos de la pose base y los atributos, para evitar la aparición de incorreciones en los desplazamientos del sistema.



Saludos.

Enviar comentario

Pincel de cerdas en Illustrator

Posted: 14 Aug 2012 02:50 AM PDT

En este videotutorial de Illustrator usaremos el pincel de cerdas, que se incluyó por primera vez en la versión CS5 del software, para generar ilustraciones de aspecto más natural, en relación con los resultados tradicionales de pintura, ajustando y modificando las posibilidades de este tipo de pinceles y trabajando con los colores y las formas, usadas como máscaras para encajarlos fácilmente en la ilustración.

Daremos forma a la base del diseño modificando varias elipses y generaremos el pincel a usar para el pintado, modificando los valores para adaptarlos a nuestras necesidades.

Aprenderemos a usar de forma más tradicional la herramienta de pincel y cómo ajustar la aplicación del color para combinar de forma efectiva las pinceladas, al mismo tiempo que usamos la opción de dibujar en el interior, para obtener límites en los trazos pintados.



Saludos.

Enviar comentario

Joyas de PHP: empty() sólo funciona en variables declaradas

Posted: 25 Jul 2012 07:11 AM PDT

¿Alguna vez les ha salido este error programando en PHP y no tienen idea qué pasó?

Fatal error: Can't use function return value in write context in ...



PHP es de los lenguajes más usados del mundo. De los más exitosos en adopción y probablemente el más veloz para distribuir e implementar en servidores. Pero también uno de los más criticados y lleno de detalles especiales.


El error que ven es común, pero realmente difícil de depurar. Ocurre al usar las funciones isset o empty de PHP en algo que no sea una variable declarada. empty es una función que devuelve verdadero si el valor que se le pasa por parametro está vacío, falso si tiene algo. Pero por la razón que sea, la gente de PHP decidió implementarlo internamente usando "isset", que detecta primero si una variable está declarada, tenga o no algo por dentro.

Cómo "empty" genera el "Fatal error, can't use function return..."


Un ejemplo sencillo, esto funciona:

Código :

<?php  function vacio()  {     return "";  }  $nada = vacio();  echo empty( $nada );  ?>

Retorna un valor vacío dentro de la variable $nada y la función empty devuelve 1, porque es verdad que está vacío.

Pero esto no funciona:

Código :

<?php  function vacio()  {     return "";  }  echo empty( vacio() );  ?>

Y devuelve el
Fatal error: Can't use function return value in write context in line 7.

De hecho, incluso esto no funciona, cuando cambiamos el retorno por un valor que no es vacío.

Código :

<?php  function vacio()  {     return "python";  }  echo empty( vacio() );  ?>

Generando también error.

¿Solución? Usen una simple comparación de si el retorno es igual a un string vacío cuando necesiten usar una función, en vez de usar empty() como debería ser. Porque PHP es especial.

[nota:79d2a85ce6]Este errorcito de PHP me costó un par de horas de arreglar en bug en Cristalab. La buena noticia es que, si eres usuario de Cristalab, a partir de ahora las notificaciones funcionan hermoso y nunca generarán conflicto.[/nota:79d2a85ce6]

Enviar comentario

Manejo de cadenas 1/4 en Python

Posted: 25 Jul 2012 06:20 AM PDT

Para dominar cualquier lenguaje de programación, es necesario comenzar desde abajo, conocer qué tipos de datos son utilizados en él y explotar sus características y cualidades. Durante estos cuatro videotutoriales de Python que publicaré, te harás de las bases necesarias para manejar cadenas de caracteres como todo un buen desarrollador.

Siendo este, el primero de ellos:


Enviar comentario

Programar en Python un "Hola mundo" desde un archivo externo

Posted: 25 Jul 2012 06:01 AM PDT

¿Has visto o escuchado cosas geniales sobre Python, y te gustaría -aunque sea por curiosidad- escribir el clásico programa "Hola, mundo"?
En este videotutorial, se expone todo lo que necesitas para elaborar este sencillo programa, sólo hace falta que te animes y abras tu editor de texto favorito.

Enviar comentario

Consola interactiva en Python

Posted: 24 Jul 2012 04:17 AM PDT

Una de las grandes ventajas que nos ofrece Python, sin duda alguna, es esta poderosa herramienta; nos permite ejecutar código rápidamente y de forma muy intuitiva. En este videotutorial, conocerás cómo utilizarla y sacarle provecho a la consola (o intérprete) interactiva.

Enviar comentario

No hay comentarios:

Publicar un comentario