Archivo de la etiqueta: software libre

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.

Cuarenta características de Python que quizás no conoces de Victor Terrón

He encontrado esta vieja conferencia de Victor Terrón…que aunque tiene 3 añitos, es simplemente espectacular. Si conoces un poquito de Python te va a ayudar a profundizar mas, si no…puede que te suene a chino o te quedes con la boca abierta de la potencia del lenguaje.

La hizo en el la PyCon Española del 2013.

Y la presentación la tienes en PDF en: http://2013.es.pycon.org/media/python-cuarenta.pdf

Siempre lo diré, Google tenia que haber metido Python en Android y no el asqueroso Java, es que encima tenia en nomina al creador del Python.

 

Otro puñado mas de artículos sobre autómatas celulares

Vía el decadente elefante naranja, en su cocina, he encontrado un meneo sobre autómatas celulares con los siguientes links:

Y el articulo previo que escribí por aquí fue: A vueltas con los autómatas celulares

Hay un comentario que me encanta en el elefante naranja en horas bajas, que lo copio por aquí:

Siempre utilizo este ejemplo como referencia mental de ‘complejidad emergente’. Como a partir de reglas muy simples aparece una complejidad que podemos observar en la naturaleza, y como buen ejemplo de la no-intencionalidad que dirige los procesos evolutivos ; patrones complejos que nos cuestan entender sus principios ‘sencillos’. Por: sangaroth

#Freebassel: Hoy hace un año de la siguiente noticia

Mi agenda me ha recordado que hay un desarrollador de software libre condenado a muerte en Siria, en concreto esta es la noticia de hace un año: Syria secretly sentenced free software developer Bassel Khartabil to death

Y el problema es que no ha mejorado, este hombre sigue encarcelado con la pena de muerte sobre su cabeza.

En el articulo de wikipedia tenéis mas información Bassel Khartabil.

Pero no se, poca esperanza tengo, porque el mundo va cuesta bajo de culo y sin frenos con toda la mierda de alrededor Trump en USA, Mariano en Españistan, Julian Assange encerrado en una embajada, Chelsea Manning encerrado también, Edward Snowden supongo que cagado de miedo porque el amigo de Putin ha ganado las elecciones en bastardos unidos …

Por favor, por lo menos no olvidemos.

Acabo de tener una relevación en plan Matrix sobre los tabuladores

Toda la vida he pensado que los tabuladores existen, que son reales que cuando  los veo en un editor de código ahí están dejando todo bien ordenadito y organizadito…muchos editores como Geany te avisa que son 4 espacios.

Pero ahora que en mis momentos de meditación en el trono de roca los dedico a la noble tarea de aprender ensamblador y código maquina del microprocesador que representa la década de los 80, nuestro querido Z80. Estoy re-empezando (en el pasado tuve un flush) o mas bien mas veo las letras verdes detrás de cada letra escrita o de cada pixel. Y cuando ponemos en plan bonito:

#include <stdio.h>

int main(int argc, char **argv)
{
	printf("HELLO FUCKING WORLD\n");
	
	return 0;
}

Eso no esta tan bonito en el fichero resultante, porque el tabulador es 1 carácter, lo que parece tan ordenado, sigue siendo feo debajo, sigue siendo como cuando destripas un animal y tiene los intestinos retorcidos en su barriga.

Quedaría nuestro código destripado como:

#include <stdio.h>

int main(int argc, char **argv)
{
 printf("HELLO FUCKING WORLD\n");
 
 return 0;
}

Y claro ahora que sabes la verdad, como el señor Neo…»¿Quieres, quiero seguir viviendo en Matrix?», levantándome cada día programando ordenadito y claro para saber que es una mentira que nos dan los editores de texto. Es que algunos editores hasta te los pone los tabuladores alineados al final de algo anterior de la linea para cuando tienes lineas como:

/****************************************
*					*
*	Mi función pitifloro,		*
*	que hace florecitas azules	*
*	Parámetros:			*
*		flor: tipo de planta que*
*			quieres		*
*			para tu jardín	*
*		tonalidad_azul: azul PP	*
*			o azul como el	*
*			gato.		*
*					*
*****************************************/

Y es que como Judas representado en Cifra que vendió a todos en la peli, tenemos el problema que la verdad es asquerosa porque:

  • ¿Ponemos 4 espacios por cada tabulador de mentira?
    • Pros
      • Es mas real, lo que vemos es lo que escribimos.
    • Contras
      • Pulsar 4 veces el espacio.
      • Que no se nos olvide cuando son mas vas veces (8, 12 o mas) y al final quede guarro el código.
      • Cuando quieres dejar alineadas las lineas a algo de la anterior, no es múltiplo de 4.
      • Ocupa 4 veces mas que un tabulador en el fichero.
  • ¿Ponemos 2 espacios por cada tabulador de mentira?
    • Pros
      • Es mas real, lo que vemos es lo que escribimos.
      • Es mas fácil de seguir la regla, dos pulsaciones «placa placa».
      • No se desmadra muchos un montón de lineas porque o es impar o par y es una dupla mas o menos.
    • Contras
      • No queda tan identadas las lineas para que sean vistas bien a primera vista los bloques de código.
      • Ocupa 2 veces mas que un tabulador en el fichero.
    • ¿Ponemos 1 espacio por cada tabulador de mentira?
      • Pros
        • Es extremadamente fácil seguirlo, una pulsación solo.
      • Contras
        • No se nada de ve bien los bloques de código.

