VERSION ACTUAL :

Inicio de sesión

Raulito el Friki

Raulito El Friki

COMENTARIOS

EN LINEA

Hay actualmente 0 usuarios conectados.

NUEVOS

  • Pere Ferrés Pons
  • fransmith
  • sway92
  • jairo
  • morita77

Agregador de canales de noticias

4 hábitos para una vida más creativa

Gino Alania - Mar, 10/04/2016 - 10:31

La idea de que todos podemos ser creativos surgió recién a comienzos del siglo XX, y las primeras investigaciones científicas sobre el tema comenzaron en la década de 1950.

Hoy sabemos que es posible
desarrollar y potenciar nuestra Creatividad
practicando y adquiriendo algunos hábitos:

Hábito 1) Aprender a hacer algo nuevo

Ubicarnos en el rol de aprendices nos lleva a formularnos nuevas preguntas y tener que superar desafíos inéditos, lo cual desarrolla y estimula nuestra Creatividad.
Hasta hace unos años este hábito requería tener mucho tiempo disponible para tomar cursos o investigar en una biblioteca. Ahora tenemos acceso inmediato a videos, entrenamientos y libros para aprender prácticamente cualquier cosa a nuestro ritmo, en forma gratuita o con un costo mínimo.

Hábito 2) Salir a pasear

Distanciarnos de nuestros
problemas y desafíos cotidianos nos ayuda a ser más creativos.
Ya el simple hecho de movernos para caminar o hacer algún deporte lleva sangre con más oxígeno a nuestro cerebro, y cambiar de ambiente estimula la actividad del hemisferio derecho --el del pensamiento creativo, la intuición y el reconocimiento de las emociones.

Hábito 3) Convertir algunas ideas en“experimentos”

Siempre que sea posible, tratar de seleccionar algunas de nuestras ideas para llevarlas al mundo real a través de experimentos de alto aprendizaje y bajo riesgo que nos permitan explorar si esas ideas son o no viables.
Cada experimento deberá tener: hipótesis, resultado esperado, métricas y vencimiento.

Hábito 4) Trabajar en equipo y con gente que piense distinto

El refrán africano que dice: “Si quieres ir cerca, ve solo . . . pero si quieres llegar lejos ve acompañado” aplica al desarrollo de nuestra creatividad.
Buscar activamente actividades de co-creación con otras personas es un factor clave para ser más creativos, y lo es todavía más cuando algunas de esas personas perciben, sienten y piensan bien diferente a nosotros.

Como cierre te propongo que selecciones uno de estos hábitos sobre la base del que más te atraiga o te parezca más útil para tu presente, y pruebes ponerlo en práctica durante las próximas dos semanas.
Pasado ese tiempo te invito a que dejes un comentario con tu experiencia. Gracias!

Programación recursiva con Python

El blog de Iyan - Mar, 10/04/2016 - 09:21

Supongo que a todos nos han dicho alguna vez, seguramente durante el paso por el colegio, que no se puede definir algo en términos de sí mismo. Esta norma está muy bien para definir conceptos o palabras ya que, de caer en este error, estaríamos tratando de explicar algo nuevo en términos de algo desconocido. Sin embargo, en matemáticas puede ser muy útil, e incluso elegante, definir problemas de forma recurrente. Lo mismo ocurre a la hora de programar. La programación iterativa está mucho más extendida que la recursiva (¿quizás por motivos de eficiencia?) y, sin embargo, esta última puede ayudarnos a simplificar y reducir el código.

Como os decía, es habitual en matemáticas definir problemas de forma recurrente. Podemos definir el factorial de un número n cualquiera como el producto de los número del 1 a n, esto es:

La alternativa recursiva o recurrente (¿son sinónimos?) sería la siguiente:

Es decir, estaríamos definiendo el factorial de un número n en términos del factorial de ese mismo número reducido una unidad. Bueno, vale, siendo rigurosos estas definiciones no son exactamente equivalentes. A la última habría que añadir que, por definición, el factorial de 1 es 1. Y a las dos les podríamos añadir también que el factorial de 0 es 1 (para la tranquilidad de algunos e indiferencia de muchos otros).

La condición extra que tuve que añadir a la segunda definición, lejos de ser un detalle sin importancia, va a ser clave cuando programemos recursivamente. La idea detrás de programar de esta forma es simplificar un problema en términos del mismo problema, pero más sencillo, hasta llegar a un caso base. En el caso del factorial, hasta llegar al factorial de 1.

