Jugar a Magic: The Gathering libre en GNU/Linux

Bueno si has llegado aquí, como yo, te salvaste de drogarte en tu adolescencia…salvo que fueras un niños de papa y te sobrará el dinero para pagarte estos cartoncitos y la droja….y puede que te salvará de enfermedades venéreas.

Así que sabes que es el famoso jueguecito este de las cartas de magic, si no el consecuente link de la wikipedia: Magic: el encuentro .

Y para el que no tenga ganas de entrar a leer el articulo, lo explicamos rápido y sencillo, es un juego de cartas coleccionables, donde cada jugador lleva de su casa una baraja de cartas con hechizos, bichos y otras cosas, y su objetivo es matar al otro jugador atacándolo con las cartas que tienen un precio (en el juego, en la realidad es otra historia) para jugarlas y se pagan con otras cartas en juego.

El juego en si es muy chulo y divertido, y creo que marco época como la aparición de la radio o televisión, pero el problema es pese al matemático que lo invento hizo un juego matemáticamente perfecto, es decir era no coleccionable solo iba a haber un pack de cartas y ya esta, porque era un piedra, papel, tijera, no había ninguna carta bestia que jodiera al resto de cartas y jugadores….pero hete aquí que en la imprenta esa americana le sobró una imagen y pensaron «¿Qué hacemos con esta imagen de pajaritos…la tiramos a la papelera?»…y en vez de darle un telefonazo al matemático y decirle «ehh chacho, ehh garfiel que tenemos unos pájaros que nos sobran…» pues en vez de eso se inventaron una carta llama Aves del Paraíso y ahí se jodió el juego antes de salir a la calle, el feto se deformo antes de parirlo, porque entonces paso de ser un juego matemáticamente perfecto a tener una carta muy fuerte que hizo que la juguetera sacara cada medio año o así una nueva expansión «intentando arreglarlo», paso a ser un juego pay to win vamos dejaté las perras en cada pack de cartas nuevo que sale en la tienda de comics de tu barrio, porque el friki baboso con el que juegas y desconoces tu nombre alguna vez te jode la vida porque sus padres tienen buen poder adquisitivo. Yo pique, yo me metí en esta droga, realmente te sientes como los yonkis estos que se apiñan en la esquina de tu ciudad esperando para ir a por droga, porque ibas a campeonatos de esos de fines de semana y salias asqueado y diciendo para que he venido aquí, o ibas a tiendas de comics a jugar….a sufrir por las tarde y es que eras tonto y seguías con esta mierda que te hacia daño, al bolsillo y a tus ánimos de la vida.

Y no he hablado de la especulación en la reventa de cartas, magic es el ejemplo claro de que el capitalismo es una mierda, ahora nos quejamos del precio de las casas…pero en estos cartoncitos infantiles se ve el germen de la maldad humana, y ahora no sorprende que se especule con bienes de primera necesidad.

Pero tranquilos, se sale, después de haberle pagado un par de ferraris a los tenderos de comics, pero se sale. Os doy unos consejos a los que estéis metido en esta mierda de los cartoncitos:

  • Date cuenta de el saca cuartos que es esta mierda.
  • Rompe con el entorno ya, pero ya, no compres revistas (en estos tiempos no visites páginas webs), no vayas a las tiendas de comics, y si vas no mires las estanterías de las magics, y rompe con esos desconocidos que no son tus amigos que solo esperan que vayas cual tierno cordero cada semana a que te masacren y te destrocen. E igual con los campeonatos.
  • Pasado un tiempo prudencial, meses u años, vuelve a jugar, pero con gente normal, QUE JUEGA PARA DIVERTIRSE. En mi caso fue unos primos de mi edad mas o menos que no tenían nada de friki, y que jugábamos esas noches en su casa con sus colegas albañiles, con cervezas y tal, y lo que mas buen rollo había era que aunque lleváramos un «mazo campeón» al terminar cada partida, nos intercambiábamos los mazos ¡¡sacrilegio son tus impolutas e intocables cartas!! (ains estarás pensando eso tontorrón) y jugabamos con otros mazos, y ya esta disfrutábamos, unas noches ganábamos otras veces perdiamos pero bien.

