miércoles, 25 de julio de 2012

Cristalab

Cristalab


Apple no seguirá desarrollando Safari para Windows

Posted: 25 Jul 2012 08:29 AM PDT

Hoy Apple anunció el nuevo OS X Mountain Lion, con una que otra nueva característica, pero principalmente mejoras en velocidad, rendimiento y estabilidad. Lo que no anunció, pero así parece, es que ya no hay Safari para Windows.

La última versión de Safari para Windows es la 5.1.7. En OS X Mountain Lion está Safari 6, pero incluso en el sitio web de Safari no hay referencias a links de descarga para Windows ni nada por el estilo.


Quizás Chrome es el culpable. El objetivo de Safari en Windows siempre fue fomentar a los developers a crear y probar sus sitios en el motor de render Webkit. Esto en la época que IE (Trident) y Firefox (Gecko) dominaban la tierra. Ahora que Chrome, también basado en webkit, es el navegador más usado del mundo, Safari para Windows tiene menos relevancia.


Aun puedes descargar Safari para Windows 5.1.7


Apple escondió en una página de soporte el link de descarga a la versión vieja de Safari Windows. Pero tal parece que no lo actualizarán.

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

Google IO, día 2. Cubrimiento fotográfico en vivo

Posted: 28 Jun 2012 05:09 AM PDT

Recuerda, que puedes leer los updates de lo que ocurre en tiempo real siguiendo en twitter a @freddier y a @cristalab.

Fotos y updates del Google IO, día 2 (abajo hacia arriba)



Directores de Cirque du Soleil en Google IO 2012


Todos estos juegos corren en Chrome, en HTML5


El holograma 3D de Google App Engine flotando en el aire


Google Compute Engine


Urs Hozle, VP de ingeniería de Google


La estrategia Google Drive en una foto


Google Docs offline (con LOLcats) #io12


Google Docs para iPhone, Windows, Mac, Android, iPad


Google Chrome en TODOS los dispositivos


Google Chrome para iPad


Dos macbooks y cuatro Chromebooks en el escenario


2 billones de usuarios de internet en el mundo, móviles creciendo


Esperando...

Enviar comentario

Crear un preloader con Canvas y CreateJS

Posted: 27 Jun 2012 08:13 AM PDT

CreateJS es una librería en Javascript en extremo poderosa, no por cualquier cosa Adobe basó en ella uno de los lazos que mantiene a flote a Flash, la exportación a Canvas.
Sin embargo, como una opinión muy personal, la documentación no es tan buena. Ahí está todo pero faltan ejemplos, tutoriales, etc.

El día de hoy, utilizaremos esta librería para crear Preloaders, le sumaremos Canvas y algo de la regla de tres que nos enseñaron en la primaria/secundaria para crear un preloader personalizado.

¿Qué aprenderás? Aprenderás a manipular los arcos de Canvas, para que este método deje sólo de servir para crear círculos, y además veremos algunos de los principales métodos de CreateJS en su apartado, como mencionaba, para preloaders.




Este es el ejemplo funcionando y este el código en Github.

Enviar comentario

No hay comentarios:

Publicar un comentario