Vamos a definir una función en Python que nos devuelva el factorial de un número. Pero vamos a definirla recursivamente con todo lo que mencioné hasta ahora.

def factorial(num): if num == 0 or num == 1: return 1 else: return num * factorial(num - 1)

Salvo en los casos base, cuando num vale 0 o 1, el primer condicional no se cumplirá así que se avanzará hacia el código en else, donde la función devolverá el producto de num por (¡sorpresa!) factorial(num - 1), una llamada a la función que estamos definiendo. Imaginemos el caso en que num toma el valor 2. La segunda llamada a la función factorial sería con el valor 1, que es un caso base y devolvería el valor 1. Así que ya tendríamos el valor final, que sería 2 por 1. Para números mayores el razonamiento es el mismo. Podéis visualizar el funcionamiento de este código, paso a paso, para el caso en que num vale 5 utilizando Python Tutor.

Antes de pasar a otro ejemplo me gustaría aclarar un concepto muy importante en Python y otros lenguajes de programación: el ámbito o scope de las variables. Se define el scope de una variable como la parte del programa desde donde es accesible. Cuando definimos una variable en el cuerpo principal del programa decimos que se trata de una variable global, esto es, una variable que es accesible desde todos los lugares. Sin embargo, una variable definida dentro de una función es una variable local, y su scope se reduce a los límites de esa función. Además, cada vez que llamemos a una función se creará un scope independiente de los demás, que será “destruido” cuando la función termine de ejecutarse. Por si ya fuera poco lío, podemos forzar que una variable local sea global utilizando la keyword global delante de una variable.

Si habéis entendido bien todo esto deberías poder saber que número devuelve el siguiente código. Si tenéis dudas o no estáis seguros muy seguros, dejad un comentario.

x = 12 def g(x): x = x + 1 def h(y): return x + y return h(6) print(g(x))

Podéis leer mucho más sobre el scope y la vida de las variables en este detallado documento (en inglés) escrito por la Universidad de Cape Town.

Pasemos ahora a otro ejemplo muy interesante de programación recursiva en el que, en la propia definición de una función, llamamos no una, sino dos veces a la misma función que estamos definiendo. Además, aquí voy a escribir las dos versiones: la función iterativa y la función recursiva. La idea es escribir una función que devuelva el n-ésimo número de la sucesión de Fibonacci. Podéis leer en detalle sobre esta sucesión en la entrada de la Wikipedia, pero lo único que necesitáis saber es que los dos primeros elementos de la sucesión son 1 y los sucesivos elementos se obtienen sumando los valores de los dos elementos anteriores.

def fib_iter(n): fib = [1,1] while n > 2: fib.append(fib[-1]+fib[-2]) n -= 1 return fib[-1] def fib_recur(n): if n == 0 or n == 1: return 1 else: return fib_recur(n - 1) + fib_recur(n - 2)

Este ejemplo es perfecto para ver dos cosas. En primer lugar, que la programación recursiva es más fácil de leer, no hay bucles, ni tampoco tenemos que estar atentos a un contador y decidir cuándo salir del bucle, siempre en cuando hayamos definido bien los casos base, en este caso cuando n vale 0 o 1. En segundo lugar, que la programación recursiva puede ser tremendamente ineficiente si no tenemos cuidado. Si probáis a llamar a las dos funciones con valores pequeños de n no notaréis diferencias. Pero probad a ejecutar fib_recur(35). ¿Por qué tarda tanto mientras que fib_iter(35), por el contrario, parece instantáneo? Pues la diferencia es que el código iterativo recorrió el bucle 34 veces mientras que el código recursivo llamó a la función en 14930352 ocasiones. ¿A qué se debe esta ineficiencia? A que estamos calculando una y otra vez valores de la sucesión de Fibonacci que ya habíamos calculado previamente. En el siguiente diagrama marco en rojo los valores que estamos volviendo a calcular para el sencillo caso en el que n vale 5.

Diagrama algoritmo recursivo Fibonacci

Como podéis ver, para computar fib_recur(5) necesitamos fib_recur(4) y fib_recur(3). A su vez, para fib_recur(3) necesitamos fib_recur(2) y fib_recur(1). Etcétera, etcétera. Una vez conocemos fib_recur(4), no necesitaríamos nada más para obtener fib_recur(3) porque ya lo hemos calculado en pasos anteriores. Sin embargo, debido al modo en que hemos escrito la función, se volverán a calcular todos los elementos de la sucesión. En general, esto se soluciona implementado algún tipo de “memoria” a la función de forma que pueda recuperar resultados previos ya computados. En Python podemos hacer uso de los diccionarios. La función recursiva, ahora mucho más eficiente haciendo uso de un diccionario para recuperar cálculos previos, quedaría así:

def fib_recur(n, memoria={1:1, 2:1}): try: return memoria[n] except KeyError: memoria[n] = fib_recur(n-1) + fib_recur(n-2) return memoria[n]

Los casos base ahora están guardados en el diccionario en la variable memoria. Cuando se llama a la función, lo primero que intenta hacer es devolver el valor alojado en el diccionario. Si este elemento de la sucesión no ha sido calculado, la pareja clave:valor no existirá y entonces se ejecutará el código encerrado dentro del except. Aquí recuperamos el código anterior, salvo que ahora, en vez de devolverlo directamente, primero añadimos una pareja nueva al diccionario memoria. Con este algoritmo estamos evitando todas las casillas rojas del diagrama ineficiente anterior.

inception

¿Aún con dudas? ¿Te sientes igual de confuso que Robert Fischer en Inception? Tranquilo, como en todo, hay que acostumbrarse a esta nueva forma de pensar. Puedes leer más sobre programación recursiva en Python, con muchos más ejemplos y ejercicios planteados en uno de los capítulos del libro Python Practice Book de Anand Chitipothu. También es muy interesante el capítulo dedicado a ello en el libro How to Think Like a Computer Scientist, donde se pone especial énfasis en la generación de fractales utilizando técnicas de programación recursiva.

Por cierto, la imagen al principio de la entrada la generé utilizando uno de los curiosos “poemas” sobre recursión desarrollado por Greg Tatum y liberado bajo la licencia GPL v3. Podéis ver el código y probarlo en su página de github.

Soy lo que digo o soy lo que hago

Jose Salgado - Lun, 10/03/2016 - 23:28

Dicen que las palabras se las lleva el viento y que no hay nada más ilustrativo que una acción en vez de cientos de mensajes. Es algo que todos hemos oido, por sus actos los conoceréis o el más maquiavélico, haz lo que digo no lo que hago.

Comunidad: RRHH

Tags: Especialista, Generalista, Eslogan

Esta entrada ha aparecido en Exelisis, haz click para leer Soy lo que digo o soy lo que hago

2^31 y si hay suerte, prórroga

Jose Salgado - Dom, 10/02/2016 - 23:16

Quería hablar del tiempo y me ha tomado un buen tiempo encontrar el título, al final ha ganado la parte racional sobre la creatividad y he optado por expresar el total de segundos que disponemos en nuestra vida.

Comunidad: RRHH

Tags:

Esta entrada ha aparecido en Exelisis, haz click para leer 2^31 y si hay suerte, prórroga

Nuevo récord de dígitos para una pareja de primos gemelos (Septiembre de 2016)

Gaussianos - Dom, 10/02/2016 - 05:20

El pasado 14 de septiembre, el proyecto colaborativo de búsqueda de primos PrimeGrid encontró la pareja de primos gemelos más grande conocida hasta la fecha.

Dicha pareja de números primos gemelos es la siguiente:

2996863034895 \cdot 2^{1290000} \pm 1

Estos dos números primos tienen la friolera de 388342 cifras, y casi han doblado en cifras a la mayor pareja que se conocía anteriormente, 3756801695685 \cdot 2^{666669} \pm 1, que tienen 200700 cifras. Aquí teneís el anuncio oficial del descubrimiento.

Recordemos que los primos gemelos son números primos que distan dos unidades, como las parejas (3,5), (5,7) o (17,19). Y también es interesante recordar que todavía no se sabe si existen infinitas parejas de primos gemelos.

El grupo PrimeGrid es un projecto colaborativo de búsqueda de primos. Ofrecen un software, que cualquiera puede descargar, mediante el cual podemos ayudar a la búsqueda de distintos tipos de números primos cediendo parte de los recursos de nuestro ordenador. Sobre todo en los últimos tiempos, PrimeGrid ha encontrado bastantes números primos de distintos tipos, algunos de ellos muy grandes, como el número primo 447 \cdot 2^{3533656}+1, que tiene 1063740 cifras.

