Comunidad de diseño web y desarrollo en internet

¿Olvidaste tu usuario o clave? «
registrate

Cerrar

La nueva guerra de navegadores del 2012 y los prefijos de CSS3

Érase una vez en la web, un campo de batalla


Con la nueva era de HTML5, la web móvil y todas las nuevas tecnologías, mucha gente ha olvidado o simplemente nunca vivió la "Guerra de Navegadores", una época oscura en internet donde todos peleaban contra todos, todos se odiaban entre si, ningun navegador implementaba algo que otro ya lo tenía, y sentía la necesidad de tener su propia versión de dicha característica.

Era como "Game of Thrones", pero en internet.




Ésta página está optimizada para Internet Explorer 5.5 con resoluciones de 800x600


Es esa fecha en la que "Esta página web está diseñada para correr en tu viejo Internet Explorer 5.5 en resoluciones 1024x768 y tu que usas Netscape con 800x600 no me importas" era practicamente ley, y el resto de gente que usaba Netscape u Opera sufría en el olvido.

Señores, esto está ocurriendo otra vez, les presento la nueva guerra de navegadores del 2012 en la era móvil y el pésimo uso de los prefijos de CSS.


Los prefijos de los navegadores en CSS3


Código :

#logo {
   -webkit-animation: annoying_blink_effect 0.150s infinite;
   -webkit-transform: rotate(-15deg);
   -webkit-transition: all 10s linear;
}

Safari, el navegador por defecto del iPhone y iPad, con su motor de rendereado WebKit introdujo muchas caracteristicas que han sido un boom a nivel gráfico para la web, incluyendo a las transiciones, animaciones, transformaciones, y muy pronto Adobe esta implementará los shaders para CSS, que ahora se volvieron parte del estandar de CSS3 - estas nuevas caracteristicas nos han brindado muchas nuevas posibilidades en la web; nuestras apps son mas rapidas, mas bonitas y hasta a veces su interfaz se puede comparar a la de una aplicacion nativa.

Pero esto trajo un nuevo problema, al ser los pioneros, mucha gente empezó a usar estas propiedades sin importarle el resto de navegadores, cada vez vemos menos websites siendo probadas con otros navegadores que usen la última versión de WebKit, y esta resultando en websites muy pobres que solo fueron "Diseñadas para correr en iPhone 4S", olvidando al 3GS o a los Android, ni hablar de los Window Phone, y Opera Mobile... alguien se acuerda de Opera?


Opera en el vacío: "ya nadie me quiere ;__;"




Opera, Microsoft y Mozilla se hartaron, se cansaron que aunque sus navegadores soporten muchas de estas opciones de CSS3, los "diseñadores web" solo estan diseñando, maquetando y programando para WebKit.

Es entonces cuando Opera mandó a los estándares al diablo e implementó los prefijos -webkit- a su navegador en versión "experimental", echando la culpa de todo esto a nosotros, los que trabajan en la web. ¿Y saben qué? Creo que es cierto, muchos de nosotros usan -o, -ms, -moz además de -webkit, y por último muy pocos usan la propiedad SIN los prefijos en su código.




¿Oh, no, y ahora qué podemos hacer?


No mucho, solo rezar que Opera nunca pase esto a su versión estable, esperar a que algún día todos los navegadores decidan dejar de usar prefijos (muy improbable), y aprender a escribir buen CSS.

El estándar indica que uno debe escribirlo su código asi.

Código :

#logo {
   animation: annoying_blink_effect 0.150s infinite;
   transform: rotate(-15deg);
   transition: all 10s linear;
}

Pero esta es la web, los navegadores nunca quieren hacerte la vida fácil, entoncestienes que incluir todos los prefijos de los como se debe, además de la propiedad por defecto.

Código :

#logo {
   -o-animation: annoying_blink_effect 0.150s infinite;
   -ms-animation: annoying_blink_effect 0.150s infinite;
   -moz-animation: annoying_blink_effect 0.150s infinite;
   -webkit-animation: annoying_blink_effect 0.150s infinite;
   animation: annoying_blink_effect 0.150s infinite;

   -o-transform: rotate(-15deg);
   -ms-transform: rotate(-15deg);
   -moz-transform: rotate(-15deg);
   -webkit-transform: rotate(-15deg);
   transform: rotate(-15deg);
   
   -o-transition: all 10s linear;
   -ms-transition: all 10s linear;
   -moz-transition: all 10s linear;
   -webkit-transition: all 10s linear;
   transition: all 10s linear;
}



Pero los prefijos son horribles, arruinan mi código y los odio



Entonces, haz como los pros, aprende a usar pre-procesadores como Stylus, Less o Sass.

Y si por nada del mundo puedes usar uno de ellos, arruina la velocidad de carga de tu web usando prefix free.

Siempre usen los prefijos, no dejen que las empresas detras de los navegadores nos usen de excusa para hacernos la vida imposible.

Adobe CS6 y Adobe Creative Cloud: Resumen de novedades

Adobe hoy anunció Adobe Creative Suite 6 y Adobe Creative Cloud. Adobe CS6 trae mejoras a toda la gama de productos (hasta Fireworks! <3) y Creative Cloud es varias cosas: Una nueva estrategia de precios, un sistema tipo "dropbox" para compartir contenido y una serie de apps que corren en tablets y guardan en la "nube".

