Aquarius casero

Lo prometido es deuda, y aunque no suelo subir recetas había comentado en diversas redes sociales que esta sí la subiría al blog: cómo hacer una bebida isotónica con gusto cítrico casera. Vamos con la lista de ingredientes:

  • Agua (lógicamente)
  • Dos limas
  • Un limón
  • Un pomelo
  • Sal común (cloruro sódico)
  • Cloruro potásico (también llamada sal sin sodio)
  • Bicarbonato sódico
  • Azúcar moreno (puede ser sustituido por azúcar refinado, por panela, por estevia, por miel… a tu gusto)

En fin, la idea es hacer litro y medio (el popular formato del Aquarius), y mis medidas son a base de cucharillas de café. La idea es exprimir los cítricos y colarlos para que no vayan pepitas. Añadimos al agua una cucharilla de sal, una de cloruro potásico, una de bicarbonato sódico y cinco de azúcar moreno. Agitamos para que diluya bien, añadimos el zumo de los cítricos y dejamos unos minutos a enfriar. Yo suelo dejar el agua preparada con la sales y el azúcar enfriándose toda la noche en la nevera, y exprimo y añado los cítricos y el bicarbonato al día siguiente justo antes de beberlo, para que el zumo esté bien fresco y no pierda propiedades ni se altere su sabor.

Stranger Things ¿y si ya nos han contado el origen del monstruo?

Si no has visto Stranger Things, la genial creación de los hermanos Duffer, entonces para de leer. En serio, para de leer. Porque más abajo te comerás algunos spoilers, y porque es una serie que conviene ver envuelta en un halo misterioso. Así que para de leer, mírate la primera temporada y cuando la acabes vuelve y continúa con este artículo. Porque merece la pena, porque aunque abusa de la nostalgia y de referencias calcadas plano a plano estilo Tarantino es una joya y tiene sabor fresco. Y porque su aire ochentero no radica sólo en hacer referencias a series de los 80, sino en hacer las cosas como en aquellas películas de antaño.

Stranger Things

Si has visto la serie entonces, como todos los que la hemos visto, tienes la cabeza llena de teorías sobre qué es el monstruo y sobre la dimensión oscura llamada The Upside Down. Yo tengo mi teoría, que he estado comentado estos días con más gente, y como estoy de vacaciones y tengo tiempo para escribir he pensado que mejor que dejarla en mi muro de Facebook para un puñado de colegas es publicarla aquí y que la lea más gente. He de decir que no he buscado más teorías por internet, pero que supongo que mucha más gente ha llegado a la misma conclusión que yo porque, bien pensado, me parece de perogrullo y no hay que ser un genio para sumar dos y dos. Entonces vamos por partes. ¿Qué sabemos?

  • Sabemos que Eleven tiene poderes psíquicos derivados de los experimentos que el gobierno realizó con su madre.
  • Sabemos que Eleven, si es puesta en suspensión sensorial, puede moverse por una dimensión donde el espacio y el tiempo discurren de forma distinta y que refleja la dimensión donde está su mundo físico. Digo lo del espacio y el tiempo porque cuando hacen el experimento en la base se va hasta un cuartel ruso caminando apenas unos metros en ese mundo.
  • Sabemos que Eleven encuentra al monstruo durante uno de esos experimentos, pero en un primer momento el monstruo sólo la asusta, no la ataca.
  • Parece que Eleven siente responsabilidad por las acciones del monstruo.
  • Sabemos que The Upside Down es un reflejo del mundo físico, pero sin humanos ni animales y casi sin luz, más oscuro.
  • Sabemos que The Upside Down es accesible por cualquiera de manera física si encuentra una puerta, aunque su ambiente daña a los seres vivos.
  • Sabemos que el monstruo puede crear accesos entre el mundo físico y The Upside Down.
  • Sabemos que el monstruo no se había manifestado en el mundo físico hasta que Eleven escapa del centro de investigación.
  • Hemos visto que para destruir al monstruo Eleven parece sacrificarse, se destruye para destruirlo (aunque tengo otra teoría también).