Este grupo tiene un funcionamiento similar al del grupo GIMPS, cuya búsqueda se centra en los primos de Mersenne (que son números primos de la forma 2^n-1) y que, actualmente, tienen el récord de número primo más grande, el número 49 de este tipo de primos, con el número primo 2^{74207281}-1, que tiene nada más y nada menos que 22338618 cifras (sí, más de 22 millones). En este último enlace que os he dejado tenéis más información sobre estos primos de Mersenne y sobre otros primos de Mersenne encontrados por GIMPS.

Esta entrada participa en la Edición 7.6 del Carnaval de Matemáticas, de la cual soy el anfitrión.

La imagen de los gemelos la he tomado de aquí.

¿Cuántas veces esperarás a que pase el tren?

Jose Salgado - Jue, 09/29/2016 - 23:43

La tecnología no está aquí ahora, lleva mucho tiempo con nosotros y se ha incorporado a nuestras vidas de forma sutil y sin que seamos conscientes que cada vez dependemos más de ella. Hace ya mucho tiempo usábamos cintas para guardar información y ahora apostamos por sistemas en la nube. El concepto de trabajar en red era privativo de grandes instituciones y hoy en día todos tenemos una conexión permanente a internet, y no solo en nuestros ordenadores, sino también con el móvil.

Comunidad: Colaboraciones

Tags: Tecnología, Formación, Cursos, Oportunidad, PYME

Esta entrada ha aparecido en Exelisis, haz click para leer ¿Cuántas veces esperarás a que pase el tren?

“En busca de la caja perfecta”, nuevo artículo en “El Aleph”

Gaussianos - Jue, 09/29/2016 - 13:32

Ayer miércoles, 28 de septiembre, publiqué un nuevo artículo en El Aleph, mi blog de matemáticas en El País. En esta ocasión trato el tema de la búsqueda de la caja perfecta.

En busca de la caja perfecta

Habitualmente, los problemas interesantes a los que se enfrentan los matemáticos profesionales actualmente suelen ser cuestiones complicadas, tanto en su planteamiento como en su solución. Pero hay muchos problemas que, a pesar de su sencillo planteamiento, han suscitado un gran interés entre muchos miembros de la comunidad matemática a lo largo de la historia. El que nos ocupa hoy es uno de ellos.

Espero que os guste.

Os dejo también el enlace a la página de Gaussianos en la que voy recopilando todos los artículos que he publicado en El Aleph, por si os habéis perdido alguno y queréis leerlo. Y os informo de que, a partir de ahora, los artículos seguirán saliendo los miércoles (en vez de los viernes, como anteriormente).

Esta entrada participa en la Edición 7.6 del Carnaval de Matemáticas, de la cual soy el anfitrión.

Activando Electrolysis en Firefox 49

El blog de Iyan - Jue, 09/29/2016 - 05:00

En lo que queda de año y a lo largo del 2017, Firefox va a obligar a su competencia, una vez más, a ponerse las pilas en el ya exigente y competitivo mundo de los navegadores web. La culpa de ello la tiene Electrolysis, el nombre del proyecto con el que Mozilla pretende dividir su producto estrella en múltiples procesos para mejor la respuesta, estabilidad y seguridad del navegador.

La electrólisis es un proceso en el que, mediante corriente continua, se rompen moléculas o compuestos estables para obtener sus constituyentes. El proceso más conocido es el de la separación del agua en oxígeno e hidrógeno, aunque hay muchos más ejemplos, como la descomposición del cloruro de sodio (sal común) en sodio y cloro. Parece obvia, entonces, la elección del nombre para el proyecto de Mozilla. Electrolysis dividirá Firefox, la “molécula” original, en múltiples procesos.

Firefox Electrolysis Phase 1

La primera fase de Electrolysis o e10s, como se suele abreviar en la documentación de Mozilla, consistió en dividir Firefox en dos procesos: uno encargado de la interfaz de usuario (casi siempre abreviado como UI del inglés User Interface) y otro dedicado al propio contenido. Esto se llevó a cabo en Firefox 48, aunque solamente se activó a unos pocos usuarios. ¿Y cuál es la ventaja de esta separación? Pues que, ya en esta fase inicial, si una web se bloquea o consume gran parte de nuestro procesador, los botones, pestañas, menús y demás elementos de la interfaz de usuario del navegador seguirán funcionando.