Los mensajes principales son: Crear apps nativas para móviles y tablets sin programar. Exportar HTML5 fácil. Hacer todas las apps gráficas más veloces. Cambiar el modelo de pago por software a un modelo de suscripción como servicio.


Puedes ver todos los detalles en tiempo real del cubrimiento si sigues la cuenta de Twitter @cristalab.

Adobe Photoshop CS6



Dos cosas resaltan del nuevo Photoshop: Un aumento gigantesco en rendimiento y velocidad (al fin!) que le permitirá correr incluso en maquinas antiguas y una mejora sobre todos sus algoritmos de recreación de bitmaps.

En Photoshop CS5 vimos los filtros "content aware" y su capacidad de rellenar una fotografía con patrones similares ultrarealistas al querer hacer retoques o borrar detalles. Ahora "content aware" es extendido a cosas como fotos panorámicas o con filtros "ojo de pescado" y otros casos donde las fotografías pierden detalle angular.

Ah y ahora la interfaz se parece a Premiere, gris oscuro. No está mal. Photoshop sigue siendo la joya de la corona, titulo que en un pasado compartió con Flash.

Adobe Photoshop Touch



Un Photoshop para iPad y tablets Android, optimizado para usarlo con dedos o "stylus gordos". Tiene todas las capacidades básicas: Capas, efectos, selección inteligente, filtros, brochas y hasta los algoritmos "edge aware" y "content aware" para no necesitar la precisión de pixel de un desktop. Genera archivos .psd que puede guardar en la "nube" de Creative Cloud o permite compartir los resultados a la cámara del dispositivo, Facebook o por email.

Y cuesta 10 dólares.

Adobe Premiere Pro CS6



Puedo resumirlo en una frase: Premiere CS6 es un editor de video con el poder de Photoshop. La mayoría de los filtros "content aware" ahora son aplicables a videos en movimiento y gracias a "Mercury", el nuevo motor gráfico de Adobe, los cambios se ven casi al instante. Premiere también incluye la detección de profundidad 3D de Photoshop y un "live preview" de efectos y clips que es muy similar al de iMovie o Final Cut Pro.

Adobe Flash CS6



Flash CS6 se siente más como un CS5.5.1, pero es entendible dado el serio recorte de presupuesto que sufrió el equipo de Flash Platform el 2011. Flash CS6 ahora puede exportar animaciones básicas a HTML5 de manera transparente, así como compilar de manera nativa a iPhone, iPad y Android, incluyendo el uso de Stage3D.

La exportación de Flash a HTML5 estará optimizada para CreateJS, un framework de creación de "experiencias interactivas" en HTML5, competencia de ImpactJS o, en cierto modo, jQuery. Especializado en animaciones, audio y video. Creado por Grant Skinner.

Flash quiere ser LA herramienta para crear juegos y experiencias multimedia (como libros interactivos para niños) en móviles y tablets. Sea en el navegador o como app nativa. ¿Lo logrará? Por primera vez hay alternativas, pero Flash seguirá peleando fuerte.

Un -1 para Adobe por hacer el demo de Flash a HTML5 creando un intro, eso sí.

Adobe Dreamweaver CS6



Conozco pocas personas que sigan usando Dreamweaver, pero para los que les gusta, DWCS6 trae un asistente para crear Responsive Design, llamado "Fluid grid layout". También incluye soporte nativo a jQuery Mobile, transiciones CSS3 y la exportación directa de Phonegap.

Dreamweaver aspira a convertirse en el IDE de Phonegap para creación de apps móviles al igual que Flash Builder 4.6 es el IDE de Flash para juegos móviles.

En las cosas pro: Live View de Dreamweaver ahora usa un Webkit actualizado. Ya era hora.

Adobe InDesign CS6



Todo el mundo está migrando del papel a la pantalla y este es un equipo de Adobe que sí supo reaccionar al cambio. InDesign CS6 ahora puede crear revistas y libros interactivos para tablets sin necesidad de escribir una sola linea de código.

Capacidades como Layout Liquido, inserción de contenido externo (videos, Flash, HTML, etc) y forms de PDF se combinan con la habilidad mágica de exportar tu diseño, en un click, como una app nativa para iPhone, iPad o Android gracias a Adobe Digital Publishing.

Aplausos a un equipo dentro de Adobe que ha sabido responder al futuro con buen PR, buenas herramientas y buen contacto con la comunidad.

Adobe Fireworks CS6


Fireworks es el equivalente al hermano gemelo de Bart Simpson. Vive en el ático encerrado, le dan cabezas de pescado y nadie quiere hablar de él, más que para mantenerlo con vida. Nada se dijo de esta herramienta, mi favorita de todas. Fireworks no compite con Photoshop, lo complementa siendo el mejor entorno para combinar bitmaps, vectores y areas sensibles, que luego pueden ser exportadas como prototipos para webs o apps.

Fireworks CS6 ahora puede: Exportar CSS "limpio" analizando el diseño, crear themes para jQuery Mobile, correr más rápido con Mercury. Y ya. Eso es todo. Gracias por las cabezas de pescado.

En sintesis: Not bad


Desde afuera, parecía un lanzamiento aburrido, pero Adobe tuvo anuncios muy interesantes. El más importante de todos, en mi opinión, es la migración a un modelo "Software as a Service" con la suscripción de Creative Cloud.