Y ahora diréis…»¿Qué hacemos?»…pues no se ahí tenéis la información cada uno que escoja su camino…yo creo que seguiré en la Matrix de los tabuladores…no se..no se, amistades jóvenes de sangre nueva de estos de node.js y moderneces, usa 2 espacios, cuando me lo dijo me escocia y me salían granitos…pero empiezo a comprender su postura…

Drakon: Diagramas de flujo soviets, porque en rojo mola mas

Creo amable lector que sabes que vivimos en una mentira, cosas supuestas como que la «2º Guerra Mundial se gano por los americanos» gracias a su propaganda en cine cuando se sabe que fue el esfuerzo de la URSS, como que el «1º en llegar a la Luna fueron los americanos», cuando los soviéticos tenían ya allí un robot parecido a los que mandamos a Marte y no contamos que fueron los primeros en el satélites artificiales y seres vivos.

Pues todos conocemos los típicos gráficos de flujo que siempre hemos visto, y la gente ochentera hemos masticado para aprender a programar.

Pues del otro lado del telón de acero, los científicos e ingenieros también trabajaban, y crearon el o estandarizaron su propio diagrama de flujo llamado Drakon …joder encima con un nombre épico.

Que tiene como ventajas frente al americano/europeo:

  • Es mucho mas organizado.
  • Es mucho mas claro visualmente, es la máxima, intentar que se lea bien.
  • Tiene «implementado» programación métodos, funciones y programación en paralelo.
  • Sleeps, es que caguen hasta el diagrama de flujo lo tiene y Javascript no….me cago en mi pena negra.

Para conseguir que sea claro, la dirección de ejecución del programa es siempre hacia abajo y de izquierda a derecha, también indica que las distintas cajas y lineas sean siempre iguales en tamaño y distancia en todo el diagrama.

Y el resto de el estándar soviético de diagramas de flujo Drakon puedes aprenderlo en el siguiente vídeo.

Y por supuesto en el mundo del software libre como buenos perroflautas masones comunistas ateos que somos, tenemos software para hacer diagramas Drakones para conquistar el mundo.

  • DRAKON editor: es un editor muy usable que incluso exporta el diagrama a varios lenguajes de programación.
  • Lo raro es que Dia Diagram Editor, un viejo y buen programa de GNU/Linux no tenga un set de gráficos para Drakon.

Videoconsolas libres

Ayer hablábamos de videoconsolas virtuales y sus alternativas libres (en el articulo Pico-8 no es software libre, pero hay alternativas libres), hoy vamos a salir de esos emuladores de consolas de fantasía, para meternos en la fantasía del hardware libre.

Arduinocade

Basándose en un Arduino y tuneandolo un poco y fácilmente, poniendole un «nuevo reloj» para que corra casi a 30mhz y después sencilla circuitería para conectar gamepad puedes tener una consola de 8 bits muy impresionante, el proyecto salio por hackaday hace un año mas o menos en su articulo Retro Games on ArduinoCade Just Shouldn’t Be Possible. Y que podéis ver en el siguiente vídeo:

Uzebox

Otra consola libre, que lleva desde el 2007 dando guerra, bastante mas potente que la Arduinocade, tiene mas colores en pantalla con lo que le da una sensación de videoconsola mas cercana a la NES que  la Atari , pero mas difícil de montar aunque tenéis mucha información incluida la wikipedia hispana en https://es.wikipedia.org/wiki/Uzebox  . También se basa en un micro de atmel (están en todos los lados). Y podéis asombraros de la buena pinta que tiene en los siguientes vídeos.

Y finalmente tienes las FPGAs pero que son bastante caras y de momento solo hay ¿cores? para consolas clásicas como la master system, nintendo 8 bits, etc.

Ouya, GP32 (y hermanas mayores), las dejo fuera porque son consolas abiertas pero no hardware libre, si acaso en un paso mas intermedio esta la RaspBerry Pi donde si hay mucho software y videojuegos libres pero el hardware no es abierto.

 

 

Pico-8 no es software libre, pero hay alternativas libres

Parece que Pico-8 gracias a Pocket C.H.I.P. se ha puesto de moda, pero la gente anda un poco confundida y como no es plato de buen gusto el rollo «videojuego en Unity3D opensource» o como se decía antes «videojuego en Flash opensource».