Hace años que no juego físicamente, desde que deje mi ciudad natal, hace años que no gasto un céntimo en las cartitas magic (mucho he gastado) y hace todavía mas años que no sufro jugando, aunque suene un poco bruto es como una liberación y sentirte bien contigo mismo como cuando algunas mujeres descubren el sexo con su primer novio y es un violador en potencia y un desgraciado y creen que es pura mierda el sexo, pasan de volver a la cama con nadie, y pasado los años y cicatrizadas las heridas vuelven a probar de otra manera y piensan que coño, esto mola…pero el problema es que ahí afuera en ese mundo hay mucho desgraciado sin autoestima que su única forma de sentirse importante es jodiendo a los demás.

Pues vamos a por la parte digital, como perro viejo os voy a contar batallitas. Corrían los principios del dosmiles, empezaba internet para todos y todas en españa (no como antes que solo los pijos frikis tenían BBS y tal y el resto apenas teníamos un Spectrum), eran tiempos antes incluso del mesenger de micro$oft (nunca lo toque directamente, gracias al viejo Gaim (renacido como Pidgin)), si no que la gente chateaba con IRC, salió un programa para micro$oft windows98, el Aprendice, era feo como el solo, las cartas en vez de ser rectangulares, eran cuadritos, y tenía un handicap muy importante, bueno dos, uno que no tenía una IA mas o menos lista para jugar solo en casa y no solo para jugar en internet (porque internet estaba viniendo pero despacio), y la otra, es que era una «mesa de juego virtual», que viene a decir que podías hacer lo que querías en el programa, atacar con una tierra y quitarle 666 de vida al jugador, sacar todas las cartas en cualquier momento, campo abonado para tramposos y para descuidados.

También salió en software privativo, un videojuego creado por la genial empresa Microprose, Magic: The Gathering (1997 video game), que contar de este juego, pues que también era muy muy feucho, pero este si calmaba las ansias de jugar a magic en tu casa sin aguantar a frikis babosos, ya casi no me acuerdo de el, pero le tuve mucho cariño, me vino en un CD-Mix (historias de abuelete) que era una recopilación de juegos piratas que se pasaba de mano en mano, el juego te ponía en la piel de un mago que tenia que matar a 5 magos (los 5 colores de magic) que cada uno estaba en su castillo, había en el mapa pueblos y otros puntos donde entrar y comerciar con cartas y un pequeño inventario (una comida que se gastaba en cada paso que dabas al estilo de los roguelikes), y por supuesto las peleas con todo bicho viviente era una partida a magic. Visualmente todo eso era feucho feucho, pero cuando pasabas a jugar la partida, ahí si que tenia todo la fuerza y encanto el juego, porque a parte de al contrario de Aprendice este si tenia programadas las reglas de juego, visualmente era espectacular con un menú a la derecha muy útil y que veía la carta que tuvieras el ratón encima, dice la leyenda en aquél tiempo que había gente muy lista que capturaba la pantalla e imprimía las cartas que salían ahí en grande para timar a algún pobre incauto. En global el juego era divertido con el modo historia, las veces que lo rejugué nunca me dio por hacer el pokemon de conseguir todas las cartas iba a por cartas que me gustaban como el mítico Tornillo Siniestro (lo que me hizo disfrutar esa carta en este videojuego).

 

Y a partir de aquí en mi historia abandona el software privativo, y pasamos al software libre, recuerdo aun de haber pisado alguna tienda de comics y la gente hablar del juego de magic de la 1º Xbox que decían que era espectacular visualmente pero no tenia la esencia del juego y parecía una partida de voleibol, y recuerdo que empezó el Magic Online pero que a mi ni fu, ni fa, ya estaba fuera de ese mundo yonki y lo mas cercano adelantandos del pasado al presente que probé hace un año o así fue la «app oficial de magic para tablet» y vi que era otro sacacuartos mas y encima que era un comebaterias con tanta tontería de animación en 3D quemaCPU.