Extrañé mucho menciones a Fireworks o Illustrator, pero entiendo que querían limitarse a mostrar las apps móviles y los pesos pesados que generan dinero real dentro de Adobe.

La pregunta es para ustedes ¿Vale la pena CS6? ¿Lo comprarán y usarán? ¿Migraron a otra plataforma? ¿O seguirán usando alguna versión vieja de Adobe Creative Suite?

Todas las imágenes de este artículo fueron creadas y optimizadas con Fireworks CS5 </3

Curso de programación de apps iPhone y Android en Bogotá y México

Este fin de semana será el Curso de desarrollo de apps para iPhone y Android en Bogotá y el 11 y 12 de mayo, este mismo curso estará en Ciudad de México.

Un curso donde aprenderás las tecnologías con las que se crean aplicaciones móviles compatibles con iPhone, Android y iPad (Y hasta Blackberry si te interesa lo retro). Apps como Wikipedia, Machinarium y hasta Angry Birds para Facebook han sido creadas con los lenguajes que verás en el curso.



¿Qué necesito para ir a estos cursos?


Saber programar y querer crear apps para poder vender (o regalar) en la App Store de Apple o en el Google Play Store de Android. No necesitas más que los conocimientos básicos de programación. Obviamente, si tienes teléfonos o tablets, lleva todo el hardware que quieras para probar.

El curso de Bogotá es este fin de semana, 20 y 21 de abril. Con un valor de $440.000 pesos.
El curso de México DF es el 11 y 12 de mayo. Con un valor de $2.900 pesos.


Ambos cursos pueden pagarse con tarjeta de crédito, Paypal o deposito bancario. Y hay descuentos si vas en grupo, llamando al teléfono de cada curso.

Si tienes más de 100 clabLevel en Cristalab, puedes ir gratis llevando a alguien más. Sólo mandas un mail a cursos@cristalab.com y tendrás tu entrada.

Firefox evitará que Flash cargue sin permiso del usuario por click

Jared Wein, uno de los ingenieros de la Mozilla Foundation publicó el anuncio que Firefox 14, la próxima versión de Firefox, no permitirá que Flash cargue en cada página que se abra hasta que el usuario de permiso explicito.

La implementación está aprobada y el desarrollo ya va avanzado, la pregunta que queda es cómo será la interfaz. Las dos opciones son mostrar un cuadrado gris con el texto de clickear para activar (como abajo en la imagen) o una barra amarilla en el header del sitio web, avisando del contenido Flash y dando la posibilidad de activar.

Esta implementación será por URL y por elemento Flash. A menos que se cambie explicitamente en el about:config, todos los SWF requerirán permiso de click para correr.


¿Qué significa esto para los desarrolladores en Flash y Actionscript 3?


Hay 3 tipos de personas que se verán afectados por esta medida: Devs normales de Flash, creadores de banners y sitios que usan Flash de manera invisible.

Para el uso normal de Flash, no significa mucho


A la gran mayoría de las personas que crean en Flash, lo único en lo que los afectará es un click adicional. Si tu sitio es 100% Flash, se verá gris antes que el usuario de el primer click. En algunos casos, esto puede ser imperdonable, en otros, no tan grave.

Aunque a nivel de usabilidad, cualquier click adicional es malo.

Para los creadores de banners: Hora de no usar Flash


En un banner, un click adicional es inviable. Los banners son ultra optimizados para efectividad y rendimiento. Si un banner requiere un click adicional, muertos. PEro lo peor, si un banner NO SE VE sin darle click, ahí ya nos jodimos todos. Con esto, hacer banners en Flash no es rentable ya.

Para quienes usan Flash de manera invisible como "canal"


Grooveshark usa Flash internamente para reproducir la música (Grooveshark no usa HTML5, aunque tienen una versión HTML5). Pandora igual. El audio en HTML5 aun es muy malo (el video no, es genial). Otro ejemplo destacado es Socket.io, que usa Flash en navegadores que no soportan sockets para hacer realtime. Estos casos donde Flash es usado como un "canal invisible" son seriamente afectados. Porque al ser de 1px de tamaño, son Flash invisibles a los que no se les puede hacer click.

¿Soluciones? No tengo ni idea. Hacer visible el SWF y agregar al diseño un "da click aquí para que funcione" es lo que se me ocurre.


¿Para donde va Flash en los desktops?


Repasemos. Flash ya será imposible correr en Windows 8 cuando esté activa la interfaz Metro. Igualmente Safari (aunque sólo se usa en móviles). Adobe abandonó el plugin para móviles y la nueva estrategia de Flash está centrada en el desarrollo de juegos.

Para allá va Flash. Flash será la plataforma cross-device de juegos #1. Ya no una de experiencias interactivas al estilo de GrupoW, 2Advanced o BigSpaceShip, sino juegos móviles en teléfonos y tablets como Angry Birds, Machinarium o Draw Something. Mientras, todavía sirve.

Introducción a MongoDB

MongoDB es un sistema de bases de datos NoSQL orientado a documentos, a diferencia de MySQL, este no es una base de datos relacional. Es open source, lleva entre nosotros desde el 2009. Está escrito en C++ y tiene intención de aumentar la escalabilidad de un sistema. Es compatible con Linux, OS X, Windows y Solaris.