Vale, con todo este cuadro delante voy a formular mi teoría: El monstruo es una consecuencia de los poderes de Eleven, creado por sus poderes de forma subconsciente, y no sólo eso, The Upside Down también es una creación de los poderes de Eleven para encerrarlo. El monstruo es un reflejo de los temores, los miedos y también del lado más oscuro de Eleven y de sus traumas. No olvidemos que ha sido criada como un experimento, sin seres queridos a su alrededor y que con solo doce años ya conoce el sentimiento de matar, aunque fuera en defensa propia. La teoría de que el monstruo e Eleven son lo mismo, el mismo ser, ya es formulada en la serie por Lucas cuando esta manipula sus brújulas, pero finalmente no se aclara nada sobre el origen del monstruo ni de la dimensión paralela, que parece que se ampliará en una segunda temporada. En este punto estarás pensando que mi teoría no se sostiene demasiado, realmente se basa en que el monstruo no aparece hasta que Eleven escapa y que desaparece cuando Eleven desaparece. Y ahora me remito al título del artículo ¿y si ya nos han contado el origen del monstruo?¿Y si lo hicieron en el el principio mismo de la serie? ¿en la introducción del primer capítulo?

Recuerda el primer capítulo, al principio de todo, antes de la desaparición de Will, tras la partida de AD&D: los niños se retan a una carrera de bicis, y se apuestan un cómic. Pero es que la apuesta es muy concreta, no se apuestan «el último número de X-Men» o «todos tus números de X-Men«, se apuestan el número 134 de Uncanny X-Men. Cuando comentaron un número tan concreto en el capítulo no pude resistirme a buscar cual era, aunque en aquel momento no podía relacionarlo con la trama de la serie porque no sabía todos los detalles que listé arriba, pero esa es la pista clave, porque el número 134 de Uncanny X-Men no se publicó en otoño de 1983, año en el que se ambienta la película, sino en junio de 1980, más de tres años antes. ¿Por qué hacer una referencia concreta a un cómic publicado tres años antes del tiempo de la serie? Pues ese tebeo es lo que sostiene mi teoría: En ese número, titulado «Too late, the heroes!«, la psíquica y miembro original de los X-Men Jean Grey, cuyos poderes se habían visto potenciados por la entidad cósmica conocida como Phoenix, es torturada por el Club Fuego Infernal para convertirla en su Reina Negra. Básicamente los restantes X-Men  intentarán llegar hasta ella y rescatarla mientras Mente Maestra usa sus poderes para profundizar en lo más oscuro de la personalidad de Jean Grey con la intención de enloquecerla y hacerla unirse al bando de los malos. El clímax del número llega cuando Jean pierde el control sobre si misma y dice «Hear me, X-Men! No longer am I the woman you knew! I am fire! And life incarnate! Now and forever I am Phoenix» manifestándose entonces como Phoenix Oscura, una versión salvaje y malvada de si misma. Y otro detalle más: en X-Men, más adelante, descubriremos que la entidad Phoenix había hecho un duplicado del cuerpo de Jean Grey, que fue el que llegó a ser Phoenix Oscura, y que el cuerpo original estaba bajo el mar en estado de animación suspendida.

Uncanny X-Men 134

En resumen, que en una serie donde tenemos a una psíquica con la que unos desalmados han experimentado y a un monstruo desconocido, que sabemos que fue descubierto por ella,  hacen una referencia muy exacta a un cómic donde una psíquica se convierte en un monstruo tras sufrir distintos abusos y agresiones a su mente ya en el inicio del primer capítulo. Al menos da que pensar si queremos teorizar sobre el origen del bicho ¿no?.

Stranger Things, cartel

Como ya decía, supongo que hay más gente desarrollando y defendiendo la misma teoría, ya que puesta negro sobre blanco parece hasta una perogrullada… o no, puede que la segunda temporada nos den una explicación diferente, pero como ya decía, una referencia tan concreta a ese cómic… es que algo hay.

En el listado de arriba os decía que tengo una teoría sobre el sacrificio de Eleven para destruir al monstruo, y que creo que la segunda temporada tirará por ahí: ¿y si Eleven no se ha sacrificado del todo? ¿y si sólo ha destruido su forma física y, por extensión, la del monstruo pero su mente sigue flotando por la dimensión paralela? ¿y si puede tomar otro cuerpo anfitrión para volver, al estilo de la propia Phoenix de los X-Men? En fin, eso ya nos lo contarán o no en la segunda temporada.