Volviendo al pasado, otra vez, haya por el 2011 o así un amigo, Oscar el hombre me recomendó probar en la PSP, un juego homebrew llamado Wagic, tenía la PSP recién comprada para jugar en los largos caminos al trabajo en cercanías (momento de mi vida que mas libros he leído y videojuegos en portátil he jugado), a penas tenia juegos y casi todos de 2º mano y nada de pirateo, pues le hice caso, rootearla (puto asco de palabra, que maldición, ahora hasta las lavadoras nos las dan capadas). Y chico, junto con el Disgaea, Wagic ha sido el software mas tiempo y mucho con diferencia ejecutado mi PSP, una videoconsola, estas palabras deberían llegar a todos los emails de las empresas de videoconsolas, que el mejor juego que tenga una consola no venga de una empresa comercial y sea una obra de la comunidad y que es software libre.

Bueno volvamos a Wagic, creo que nació en la PSP (comentaristas a mi), es bastante sencilla y sin rayadas esta implementación de este juego de cartas, una parte para gestionar la colección de cartas, una parte para elegir las IAs contra las que jugar, una tienda donde comprar cartas nuevas y un modo historia basado en misiones que te va mandando el tendero.

Para los que solo podáis jugar en el WC, recomendaros que tienen versión para android.

En serio es un juego con unos gráficos preciosos que no hace falta bajarse un pack de cartas escaneadas originales, el menú de la izquierda en plan rueda es super útil y los menús que te ayudan de vez en cuando con las opciones si – no – no a todo. Por supuesto no os he dicho que están implementadas las reglas de juego, no es una mesa de juego virtual. Y por supuesto es jugable con teclado, pantalla táctil, ratón y gamepad.

A partir de aquí os puedo contar que los siguientes proyectos libres para mi personalmente no tienen el nivel de Wagic aunque aportan otras cosas.

  • Magic-Project: este lo conocí de rebote hace años y es muy javero y de aspecto de escritorio. Creo que el proyecto murió. En su momento me pareció un proyecto imposible, el de meter las reglas de miles de reglas de las miles de cartas…pero wagic lo consiguió.
  • Cockatrice: es un clon libre del apprendice, ni mas ni menos, una mesa virtual que no te da nada mas.
  • Xmage: ni lo he probado, lo siento…si alguno quiere comentar en los comentarios…
  • Maganera: este proyecto es el que me ha hecho empezar a escribir este articulo, cierto es que es java…pero bueno…tiene bonitas animaciones, esta implementanda las reglas y desde el propio programa descarga los escaneos de las cartas originales. Recomendable, aunque el rollito de comprar cartas que tiene wagic mola mucho.

Y fuera del silicio y los electrones, tenemos otras alternativas de juegos de mesa print and play:

  • Dvorak: un juego de cartas que es como la versión 2.0 al famoso (en los círculos satánicos) 1000 en blanco.
  • 1000 cartas en blanco: yo lo meto en que se parece a las magic…no se tu…es muy divertido.

Cosas que odio de los lenguajes de programación

Nota: Llevo casi un año escribiendo de a poquito el articulo por el móvil y tal. Le he metido un empujón para que salga antes de terminar el año.

Ya son muchos años, soy un perro viejo en esto de picar código, posiblemente…tu lector puede que seas un tierno cachorrito lleno de ilusión…pero bueno ya te irás siendo un perro apaleado.

Dicen que «no hay bala de plata» a la hora de resolver un problema de programación, que cada lenguaje es bueno para una cosa, y creo que desde mis años perrunos opino que es cierto.

También dicen «cuando tienes un martillo entre manos, todo son clavos», y eso veo que le pasa a los cachorritos, por ejemplo ahora (cuando estoy escribiendo estas líneas) esta de moda el rollo de node Js y javascript, y los cachorritos lo quieren usar para todo.