Además de MongoDB existen otros sistemas NoSQL como por ejemplo Cassandra, CouchDB, Redis, Riak, Membase, Neo4j y HBase.



Considera que mongoDB fue diseñado para ser un motor de búsqueda sobre aplicaciones en la nube, debes de ser bien específico al momento de elegir un sistema NoSQL. Esto porque tienen diferentes funciones o están optimizados para diferentes tareas: Como Cassandra que fue diseñado para búsquedas en Facebook.



Si buscas un framework en PHP para poder utilizar MongoDB inmediatamente puedes probar alguno de los siguientes: CakePHP, Codeigniter, Doctrine, Drupal, Kohana, Lithium, Memcached, Symfony 2, Yii y Zend Framework.

Si buscas utilizarlo con Python prueba con PyMongo.

Conceptos básicos


Una base de datos en MongoDB tiene diferentes conceptos a una base de datos regular como MySQL. Cada registro o unidad básica de datos se le denomina documento. Y cada conjunto de documentos, que formarían una tabla, se le llama colección.

Un documento se podría comprar con el concepto de fila y una colección a una tabla.

Organización y sistema


La ventaja que tiene MongoDB ante las bases de datos racionales es la velocidad de consulta. Esto se logra gracias a que los documentos son almacenados en formato BSON, que es una versión modificada del ya conocido JSON.

BSON pesa un poco más que un JSON regular, pero gracias a que este guarda longitudes de campos, índices de arrays, entre otras cosas, es mucho más rápido (y menos costoso), acceder a la información que se consulta.

Al final del día no vamos a ver el formato BSON, así que no te preocupes, siempre lo leerás como un JSON regular.

Documentos


Los documentos son un conjunto de claves con valores asociados. Sin embargo, cabe destacar que en cada lenguaje es diferente el "output".

Código :

{ "pepito" : "uno" }

Igual cabe destacar que una clave puede contener varios valores asociados como por ejemplo:

Código :

{ "pepito" : "uno", "dos" : 3 }


Notas importantes
- Las claves de un documento son strings.
- No se deben utilizar caracteres como punto y el signo de dólar.
- No deben de comenzar con guión bajo.
- Las claves son sensibles a mayúsculas y minúsculas.
- No debe contener claves duplicadas.
- Cada documento tiene una _id única generada a partir de diversos métodos, así siempre será diferente.

Colecciones


Una colección nos ayuda a organizarnos de manera mucho más fácil y rápida.

Código :

> db.pepito.insert()
> db.pepito.find()
> db.pepito.drop()


Notas importantes
- Mantener diferentes tipos de documentos en una misma colección es de masoquistas.
- Un string vacío no es un nombre válido, así como no se puede utilizar un string con signo de dolar.
- Es más rápido obtener una lista de documentos que mantengan la misma estructura.
- Siempre planea la estructura de tus colecciones y documentos antes de comenzar.

Manejo de datos desde la shell


Ya que este artículo es únicamente una introducción, no entraré en detalles de cómo instalarlo o utilizarlo con algún lenguaje. Únicamente desde la shell que viene por defecto o desde aquí (haciendo clic en "Try It Out")

Para hacer una inserción y guardarla escribimos lo siguiente para obtener algo parecido a pepito = tontito

Código :

db.pepito.save( { "pepito" : "tontito" } )

Y para imprimir el contenido

Código :

db.pepito.find()

El siguiente script inserta en el documento varios elementos en forma de tags, después usa una función para contar cada elemento con un foreach, separa los elementos y devuelve la cantidad de elementos en otro documento.

Código :

$ ./mongo
> db.things.insert( { _id : 1, tags : ['perro', 'gato'] } );
> db.things.insert( { _id : 2, tags : ['gato'] } );
> db.things.insert( { _id : 3, tags : ['raton', 'gato', 'perro'] } );
> db.things.insert( { _id : 4, tags : []  } );

> // función de mapeo
> m = function(){
...    this.tags.forEach(
...        function(z){
...            emit( z , { count : 1 } );
...        }
...    );
...};

> // función reductora
> r = function( key , values ){
...    var total = 0;
...    for ( var i=0; i<values.length; i++ )
...        total += values[i].count;
...    return { count : total };
...};

> res = db.things.mapReduce(m, r, { out : "myoutput" } );
> res
{
   "result" : "myoutput",
   "timeMillis" : 12,
   "counts" : {
      "input" : 4,
      "emit" : 6,
      "output" : 3
   },
   "ok" : 1,
}
> db.myoutput.find()
{"_id" : "gato" , "value" : {"count" : 3}}
{"_id" : "perro" , "value" : {"count" : 2}}
{"_id" : "raton" , "value" : {"count" : 1}}

> db.myoutput.drop()

Existen muchos más comandos, todos ellos están en la documentación, con el comando help, documentación o desde la shell de mongodb.org escribiendo tutorial para un rápido pero informativo tutorial.



¿Tienes dudas? Dejame un comentario aquí o sígueme en twitter @kinduff.

En el próximo tutorial les enseñaré como generar bases de datos, leerlas y modificarlas.

Enlaces de interés


- Página principal de mongoDB [link]
- Documentación mongoDB [link]
- Sourcecode + drivers para diferentes lenguajes y sistemas [link]
- NoSQL: If Only It Was That Easy [link]
- Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j [link]
- [NSFW] Relational Database Vs NoSQL Fanbois [link]