Crear un Raid1 con mdadm en Linux

Si ya vimos como instalar mdadm y cómo hacer un Raid0 para conseguir mayor velocidad, vamos ahora con otro de los arrays de discos más básicos: RAID1 o Mirroring. Lo de mirroring ya te dará una idea sobre cómo funciona la cosa: consiste en tener una copia exacta de los datos en dos discos. Esto implica que lo mejor para este caso es tener dos discos duros del mismo tamaño.

Para este ejemplo vamos a suponer que tenemos dos discos: sda1 y sdb1.

El primer paso es editar el archivo /etc/mdadm.conf y añadir los parámetros DEVICE y ARRAY correspondientes:

DEVICE /dev/sd[ab]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1

Una vez configurado el archivo nos toca ejecutar el comando mdadm para crear el array de discos y que se inicie:

mdadm -C /dev/md0 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1

Tras eso nos pedirá permiso para continuar creando el array, así que basta con contestar yes para terminar.

Recuerda que este tipo de array ralentiza la velocidad de escritura en disco al tener que duplicar el trabajo.

Arduino: Recuperar datos guardados en varios bytes de la memoria EEPROM

Seguimos con la memoria EEPROM de Arduino, su memoria no volátil: vimos cómo leer y escribir de forma básica, y vimos cómo guardar un dato mayor de un byte recortándolo y almacenándolo repartido en varias posiciones de memoria. Pero lo que no vimos en ese apartado fue ¿cómo lo recuperamos?

Pues básicamente vamos a hacer lo mismo que en el ejemplo anterior pero al revés, volviendo a tirar de opreaciones de desplazamiento de bit. Declararemos una variable con el tipo de lo que queremos recuperar y junto a ella otra variable contenedor, leo un byte, lo almaceno en la auxiliar, lo desplazo hacia la izquierda para que sea el más significativo y lo anexo al total con una operación OR, y finalmente limpiamos la variable auxiliar.

Enchurrado en código es similar a esto:

   long Numero = 0;
   //Variable contenedor inicializada a 0
   long Contenedor = 0;

  //recorremos el bucle hacia atrás, al revés que en el ejemplo anterior
   for (int i = sizeof(Numero); i > 0 ; i--){

     //Aquí guardamos en el contenedor
     // un byte de datos
     Contenedor = EEPROM.read(i-1);

     //Desplazamos tantos bits como toque
//en esta iteración del bucle.
//El if es porque en la última iteración
//no habría que desplazar.
     if (i != 1){
     Contenedor = Contenedor  << (8*i);
     }

     //Utilizamos la operación a nivel de bit OR para
     //añadir a nuestro resultado final
     //el valor del byte leído.
     Dato = Dato | Contenedor;

    //Reiniciamos la variable
    //auxiliar para evitar problemas
    //con datos leídos previamente
     Contenedor = 0;
   }

Este ejemplo es limitado, ya que sólo te valdría en caso de que hayas guardado un único valor repartido en bytes, como en el ejemplo anterior. En el futuro veremos cómo usar los métodos get() y put() que simplican el tema.

Como en el ejemplo anterior es necesario conocerse las operaciones de desplazamiento de bit y las operaciones lógicas a nivel de bit.

Si tienes interés en Arduino a mi me ha servido de ayuda la wiki de Arduinobot y su manual en PDF.

Tcpxtract: extraer archivos del tráfico de tu red

Supongamos que eres el sheriff de una red, ya sea doméstica o empresarial, y tienes que monitorizar el tráficto de la misma, para lo que estás usando por ejemplo Wireshark. Ahora imagina también que quieres extraer los ficheros que se ocultan en esa comunicación ¿cómo lo hacemos? Bueno, pues para eso está Tcpxtract.

El primer paso es instalarlo. En Windows lo puedes descargar dese Sourceforge, en el caso de Linux puedes instalarlo con apt tal que así:

sudo apt-get install tcpxtract

Y ¿cómo le damos uso? la sintxis sería

tcpxtract [OPTIONS] [[-d ] [-f ]],

permitiéndonos -d capturar desde una interfaz de red y -f hacerlo desde un fichero. Dos ejemplillos en Linux