Pero bueno viendo algunos lenguajes, os voy a relatar mis odios mas ocultos…o no tan ocultos:

  • Perl: lo odio casi completamente, aunque si tuviera que odiar algo particularmente, es los sigils, que son esos pequeños simbolitos que acompañan a las variables para diferenciarlas de palabras reservadas y tal, que en lenguajes como PHP son muy útiles, básicamente porque solo hay el $ y resalta visualmente donde están las variables y te la libertad de usar $return sin problemas por ejemplo. Pero Perl es un infierno de simbolitos, que unos hacen que la variable sea un puntero o un array o un hash. ¿Alguien tiene una chuleta o cheatsheet con lo que hace cada uno y como se puede volver atrás….porque pasa como con los punteros en C que se te pierde la variable…pero mas raro?
  • Javascript: todo lo he escrito en el futuro pasado en Sigo pensando que javascript apesta, resumen no hay sleep, y es multihilo pero no te deja manejarlos. Añado que se esta llenando de capas y capas de abstracción en plan como java.
  • PHP: lo quiero es un fiel compañero que me ha dado de comer muchos años, pero como buen amigo tiene sus pequeñas manías que le respetas pero están ahí. A ver no nos llevemos las manos a la cabeza, pero PHP fue un lenguaje de programación inventado a caballo que refleja un poco los problemas del caos ordenado de la gestión de proyectos de software libre, y no es un lenguaje muy estandarizado su idioma, como el español con los verbos irregulares que sabiamente los niños regularizan pero los castran para que siga siendo así el español. Hay un documento o paper (como dicen los modernitos) muy famoso sobre el caos ordenado que es,  PHP: a fractal of bad design. Quizá lo que a mi me molesta es que no tenga hilos (pero por lo menos no los tiene de verdad, no como javascript que te los niega),  que sea de tipado dinámico las variables que te da problemillas (que han resuelto en el 7 pero que lo están volviendo un poco C). Bueno si hay una cosa si que odio es la lista de parámetros por defecto en las funciones te vuelve loco cuando solo tienes que meter el último y tienes que mirar el código fuente la función para poner a mano los anteriores, python lo arreglo esto bastante bien.
  • Java: la eterna promesa, es como medio novia que te traiciona una y otra vez pero vuelves a sus brazos, mi ultima vez fue cuando comenzó Android, creía que esta vez si…pero no otra vez la traición…sigue siendo un lenguaje que primero tienen sobrecargado el operador + para strings pero tu no puedes, con capas de capas de abstracción para causar erecciones poderosas en teóricos de la programación pero que no se manchan las manos a diario. Es un cristo programar en Android y encima parece que programas como el viejo asqueroso m$-visual basic te salen la aplicación visualmente fea y cuadriculada con miles de lineas y cosas complejas como que no puedes acceder al valor seleccionado de una lista o combobox sino que necesitas otro objeto iterador. He visto lineas de 300 y pico caracteres para abrir una base de datos y no se perderán como lagrimas en la lluvia porque las cárnicas (consultoras) que venden carne de informático al peso siguen con proyectos de mierda en java con miles de capas.
  • Python: que no tenga un switch (perl tampoco lo tiene) y te hace llenar el código lineas y lineas de if – else – elif …hay gente lo pregunta en stackoverflow Replacements for switch statement in Python?, por lo demás mas o menos no tiene mucho problemas, salvo el tema de los tipos mutables y no mutables que es un poco lio pero no mucho. Y bueno que tampoco hay manera de definir variables estáticas dentro de una función…que también lo comentan por stackoverflow What is the Python equivalent of static variables inside a function? . Parece que este lenguaje de programación ha sido tocado por el dedo de dios, me tengo que poner seriamente con django porque puede ser una alternativa a mi querido PHP.
  • C#: otro que odio del todo porque es un producto comercial de micro$oft que lo venden como un lenguaje de programación y es un feto mal parido hijo de m$ visual basic (si lo has sufrido veras que tiene mucha mierda parecida). Pero por desgracia se esta poniendo de moda gracias a Unity3D y parece que la siguiente versión de Godot va a incluirlo en su hermano gemelo libre Mono así que habrá que empezar a aceptarlo.
  • Resto: o ya no se usan o son tan producto comerciales que no merece gastar caracteres en este texto. Y C, ASM es como las matemáticas hay que aprenderlo y respetarlo por ser old school…C++ pues tampoco me pegado mucho para odiarlo.

Hay un wiki que también trata nuestros odios en los lenguajes de programación: YourLanguageSucks

Y vuestros odios sobre lenguajes de programación cuales son…comentad…confesar…calmad vuestra alma.

2 issues que he abierto en github y me siento orgulloso

Bueno esto es un blog ¿no? Pues voy a hablar de mi, ale un poco de egocentrismo digno de esos tiempos blogueriles del pasado…ahora la gente egocéntrica esta en redes sociales…mas fácil y un goce mas instantáneo…