Qué significa que Facebook compre Instagram

Wow. Mark Zuckerberg anunció que Facebook compró Instagram por mil millones de dolares (un billón gringo). Instagram nació como una aplicación para aplicar efectos especiales a las fotos tomadas con un iPhone, evolucionó a ser una red social privada de fotografía y la semana pasada anunció su llegada a los teléfonos Android. Es la app de fotos más exitosa de la historia y ahora parte de Facebook.

Y si esta compra no demuestra la burbuja tecnologica, no sé qué más pensar.


Hay 3 cosas que me quedan claras con esta compra:

La creación de contenido en dispositivos móviles es el mercado más caliente del momento


El gran problema de los smartphones y las tablets es que son vistas como dispositivos de consumo, más que plataformas para crear contenido. Apple lo sabe y por eso enfocó al iPad 3 (Pepito) como LA tablet para crear música, editar fotografías, componer videos profesionales y en general: Crear.

En el último mes hubo dos compras gigantes en el mundo móvil: OMGPOP (Draw me Something) por Zynga y ahora Instagram por Facebook. Un juego y una camarita. Dos apps increiblemente exitosas en hacer que los usuarios de móviles creen.

Eso sumado al lanzamiento de la espectacular "Paper" para iPad.

¿Quieres hacer platita? Programa apps móviles que le permitan a los usuarios crear.


¡El dinero ya no vale nada, carajo!


No, en serio, nada. Ayer leía un artículo de un emprendedor elegido por YCombinator donde, en su primera reunión con Venture Capitalists, los inversionistas le tiraban dinero a la cara, le pedían poder unirse a su idea, lo perseguían con pasión. Hay tanto dinero gringo, tantos fondos, tantas valuaciones locas, que la percepción de dinero en el mundo de las startups está en su momento más raro.

Esto es lo que se sentía a finales del 2004. Es lo que se sentía por el 2001. Es la punta de la ola en la burbuja del dinero en internet. Si lograste hacer plata en esta epoca, es hora de comprarte una casa en la playa, contratar a un mayordomo que se cambie el nombre a Alfred y darte por bien servido. Viene la explosión de la burbuja.

Y tengan en mente, esto lo hace Facebook justo antes de salir a la bolsa a levantar aun más plata. Es más rentable aprender a programar que traficar con droga en estas épocas.

Invertir tu tiempo y talento en una app sin modelo de negocio sigue sin tener sentido


Esto es lo que me preocupa de Twitter todos los días de mi vida. Afortunadamente, mi cuenta de Twitter ya amortizó el costo que tiene mantenerla.

Mucha gente publica montones de fotos diarias en Instagram, gente que no sabe si esas fotos seguirán ahí mañana o si a Facebook le da por matar todo, desactivar la conexión con Twitter o hacer la conexión con Facebook "obligatoria". Gran parte del atractivo de Instagram era crear una segunda red de amigos cercanos con quien compartir fotos privadas de los hijos o en el espejo del baño. Lo que siempre quiso y nunca pudo crear Path.

Ahora, no sé sabe qué pasará. Facebook dice que mantendrá todo igual, que Instagram será independiente y bla bla bla. Las empresas cambian de estrategia y de opinión. Palm murió, el Playbook fue un fracaso, Google Wave desapareció, Tweetdeck se estancó, Jaiku fue cerrado, etc, etc, etc. Hoy Instagram sigue viva ¿Mañana?

Esto pasa con las empresas llenas de hype y faltas de ingresos. Eso es una gran adquisición para Facebook ¿Pero le conviene a los usuarios que han invertido meses en crear algo único dentro de Instagram?


Lo que importa es que, hoy más que nunca, crear apps móviles que creen contenido es más valioso que tener una empresa que haga plata. ¡A aprender a programar y que viva la burbuja!

Por qué el iPad ganó y por qué NO debes ignorarlo

Al final del 2011, se vendieron casi 60 millones de iPads. Las tablet con Android: 6 millones.

Para el final del 2012, habrán cientos de millones de tablets. Una demografía más grande que países enteros. Un mercado gigantesco imposible de ignorar y una experiencia nueva en apps y en web.

Excepto que ninguna otra tablet importa excepto el iPad. Y sospecho que así se mantendrá por lo menos por dos años más.

El objetivo de este artículo no es evaluar el iPad y las tablets Android como productos de consumo sino entender por qué el iPad define la experiencia de tablets. Como creadores de Internet, debemos probar nuestros sitios en todas las pantallas. Pero también reconocer, como con IE6 en el 2004, a la plataforma dominante.


La calidad del iPad y sus apps es simplemente superior


Android no tuvo una guía de diseño seria hasta Ice Cream Sandwich. Apple obviamente ha tenido su HIG desde el día 1 de la App Store. Por eso vemos engendros famosos en Android como el primer reproductor de mp3 comparado con el iPod app de Apple.

ICS (Android 4) puede ser la respuesta para Google. Pero a la fecha, las tablets Android tienen 13.200 apps (4% de las apps totales de Google Play están hechas para Honeycomb o Ice Cream Sandwich), mientras el iPad tiene 140mil.

El navegador de Android 4 es superior en usabilidad a Safari Mobile, pero apps como Paper, GarageBand, iMovie, Keynote o iPhoto no tienen comparación con nada en el mundo Android. Mi principal queja con el iPad 1 es que se convertía en una tableta de consumo pasivo, en vez de creación de contenido. El iPad 2 y el iPad Pepito (iPad 3) solucionaron eso por completo con apps como estas.



