Nivel 7 del Hack It 2008 (Euskal Encounter 16)
Este es uno de los tres niveles que desarrollé para el Hack It de este año en la Euskal Encounter y que Txipi incorporó como nivel 7 del concurso. Paso a continuación a explicar cuál sería la solución “oficial” que tenía en mente cuando diseñé el reto.
Accediendo a la página del nivel, se nos indica que descarguemos este fichero. Una vez descargado y descomprimido, obtenemos un único fichero, de nombre LOADME.
Lo primero es ver de qué tipo de fichero se trata este LOADME, ¿es un ejecutable?, ¿son datos?, ¿es texto?, ¿está cifrado?… los dos primeros pasos que se pueden dar en estos casos, suponiendo que estamos trabajando sobre un sistema de tipo Unix, es hacer uso de los comandos del sistema strings, xxd y file para recabar algo más de información y obtener un volcado de cadenas de texto y un volcado hexadecimal del fichero.
El comando strings y xxd nos desvelan una interesante cadena de texto dentro del fichero, se trata de la cadena “Codigo-QR”. Esto es una pista reveladora de lo que puede ser el contenido del fichero.
El comando file es el más revelador, ya que nos aporta información extremadamente útil para avanzar en el reto:
$ file LOADME LOADME: Spectrum .TAP data "Codigo-QR " - memory block (screen)
Como se puede observar en la salida del comando, se indica que es un fichero TAP de Spectrum. De nuevo aparece la cadena “Codigo-QR” que resulta ser un campo de comentario dentro del fichero TAP. Por último se indica que los datos almacenados en el fichero TAP de Spectrum es una pantalla.
El formato TAP es uno de los formatos que se desarrollaron para almacenar en ficheros programas de Spectrum que originalmente se guardaban en cintas de audio. Precisamente lo de TAP viene por “tape”. Los emuladores de Spectrum tienen una funcionalidad que suele ser la de reproductores de cintas virtual, en donde se pueden usar este tipo de ficheros para cargarlos en el ordenador emulado.
Usando el comando file se obtiene la descripción del fichero, si bien analizando los primeros bytes de la cabecera se puede llegar a la misma conclusión. Podemos sacar un volcado hexadecimal con el comando xxd y analizar los primeros bytes. Una búsqueda en google por los primeros bytes de la cabecera “13 00 00 03″ ya nos apunta directamente en los primeros resultados al formato .TAP de Spectrum.
Llegados a este punto lo único que se necesita para avanzar es un emulador de Spectrum, en el que poder cargar el fichero TAP y ver qué se obtiene. Dependiendo de la plataforma se podrá usar un emulador u otro. En mi caso particular, el emulador que he usado es Fuse para OSX, si bien cualquier emulador en cualquier plataforma es válido ya que el formato del fichero es estándar.
Dependiendo del emulador usado, el procedimiento para cargar el fichero cambiará, en cualquier caso tendremos que dar el comando adecuado dentro del Spectrum emulado. Podemos optar por intentar un comando LOAD “” o bien un LOAD “” SCREEN$
Atendiendo a la información de la que se dispone, el comando correcto es un LOAD “” SCREEN$ ya que lo que se nos está proporcionando en el fichero de datos es una pantalla, no un programa ejecutable. Se puede llegar a la conclusión de que es una pantalla y no un programa ejecutable en base a la información que nos aporta el comando file que directamente nos dice que es una screen o, si somos más detallistas y analizamos el fichero de acuerdo al formato TAP, se puede ver que el tipo de fichero es 0×03 con dirección de comienzo 16384(0×4000) y longitud 6912 (0×1B00), lo cual es indicativo de que lo que nos traemos entre manos es un fichero SCREEN$
0000000: 1300 0003 436f 6469 676f 2d51 5220 001b ....Codigo-QR .. 0000010: 0040 0080 ff02 1bff ffff ffff ffff ffff .@.............. 0000020: ffff ffff ffff ffff ffff ffff ffff ffff ................
Una vez cargado el fichero aparece en la pantalla del emulador de Spectrum lo siguiente:

Esto es un código QR, que debe ser decodificado para seguir avanzando. El mecanismo que se use para decodificarlo puede ser variado. Si se dispone de un lector de códigos QR en la PDA o el teléfono móvil, es la forma más rápida de obtener la información textual codificada en el grafico. Una buena opción es usar el lector de Quickmark, disponible para una gran variedad de dispositivos móviles, tanto WIndows Mobile como Symbian. Otra opción muy versátil es la aplicación iMatrix para el iPhone. La decodificación en este caso se puede hacer directamente sobre el código mostrado en la pantalla, usando la cámara de la PDA o el teléfono móvil.
Si no se dispone de esta posibilidad, una alternativa es realizar una captura de pantalla, generar un fichero en formato GIF, PNG o BMP y usar algún software que realice el análisis del código. Existen varias aplicaciones Java como esta perfectas para realizar el trabajo.

El resultado, siguiendo uno u otro camino, es la cadena de texto buscada, clave para avanzar al siguiente nivel ;)
Nace la Comunidad Hack It
Como ya comenté en mi anterior post sobre la Euskal Encounter 16, este año una de las novedades que hemos tenido es la modificación tanto del diseño como de las reglas del Hack It, concurso que se celebra durante los 4 días de la party y por el cual como ya sabéis tengo especial debilidad ;)
El coordinador principal del evento, nuestro amigo Txipi, pensó que sería buena idea inyectarle algo de frescura al concurso de este año dando la posibilidad, a cualquiera de nosotros, de proponer nuevos retos.
Esta decisión abría nuevas e interesantes puertas dentro del concurso:
- En primer lugar, si Txipi incorporaba al concurso alguna de tus propuestas, cuando te encontrases con ese nivel en el transcurso del evento, ya sabías cómo resolverla, por lo que podías avanzar algo más rápido. Una pequeña concesión que se nos otorgaba por haber colaborado enviando propuestas. En mi caso concreto, de cuatro propuestas que le envié me seleccionó tres de ellas, que dieron lugar al nivel 7, nivel 13 y nivel 15. Espero que nadie me odie por alguno de ellos ;)
- Como me comentaba Txipi durante la party, el tener que crear el Hack It año tras año estaba derivando a una situación en la que algunas de pruebas de diferentes ediciones se parecían demasiado entre sí. El incorporar este año pruebas de otros jugadores ha inyectado frescura, nuevas ideas… y quizás dificultad, por lo variado de las pruebas ya que a cada uno nos da por una cosa…
- Con esta estructura de concurso oficial una vez al año, participación externa, grupo más o menos estable de participantes/colaboradores… se asientan las bases de lo que podría llegar a ser una comunidad Hack It muy al estilo de lo que nos proponiamos a nivel personal en el Geek Puzzle Team creando hace unos meses nuestro Geek Puzzle, del cual ya estamos preparando la 2ª edición para publicarla en septiembre. Por cierto, está abierto a colaboraciones externas :)
El primer paso es irnos reuniendo en la lista de correo que se ha creado, irnos conciendonos, proponernos retos, impulsar eventos como el Hack It de la Euskal Encounter, el Hack It de la Navarparty, o proyectos más personales como el nuestro de Geek Puzzle.
Happy Hacking! ;)
Euskal Encounter 16
Un año más, y ya van trece, vuelvo de la Euskal Encounter junto con parte de los amigos de KernelPanic/SoyGeek. En esta ocasión se ha celebrado la decimosexta edición de esta magnífica party.
Echando la vista atrás uno se da cuenta de que lleva ya asitiendo trece largos años, uno trás otro… y es que ya nos vamos haciendo viejos :)
La primera vez que asistí a una party fue a la Euskal Party 3, allá por el año 1.995 en Tolosa, y siempre conservaré aquel viaje (en aquel momento casi una aventura) junto con Potxoki (Néstor Matas) y alobo (Carlos Aganzo) como algo especial en mi memoria.
El año siguiente, en la Euskal 4, también lo recuerdo como algo especial por dos razones. En primer lugar conocimos a Iban Nieto que se acerco a nosotros para que le explicásemos qué era todo ese tinglado en el que estábamos metidos de Linux :) y fíjate tú por dónde ahora anda de evangelista de OpenSolaris ;)
Desde entonces, año tras año, nos vamos viendo en cada Euskal y puedo afirmar que conservamos una amistad especial desde entonces… ese tipo de amistades que aunque en la distancia, ya que él vive en Bilbao y yo en Madrid, se conservan gracias a Internet, y que cada vez que nos vemos decimos: “…otra vez estamos por aquí… ¿te acuerdas de…?” :) Y puedo afirmar que esta es una de las razones por las que me gusta ir a la Euskal, reencontrarme con viejos amigos año tras año.
Por otro lado, en esa Euskal recuerdo haber tenido la sesión de programación/hacking más extrema que he tenido en mi vida junto a Iñaky Pérez-González, programando una demo con el GGI del kernel de Linux… recordemos que estámos hablando del 95… toda una experiencia :)
Pero dejemos la nostalgia a un lado y centrémonos en la Euskal Encounter 16, la party de este año. Se ha celebrado en el BEC como viene siendo habitual en estos últimos cuatro años. En mi opinión este sitio es perfecto ya que el espacio donde se celebra la party es amplio, no hay problemas ni de frio ni de calor, tienes un Media Mrkt al lado por si necesitas hacer alguna compra de última hora, tenemos el hotel a 5 minutos andando desde el BEC para dormir y ducharnos como es debido (y es que uno con la edad se aburguesa un poco… jejeje).
Aplaudo la iniciativa de este año de realizar las conferencias fuera del recinto principal de la party, ya que el año pasado era prácticamente imposible escuchar al ponente de algunas charlas (que en muchas ocasiones ni siquiera disponía de micro) debido a los gritos de la gente (principalmente los gamers) y a la música. a todo volumen.
Este año, la verdad es que me lo he pasado especialmente bien. El ambiente en la party, en lineas generales, ha sido bastante tranquilo. Las actividades han estado perfectamente planificadas y no ha habido ningún incidente destacable. Quizás, y es mi percepción personal, la party ha estado más tranquila de lo habitual… me parecía, viendo los huecos que quedaban vacíos en las mesas, que este año había ido menos gente, al menos en lo relativo a esos 4.096 puestos para ordenadores. El ambiente en la party también ha sido bastante tranquilo, otros años en las pantallas se proyectaban, prácticamente las 24H, demos y videos, a parte de poner música… este año prácticamente no han puesto música. La verdad es que un poco más de animación no hubiera estado mal.
Un 10 para la red, excepto una caida que creo fue debida a un fallo en una de las pilas de switches que daba conectividad a nuestra mesa, la conectividad ha sido perfecta, tanto a nivel de LAN como hacia/desde Internet. La conectividad con los switches era de 1 Gbps y la conexión con Internet ha sido de 10 Gbps.
En este aspecto han cambiado mucho las cosas desde que empecé a ir a este tipo de eventos hace ya años. A mediados de los años 90, las conexiones que teniamos a Internet desde casa, si es que la teníamos, era por modem, a 56 Kbps en el mejor de los casos. Ir a una party significaba intercambiar durante 72 horas pilas y pilas de CDs y poderse conectar “rápido” a Internet. Ahora todo a cambiado, la gente desde hace ya casi una década tiene banda ancha en su casa, mediante cable o ADSL, y lo de conectarse a Internet ya no es nada especial. Yo durante estos cuatro días únicamente he usado Internet para leer mi correo, pero poco más.
Ahora la conectividad es local, durante esos cuatro días se crea una red P2P local de miles de usuarios y con TB de información compartida… y los flujos de información son contínuos… Además, es muy curioso ver cómo cambia la compartición año tras año… al principio la gente se intercambiaba disquetes de 3 1/2, luego CDs, luego DVD, se pusieron de moda las series, este año ha sido el año de la alta definición… es curioso.
¿Y qué hace uno durante 72 horas? (realmente 60 si quitamos las 12 horas que dormí en esos días)… pues eso depende de lo que a cada uno le guste… pero si una cosa está clara es que este tipo de eventos cada vez se parecen menos a lo que originalmente eran. Inicialmente, eran punto de reunión de la demoscene. Los grupos venían al completo, coders, grafistas, músicos… afinaban sus producciones y las presentaban ante el asombro de los asistentes. Allí lo que mandaba era la excelencia técnica, apurar ciclos de reloj, rutinas de mapping de texturas mejoradas, rotaciones 3D optimizadas, demos de 4KB imposibles de creer, chiptunes de calidades increibles… pero todo eso terminó :(
Ahora este tipo de eventos está dominado, principalmente, por los gamers y eso se nota en el ambiente. Yo la verdad, y esto es una opinión personal… estoy empezando a echar en falta algo de más ambiente técnico en este tipo de eventos. Para los que no jugamos, lo único que nos motiva mínimamente es el Hack’It, que nos mantiene las neuronas ocupadas, quizás más de lo que querríamos en muchos casos, jejeje ;)
Cosas que han hecho de esta Euskal algo diferente… por primera vez, Txipi, organizador principal del Hack’It de la Euskal, hizo un call for levelz para que le envíasemos propuestas de pruebas que él incluiría en la edición de este año. Sin pensarlo dos veces le envié tres propuestas de las cuales pude ver que había incluido dos de ellas una vez que nos pusimos a jugar… publicaré la explicación de mis propuestas aquí, en el blog, dentro de unos días. El Hack’It de la Euskal se merece un post a parte, así que… stay tuned! :)
Como llevo prácticamente un año enrolado en El Geek Errante junto a TheDoctor y Mr.Solo aproveché mi paso por la Euskal para grabar algo de contenido único e interesante para nuestro podcast… y que espero que os guste cuando lo publiquemos. A modo de resúmen:
- Entrevista a Jon Cortázar AKA El Viejo Archivero de Karoshi Corporation. Junto con Iban, charlamos sobre la scene de MSX en España, sus proyectos, el futuro de la plataforma…
- Entrevista a Ciro Altabás. Muchos conoceréis a Ciro por su corto DVD y los que no, seguramente lo hagáis por su documental Hobby. Los que estuvimos por allí tuvimos la suerte de poder asistir a la proyección de Hobby, en presencia del propio Ciro que luego estuvo charlando con nosotros y contestando a nuestras preguntas. El documental es buenísimo y cuenta con la colaboración de Hector García AKA Kirai.
- Entrevista a Kujaku. No pensé que podía haber un Geek de los Mainframes hasta que he conocido a Kujaku. Desde hace cuatro años, y pagando los gastos de transporte de su propio bolsillo, traslada al recinto de la Euskal varios mainframes de IBM, armarios de discos, unidades de cinta, etc. y monta todo un mini-CPD en regla usando estos sistemas. Es todo un entusiasta de los mainframes y de su tecnología, y eso se nota cuando hablas con él, ya que siempre está dispuesto a explicarte todo lo que le preguntes. Todo un derroche de simpatía, amabilidad y dedicación. Sin duda, una de mis mejores experiencias en esta party. Kujaku además ofrece un servicio de gran valor con su instalación, es el encargado de montar el hub DC (Direct Connect) que nos une a todos durante estos días para el intercambio de ficheros. Su blog es toda una biblía de información relativo a estos sistemas.
- Entrevista a Txipi. El último día de party, a eso de las 3:00 AM quedé con Txipi para charlar un rato acerca del Hack’It de este año y aprovechamos para grabar un poco de material para el podcast. De esta forma los que no conozcáis qué se cuece en un concurso de este tipo podréis animaros a colaborar en próximas ediciones.
Como podéis ver, en lo que a grabación de material para el podcast se refiere, fueron unos días muy productivos.
A parte de la proyección de Hobby, la única charla a la que asistí fue a la de Homebrew en Wii de Héctor Martín. Me perdí la de Iban de OpenSolaris, aunque sé que me perdona ;)
Una de las anécdotas de la party fue una pareja de novios, que vestidos de forma tradicional como mandan los cánones, se casó en plena party, con marcha nupcial incluida… la verdad es que queda más cerca que irse a Las Vegas y casarse en una capilla vestido de Klingon o Vulcano.
En mi opinión está empezando a ser preocuopante el giro que está tomando la party, al menos en estos dos últimos años… demasiada actividad friki-alternativa y poco trasfondo técnico… ¿quizás sería hora de plantearse un fork y crear una línea de eventos más hacker/geek y menos friki?
Por último, comentaros a los que estéis interesados en escuchar las charlas de la Euskal Encounter 16, que Euskadi Digital ya las ha dejado disponibles en su web.