#extraemos datos directamente
#de la caputra de nuestra tarjeta
#de red
tcpxtract -d eth0

#extraemos datos de un archivo
#de tipo pcap
#generado por Wireshark
tcpxtract -f ejemplo.pcap

Tcpxtract reconoce los archivos que se envían por su firma o huella, estando estas registradas en el archivo tcpxtract.conf, lo que nos permitiría en todo caso poder añadir más editándolo, si conocemos dicha firma.

Se puede añadir una opción -o que permitiría definir en qué carpeta queremos que se extraigan los archivos capturados de nuestro tráfico.

#extraemos datos de un archivo
#de tipo pcap
#generado por Wireshark
#ejemplo definiendo salida
tcpxtract -f ejemplo.pcap -o imagenesExtraidas

Ten en cuenta este tipo de cosas, tanto por los temas de seguridad en las comunicaciones y usar siempre que sea posible la conexión https como si decides colarte en la wifi de tu vecino para usarla de gratis.

Arduino: Escribir varios bytes en la memoria EEPROM

Pensaba hablar sobre las finales de la NBA, pero creo que me voy a esperar a que acaben y voy a volver con el tema del Arduino y seguir con la EEPROM de la que ya hablamos en otro artículo.

Si en el primer artículo veíamos cómo escribir en esta memoria no volátil, en este veremos otro punto ¿Cómo guardamos información mayor de un byte? En ese caso tenemos que distribuirla entre varios ¿recuerdas el tema de los punteros en C? Pues es similar.

En el ejemplo vamos a guardar un entero largo, de 32 bits. Empezaremos por volcarlo a una variable auxiliar que servirá de contenedor del valor original, y declararemos también una variable byte para la operación de escritura. Lo que haremos será ir guardando en cada byte de la EEPROM el byte más significativo de nuestra variable auxiliar y luego aplico un desplazamiento de 8 bits hacia la izquierda a la variable auxiliar para que el siguiente byte pase a ser el más significativo. Todo esto dentro de un bucle for que repita la operación tantas veces como bytes tenga nuestra variable. En el código explicado paso a paso lo verás mejor:

   long Numero = 666777999;   

   //Usamos el contenedor para no perder el dato.
   long Contenedor = Numero;

   //Definimos una variable byte
   //para trocear el dato largo
   byte X;

   //Bucle: recorremos tantas veces como
   //bytes tiene el tipo de dato
   //que queremos almacenar
   for (int i = 0; i < sizeof(Numero); i++){
     //Guardamos la fracción más
     //a la izquierda. Es el byte
     //más significativo
     X = highByte(Contenedor);
     EEPROM.write(i, X);
     //Aplicamos un desplazamiento
     //de un byte (8 bits)
     // hacia la izquierda.
     //De esta forma en cada iteración
     //la siguiente porción pasa a ser
     //el byte más significativo
     Contenedor = Contenedor << 8;
   }

Es importante tener claras las operaciones de desplazamiento de bit en Arduino para trabajar con múltiples bytes. Próximamente hablaré de esos temas (operaciones a nivel de bit y cómo recuperar estos datos escritos).

Música de raza rocanrolera

Vamos con otra lista de youtube, que había tiempo que no metía ninguna. Esta la he titulado De Raza Rocanrolera, ya que son 25 temas de solistas que tuvieron o siguen teniendo carreras largas y respetadas en el rock and roll, sin estar en el escalón del megaestrellato de AC/DC, Springsteen, Bowie, Dylan o Metallica (aunque alguno podría objetar que Neil Young sí lo está… pero no pude resistirme a incluirlo) a niveles de ventas o de fama «mainstream», pero sí que están en lo más alto a nivel de reconocimiento por parte de otros artistas o del público más especializado en ese campo.

En resumen, música de raza rocanrolera hecha por artistas de raza rocanrolera.

https://www.youtube.com/playlist?list=PLLhsHHbrwwtV0DDRVveFrI3Syipp2l7sw

Premios Simpson de la NBA 2016

Se me ha ocurrido esta tarde una idea, muy inspirada en los debates de basket que mantengo con mi colega David: Los premios Simpson de la NBA 2016 ¿Premios Simpson? Sí, premios Simpson. Si eres fan de los Simpson verás ahora por qué.