Android no tiene apps de creación de contenido equivalente a Apple en ninguna de sus tablets.

De hecho, al día de hoy, Google Play no tiene una sección de apps para tablets, lo máximo es "Staff picks for tablets", pero ¿Y las top paid, las top free?. El iPad la ha tenido desde el día uno.


Safari Mobile vs. ¿Chrome Mobile?


Mencioné arriba que la usabilidad del navegador de Google es superior a Safari Mobile y es verdad. Ice Cream Sandwich maneja mejor la memoria, mantiene vivos los tabs y hasta tiene Flash (excepto que Adobe ya no hará más Flash Player móvil) ¿Pero y en rendimiento?

Javascript tiene mejor rendimiento en iPad 2 y iPad 3 que en el más veloz Android tablet (Asus Transformer Prime). El iPad 3 con su Core A5X es 5 veces más veloz en gráficos 3D que el más veloz core de Android (Tegra 3). Y todo esto mientras el iPad Pepito (new iPad 3) mueve monstruosos 2048x1536 pixeles, contra los 1280x800 del Transformer Prime con ICS.

Esto sumado a 9~10 horas de batería vs. ¿8~7 del Galaxy Tab y del Transformer Prime?


En el mundo HTML5, Safari Mobile supera en multiples campos al navegador por defecto de Android, pero es superado por Chrome Mobile.

Pero entonces... ¿Por qué carajo Chrome Mobile no es el navegador por defecto de Android?. Google tiene el, quizás, mejor browser de la época y decidió crear "otro" para Android, dejando a Chrome móvil en "beta".

En serio ¿Qué están pensando en Google?

La oportunidad de Android está en el precio


Apple está por lo menos dos años adelante de Android en calidad de apps, usabilidad, cantidad de apps que crean contenido y calidad de hardware

¿Entonces qué hago? ¿Me compro un iPad, mato mi Android? ¿Qué hago?

Yo tengo un Samsung Galaxy Nexus corriendo Ice Cream Sandwich. Lo amo. Es la mejor experiencia móvil que he vivido y no lo cambiaría por nada. ¿Mi Galaxy Tab 10.1? Lo cambiaría sin pensar por un iPad Pepito. Por alguna razón, Google no ha podido competir en tablets al nivel que ha competido en teléfonos.

El Amazon Kindle ha vendido bien, a pesar de ser una experiencia completamente desconectada de Android. Hay rumores que Google planea vender tablets por su propia cuenta con ICS por precios menores a 200 dólares.

Con precio y volumen, Google puede ser capaz de retomar dominio sobre las tablets como lo tiene sobre los teléfonos.

Sin embargo, en el futuro, las condiciones para crear webs para tablets a futuro seguirán siendo la "Retina" 1024x768, el render de Safari Mobile y los specs del iPad. No hay que ignorar a Android, pero es una muy mala idea no tener un iPad si haces desarrollo web.

Es en el iPad donde debemos inspirarnos para crear nuevas experiencias. Es al iPad al que hay que apuntar primero al construir sitios para tablets. Y es un iPad la herramienta que necesitamos, por encima de cualquier otra tablet, para testear nuestros desarrollos en la nueva forma de usar la web.

Freddie sobrevive un año más

Para nadie es un secreto que ese pobre hombre, al que llamamos Freddie, recibe constantes amenazas de muerte, y es víctima de atentados. Contra todos los pronósticos ha logrado sobrevivir un año más....alguien no está haciendo bien su trabajo.


Imagen Old Freddie por drarock.


Así se verá Freddie a los 30 años, si es que logra sobrevivir. Sí, ya lo sé, muy conservado para la edad y la cabeza detuvo su crecimiento U_U.

Mega dibujo de Nadim



Bueno...acá honramos y felicitamos a Freddier con motivo de la celebración de su onomástico

¡Feliz Jubileo Freddier!





Videos EMOtivos



Este año, Tifis reunió a varios de los amigos de Freddie para hacer videos:

Pablo Rigazzi, el mango: OMG Ponies



Leónidas Loves Freddie



Tifis Black en Freddie, Freddie



Stephanie Falla: Deja ya esa estúpida dieta



Cevy: Un saludo para Freddie en su cumpleaños



Angry Freddie



Freddie, tu cumpleaños representa para mí un reto personal, siempre trato de superarme con tus pasteles. Este año te hice uno con motivo de Angry Birds, creo que supera al Mario Trololo. Espero que te guste, condensa todo el amor que sentimos por ti U_U XD.



Este año tampoco creo que tengan ganas de comer el pastel de Freddie. Cada vez es más difícil pensar tus pasteles u.u.

Freddie Paper Toy



Además del pastel, quería obsequiarte alguna cosa física, pero como aún no inventan una máquina de teletransportación y tú no tienes casa donde enviarte algo, decidí hacerte un lindo paper toy (esto es lo más cercano a un regalo teletransportado).

Espero que lo armes y lo tengas alguna repisa de tu casa...cuando tengas donde vivir.





Espero que obtengas todo lo que mereces, que sigas creciendo (aunque no físicamente porque lo único que te crece es la cabeza y la panza), que el túnel carpiano se agudice y tu sufrimiento se prolongue muchos años más. Pero por encima de todo, lo que más deseo para ti es que nunca, NUNCA te falte internet.