Con Firefox 49, liberado el pasado 20 de septiembre, se ha ampliado el número de usuarios al que se ha activado la arquitectura multiproceso del navegador. Se ha habilitado a usuarios con pocas extensiones o add-ons instaladas y además compatibles con e10s. Con Firefox 50 y versiones posteriores se irá activando a cada vez más y más usuarios. Llegado el momento, las extensiones que no hayan sido actualizadas para ser compatibles con esta nueva arquitectura de Firefox simplemente dejarán de funcionar y no se podrán utilizar. Mozilla ya hecho sus deberes actualizando su Web Extensions add-on API, diseñada para ser compatible con e10s, así que ahora solo falta que los desarrolladores de extensiones actualicen sus proyectos.

La siguiente gran actualización está programada para Firefox 51, donde está previsto activar e10s a los usuarios de pantallas táctiles, con opciones de accesibilidad o con el modo de escritura de derecha a izquierda. En este momento se dará por concluida la primera fase del proyecto Electrolysis.

Múltiples procesos de contenido. Programado para la primera mitad del 2017.

Con la fase inicial finalizada aún quedará mucho trabajo por hacer. La segunda fase se centrará en dividir el proceso de contenido en múltiples procesos. Si con la primera separación se lograba independizar la respuesta del navegador frente a las webs pesadas, con esta división se pretende que una web pesada no pueda afectar al rendimiento y respuesta del resto de webs en otras pestañas.

Firefox Electrolysis Fase 2

Pero como dije al inicio de la entrada, la seguridad también era un tema importante que se quería mejorar con esta división de procesos. En esta fase también se trabajará en desarrollar un sandbox más seguro que contenga todos los procesos de contenido de forma que se pueda restringir el acceso que el contenido tiene al navegador o al propio sistema operativo. Esto ayudará a prevenir multitud de posibles ataques o exploits en el acceso al ordenador de la víctima se realiza a través del navegador. Aunque un atacante logre el acceso a un proceso de contenido, si la capa de aislamiento de Firefox funciona correctamente, no podrá acceder al propio navegador o al SO de la víctima.

Firefox Electrolysis Fase 2 Extensiones

El proyecto concluirá con el aislamiento de las extensiones con procesos adicionales. De igual forma que ya expliqué cómo aislar las webs en sus propios procesos ayuda a mejorar la respuesta y seguridad del navegador, aislar las extensiones asegurará que estas no puedan afectar al rendimiento de Firefox ni tampoco comprometer su seguridad a través de fallos de seguridad o exploits específicos de estas donde los desarrolladores de Firefox poco pueden hacer.

Comprueba si tus extensiones son compatibles con e10s y actívalo.

Si estás utilizando Firefox 48 o versiones más recientes puede que ya tengas e10s activado. Para comprobarlo, abre una pestaña y escribe about:support. Busca la línea que dice “Ventanas multiproceso” (Multiprocess Windows si tienes el navegador en inglés). Si te aparece un número mayor que 0, ¡enhorabuena, ya estás utilizando e10s!

Si no lo tienes activado, tranquilo, siempre puedes apuntarte a la selección de usuarios que está probando esta nueva arquitectura de Firefox. Abre otra pestaña y escribe about:config. Se nos advertirá del riesgo de modificar cosas aquí antes de continuar (Ojo con lo que tocamos y cambiamos aquí). Busca el booleano “browser.tabs.remote.autostart” y cambia su valor a true. Reinicia el navegador y vuelve a comprobar el estado de e10s como expliqué antes.

Extensión Add-on Compatibility Reporter

Si no usas extensiones ya deberías tener e10s activado llegados a este punto. Si eres de esos usuarios que tiene multitud de extensiones, seguramente te encuentres con la frase 0/1 (Deshabilitado por los complementos) en la línea de “Ventanas multiproceso”. Gran parte de las extensiones más usadas ya son compatibles. Por ejemplo, uBlock Origin, de la que os hablaba hace unos días ya es compatible. Sin embargo, todavía hay algunas que o bien son totalmente incompatibles o dan algunos problemas. Podéis mirad el estado de vuestras extensiones aquí o, más fácil aún, usar la extensión Add-on Compatibility Reporter. Si todas vuestras extensiones tienen el visto bueno y aún así no se os activó el e10s, podéis forzar (ahora de verdad) su activación creando un nuevo booleano (sí/no se llama en Firefox) en about:config con el nombre “browser.tabs.remote.force-enable” (sin las comillas) y valor true. Si alguna de las extensiones es conocida por dar problemas también podéis optar por activar e10s y reportar los fallos que tengáis para ayudar tanto al equipo de Firefox como al propio equipo de la extensión.