Vamos a aclarar sin mucha lejía, primero como supongo que andas vaguete no habrás clickado en los links, Pocket C.H.I.P es una especie de videoconsola portátil / ordenador basado en ARM muy parecido a lo que hace años fue el Ben NanoNote pero con un rollito crowdfunding de ese de ahora y menos libre que el Ben (la CPU del Ben es Hardware libre), corre un GNU/Linux y trae entre otras cosas los binarios de Pico-8.

pico8-on-pocketchip-celeste-by-matt-thorson-noel-berry-credit-michael-bucuzzo

Y ahora te preguntaras que es el Pico-8, pues aunque parezca nombre la eneava parte de una peli de kinkis ochentera española, es «una videoconsola/microordenador virtual», a ver me explico, un buen día el respetable programador japones que invento el videojuego Voxatron pensó «porque no hago un emulador de una videoconsola de 8 bits muy kawai y pixeleda con colorines». En vez de basarse en una consola real, una gameboy o una megadrive o yo que se, pues el tío en un alarde de originalidad (que no hay tanta como leeréis mas adelante) se invento una consola de fantasía que no existe llamada Pico-8, una consola bastante capada en hardware (baja resolución,  sonido…) pero que se programa en un subconjunto del lenguaje de programación brasileño mas famoso, Lua. Y el buen hombre se dedico a vender su emulador para distintos sistemas operativos, dejando una versión (que no se si es completa) del emulador en javascript+html para que la gente pudiera ofrecer sus videojuegos a los navegantes. No se, porque pero de repente hubo una moda muy fuerte entre los indies por el Pico-8 y empezaron a hacer juegos como churros, lo que fue una bola de nieve que ha crecido sobre este emulador de una consola inventada inexistente. Que ademas de no ser software libre, no por que lo venda, si no por no ofrecer las fuentes, aunque sea un API abierta, no es nada original porque en los 70 ya se invento algo parecido llamado CHIP-8 en este caso para facilitar la «port-eación» de videojuegos entre distintas maquinas de aquella época. Como nota curiosa, los «juegos» de Pico-8 se distribuyen en ficheros de imagen PNG con la imagen del cartucho en plan ochentero pero dentro tiene el código ejecutable y los datos, no se si embebidos como metadatos o están en «estenografía»…vamos mezclados con los bytes de la imagen, la verdad es que queda muy resulton y da ese tilín nostálgico.

pico8_main

Creo que ya has visto que estamos en la situación de plataforma cerrada (aunque sea emulada) y ahí nuestros amigos los hackers tomaron los teclados por banda para empezar a solucionarlo.

PicoLove: si Pico-8 es Lua…porque no picar usando como referencia el API de la maquina una versión con Löve, un genial engine de videojuegos multiplataforma que se pica en Lua. Aunque PicoLove no es perfecto, no funcionan todos los juegos que he probado, tiene una ventaja…e inconveniente (desde mi punto de vista que les dije en su bugtracker A parameter to set «stricted mode Pico-8», y es que trae muchas mejoras frente al limitado hardware de Pico-8, como números en coma flotante, mas memoria y tal, vamos que como la tontería del Pico-8 se ponga de moda y PicoLove también, no va ha haber un estándar único y van a haber futuros problemas de compatibilidad entre plataformas.

LIKO-12: otro emulador de consola virtual escrito en Lua y con el engine Löve. Este va mas allá que PicoLove, porque además de traer muchas mas mejoras como mas resolución, ya no usa el API de Pico-8 y usa todo el lenguaje Lua completo. Vamos que LIKO-12 es a Pico-8 como la SuperNintendo a la Nintendo, una consola «emulada y virtual» distinta a su prima pequeña. Pero como no sabemos por donde van a ir los caminos, hay que reseñarla por si en un futuro cercano añade compatibilidad con Pico-8…o se fusiona con PicoLove para buscar esa compatibilidad o se hace presidente de la Casa Blanca, vaya usted a saber.

Finalizamos con unos consejillos, si eres jugador PicoLove y que tengas suerte de que te funcione el juego, si eres desarrollador pues LIKO-12 que te da mas vidilla que Pico-8.

Interesante entrevista a uno de los desarrolladores de Godot en zxdevs

En ZXDevs un prolífico blog sobre entrevistas al mundo del desarrollo retro e indie, donde en las preguntas a los entrevistados desde abarca el cálido ámbito humano hasta el tema técnico que da tanta chicha. Se agradece, se agradece.

Pues en este caso han entrevistado a uno de los creadores de Godot, al señor Juan Linietsky.

Godot Engine

Aunque ya tiene unos meses y habla de cosas del pasado sigue siendo muy muy interesante esta entrevista. Con frases como esta:

¿Por qué habéis decidido que sea gratuita y ‘open-source’?

Simple, queremos aportar nuestro granito de arena al mundo.

godotengine_logo