Freddie, eres grande...claro, no físicamente, pero sí en espíritu y determinación. Feliz cumpleaños.

¡¡¡¡Por el Imperio!!!!.



¡¡¡Todos, armemos el paper toy y tomémonos una foto creativa con él para celebrar el cumple de Freddie!!!.

Publica tu foto en este post y en twitter con el hastag: #HBFreddier

Nota: Si detectan algún error en el paper toy me dicen.

Vista 3D en el inspector de Firefox 11

La última actualización de Mozilla Firefox, Firefox 11, fue lanzada el 13 de Marzo y entre las nuevas características se incluye la opción de Vista 3D como parte de las herramientas para desarrolladores.



Cuándo utilizar modo 3D?


Mozilla dice:

  • Si en tu proyecto, el HTML está roto y está causando problemas de diseño, usando la vista 3D puede ayudar a encontrar dónde ha ido mal. A menudo, los problemas de diseño son causados por anidación inadecuada del contenido. Esto puede ser mucho más evidente cuando se mira en la vista 3D y puedes ver en dónde los elementos se anidan mal.
  • Si el contenido no se muestra, puedes ser capaz de averiguar el por qué, ya que la vista 3D le permite alejarte con el zoom para ver los elementos que se prestan fuera del área visible de la página, puedes encontrar contenido perdido de esta manera.
  • Puedes echar un vistazo la estructura de la página para ver si puede haber otra forma de optimizar tu diseño.
  • Y, por supuesto, una razón más para usarlo es porque se ve impresionante.


Para inicializarlo, asegúrate de tener la última versión de Firefox, luego dirígete a Firefox > Web Developer > Inspect (o con el atajo Ctrl + Shift + i); en la parte inferior de tu navegador aparecerán las opciones de inspección que funcionan de una forma similar a FireBug y desde ahí puedes activar la función de vista 3D.

Más información en el sitio de Mozilla Developer Network.

10 tecnologías web a aprender en el 2012

Este es el año más divertido para ser un tejedor de experiencias web.

El 2011 fue un año de DOLOR. HTML5 era brillante y raro. Flash fue herido por el presidente de Adobe, quizas el CEO más idiota de la industria. Android aplastaba al iPhone pero era aplastado por el iPad. Y la gente, al fin, entendió que usar Blackberry en ésta decada es como ver TV blanco y negro en un mundo HD.

Este año 2012, si eres frontend, backend, diseñador, programador o te encargas de cualquier cosa que tenga que ver con poner colores en una pantalla conectada a Internet, estas son las 10 tecnologías que, sin duda, debes amaestrar:
  • HTML5 y CSS3
  • Stylus o LESS
  • Node.js
  • CoffeeScript
  • jQuery Mobile o Sencha Touch
  • Phonegap o Flash Mobile
  • MongoDB o Redis
  • Django + Python
  • Responsive Design
  • El iPad



HTML5 y CSS3... duh!


Es obvio, pero lo reiteramos. No saber HTML5 es irresponsable. No conocer CSS3 es odiarte y un signo de masoquismo. HTML5 y CSS3 hacen todo TAN FÁCIL que no usarlos es autodestructivo.

¿Quieres detectar eventos touch en móviles o tablets? ¿Acelerometros? ¿Saber la latitud y longitud de un usuario? ¿Guardar en disco? ¿Crear bordes redondeados? ¿Transparencias? ¿Animaciones? Todo desde el navegador. ¡Aprende HTML5!

(Introducción a HTML5 y muchos, muchos tutoriales de HTML5 y tutoriales de CSS3)

Stylus o LESS


CSS es el lenguaje declarativo más estúpido del mundo. CSS fue creado por gente que odia el amor. ¿Cómo es posible no tener herencia real? ¿No tener variables? ¿No tener sumas y restas básicas? No pido ciclos y condiciones, ¡Pido sentido común y decencia!

Stylus y LESS, dos "pre-procesadores" de CSS, lo arreglan. Compatibles con CSS3, generan un CSS limpio, lindo y optimizado, compatible con todos los navegadores y que agrega lo que a CSS le falta.

Cristalab usa Stylus.

(Tutoriales de Stylus y LESS)


Node.js


Node.js es un servidor que corre cada webapp en un nodo independiente por usuario, comunicables entre sí a través de una grilla al estilo de los Apaches mejor configurados. PERO además se programa con Javascript. Ni PHP, ni Python, ni Java: El buen y viejo Javascript. PERO además es REAL TIME y estupidamente veloz. Es magia de la buena.

Mejorando.la usa Node.js.

(Tutoriales de Node.js, fuck yeah!)


CoffeeScript


Javascript es el lenguaje más famoso y usado del mundo web. En serio. Más que PHP. Y similar a PHP, es horrible, feo, viejo, mal hecho, lleno de malas prácticas y similar a afeitarse con un cactus.

CoffeeScript hace por Javascript lo que Stylus y LESS hacen por CSS. Agrega una sintaxis decente y elegante, orientada a objetos y llena de sentido común, el cual exporta a Javascript de toda la vida, compatible con jQuery y cualquier otro JS que tengas allá afuera.

Cristalab usa CoffeeScript.

(Tutoriales de CoffeeScript)