Los issues o bugs que registramos en por ejemplo en los proyectos de software libre dentro github, es una forma de ayudar a los proyectos, el software libre en lo una de las muchas cosas que destaca es en solido como una roca, y es gracias a la gente que vamos diciendo oye que he encontrado un «problemilla» o «problemón», y todo eso se apuntan en páginas llamadas bugtrackers (seguidores de bug).

Y en otra cosa que destaca el software libre es en la cercanía a las necesidades de la gente, y eso es por medio de «wish» o deseo, que normalmente caen también en los bugtrackers, porque algunas veces los usuarios somos un poco caprichosos o tontos y pensamos que un deseo es un problema, pero tranquilos que normalmente se categorizan por alguien que revisa.

Pues aquí mi pequeña lista de bugs …o wish que he abierto en github que representan un tema interesante:

  • DoomRL (o ahora llamado D*mRL) se ha liberado hace apenas unas semanas, es un gran roguelike de estos para empezar con esta secta satanica de género.
    • How to make the GNU/Linux binary? : Pues este es el bug, pese a que si tenían versión para GNU/Linux, si coges el código fuente tal cual…¡¡no compila!! Lo bonito de este bug es que demuestra el musculo del software libre porque hay mucha gente echando una mano a ver si conseguimos el binario….puede que tu seas el caballero que saque la espada de la piedra.
  • OpenRCT2 es el engine libre para ese genial juego de estrategia comercial el Roller Coaster Tycoon (el 2 que es un 1.5), ha sido espectacular ver este último año como empezaron con un código descompilado sucio lo están convirtiendo en algo legible y reparando y mejorando, siguen una estela de otro proyecto que trajo un gran juego a GNU/Linux del mismo desarrollador original del cerrado el juego estrategia comercial de transportes OpenTTD,
    •  is there a repository for Free Assets? : aunque esta cerrado y mas que un bug es un wish, es una cosa que había que decir en público y me oyó la gente. Y es que ya el código esta al 100% libre pero los ficheros datos del juego es necesario tirar de pirateo u original, y lo importante es que el juego pase a ser libre total como su hermano de los trenes.

Y bueno amigos y amigas, no tengáis vergüenza a decir vuestros problemas…en el software libre, ayudará a madurar mucho al proyecto.

Chuleta de tmux

Tmux es una excelente herramienta para trabajar cómodamente con la terminal en GNU/Linux, lo que hace es darte como darte en forma de terminal una especie de escritorio (como Mate, XFCE, LXDE…) pero en plan tiling o paneles en vez de ventanas (como el editor Atom, o el programa de 3D Blender, o el escritorios de paneles Awesome, i3), e incluso el tmux trae un sistema de escritorios virtuales cosa muy útil que me asombro cuando descubrí GNU/Linux hace años.

Y todo ello mouseless que esta tan de moda porque «aumenta la productividad».

También esto es una autochuleta porque nunca me acuerdo de todo los atajos de teclado de tmux, y no estan todos, si no los que mas útiles me parecen a mi.

Por cierto, el que me embarco a empezar a usar tmux, fue el tutorial de Santiago Romero sobre tmux y un ex-compañero de curro Ramón que lo usaba efusivamente.