Firefox quiere volver a ser el rey

Hace tiempo que dejé de usar Chromium y volví a Firefox. No recuerdo exactamente en qué versión volví pero sí el motivo. Chromium dejo de ser superior en temas de velocidad, respuesta y uso de memoria, aspectos donde destacó inicialmente, y Firefox volvía a ser más rápido. A lo anterior hay que añadir otra factor que decantó la balanza hacia Firefox: la integración con el entorno de escritorio Plasma.

Con este nuevo proyecto, Mozilla quiere volver a poner a Firefox en lo más alto y recuperar gran parte de los usuarios que se cambiaron a Chromium o Google Chrome, el actual rey indiscutible con más del 50% de la cuota total de uso.

Quién va primero

Jose Salgado - Mié, 09/28/2016 - 22:35

Cuando curse un MBA[1] una de las preguntas más complicadas de definir no era tanto quiénes eran los stakeholders[2], sino cual era su orden de prioridad.

Comunidad: Management

Tags: Stakeholders, Primero, Empresa

Esta entrada ha aparecido en Exelisis, haz click para leer Quién va primero

Hay que ser muy listo para parecer tonto

Jose Salgado - Mar, 09/27/2016 - 23:27

Está siendo un inicio de semana especialmente denso, demasiadas temas y todas de golpe. Desde el trabajo hasta mi vida privada está siendo invadida de pequeños problemas e inconvenientes que toca solventar, y por mucho que me ponga calzoncillos rojos, no dejo de ser una persona como todos vosotros, normal y corriente

Comunidad: Tecnología

Tags: Nivel, Jerga, básico

Esta entrada ha aparecido en Exelisis, haz click para leer Hay que ser muy listo para parecer tonto

«Airscape: The Fall of Gravity», nativo para GNU/Linux y esta semana por 19 céntimos

El blog de Iyan - Mar, 09/27/2016 - 03:00

Posiblemente nunca hayas oído hablar de este juego. Está claro que comercialmente fue un fracaso. Airscape: The Fall of Gravity salió a la venta hace más de un año, el 11 de agosto de 2015, y un mes después de su lanzamiento apenas alcanzaba las 150 copias vendidas. En palabras de Daniel West, uno de sus desarrolladores, ni siquiera obtuvieron el dinero para recuperar lo que costó la campaña publicitaria con las ventas iniciales. Pero este fracaso en ventas nada tiene que ver con la calidad del juego, la recepción por parte de (los pocos) compradores y de los medios especializados, la dificultad o la jugabilidad. Creo que ni ellos saben qué fue lo que se hizo mal. De hecho, a la única conclusión que llegaron en el equipo de desarrollo se resume en esta otra declaración de West.

“Hemos creado un juego que nadie quiere comprar.”

El objetivo de este post es dar a conocer uno de los juegos con versión nativa para GNU/Linux más entretenidos que he probado últimamente y, sin duda, uno de los más baratos que he comprado. Esta semana, del 26 de septiembre al 2 de octubre, está disponible en la tienda de Steam, ¡por tan solo 0.19€!

La historia es muy simple: somos un pequeño pulpo luchando por sobrevivir en un mundo extraño y peligroso, después de que una especie de raza alienígena mecanizada nos secuestrara y apartara de nuestro hogar. Para lograrlo tendremos que esquivar multitud de obstáculos y enemigos jugando con la curiosa y ficticia gravedad implementada en el juego. Básicamente, nos limitaremos a movernos derecha e izquierda, arriba o abajo, a saltar y nadar; pero tendremos que hacerlo en el momento justo. No os dejéis engañar, salvo los niveles iniciales, es un juego bastante difícil. En definitiva, un juego de acción sin ningún tipo de combate, rápido y con más de 60 niveles divididos en 18 enrevesadas zonas.

El juego ha sido desarrollado utilizando Construct 2 y tiene versiones nativas para Windows, OS X y GNU/Linux, ha ganado unos cuantos premios, quizás el más destacado el Level Up Game Developer Contest 2014 de Intel en la categoría Best Use of Game Physics; y lo más importante, tiene una puntuación muy buena por parte de la crítica y una recepción en Steam con más del 80% de los votos favorables. Si costaste 20€, o incluso 10€, entendería que tuvieseis la duda de si comprarlo o no, pero por los míseros 0.19€ que cuesta y encima nativo para GNU/Linux es un juego que no se puede dejar escapar.

Páginas

Suscribirse a Fedora-es sindicador