sábado, 22 de febrero de 2014

WhatsApp se cae y se lleva consigo a Telegram

Se ha caído la app de comunicación escrita más grande del mundo, es algo de lo que todos los usuarios nos dimos cuenta al instante; y si no eres usuario igual ya lo sabes porque lo has visto en Facebook o más rápido aún en Twitter.

Según los primeros comentarios y reportes la caída fue a alrededor de las 13:30 hrs, hora Peruana y un rato después también callo el chico nuevo del barrio mensajero, Telegram. La noticia llenó los muros de Facebook y los time lines de Twitter, el hashtag #WhatsApp se hizo TT en  menos de media hora y en una hora la palabra Telegram hizo lo mismo. Era la oportunidad perfecta del avión de papel para crecer, muchísimas personas están volteando a verlo, a tomarlo en cuenta, a descubrirlo, pero han fallado. Según su propio reporte están teniendo alrededor de 100 activaciones por segundo, motivo por el que supongo se ha caído el servicio o en todo caso está muy lento.

Por otro lado debo decir que WhatsApp escogió el mejor día y momento para caerse, un sábado por la tarde, cuando todos están coordinando que hacer, a donde ir, como ir y demás cosas; pero sobre todo cuando aún está fresca la idea de su venta al gigante azul de las redes sociales. Es inevitable pensar que de alguna manera la compra de WhatsApp por parte de Facebook tiene algo que ver con el actual problema y lo primero que se me ocurre es que han metido la pata tratando de migrar data de los servidores de una compañía a la otra. Aún no hay un anuncio oficial ni en redes sociales por parte de WhatsApp, por lo que solo nos queda seguir suponiendo que es lo que pueda haber pasado.

#BonusTrac: ¿Alguien se acuerda de que existe LINE? Particularmente no me gusta su interfaz, prefiero el simplismo de Whatsapp o de Telegram

Saludos,
Giank

miércoles, 19 de febrero de 2014

Copiar arreglos en Javascript

Hoy toca hablar de Javascript, hace un par de meses vengo trabajando intensivamente con este lenguaje y tengo algunas cosas que compartir, esta es una de ellas.
En JS siempre se trabaja pasando valores y no referencias excepto en el caso de arreglos, objetos o funciones. En general esto es útil y uno se acostumbra con el tiempo, pero cuando trabajas con objetos complejos que contienen arreglos de otros objetos te topas con unos cuantos problemas, sobre todo al momento de modificar o copiar un arreglo.

Si tenemos arreglos que contienen tipos primitivos hacer copias es simple, existen principalmente dos formas de hacer copias sin que los datos de ambos arreglos queden linkeados: usando el método slice() o el método concat(). Un pequeño ejemplo.

var arregloFuente = ['a','b','c','d','e'];

var arregloDestino = arregloFuente.slice(); 

var arregloDestino = arregloFuente.slice(0); 
o
var arregloDestino = arregloFuente.concat(); 

Estos mismos métodos también se pueden aplicar a arreglos de objetos, con la diferencia que en este caso los dos arreglos contendrán referencias a los mismos objetos, por lo que si modificamos algún objeto en un arreglo este cambio se verá en ambos. Esto puede ser útil para sincronizaciones, pero molesto a la hora de aplicar filtros o duplicar data para modificarla. A nuestros rescate llega jQuery con su método extend() que permite hacer copias "superficiales"( shallow) o "profundas"(deep) de arreglos. Con "superficiales" me refiero a copias que se hacen usando referencias y con "profundas" me refiero a copias usando valores; esto es que, si modificamos un objeto dentro de uno de los arreglos no afectaremos al otro. La sintaxis es la siguiente.

var arregloFuente = [{color: 'rojo', peso: 10},{color: 'verde', peso: 10},{color: 'rojo', peso: 20}, {color: 'amarillo', peso: 5}];

// Copia superficial (Shallow copy) 
var arregloDestino = jQuery.extend([], arregloFuente); 

// Copia en profundidad (Deep copy) 
var arregloDestino = jQuery.extend(true, [], arregloFuente); 

Me pasó recientemente que incluso el método extend() no me hizo una copia en profundidad de un arreglo el cual contenía entre sus propiedades otro arreglo con objetos, para este caso lo único que me quedó fue hacer un método propio que haga el copiado del arreglo. Como dato, el arreglo anidado era un objeto observable de knockout, creo que esto tuvo algo que ver con que no me haga la copia en profundidad bien.

Saludos,
Giank.

jueves, 13 de febrero de 2014

De regreso al blog!

Dejé de publicar mucho tiempo, pero ya estoy de regreso. Ya tengo más notas, tiempo libre y un proyecto persona interesante que me gustaría compartir. La temática del blog sigue siendo la misma, tecnología y mi vida diaria en internet. So.. I`m Back baby!


Saludos,
Giank