jQuery Mobile, en serio


Si no conoces jQuery este no es tu negocio. En serio, aunque seas de marketing. jQuery es la forma fácil, de rápido desarrollo (y lenta ejecución) de hacer web apps.

¿Y jQuery Mobile? Es una obra tan linda que si fuera más inteligente sería millonaria. La forma más fácil de crear no sólo interacción en móviles, sino diseños enteros de apps compatibles con TODOS los teléfonos modernos. TODOS. Aprendanlo por el amor a los tubos.

O si son muy fancy, tienen dinero y no les gusta jQuery Mobile vean Sencha Touch.

(Tutoriales de jQuery y de jQuery Mobile)

PhoneGap/Cordova y Flash/Flex Mobile


PhoneGap es una idea digna de un nobel de paz. Crea apps en HTML5, CSS3 y Javascript, usa el "API" de PhoneGap para acceder a los APIs de teléfonos Android y iPhone y con el mismo código, en un click, compila apps nativas completas para iPhone y Android que puedes vender o regalar en el Google Play (Android Market) o la App Store. Belleza. Belleza que Adobe compró y renombró como el Proyecto Cordova.

PERO si quieres hacer videojuegos móviles, Flash/Flex es la MEJOR opción. Actionscript 3 es un excelente lenguaje y ahora que Steve Jobs está muerto, el compilador de Flash para iPhone y Android con AIR Mobile tiene mucho futuro. ESTE es el futuro de Flash. Apps móviles interactivas multiplataforma.

(Tutoriales de PhoneGap y claro, de Flash, Flex y Flash en el iPhone)

MongoDB, Redis o... cualquier base de datos NO relacional


SQL no es tan buena idea siempre. A veces las DBs son tan sencillas que una base de datos SQL relacional sólo crea problemas y cuellos de botella. Hay un nuevo tipo de bases de datos basadas en el concepto de "nombre => valor" donde sólo hay un "key", no hay relaciones ni intersecciones de conjuntos, sino más teoría de matrices, hashes y/o diccionarios.

¿Muy técnico? Hay DBs que en su simpleza son MUCHO más veloces que las SQL. Se llaman "no relacionales" y vienen en varios sabores ¿Las más famosas? MongoDB y Redis. Aunque hay más, como BigTable de Google o SimpleDB de Amazon.

(¿Quien se anima a hacer un tuto de esto? Publicalo en Cristalab)

Django/Python


¿Siguen con PHP? Dejen de sufrir. En el 2012, programar en PHP desnudo es cómo hacer un sitio con CSS3 para IE6. Conoce el mundo del futuro: Node.js, Ruby on Rails y sobre todo, Django con Python. Lenguajes modernos, con experiencia y caracteristicas futuristas que los PHPeros no conocen.

Una simple prueba: Django viene con un sistema de manejo de base de datos que abstrae SQL, lo hace innecesario y vuelve imposible las inyecciones SQL. Pero ADEMÁS crea automaticamente los sistemas de administración de los sitios web al entender de manera inteligente la estructura de la información.

(Tutoriales de Python y Django)

"Responsive Design"


El "diseño receptivo adaptivo" o Responsive Design es una nueva corriente. El mismo diseño que pones en una web a 1024px lo puedes "reorganizar" para que se vea lindo en un iPad, en un iPhone o en un Android. No se trata de hacer sitios móviles, sino mantener una unidad de diseño a través de los dispositivos, cambiando de diseños multicolumna a una sola sin sacrificar muchos elementos, sino reorganizar.

Dos ejemplos que resaltan de Responsive Design:
La app móvil de la Wikipedia para teléfonos y tablets.
Windows Phone 7 junto a Windows 8.

El iPad


El iPad ganó y darme cuenta me dolió. He probado tablets Android chinas, el Samsung Galaxy Tab 10.1, el Blackberry Playbook, el Kindle Fire, la Asus Transformer, el Galaxy Tab 7" y hasta el desproposito de Chromebook. Ya está, Apple ganó.

Contra el iPhone se podía pelear. No tuvieron una App Store en lanzamiento, todos en la industria estaban aprendiendo y había suficiente interés porque Android fuera el sistema que compitiera con fuerza. Android ya había entendido los teléfonos antes que el iPhone saliera al mercado.

¿Pero el iPad? El iPad se adelantó al futuro por completo. Un diseño simplón y obvio por fuera, un iPhone grandote, pero al probarlo, un mundo diferente.

El Galaxy Tab 10.1 es lo más cercano y NO es cercano. No tiene la calidad de apps, la calidad de interfaz, la calidad de gestos, la calidad de construcción. El iPad ganó. Es la mejor tablet, de lejos. 3 años adelante de Samsung, de Asus, de Microsoft. Y me jode un montón.

Con el iPad Pepito (O New iPad o iPad 3 o como se llame), Apple simplemente aplastó a todos. Pasará un año o dos antes que veamos un Retina Display de 10 pulgadas en otra tablet. Pasarán AÑOS antes que veamos apps con la calidad de iPhoto o Keynote de iPad en Android. Pasará una decada antes que cualquier otra tablet llegue al market share que el iPad ha consolidado.

Si te importa el futuro post-PC y el tipo de experiencias web que serán creadas en ese futuro, comprate un iPad ya y empieza a testear.

1 2 3 4 ... 101 Ver más viejos »