En fin, esta es la «primera edición«, a ver si vienen después muchas más. Vamos con las categorías:

Premio anual Montgomery Burns por su sobresaliente labor en el campo de la Excelencia: Stephen Curry por su año MVP

Premio Matlock : Pau Gasol por su temporada all-star de 16 puntos, 11 rebotes, 4 asistencias y 2 tapones a los 35 años.

https://www.youtube.com/watch?v=sUg9NCoCeIg

Premio Hank Scorpio: R.C. Buford (San Antonio Spurs) por el fichaje de LaMarcus, la renovación de Kawhi, el buen ojo con Marjanovic y el chollo que se levanta con West.

Premio Qué Homer he tenido: Harrison Barnes con esta canasta

Premio yo me llamo Ralph: Marcelinho Huertas con este doble fail

https://www.youtube.com/watch?v=eb6IxRwakQA

Premio a la persona que menos se ha esforzado para llegar hasta aquí: Brett Brown, tercer año consecutivo de tankeo con los Sixers y ahí sigue al frente del equipo. Esta vez con un 10-72.

Premio Tiborowski: Kristaps Porzingis, novato europeo que si no fuera por el sobresaliente año de Towns habría optado a ser el Rookie del Año

Premio Nelson Muntz: Matthew Dellavedova con un nivel de contacto que sería falta hasta en fútbol australiano

Premio Bombardeo: Brad Stevens por su trabajo con los Celtics, un equipo con poco talento pero muy bien dirigido y aprovechado. Han estado en playoff y han dado batalla en primera ronda.

No funciona el depurador de IE11: error en JSPlugin.3005

Me ha pasado en el trabajo: el depurador de Internet Explorer 11 no funciona. Y lo necesito porque estoy depurando una aplicación web que utiliza ActiveX y tiene que funcionar en Explorer. Pero al pulsar F12 e intentar usar el inspector de código veo un error, encabezado por

Exception in window.onload: Error: An error has ocurredJSPlugin.3005

Parece que es un error típico en Windows 7 si se actualiza directamente de IE8 a IE11. Las soluciones son:

  • Desinstalar actualizaciones para volver a la primera versión de IE del sistema operativo y, tras eso, primero actualizar a IE10 y luego a IE11.
  • Ir a la web de Microsoft, buscar la última actualización se seguridad de IE e instalarla. Os pondría un link, pero puede que haya cambiado cuando lo leáis, así que mejor buscadla.

Cinco años y un millón de gracias.

Allá por abril de 2011 yo de los pocos que apostaban por los Dallas Mavericks como campeones de la NBA. Estaba acabando el segundo año del FP, acababa de dejar el grupo de metal en el que tocaba, pinchaba un par de días a la semana en Os Truques, tenía una oferta de trabajo en firme para currar aquel verano de programador PHP y estábamos en Semana Santa, así que me aburría en casa de mis padres, creo recordar que intentando hacer una versión del Conecta 4 en Java (que debió quedar inacabado). Y entonces decidí empezar un blog, una plataforma desde la que despotricar, meterme con Kobe Bryant (ahora ya retirado) y rendir pleitesía a Lynyrd Skynyrd. Nadía habría apostado por que aquella idea durara más de tres meses…

… y han pasado cinco años. El domingo llegaba al millón de visitas, recordando cuando me parecía un hito superar las 100 en día. Nunca me planteé por aquel entonces cuánto tardaría en llegar al millón. Ni tampoco pensé que podría llegar un momento en el el 70% de mis visitantes accedieran desde países de América Latina.

Este blog en si ha evolucionado mucho, han cambiado las temáticas, ha cambiado mi forma de escribir, ha cambiado el tono, ha pasado de un subdominio gratuito a uno propio… pero no ha cambiado el espíritu: generar material de calidad en lugar de buscar la caza de clicks con titulares amarillistas y viralizables.

¿Y dentro de cinco años? No me lo planteo, como no  me lo planteaba hace cinco. Pero espero que dure, que siga teniendo visitas y que el contenido sea tan bueno o mejor.

Un saludo, y un millón de gracias por este millón de visitas en este primer lustro.