Bueno vayamos con la chuleta:

  • Panel = «Ventana tmux»
  • Ventana = «escritorio tmux»
  • Solo hay un panel activo y tiene el  borde marcado a verde.
  • Solo hay una ventana activa y aparece marcada en «la barra de tareas» abajo con un * .
  • Paneles
    • ctrl + b: para empezar  a mandarle comandos al tmux, todas empiezan así y después es pulsar otra tecla o combinación.
    • esc: cancela el modo comando tmux por si te has liado y quieres volver a empezar.
    • ctrl + b ?: muestra un listado de los comandos.
    • ctrl + b %: divide el terminal actual en dos paneles en vertical, dejándote en el mismo path y todo, pero no lo que este en ejecución ni su salida.
    • ctrl + b «: divide el terminal actual en dos paneles en horizontal.
    • ctrl + b (cursores dirección): te cambia de panel activo, si pulsas izquierda al que esta a la izquierda y así con todas las direcciones, es rotativo si estas en la mas arriba empieza en la de abajo.
    • ctrl + b q: muestra unos números grandes que identifican a cada panel durante un segundo mas o menos, si pulsas el numero vas a ese panel (solo funciona con números del 0 al 9).
    • ctrl + b ctrl + (cursores dirección): estrecha o amplia el panel activo, es decir si pulsas hacia la izquierda y es el derecho lo agrandas estilo como las ventanas cuando tiras del borde con el ratón.
    • ctrl + b x: cierra el panel actual.
    • ctrl + b z: amplia el panel actual a toda la pantalla, volver a pulsar para volver a ver el mosaico de paneles.
    • ctrl + b [: entra en el «modo buffer» en el panel actual porque si no te has dado cuenta has perdido las barras de desplazamiento de tu ventana (del escritorio) del terminal, para salir pulsa q o esc.
  • Ventanas (estilo escritorios virtuales repito)
    • ctrl + b c: crea una nueva ventana, te pone como activa y veras abajo que la añade a la lista de ventanas.
    • ctrl + b <numero>: cambia a la ventana con ese número.
    • ctrl + b !: crea una ventana nueva del panel actual, ¡ojo! no hay vuelta atrás.
    • ctrl + b &: cierra la ventana actual con todos sus paneles, pregunta abajo en la barra de tareas.
  • Para trabajar en remoto con servidores
    • ctrl + b d: sirve para «desenganchar» el tmux actual, se queda en ejecución con todos sus paneles y ventanas.
    • ctrl + b s: lista todos los tmux que hay en ejecución para engancharte, ¡ojo! que al desengancharte del actual vacío para engancharte a otro te lo deja ahí y la lista cada vez se hace mas gorda.
    • tmux list-sessions: desde el terminal antes de ejecutar tmux, para listar los tmux abierto, mejor que el de ctrl + b s.
    • tmux attach -t <numero>: engancharte a un tmux vivo sin crear uno nuevo.
  • ctrl + b : :entra en modo estilo vi y puedes escribir por ejemplo kill-session para cerrar todo el tmux actual.

Mi siguiente paso es aprender a usar bien bien, el escritorio tileado/mosaico como I3 para buscar la máxima comodidad y quitar comerecursos.

Ikea jodete y tiembla porque llega los muebles libres

Ya hace dos años que hablamos en el blog de Nike jodete y tiembla porque llega la ropa libre, donde hablábamos sobre que gracias a las impresoras 3D (de las churreras de plástico) y nuevas fibras elásticas se pueden hacer unas zapatillas muy a lo Regreso al Futuro 2, cutres o no es el primer paso y además «los planos» para hacerlas son libres.

Pues gracias a la tecnologías libres a parte de impresoras puedes construir maquinarias parecidas pero en vez de «agregar» material, «eliminar» material. Que no es mas como que sierra o «dremers» que se van moviéndose siguiendo un patrón digitalizado y haciendo cortes según venga diseñado en el patrón digital.

Pues al igual que hay muchas mentes están intentando llevar la impresión 3D como un nuevo negocio de proximidad, porque hace unos años se decía «todas las casas tendrán una impresora 3D» y como se ha visto, sucede como las impresoras, en los 90 bien nos engañaron con las impresoras de tinta que valían un ojo de la cara esos botecitos de sangre de unicornio y al final hoy en día casi nadie tiene impresoras en casa (o como mucho una laser blanco y negro) y si tiene que imprimir algo serio va a una papelería/reprografia/tienda de fotocopias. Mi apuesta y mi ilusión es que ese negocio de proximidad sean mis queridas ferreterías.

Pues volviendo de las ramas, las CNC (se que tiene otro nombre y que eso es el génerico) valen para cortar madera muy bien y a la gente de Opendesk se les ha ocurrido el de «¿Por qué no llevar el modelo P2P, economía colaborativa y de cultura libre al mundo de los muebles?».  Donde te puedes descargar los diseños de los muebles (lo que no se si son libres) o encargarlos en plan uber/blablacar por la web para que busque un carpintero (cybercarpintero porque tiene que tener una CNC) cercano te los fabrique.

 

Aunque tiene muchos peros, porque apesta pero apesta a startup chupiguai y mucho open, pero te pide registrarte para todo (incluso para descargar los patrones/diseños) y algo hipster se ve.

Pero es un comienzo para mandar a tomar por culo a Ikea, porque una mesa es una mesa.