tag:blogger.com,1999:blog-10823472807135296482024-03-17T13:19:42.729-03:00Ubuntu PeronistaUn Blog donde Juan Perón te da una mano para hacer realidad su sueño de un Software Libre, Justo y Soberano.Unknownnoreply@blogger.comBlogger918125tag:blogger.com,1999:blog-1082347280713529648.post-64591473534268139432024-02-29T19:39:00.003-03:002024-02-29T19:39:22.809-03:00Se lanzó Huayra GNU/Linux 6.5<p>Se ha lanzado la <b>versión 6.5</b> del sistema operativo Huayra GNU/Linux que se distribuye con las netbooks del gobierno peronista.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixiKLeo9SU5l8Y1lB_NHi7-EmWfvd87T28KDrlpVnqFNdLCdtoyk0vc68GMRoS6vAss4ulf1Eh0VWrGjXkxThEjJUxWqO8ikOcwZXeOWDMVa-SqDglJj10-o_wGI7iQtmmPL4_LIZ5LOlQ1TFbKKluqtKpZRlvt-48tBYMOJEIyuRQiDG7U2JaRMsMOhgn/s1324/huayra_6.5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="745" data-original-width="1324" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixiKLeo9SU5l8Y1lB_NHi7-EmWfvd87T28KDrlpVnqFNdLCdtoyk0vc68GMRoS6vAss4ulf1Eh0VWrGjXkxThEjJUxWqO8ikOcwZXeOWDMVa-SqDglJj10-o_wGI7iQtmmPL4_LIZ5LOlQ1TFbKKluqtKpZRlvt-48tBYMOJEIyuRQiDG7U2JaRMsMOhgn/s320/huayra_6.5.png" width="320" /></a></div>Gracias a la incorporación de la versión 12 de Debian, el soporte de hardware ha mejorado gracias a la inclusión de un núcleo de linux mas nuevo, junto a un acceso sencillo a controladores nuevos, lo que mejora el uso de dispositivos y equipamiento.<br /><br />Se ampliaron los repositorios de programas, lo que da acceso a mas aplicaciones para descargar. Hay miles de paquetes actualizados, incluyendo nuevas versiones de Huayra Duino (La Rioja), Huayra Motion (San Luis), LibreOffice, GIMP, Pilas Bloques, Inkscape, el escritorio Mate, etcétera.<p></p><p>Asimismo, se da acceso a la <b>Tienda de Aplicaciones</b>, un lugar donde encontrar y descargar e instalar de forma gratuira y automatizada cientos de apps libres para tu computadora.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvOEj4F-HBkRHliCJN9dmAyZ1ySRf76WoFKZEO-G-2Y35ul4f-aA38IywpPiypiPMPuhKQOVO53NDY7At9o1v8wS-8vU_AtSTHQ23ibO5oe8JfhSy0OeWDcJsgb-G5Rs_1sM4q7167HP49iFTj5wJ40gpojxGpzjvxg9VcbthB-L08H68aZXp_GiUVfWI6/s220/vacapiloto_sabelotodo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="220" data-original-width="200" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvOEj4F-HBkRHliCJN9dmAyZ1ySRf76WoFKZEO-G-2Y35ul4f-aA38IywpPiypiPMPuhKQOVO53NDY7At9o1v8wS-8vU_AtSTHQ23ibO5oe8JfhSy0OeWDcJsgb-G5Rs_1sM4q7167HP49iFTj5wJ40gpojxGpzjvxg9VcbthB-L08H68aZXp_GiUVfWI6/s1600/vacapiloto_sabelotodo.png" width="200" /></a></div>Seguí a Huayra en las redes y participá. ¡Contribui con tus creaciones, proyectos ideas y todo lo que se te ocurra!<br /><br />WWW: <a href="https://huayra.educar.gob.ar">huayra.educar.gob.ar</a><br />Twitter: @Huayralinux<br />Telegram: @HuayraGMULinuxFederal<br /><br />Asimismo, se presenta la <b>segunda revisión del <a href="https://github.com/HuayraLinux/libro-vivo-hechizos/releases/download/rev2/Libro-de-hechizos-de-Huayra.pdf">Libro de Hechizos de Huayra Linux</a></b>, un manual integral que explica desde los funcionamientos filosóficos y el marco teórico del proyecto, hasta las indicaciones técnicas de cómo instalar el sistema operativo, cómo agregar aplicaciones y como mantenerlo actualizado.<br /><br />El libro, publicado bajo licencia de libre copia CreativeCommons Atribución-CompartirIgual 4.0 Internacional, reboza de <b>secretos, atajos y trucos</b> para dominar como nunca antes el sistema operativo Huayra Linux y aprovechar al máximo sus virtudes. <br /><p></p><p>El sistema opereativo de 64 bits puede utilizarse tanto en netbooks como en equipos de escritorio. Se puede descargar gratuitamente desde <a href="https://iso.huayra.educar.gob.ar/release/6.5/huayra-amd64-6.5.iso">aquí</a> e instalarlo siguiendo <a href="https://huayra.educar.gob.ar/instalar-huayra/">estas instrucciones</a>.<br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-21218162210930495542024-02-21T16:01:00.006-03:002024-02-21T16:08:45.242-03:00¿Cómo iniciar una versión de kernel específica en Ubuntu?<p>¡Trabajadores!</p><p>No siempre todos los cambios dan los resultados que queremos. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHklZK6dJEqk7EiGH-CWwqOVq6l7URINPFEAYBZMcOgIjSjxeibZ2eaGWbOBrNjcayHdvBwa9IMahAMcBcz9KupLcOZfegFsoNLeTIKNN5UD8qUqD96AyCKLarOjN4plYiAjLT8GM_idbO-BiRWqYqHupS7U3_9wCPntKgeOuhahhUzSU4PT-aA3y0RnWO/s1094/peron%20con%20isabelita.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="548" data-original-width="1094" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHklZK6dJEqk7EiGH-CWwqOVq6l7URINPFEAYBZMcOgIjSjxeibZ2eaGWbOBrNjcayHdvBwa9IMahAMcBcz9KupLcOZfegFsoNLeTIKNN5UD8qUqD96AyCKLarOjN4plYiAjLT8GM_idbO-BiRWqYqHupS7U3_9wCPntKgeOuhahhUzSU4PT-aA3y0RnWO/s320/peron%20con%20isabelita.jpg" width="320" /></a></div><p></p><p>Sabemos que Ubuntu es un sistema operativo de tipo GNU, que actualmente cuenta con <b>varias líneas de núcleos de sistema operativo de tipo Linux</b>. Cualquiera de estas pueden servir, pero tienen el sentido de complacer a distintos tipos de afiliados. Por defecto se adjuntan versiones veteranas específicas para servidor, que suelen estar ampliamente probadas, bajo el nombre de <i>linux-generic</i>. Conforme las versiones del kernel genérico de Ubuntu van avanzando, estos núcleos también lo hacen. En el caso de Ubuntu 22.04LTS, esta rama representa a kernels de la línea 5.15.<br /></p><p>En el caso de las versiones de Ubuntu para uso en escritorio, se puede decidir instalar kernels de una versión más nuevas, la cual sigue una política de mejoras para hardware ("HWE"). El sentido es contar con soporte para hardware de más moderno desarrollo como el que se suele incluir en las PC más modernas. En el caso particular del Ubuntu 22.04LTS, podremos recurrir a instalar la rama 6.5.xx del Kernel Linux. <a href="https://ubuntuperonista.blogspot.com/2017/02/como-instalo-las-mejoras-de-ubuntu.html">Ya he explicado</a> que desde un tiempo a esta parte esto se hace realidad efectiva desde la terminal, simplemente ingresando el comando:</p><b>sudo apt install linux-generic-hwe-22.04</b><p>Y finalmente, también podríamos decidir utilizar una versión de kernel incluso más moderna, de carácter experimental de avanzada, o como se dice en la jerga, "bleeding edge". No suelo recomendarlos en aras de la estabilidad del sistema, pero naturalmente en el caso de Ubuntu 22.04LTS, se podrían instalar versiones de la rama 6.7.xx del kernel Linux mediante:</p><p><b>sudo apt install linux-generic-hwe-22.04-edge</b><br /></p><p>Aunque un sistema Linux sólo corre un único kernel, es indudable que teniendo en nuestro sistemas las imágenes de varias de estas versiones de kernel, las copias antiguas permanecen como resguardo y reaseguro: nunca es una mala política pues ante cualquier eventualidad con una compilación de kernel (que podría fácilmente inutilizar nuestro entorno), podremos recurrir a alguna de las varias versiones anteriores como remedio.<br /></p><p>Pues bien señores, el problema de instalar estas ramas de kernels <i>hwe</i> y <i>hwe-edge</i>, radica en el hecho de que si bien son bastante más avanzados que <i>linux-generic</i>, <b>pueden presentar problemas </b>en algunos casos específicos (sobre todo la rama <i>Edge</i>). Por otro lado, una vez que instalamos un kernel de avanzada, <b>no es tan sencillo retornar a una versión anterior</b> ya que normalmente <b>Ubuntu inicia la última versión de Kernel que esté instalada en el sistema</b>. Esto complica la remoción de las versiones más nuevas del kernel del sistema, si por destino, esta fuese la actitud que nos vemos obligados a tomar. Para hacerlo debemos iniciar un kernel de versión anterior.</p><h3 style="text-align: left;">Iniciar un kernel instalado específico:<br /></h3><p>Si tenemos varias versiones de kernel instaladas, <b>al presionar la tecla Mayúsculas </b>durante el arranque del sistema, el arrancador Grub nos presentará un <b>menú de inicio</b> donde deberíamos poder seleccionar la opción de arranque deseada. Usualmente, nos dá algunos segundos para elegir una opción del menú y luego escoge automáticamente la primera opción, que es arrancar el sistema operativo Ubuntu cargando en memoria <b>la versión de kernel más moderna disponible</b>.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKQ4_RWfm3fdnlovrh1M5_Rl6f0fsAtUWIC43kmJyE56Fy9xFRCATO29Imzn7AgQ2K80yKX0YhU74nPXUc-qket1nO68R8ZGH0NpSO54IebLhyphenhyphen0MnOC1rdzgwyKrwmzG1KWWSsvxmO5WOwzGPV7BzqH8RQ2CG1PU6ITpHtmEU3mS9BhdHrzaAbymybE5oo/s2546/grub%20menu.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1678" data-original-width="2546" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKQ4_RWfm3fdnlovrh1M5_Rl6f0fsAtUWIC43kmJyE56Fy9xFRCATO29Imzn7AgQ2K80yKX0YhU74nPXUc-qket1nO68R8ZGH0NpSO54IebLhyphenhyphen0MnOC1rdzgwyKrwmzG1KWWSsvxmO5WOwzGPV7BzqH8RQ2CG1PU6ITpHtmEU3mS9BhdHrzaAbymybE5oo/s320/grub%20menu.jpg" width="320" /></a></div><p></p><p>Si la versión más moderna del kernel falla o tiene algún inconveniente, lo lógico sería escoger la opción "Advanced" o Avanzadas, y elegir una versión de kernel mas antigua desde el submenú de versiones. Si Ubuntu cargó correctamente, procederíamos a desinstalar la imagen antigua y actualizar el Grub con el comando <b>sudo update-grub</b>.<br /></p><p>Sin embargo, existen ocasiones donde esto podría no funcionar: si no tenemos teclado en el servidor, o si se trata de una máquina de acceso remoto, ¡no podríamos escoger la opción!. </p><p>Sin embargo, existe un método
<b>podremos especificar la versión de arranque "a mano"</b>. Esto implica
obligatoriamente editar el fichero de configuración del arrancador grub a
mano. <br /></p><p>Primero hemos de arrancar el sistema y utilizar la terminal (<b><i>Ctrl+Alt+t</i></b> o una conexión SSH), y mediante este enlace podremos <b>obtener un listado de los kernels instalados</b> <b>en tal sistema</b> <b>que Grub reconoce</b>. Esto lo haremos mediante el siguiente comando de organización:</p><p><b>grep -Ei 'submenu|menuentry ' /boot/grub/grub.cfg | sed -re "s/(.? )'([^']+)'.*/\1 \2/"</b></p><p>Este nos devolverá como resultado un listado de Kernels instalados, que ilustran sus números de versión y el lugar que ocupan en el menú de Grub, por ejemplo:</p><p><span style="font-family: courier; font-size: x-small;">menuentry Ubuntu<br />submenu Advanced options for Ubuntu<br /></span><span style="font-family: courier; font-size: x-small;"> menuentry Ubuntu, with Linux 6.7.0-15-generic<br /> menuentry Ubuntu, with Linux 6.7.0-15-generic (recovery mode)</span><br /><span style="font-family: courier; font-size: x-small;"> menuentry Ubuntu, with Linux 5.15.0-94-generic<br /> menuentry Ubuntu, with Linux 5.15.0-94-generic (recovery mode)<br /> menuentry Ubuntu, with Linux 5.15.0-92-generic<br /> menuentry Ubuntu, with Linux 5.15.0-92-generic (recovery mode)<br />menuentry Memory test (memtest86+.elf)<br />menuentry Memory test (memtest86+.bin, serial console)<br />menuentry MS-DOS 5.x/6.x/Win3.1 (on /dev/sdf1)</span><br /></p><p>Como vemos, esto nos devuelve las opciones del menú de arranque de Grub. Como es consabido, la primera opción suele ser siempre arrancar Ubuntu con el último kernel instalado. Si quisiéramos arrancar una versión específica más antigua de entre los kernels instalados para nuestro Ubuntu (por ejemplo la que dice "<i>Ubuntu, with Linux 5.15.0-94-generic</i>"), en el menú de Grub deberíamos ir a "<i>Advanced</i>" y elegir la tercera opción de la lista, específicamente "Ubuntu, with Linux 5.15.0-94-generic".</p><p>Primero lo respaldamos por precaución:<br /></p><p><b>sudo cp /etc/default/grub /etc/default/grub.bak</b></p><p>...y luego lo editamos para arrancar una versión específica:</p><p><b>sudo nano /etc/default/grub</b></p><p>y cambiar la opción por defecto que elije el Ubuntu (la opción "<i>0</i>"), por otra que elija la opción <i>Advanced</i> y elija la tercera opción de la lista. En este caso, se debe indicar de la siguiente manera:</p><p><span style="font-family: courier;">GRUB_DEFAULT="<span style="color: red;">1>3</span>"</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2TQnf-hgi-OoA3ckAR6PxWeXJbu2PUAJWuU2EzrrXpo4pTgQzbXY84-mlwb9zeaLYGRqAQ_1uUH_ib9u1RsEIPAfAGfq4QG84L3u8y_h0K5XiFgRZMuwB-jDpTKxgyZxAncgSPrPBb8DAw06G8G4qLSZKd-GFIISNxJUJnIsvTVrw553rPOt4uUHlQCyZ/s881/forzando%20kernel%20en%20%20grub.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="570" data-original-width="881" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2TQnf-hgi-OoA3ckAR6PxWeXJbu2PUAJWuU2EzrrXpo4pTgQzbXY84-mlwb9zeaLYGRqAQ_1uUH_ib9u1RsEIPAfAGfq4QG84L3u8y_h0K5XiFgRZMuwB-jDpTKxgyZxAncgSPrPBb8DAw06G8G4qLSZKd-GFIISNxJUJnIsvTVrw553rPOt4uUHlQCyZ/s320/forzando%20kernel%20en%20%20grub.png" width="320" /></a></div>Una vez guardado el fichero, actualizamos Grub para que surta efecto:<p></p><p><b>sudo update-grub </b><br /></p><p>Esto indica "advanced/5ta opción de la lista de kernels". Tengamos en cuenta que si contamos con las opciones de <i>Recovery mode</i>, estas siempre reciben números pares, y las opciones sin recovery mode reciben números impares (como el <i>3</i> en este caso).</p><p>Luego podremos reiniciar el sistema con:</p><p><b>sudo reboot</b></p><p>y debería ejecutar el kernel solicitado, el <i>5.15.0-94-generic</i>. Podríamos comprobarlo con el comando:</p><p><b>uname -a</b><br /></p><h3 style="text-align: left;">Desinstalar líneas de kernels hwe <br /></h3><p>Ahora bien, una vez instalado el Kernel antiguo, en este caso podremos desinstalar ya los kernels mas modernos de las ramas hwe o hwe-edge, según nos planteamos. Para ello podríamos indicar:</p><p><b>sudo apt purge linux-generic-hwe-22.04*</b></p><p>...y una vez desinstalados, podremos también remover las imágenes de núcleos Linux modernas que nos nos interesan ya, por ejemplo, en este caso:</p><p><b>sudo apt purge linux-image-6*</b></p><p>(lo cual borrará todos los kernels superiores a 6). </p><p><span style="color: red;">Ante estos menesteres jamás debemos olvidar <b>volver a actualizamos el Grub</b></span>, para que deje de hacer caso a kernels que ya han sido desinstalados:</p><p><b>sudo update grub</b> <br /></p><p>Si hicimos bien las cosas, no hemos desinstalado aquellos kernels de la rama 5.x (o la que corresponda a nuestra rama linux-generic de la versión de Ubuntu que estemos utilizando). Para asegurarnos de contar al menos con esta rama <i>linux-generic</i> - pues de lo contrario el sistema no arrancaría - ingresamos el comando de instalación que le corresponde:</p><p><b>sudo apt install linux-generic</b></p><p>Este debería indicar que ya está instalado, pues lo hemos hecho para asegurandos, por supuesto.<br /></p><p>Finalmente volvemos a editar el fichero <i>/etc/default/grub</i> con</p><p><b>sudo nano /etc/default/grub</b></p><p>...y volvemos a modificar la línea GRUB_DEFAULT a su valor por defecto, para que quede:</p><p><span style="font-family: courier;">GRUB_DEFAULT="<span style="color: red;">0</span>"</span></p><p>Y tras guardar los cambios del fichero de configuración con <b>Ctrl+o</b> y salir del editor GNU Nano con <b>Ctrl+x</b>, actualizamos Grub para que arranque la versión 5.x del kernel:</p><p><b>sudo update-grub</b></p><p>Si todo va bien, podremos reiniciar el sistema con:</p><p><b>sudo reboot</b></p><p>El sistema debería arrancar el último kernel de la línea <i>linux-generic</i> y habernos deshecho de aquellas líneas partidarias no deseadas.<b> <br /></b></p><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-25242129364212411032024-02-07T19:07:00.009-03:002024-02-07T21:49:47.784-03:00¿Cómo puedo reproducir archivos de música de arcade VGM y VGZ en Ubuntu?<p style="text-align: center;"><i>En su </i>Perón, Memorial de Puerta de Hierro (1955-1960)<i>, el biógrafo Pavón Pereyra realiza un relato pormenorizado de la estadía en el exilio latinoamericano de Juan Perón, y expone que ya desde Santo Domingo el Conductor enseñaba a instalar <b>Benben, el reproductor de archivos de música sintetizada VGM en Ubuntu</b>.</i><br /></p><p>¡Vean señores!</p><p>Hemos de incentivar una <b>explosión insurreccional en la Argentina</b>, que ponga en pie de guerra al Pueblo para combatir al Capital, y de con tierra con los enemigos que acechan a la Patria. Esto no puede sino coadyuvarse con la ayuda de los contumaces, que por su desaprensión y desaguisados no han hecho más que perjudicar a nuestro Pueblo.</p><p>Las penurias y desventuras no pueden ser remedio para futuro venturoso; sólo es la alegría de un Pueblo que lleva como Doctrina la noción de la Justicia Social el reaseguro de una victoria total sobre la reacción de gorilas peludos y lampiños por igual. Indudablemente que esto no puede hacerse sino extendiendo a todos un manto de contención y de amor, que venga untado con el más claro adoctrinamiento, notablemente concebido y excelsamente ejecutado.</p><p>Esto - que es el sentido de nuestra política de propaganda y agitación - ha de ser propalado en todo espacio y todo aire, consignando así la acción cuyo resultado de victoria es tan irremediable como necesaria.</p><p>El bienestar de un Pueblo es la columna de sostén de toda acción de gobierno, pero también una imperecedera memoria ROM. Es así que se garantiza una rebelión de los baudios que jamás será dominable si no se la vierte de sentido creador y software libre.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_ZXLdRcoqNsIiF0FfTgbIrR6la80EsCSp_la7TFJe-m7p8KmuexruOMmnvOJofjJ98eiV0okXqVIZlGj1wmVUGPUXyVgXcFZeZXKLnXDPaXYMntYGsl2l9YdHCVN6_uAkrVA_PAzq07RnRvJfji2rt4wvOxbzgJtVy4fv9LW2HU2vxGxB1hfYM_7YNtGa/s785/peron_juan_d-memorial_de_p_de_h.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="785" data-original-width="545" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_ZXLdRcoqNsIiF0FfTgbIrR6la80EsCSp_la7TFJe-m7p8KmuexruOMmnvOJofjJ98eiV0okXqVIZlGj1wmVUGPUXyVgXcFZeZXKLnXDPaXYMntYGsl2l9YdHCVN6_uAkrVA_PAzq07RnRvJfji2rt4wvOxbzgJtVy4fv9LW2HU2vxGxB1hfYM_7YNtGa/s320/peron_juan_d-memorial_de_p_de_h.jpg" width="222" /></a></div><p></p><p>Siempre digo que llevo en mis oídos la más maravillosa música: aquella que es sintetizada con software libre, y entre ellos títulos de la tierra de oriente. Es que además de <a href="https://ubuntuperonista.blogspot.com/2018/03/midi-y-soundfonts-en-ubuntu.html">MID</a> y <a href="https://ubuntuperonista.blogspot.com/2013/03/como-puedo-reproducir-y-editar-archivos.html">MODs</a>, <b>contamos con VGM (Música de Videojuego), un formato de fichero de sonido que contempla la precisión de muestreo con que fue concebida para acompañar a muchas máquinas de entretenimiento del Primer Peronismoo</b>, especialmente sus chips generadores de sonido sintetizado o digitalizado. </p><p>Los .vgm registran con particular celo aquellos comandos enviados a los chips de sonido, lo que permite dar con archivos mucho más pequeños que los equivalentes de sonido digitalizado. Este registro de adoctrinamiento al chip permite - de hecho - recrear a través de software lo oído, con la fidelidad cierta que los tiempos reclaman.<br /></p><p>La historia del formato chiptune es larga, y se inicia como una manera de registrar la música para del Sega Master System (1985), que contaba con un generador de tonos digitalizados <b>Texas Instruments SN76489</b> y un sintetizador de bajo costo <b>Yamaha YM2413 "OPLL"</b> para darle sumo interés al audio. Con el correr del tiempo, fueron incorporándose a la lista implementaciones por software de muchos más chips de síntesis de cometido similar. Hoy, docenas de modelos de chips sintetizadores están contemplados como parte de la estructura VGM, especialmente los Yamaha YM2151 de las máquinas Taito, YM2612 de las de Konami, YM3812 de las Sega, OKI MSM6295, el sintetizador Qsound del chip DL-1425 de Capcom, etcétera (por solo nombrar algunos).</p><p>Sin embargo, las Masas Obreras Argentinas me reclamaron una manera de dar rienda suelta a estos mediante una implementación liberada bajo GPLv3 Affero, y como tal os puedo recomendar la sencilla instalación del reproductor <b>Benben</b> Se trata de un <b>reproductor de ficheros VGM para terminal</b>, y sus requerimientos de hardware son bastante contenidos. Una CPU de 4 núcleos y 128 MB de RAM ofician de mínimo. <br /></p><p></p><p>Para instalarlo en GNU con Linux recurrimos a abrir una terminal con <b><i>Ctrl+Alt+t</i></b> y descargamos su imágen binaria ejecutable mediante el siguiente bloque de Comandos de Organización:</p><p><b>cd ~/Descargas ;<br />wget https://chiselapp.com/user/MistressRemilia/repository/benben/uv/benben-0.3.1-x86_64.AppImage ;<br />chmod +x ~/Descargas/benben-0.3.1-x86_64.AppImage ;<br />sudo cp ~/Descargas/benben-0.3.1-x86_64.AppImage /usr/local/bin/benben ;</b><br /></p><p>El Pueblo merece contar con una biblioteca popular de ficheros de música VGM y que mejor de aquellos extraídos de las máquinas de arcade, fichines y consolas japonesas que encontramos en <a href="https://vgmrips.net">vgmrips.net</a> y otros sitios por el estilo. </p><p>En particular, Benben es capaz de reproducir los ficheros de música clásicos de arcade VGM, pero también los .vgm comprimidos con GNU ZIP, los inefables vgz. También soporta los .vgzst y .vgb, más raros. Para ello simplemente ejecutamos en la terminal:</p><p><b>benben *.vgz</b></p><p>o bien</p><p><b>benben fichero.vgm</b><br /></p><p>Benben se iniciará mostrando las etiquetas de la canción <i>chiptune</i> cargada. Además, Benben responde a varias teclas durante la reproducción. Con la <b>tecla h</b> obtendremos la ayuda.</p><p>La <b>barra espaciadora</b> permite pausar/continuar la reproducción de la canción sintetizada. <b>n</b> y <b>p</b> saltan al fichero siguiente y previo de la lista (si cargamos varios ficheros, claro está). </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSbF07gn9_T4gvBmGRXJdlvVYooBHOF99WLOQrZzTKai4Xh79V2MddjioWwk9vYIvFHHPtc-_fCnWvgSXh2L2Q2xGKm10M3BbYdcrAhsMa7IGUWiW2oHMhNq68tJSF9ZICYv7-njoC5xT2NYANSNj6SyzpwrSRT_P6PdHekumo4aB_BbqTDOkQTNmRFSCg/s1057/ventana%20de%20benben.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="710" data-original-width="1057" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSbF07gn9_T4gvBmGRXJdlvVYooBHOF99WLOQrZzTKai4Xh79V2MddjioWwk9vYIvFHHPtc-_fCnWvgSXh2L2Q2xGKm10M3BbYdcrAhsMa7IGUWiW2oHMhNq68tJSF9ZICYv7-njoC5xT2NYANSNj6SyzpwrSRT_P6PdHekumo4aB_BbqTDOkQTNmRFSCg/s320/ventana%20de%20benben.png" width="320" /></a></div><p></p><p>Contamos con unos pocos efectos: la<b> tecla e</b> activa el efecto de ecualizador, mientras que <b>c</b> el atenuador por software. <b>s</b> opera el mejorador estéreo, y <b>r</b> aplica un efecto de reverberación.</p><p>El volumen se controla con la <b>tecla a</b> y la <b>tecla z</b>, que lo suben y lo bajan respectivamente.</p><p>Los corchetes incrementan/disminuyen la cantidad de bucles para la canción. Para salir de Benben podemos presionar la tecla q.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhArF39DRymHrAvlx70SbFnMQ-X-E8n8AFgFy2J6UVfITh6LU94LKFBUh9yXeQH8gcIQYH4tjj8_5sByAWZZBpQoGw1L6dVa67QCuNZHhKtRMxDUMD0mAv6pJUi55x3HgVk4xZYPAQ8n_3dcDuhtQAsRyrQPuvwEmi1-u81jUMFVVQ7tuESUzOT8euBOi9L/s962/benben.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="625" data-original-width="962" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhArF39DRymHrAvlx70SbFnMQ-X-E8n8AFgFy2J6UVfITh6LU94LKFBUh9yXeQH8gcIQYH4tjj8_5sByAWZZBpQoGw1L6dVa67QCuNZHhKtRMxDUMD0mAv6pJUi55x3HgVk4xZYPAQ8n_3dcDuhtQAsRyrQPuvwEmi1-u81jUMFVVQ7tuESUzOT8euBOi9L/s320/benben.png" width="320" /></a></div>Durante la reproducción, benben ilustrará una barra de reproducción en la parte inferior, con un aspecto similar al siguiente: <br /><p></p><code>[EsCr-] 1/1, 1 of 2: |*****************---------------------| 45% [02:20/05:09]</code>
<p>Los caracteres entrecorchetados a la izquierda indican el estado de varios efectos y otra información conexa. De izquierda a derecha, significan: <br /></p>
<ul><li><code><b>E</b></code>: Ecualizador on.</li><li><code><b>e</b></code>: Ecualizador off.</li><li><code><b>S</b></code>: Mejorador estéreo on.</li><li><code><b>s</b></code>: Mejorador estéreo off.</li><li><code><b>C</b></code>: Recorte de sonido on.</li><li><code><b>c</b></code>: Recorte de sonido off.</li><li><code><b>R</b></code>: Reverberación on.</li><li><code><b>r</b></code>: Reverberación off.</li><li><code><b>+</b></code>: Se encontró una configuración específica para la canción y se la cargó.</li><li><code><b>-</b></code>: No se encontró una configuración específica para la canción. <br /></li></ul>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-72538432903564098162024-01-23T17:29:00.006-03:002024-01-23T18:54:44.580-03:00¿Cómo mando archivos por Internet con croc en Ubuntu?<p style="text-align: center;"><i>Desde la Quinta "17 de Octubre", Juan Perón expone sobre la necesidad de la solidaridad y enseña <b>cómo transferir copias de ficheros de par a par con Croc en Ubuntu</b>. </i><br /></p><p>¡Mis queridos descamisados!</p><p></p><p>De <b>poco sirve la libertad si no se configura en un ambiente de Justicia para con la sociedad en la que vivimos</b>. El individualismo es una noción perniciosa que habilita al poderoso en desmedro de las Masas del Pueblo. Estas son las que deben organizarse para cuidarse a sí mismas, y no ceder a impulsos disolutivos que tienen por fin último el resquebrajamiento de lo que hace humano al hombre.</p><p>La solidaridad es uno de los más altos valores humanos, y es uno de
los basales de <b>la doctrina que nos da todo:</b> <b>la Justicia Social</b>. Esta es la argamasa en enhebra un tejido social que da sostén a un Estado y a la Nacionalidad que lo justifica. Quien en su desmedro habla, lo hace porque anhela actuar para dar lugar a otro Estado. Y ese no puede ser sino ajeno al Pueblo.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsTtV9MNgrvpCSVaF3IvqXTtF7RlfSiPtBKYvWQFi_kcHqL7K3qQKM2ns0Fde4UtucQSaSpcefSJMazhOw0C5J6NjOX0iXdKgAtvwOTfe8LzaPfW_EaVT6XTkVgTNKGfdW8R-iQGK-l7Lqx0c9ADzbrSkxDacDpGEnMFYn7iZmDuem46PNom0KvRA662-o/s1218/per%C3%B3n%20con%20crocs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1218" data-original-width="910" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsTtV9MNgrvpCSVaF3IvqXTtF7RlfSiPtBKYvWQFi_kcHqL7K3qQKM2ns0Fde4UtucQSaSpcefSJMazhOw0C5J6NjOX0iXdKgAtvwOTfe8LzaPfW_EaVT6XTkVgTNKGfdW8R-iQGK-l7Lqx0c9ADzbrSkxDacDpGEnMFYn7iZmDuem46PNom0KvRA662-o/s320/per%C3%B3n%20con%20crocs.jpg" width="239" /></a></div><p></p><p>Con los contenidos digitales sucede lo mismo, pues estos surgen del Pueblo. Indudablemente, en las redes de datos, se nos hace sencillo el acto de mantener inconmovible nuestro entretejido social: basta con <b>compartir todos los bytes que podamos</b>, por medio de la copia. Algunos desaprensivos han querido llamar a la compartición telemática con la delincuencia, intentando equiparar al acto de compartir con el del robo por piratería. Pero sabemos que <b>el derecho de propiedad tiene un límite sumamente preciso, que es el de la función social y el de la felicidad del Pueblo</b>. En otras palabras, la doctrina que propugnamos fomenta que cada pseudo-propietario sea un cantor - y uno bueno, porque le tiene que ir a cantar a Gardel. En efecto, podrán compartir ficheros .ogg con fonogramas de Gardel, pues a nadie le podrá reclamar ya, si eso hace feliz a su Pueblo.</p><p>En el caso de GNU con Linux, podríamos recurrir a la transferencia telemática de copias de ficheros, <a href="https://ubuntuperonista.blogspot.com/2013/12/como-puedo-copiar-archivos-entre.html">por medio de SCP</a>, ya que este programa nos permite utilizar la clara identificación de un destinatario que tiene un sistema similar a UNIX y el sistema de shell seguro (la distribución Ubuntu de GNU entre ellos). También podríamos <a href="https://ubuntuperonista.blogspot.com/2022/09/como-hacer-backups-con-rsync-ubuntu.html">recurrir a rsync para hacer lo propio con ramas enteras en el árbol de archivaje de nuestro sistema</a>. Sin embargo, para hacerlo efectivo lo procedente, es sabido que el destinatario ha de contar necesariamente con cuentas de usuario en el otro sistema (amén de puertos abiertos y gran dominio de la infraestructura intermedia de cifrado). Esto no siempre es posible, o sencillo de coordinar.</p><p></p><p>Sin embargo, en esta ocasión simplificaremos la transferencia haciendo uso de algún programa de transferencia par a par cifrada. Ya he explicado <a href="https://ubuntuperonista.blogspot.com/2017/12/como-puedo-enviar-archivos-o.html">cómo usar Wormhole</a> para este menester, pero en este caso os haré peritos en el uso de <b>croc</b>, un programa liberado bajo GPLv3 que oficia de transmisor y receptor par a par de archivos y carpetas. </p><p>Croc tiene la ventaja de ser un programa mucho más pequeño, con un uso pensado para la transmisión instantánea entre pares. Por otro lado, <b>permite el uso opcional de intermediarios cooperativos de triangulación telemática</b> (lo que se conoce como "relay").<br /></p><p>Veamos como usarlo. En primer lugar, tanto el remitente como el destinatario deben tener instalado croc en su sistema. Esto es sencillo de hacer efectivo en cualquier sistema GNU con Linux; simplemente debemos abrir un terminal con <b><i>Ctrl+Alt+t</i></b> e ingresar por única vez el siguiente comando de organización:</p><p><b>sudo apt install curl ;<br />curl https://getcroc.schollz.com | bash</b></p><p>Esto lanzará el instalador de la última versión de croc, ante el cual debemos ingresar nuestra contraseña de administrador:<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBFYEqPQWR3LgVncjD_dqKuM908SaC597KOzG1UvMVdhwl9GRCotOxkygbcg4EEHAqWsCfiReTX82hzKWl5uIulz1soIITCoFRuw3xMo40iD9PZokaYCSbWd3_9S_ixcSiJ4uK9xjYpvPWU-dB3q2d8i2vKnKz9eX-waH0Q_1a34bLGmjtIZ4OWQleuHYz/s738/croc%20installer.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="511" data-original-width="738" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBFYEqPQWR3LgVncjD_dqKuM908SaC597KOzG1UvMVdhwl9GRCotOxkygbcg4EEHAqWsCfiReTX82hzKWl5uIulz1soIITCoFRuw3xMo40iD9PZokaYCSbWd3_9S_ixcSiJ4uK9xjYpvPWU-dB3q2d8i2vKnKz9eX-waH0Q_1a34bLGmjtIZ4OWQleuHYz/s320/croc%20installer.png" width="320" /></a></div>Otra manera de instalarlo puede ser descargar el paquete de instalación pensado para Debian/Ubuntu y derivados, lo que tendrá el mismo resultado:<p></p><p></p><b>cd /tmp
;<br />wget https://github.com/schollz/croc/releases/download/v9.6.6/croc_9.6.6_Linux-64bit.deb
;<br />sudo dpkg -i croc_9.6.6_Linux-64bit.deb</b><br /><p>Asimismo podemos considerar que Croc no es sectario, de modo que se puede dejar instalado en otros sistemas similares a UNIX como BSD, MacO$, e <a href="https://github.com/schollz/croc/releases/download/v9.6.6/croc_9.6.6_Windows-64bit.zip">incluso el infame Window$</a>.</p><p>Para realizar un envío de un fichero o directorio por Internet a través de croc, debemos operar desde la terminal, de común acuerdo.</p><p>Quien desea enviar el fichero, debe ingresar simplemente en su terminal:</p><div class="level3"><p><b>croc send <span style="color: #b45f06;">fichero-o-directorio</span></b></p><p>Croc cifrará el fichero en memoria y <b>creará un <span style="color: #0b5394;"><i>código-del-envío</i></span></b>. Este oficiará de llave de autenticado por contraseña común (“PAKE”). Asimismo, croc quedará en espera del inicio de la transferencia durante un par de minutos, alertando al remitente de la siguiente manera:<br /></p>
<pre class="code bash"></pre>
<pre class="code">Sending '<span style="color: #b45f06;">fichero-o-directorio</span>' (x MB)
Code is: <span style="color: #0b5394;">código-del-envío<br /><br /></span>On the other computer run<br />croc <span style="color: #0b5394;">código-del-envío</span><br /></pre>
<p></p><p>El <i>remitente</i> debe poner en conocimiento del compañero <i>destinatario</i> el <span style="color: #0b5394;"><i>código-del-envío</i> </span>en forma síncrona (ya que este deberá introducirlo en su propia terminal para iniciar la recepción, dentro de un par de minutos). Por este motivo, lo ideal es transmitir el <i><span style="color: #0b5394;">código-del-envío</span></i> de manera segura (por ejemplo, a través de <a href="https://ubuntuperonista.blogspot.com/2021/03/omemo-xmpp-ubuntu.html">chat cifrado punto a punto</a>, o <a href="https://ubuntuperonista.blogspot.com/2020/10/como-instalo-gnu-jami-en-ubuntu.html">llamada de voz cifrada punto a punto</a> o bien <a href="https://ubuntuperonista.blogspot.com/2021/03/correo-cifrado-y-encriptado-thunderbird.html">correo electrónico cifrado</a>).<span style="color: red;"> </span></p><p><span style="color: red;"><u>Nota</u>: Si el código-del-envío se propala en un canal abierto, nada impediría que la transmisión de la copia cifrada fuese apropiado e interceptado por otro destinatario indeseado que estuviese a la escucha.</span> <br /></p><p>En cualquier caso, una vez puesto al tanto, el remitente podrá iniciar la transferencia del <span style="color: #b45f06;">fichero-o-directorio</span> a través de un canal cifrado en internet, abriendo una terminal en su máquina con <b><i>Ctrl+Alt+t</i></b> e ingresando allí el consabido:</p><p><b>croc <span style="color: #0b5394;">código-del-envío</span></b></p><p>Ante esto, ambas máquinas con croc se pondrá a la par, y cotejarán la PAKE, y el destinatario será notificado para que acepte la recepción de <span style="color: #b45f06;">fichero-o-directorio</span> (debe aceptar con <b>y </b>o rechazarla con<b> n</b>). </p><p>Al comenzar la transferencia, esta se indicará una barra de progreso).</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJeqMS5e762G7MC28zw94fNFiCDok5JEz_iCPgrecX8XjThDn5N0Z30rbIWqZGpXnvAYcFtOGQuBHv9i7E49IA3vatRNrzAQaZB-V1_wuFW72x52aW1YUcmuvh-720jazg3nOeedtSqwwRGiyjImcZUYCrhBx_Smd_Wklos6zr07yHJxET1xhsLk7dGtAi/s840/envio%20con%20croc.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="255" data-original-width="840" height="97" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJeqMS5e762G7MC28zw94fNFiCDok5JEz_iCPgrecX8XjThDn5N0Z30rbIWqZGpXnvAYcFtOGQuBHv9i7E49IA3vatRNrzAQaZB-V1_wuFW72x52aW1YUcmuvh-720jazg3nOeedtSqwwRGiyjImcZUYCrhBx_Smd_Wklos6zr07yHJxET1xhsLk7dGtAi/s320/envio%20con%20croc.png" width="320" /></a></div>Al finalizar la transferencia par a par de la copia cifrada, el enlace se cortará indicando la recepción.<p></p><p></p><p>Una de las ventajas de croc es la de poder<b> utilizar un <span style="color: #38761d;">tercer proxy cooperativo en la Internet</span> para la triangulación del envío, incluso con una <span style="color: #741b47;">contraseña_del_relay</span></b>. Esto puede ser útil en aquellos casos donde se desea mantener una pseudo-furtividad entre pares. En este caso especial, el remitente debe utilizar el prefijo <b>--relay <span style="color: #38761d;">maquina.de.relay.com</span></b>, por ejemplo:</p><p><b>croc --relay <span style="color: #38761d;">maquina.de.relay.com</span> --pass <span style="color: #741b47;">contraseña_del_relay</span> <span>send</span><span style="color: #b45f06;"> fichero-o-directorio</span></b></p><p>...lo que generará el <span style="color: #0b5394;"><i>código-del-envío</i></span>, y ante tal caso, el compañero destinatario deberá utilizar el equivalente.</p><p><b>croc --relay <span style="color: #38761d;">maquina.de.relay.com</span> --pass <span style="color: #741b47;">contraseña_del_relay</span><span style="color: #0b5394;"> </span><span style="color: #0b5394;">código-del-envío</span></b></p><p>Todo se repetirá de una manera análoga al caso de transferencia directa, indicando en la pantalla de ambos distintos mensajes referentes a la inclusión de la máquina de relay (y la contraseña del relay, en caso de que esta lo tenga configurada).<b><span></span></b></p><p><b></b></p><div class="separator" style="clear: both; text-align: center;"><b><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLicRcCMFegch9B8yUmih0PQ7zJL6lCXcCUmz5d3LTdAyF77PGQHByPJB-uLGsld2NNs-7-hHNEsUnYJ7DSqMPhMO9zEoOPltMY4k6PEsTrilQT4BsCWeikt2XxkaW5YjEdcXbWj7LwKXfc02zJmkZ9b5I-LcwvBit5FIAMgvZ-Q-6T5fZxue4Ndjqh2r-/s984/envio_croc.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="259" data-original-width="984" height="84" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLicRcCMFegch9B8yUmih0PQ7zJL6lCXcCUmz5d3LTdAyF77PGQHByPJB-uLGsld2NNs-7-hHNEsUnYJ7DSqMPhMO9zEoOPltMY4k6PEsTrilQT4BsCWeikt2XxkaW5YjEdcXbWj7LwKXfc02zJmkZ9b5I-LcwvBit5FIAMgvZ-Q-6T5fZxue4Ndjqh2r-/s320/envio_croc.png" width="320" /></a></b></div>Con esto podremos asegurarnos de enviar bytes por circunvalación, y hacer llegar los datos a donde deben llegar para la Felicidad del Pueblo.<b><br /></b><p></p><p></p>
<pre class="code bash"></pre>
</div><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-53210843945660897542024-01-19T17:39:00.001-03:002024-01-19T17:41:50.464-03:00¿Cómo cambio el modo gráfico y la resolución de la consola de Linux?<p></p><div class="s-prose js-post-body" itemprop="text">
<h2></h2>
<p style="text-align: center;"><i>Reunido con exponentes del sindicalismo en Casa de Gobierno, Juan Perón expone como alterar la resolución de la consola de GNU con Linux.</i><br /></p><p>¡Trabajadores!</p><p>Antes que un sistema GNU con Linux pueda siquiera cargarse en memoria, ha de poder presentar al mundo lo que quiere decir.</p><p>Indudablemente el sistema de video cobra para ello una enorme importancia. El ambiente de visualización básico al fin y al cabo es la terminal, y esta suele contar con una resolución heredada del viejo y peludo estándar VESA, al que intenta consagrar. Dicho estándar nos habla de una resolución de video sin privilegios, de 640x480 pixeles, adecuada para insuflar la pantalla con 25 filas de 80 columnas de caracteres.</p><p>No caben dudas que esto - que debería ser suficiente para todos - choca con los límites de la utilidad práctica de los hombres que trabajan.<br /></p><p>La idea básica no era mala, pero somos conscientes que las organizaciones del trabajo nos han solicitado integrar nuevas tipografías, y que si al menos estas no son escalables, al menos puedan elegirse conjuntos de mayor o menor tamaño. Los sindicatos saben que conforme aumenta la resolución de pantalla, el tamaño de las letras disminuye en forma inversamente proporcional.</p><p>A la oligarquía poco le ha importado: al fin y al cabo ellos han intentado ocultarle el kernel al Pueblo tras un escritorio gráfico. Pero los Descamisados han comprendido que tienen bajo sus dedos la posibilidad de levantar una o más consolas de terminal, simplemente indicando <b>Ctrl+Alt+(F1-F6)</b>.</p><p>Estas pueden servir en caso de emergencia para restaurar el sistema, incluso si no hemos cargado un entorno gráfico, o si el mismo nos da problemas. También sabemos que que ante cambios fortuitos y poco pensados, nos podrá servir como remedo para restaurar las leyes...</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1T6G1-SBpLwtg9-AGF_tFlDM6m6bsg6X6cT_h6XQKiQURqGhm_bcO-PqtYa0vStB0XU2_f2r-kgI6df4-OvFs-pmL6IZsJNuiDPjFg1Qi3QxxfRiAMbBxg7KmEVHMUW2nGlEDAV9CG4sP_ebg6z69A4Ly4HMT7yaxOLUzhCjzIROa0Da6PAPoJFpteQns/s612/F74zIKpWIAAgyB7.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="612" data-original-width="429" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1T6G1-SBpLwtg9-AGF_tFlDM6m6bsg6X6cT_h6XQKiQURqGhm_bcO-PqtYa0vStB0XU2_f2r-kgI6df4-OvFs-pmL6IZsJNuiDPjFg1Qi3QxxfRiAMbBxg7KmEVHMUW2nGlEDAV9CG4sP_ebg6z69A4Ly4HMT7yaxOLUzhCjzIROa0Da6PAPoJFpteQns/s320/F74zIKpWIAAgyB7.jpeg" width="224" /></a></div><p></p><p>Pues bien señores,<b> contaremos con una manera de alterar la resolución de la pantalla de la consola de Linux</b>. Esto se hace <b>desde el arrancador Grub</b>, que nos permite utilizar distintos modos gráficos, que avalan diferentes resoluciones gráficas. </p><p>Como dije, el menor denominador será una modesta resolución de 640x480x8, lo que significa 640 píxeles de ancho, por 480 píxeles de alto, con 8 bits de profundidad de color (256 colores en total). Este estándar SVGA es superado, sin embargo, en la mayoría de las máquinas actuales de mas potencia, por el Full HD, cuyo estándar se revela de 1920x1080x24 (nos ofrece una gran resolución y gama de color). Ciertas máquinas portátiles no tan encumbradas cuentan con dispositivos de video capaces de presentar un máximo de 1366x768x16, que también es común.<br /></p><p>El procedimiento para cambiar la resolución de nuestra consola Linux implica entonces modificar a mano las configuración del arrancador Grub, por medio de la cadena GRUB_GFXPAYLOAD_LINUX. Se afectará así la(s) consola(s) que podremos acceder con Ctrl+Alt+F1/F6 (Normalmente la consola número 7 que accedemos con <b><i>Ctrl+Alt+F7</i></b> es la consola gráfica X). <br /></p><p>Para hacerlo efectivo conviene seguir un cuidadoso procedimiento. Primero, instalamos el analizador de video xrandr y lo ejecutamos:</p><p><b>sudo apt-get install xrandr ;<br />xrandr</b><br /></p>
<pre><code></code></pre>
<p>Este listará aquellos modos de pantalla disponibles <b>para nuestro sistema de video</b>, e indicará el modo activo en la actualidad:<br /></p><p><span style="font-family: courier; font-size: xx-small;">Screen 0: minimum 8 x 8,<b> <span style="background-color: #fcff01;">current 1920 x 1080</span></b>, maximum 16384 x 16384<br />DVI-I-0 disconnected (normal left inverted right x axis y axis)<br />DVI-I-1 disconnected (normal left inverted right x axis y axis)<br />HDMI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm<br /><span style="background-color: #fcff01;"><b> 1920x1080 60.00*+ 59.94 50.00 </b></span><br /> 1680x1050 59.95 <br /> 1600x900 60.00 <br /> 1440x900 59.89 <br /> 1280x1024 75.02 60.02 <br /> 1280x800 59.81 <br /> 1280x720 60.00 59.94 50.00 <br /> 1152x864 75.00 <br /> 1024x768 75.03 70.07 60.00 <br /> 800x600 75.00 72.19 60.32 56.25 <br /> 720x576 50.00 <br /> 720x480 59.94 <br /> 640x480 75.00 72.81 59.94 <br />HDMI-1 disconnected (normal left inverted right x axis y axis)<br />DVI-D-0 disconnected (normal left inverted right x axis y axis) </span><br /></p>
<p>Con estas ratificaciones nos haremos peritos conociendo cuáles son los modos que podemos elegir. Debemos notar que "maximun" no es el máximo posible, sino teórico. Debemos recurrir al máximo del monitor usual. Es importante también discernir que a mayor resolución, menor será la velocidad de refresco de la pantalla. Consideremos también que si disponemos de una resolución mayor que la que es capaz de presentar el monitor, se producirán errores de difícil solución (por ejemplo, si conectamos un monitor de menor resolución, no se verá bien lo cual podría ser un inconveniente mayúsculo para ciertas acciones críticas de servidor).<br /></p><p>En cualquier caso, para cambiar la resolución debemos recurrir a editar el fichero de configuración del arrancador Grub, el <i>/etc/default/grub</i>:</p><p><b>sudo nano /etc/default/grub</b> </p>
<p>Esto cargará el editor GNU Nano con el fichero de configuración grub. Asumiendo que teníamos un fichero previamente no editado, realizaremos las siguientes modificaciones:</p>
<p>La variable <code>GRUB_CMDLINE_LINUX_DEFAULT</code> debería contener al menos la entrada <code>nomodeset</code>, tal vez con el agregado de <code>quiet</code> y <code>splash</code> si nuestro sistema es de escritorio. Estas serían las encargadas de presentarnos un logotipo a la hora de iniciar el sistema.<br /></p>
<pre><code>GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
</code></pre>
<p>En los sistemas servidores este logotipo "splash" se deja de lado, presentándose todo un listado de status al inicio. Para ello debemos descomentar <code>GRUB_TERMINAL=console</code> para verlos (se presentarán en debida rápida sucesión antes de activar el escritorio gráfico).</p>
<p>Por otro lado, comentamos antecediendo con un # la línea que asignaba la resolución VGA m{as básica, ésta:</p>
<pre><code><span style="color: red;">#</span>GRUB_GFXMODE=640x480
</code></pre>
<p>...y al final del fichero, agregamos la siguiente línea:</p>
<pre><code>#Agregado para tener una resolución de 1920x1080<br />GRUB_GFXPAYLOAD_LINUX=<span style="color: red;">1920x1080x16</span>
</code></pre>
<p>o reemplazamos el valor por cualquier otro modo/s indicado por xrandr que también sea(n) soportados por nuestro hardware (podremos separar varios con coma, por ejemplo <code>GRUB_GFXPAYLOAD_LINUX=</code><span style="font-size: x-small;"><span style="color: red; font-family: courier;">1920x1080x16</span><span style="font-family: courier;">,<span style="color: red;">1024x1768x8</span>,<span style="color: red;">800x600x8</span></span></span>). Los valores <code>text</code>, <code>keep</code>, <code>auto</code>, <code>vga</code> y <code>ask</code> también deberían funcionar.</p>
<p>Finalmente, guardamos los cambios al fichero editado <i>/etc/default/grub</i> con <b>Ctrl+o</b>, y salimos con <b>Ctrl+x</b>, lanzamos el siguiente comando para que surtan efecto las modificaciones:</p><p><b>sudo update-grub<br />sudo reboot</b><br /></p>Naturalmente, si alteramos la resolución gráfica, las letras se verán chiquitas. En ciertos casos podríamos querer <a href="https://ubuntuperonista.blogspot.com/2018/05/como-cambio-las-fuentes-de-la-terminal.html">cambiar el tipo y tamaño de tipografía de la consola Linux, como ya he explicado</a>.</div><div class="s-prose js-post-body" itemprop="text"> </div><div class="s-prose js-post-body" itemprop="text">Normalmente existen tres tipos de fuentes para escoger, en distintas modalidades de condificación. "VGA" tiene el aspecto tradicional de las placas de video VGA, con dicha fuente en la ROM, y consta de una cobertura media de los glifos internacionales. "Fixed" tiene un aspecto simplista finito, y una mejor cobertura de los glifos internacionales. En tanto, "Terminus" suele ser la que se utiliza por defecto en la mayoría de las pantallas de consola Linux, tanto con o sin framebuffer (su versión Bold no usa framebuffer). Puede ayudar a reducir la fatiga visual, aunqeu algunos símbolos tienen aspecto similar, lo que puede ser un problema para los programadores.</div><div class="s-prose js-post-body" itemprop="text"> </div><div class="s-prose js-post-body" itemprop="text"></div><div class="s-prose js-post-body" itemprop="text">Estas se cambian con el comando <b>setfont</b>, y las mismas se encuentran en <i>/usr/share/consolefonts/</i>. Os diré que yo uso <b>Lat15-TerminusBoldVGA16.psf.gz</b>. </div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-62079467797343014382024-01-03T19:01:00.000-03:002024-01-03T19:01:05.757-03:00¿Cómo instalo Quake 3 Arena en Ubuntu?<p style="text-align: center;"><i>En su Los vendepatria, Juan Perón analiza la vertiente insurreccional del Movimiento Nacional Justicialista y expone <b>cómo instalar Quake III Arena en Ubuntu</b>. </i><br /></p><p>(...) <br /></p><p>El pueblo luchará por una solución permanente y no para salir del paso, mediante un subterfugio político. Cualquiera otra solución llevará siempre a males mayores para la República. Si un gobierno fraudulento surgiera de una pseudo-elección, estaría respaldado por una ínfima minoría de los ciudadanos. Cuándo el Pueblo pudiera accionar libremente, ¿cuánto duraría ese gobierno? Por el momento no hay otra solución que <b>la lucha por los medios que el Pueblo tiene</b>, caiga quien caiga y cueste lo que cueste. A través de esta solución coinciden los intereses del Pueblo, las necesidades de la Nación y el estado anímico de las masas y, cuando estas tres circunstancias coinciden, no hay poder humano que pueda torcer el curso de los acontecimientos. Será dentro de poco o será dentro de mucho, pero será irremisiblemente.<br /><br />Cuando el odio y el deseo de venganza que estos insensatos han provocado en las masas salgan a la calle convertidos en fuerza motriz, no habrá tampoco poder que pueda evitar lo irreparable que se está preparando mediante la siembra del odio. Mientras la dictadura se descompone, el peronismo se compone. El ideal que animó a las masas obreras y peronistas ha dado continuidad en el esfuerzo pero no le ha dado intensidad porque, en la lucha, <b>esa intensidad sólo la puede dar el odio</b>. Nuestro defecto ha sido la falta de odio, pero todo ha variado hoy porque la tiranía, con sus procedimientos y enormidades, no lo ha dado por toneladas. Estamos listos para iniciar la grande y definitiva etapa de la consolidación Justicialista. Mientras nuestro movimiento se encuentre excluido de las grandes decisiones, no tenemos otro remedio que seguir accionando tras <b>una solución por la violencia</b>. <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7WPWLaYFjFRmzooBExBVbfHIAPlLCOMe5w6MB2iiTrGkd_1Z-ha5nuRZspq8tQT-RTlwAJyMun8xiphhhqKEl2k0DrbOgtiDrzN4osagsbUgCjcqOfwP_RVWnuA6eEwwZZbzljvhPakzxj6kytUMAHNJYhxM_SS9-IWr6voH9lqifaz_NGNsOZC8-mCLu/s905/puerta%20de%20hierro%202.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="608" data-original-width="905" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7WPWLaYFjFRmzooBExBVbfHIAPlLCOMe5w6MB2iiTrGkd_1Z-ha5nuRZspq8tQT-RTlwAJyMun8xiphhhqKEl2k0DrbOgtiDrzN4osagsbUgCjcqOfwP_RVWnuA6eEwwZZbzljvhPakzxj6kytUMAHNJYhxM_SS9-IWr6voH9lqifaz_NGNsOZC8-mCLu/s320/puerta%20de%20hierro%202.jpg" width="320" /></a></div>Naturalmente, esto es fácil organizarlo desde Puerta de Hierro. Podremos simularlo en uno de los clásicos tiradores en primera persona en nuestro sistema GNU con Linux, lo que nos permitirá mantenernos con los reflejos afilados.<br /><p></p><p>Naturalmente uno de los principales es el clásico <b>Quake 3 Arena</b>, descendiente del violento <i>Quake</i> de ID $oftware. El código base de su motor gráfico ha sido liberado, no así los contenidos registrados. Todo esto podremos instalarlo en nuestro sistema abriendo una terminal con <b><i>Ctrl+Alt+t</i></b> e ingresando los siguientes comandos de organización:<br /></p><p><b>sudo apt install quake3 game-data-packager ;<br />game-data-packager quake3 ;<br />sudo dpkg -i ~/quake3-demo-data_68_all.deb</b></p><p></p><p>Esto nos cargará los niveles demo de la primer parte liberada de la historia que
originalmente venían con la versión shareware (una campaña tipo bootcamp básica y cuatro niveles). Una vez armada la paquetería, podremos iniciar el juego desde <b><i>Aplicaciones / Juegos / Quake 3 Arena</i></b>. <br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlkRwyktRqqD_XvWjQmoj6iHnCPrZzDuAWWT3uuPM51EftQmS9Iw2L97p1eWJ0vIx-EQb6_eyLJEd5go9Iuj7IOIcY9goAuYG0qCPgq65UX-phJsnWEmprlxkAylc9l3uuaE5BrI05PQg_A4u6w-X3nKskLXBxiP1KDeP7yB8lpJXaDXttLbEt9iQFkvLS/s642/Captura%20de%20pantalla%20-2023-12-30%2023-06-17.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="642" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlkRwyktRqqD_XvWjQmoj6iHnCPrZzDuAWWT3uuPM51EftQmS9Iw2L97p1eWJ0vIx-EQb6_eyLJEd5go9Iuj7IOIcY9goAuYG0qCPgq65UX-phJsnWEmprlxkAylc9l3uuaE5BrI05PQg_A4u6w-X3nKskLXBxiP1KDeP7yB8lpJXaDXttLbEt9iQFkvLS/s320/Captura%20de%20pantalla%20-2023-12-30%2023-06-17.png" width="320" /></a></div><p></p><p></p><p>Existen cinco niveles de dificultad para cada uno de los mapas de un solo jugador. Esto permite un juego moderadamente sencillo en sus niveles bajos. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhukp0aaZ25GPvXg8gJhaepao0VfAWvq9Z4rMBMJC7Ydo_DKcd_BIWq3OlmySU2jMeQlG6LnGZ3fkmWeQW76QBkGcV7zINGdkVy_YL1b8Boi6zay3hoD0Xl_QkWL-jRx8SFIt33ZNhriiTyKwgcVL-Cjqvv0rTatxcCDY-l1W3k1cBEDlLhlWbEV7qvnFdE/s641/quake3%20arena.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="641" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhukp0aaZ25GPvXg8gJhaepao0VfAWvq9Z4rMBMJC7Ydo_DKcd_BIWq3OlmySU2jMeQlG6LnGZ3fkmWeQW76QBkGcV7zINGdkVy_YL1b8Boi6zay3hoD0Xl_QkWL-jRx8SFIt33ZNhriiTyKwgcVL-Cjqvv0rTatxcCDY-l1W3k1cBEDlLhlWbEV7qvnFdE/s320/quake3%20arena.png" width="320" /></a></div><p></p><p>También podremos combatir en multijugador en una red local a lo largo de 4 niveles (incluso hasta contra 4 <i>bots</i>). En caso de querer desafiar a otros jugadores y bots en niveles multijugador adicionales, habremos de activar la opción de <i>autodownload</i>, y aguardar la descarga de los niveles desde el servidor remoto (lo cual suele llevar algunos segundos/minutos antes de cada partida). </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr_Ks4e5RuuXBR-zyS5AVkJghTwVFqqNvd2UwWtfspM7EAFxulZNH5vzAAX34NseHclX38sEEVEEOhc96Q7VuOl_LwxFa3Qx9l5ghWRKphpTGImdHnWk9qBdD5kQaxquOYGi3PsCS_3o_RpGCCr2V3YdQrY6AdCt6Hid-6MucwLQGeIDCxB4OJSvsTI84Z/s1920/quake%203%20arena%20ubuntu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr_Ks4e5RuuXBR-zyS5AVkJghTwVFqqNvd2UwWtfspM7EAFxulZNH5vzAAX34NseHclX38sEEVEEOhc96Q7VuOl_LwxFa3Qx9l5ghWRKphpTGImdHnWk9qBdD5kQaxquOYGi3PsCS_3o_RpGCCr2V3YdQrY6AdCt6Hid-6MucwLQGeIDCxB4OJSvsTI84Z/s320/quake%203%20arena%20ubuntu.png" width="320" /></a></div><br />O bien, podremos digitar la descarga de una <b>versión privilegiada con todos los 486MB</b> de mapas adicionales, ingresando en nuestra terminal los siguientes comandos de organización:<p></p><p><b>cd /tmp ;<br />wget https://cybercdn.cyberdelia.com.ar/gamez/quake3-data_49.1_all.deb ;<br />sudo dpkg -i quake3-data_49.1_all.deb ;</b></p><p>Con esto en ristra, esto podremos jugar en multijugador a través de internet sin tantos problemas. El arsenal posible para llevar a cabo la destrucción del enemigo a lo largo de sus más numerosos niveles es el siguiente:<br /></p><ul class="fix-media-list-overlap"><li class="level1"><div class="li"> Gauntlet (puño de ataque)</div>
</li><li class="level1"><div class="li"> Ametralladora</div>
</li><li class="level1"><div class="li"> Escopeta</div>
</li><li class="level1"><div class="li"> Lanzagranadas</div>
</li><li class="level1"><div class="li"> Lanzacohetes</div>
</li><li class="level1"><div class="li"> Lanzarrayos</div>
</li><li class="level1"><div class="li"> Acelerador de Proyectiles (railgun)</div>
</li><li class="level1"><div class="li"> Arma de Plasma</div>
</li><li class="level1"><div class="li"> BFG10K (Acelerador de Masa)</div>
</li></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm8fNudykUBjUPHUfwHzI9NfuPlbQASsj59u4Gn7viyp1kqtrh5cCbc5HbXUAYwbV1evDTusv1pXpYnyQ-kdkxmeY37gINnx2-01xPYHvGsJblN2IIV4TgTw6zcXwHm3lnngkQ7nPNx3UvWokWME1qH8MQY9NeFru4liHNiFGedDhbcUdul0ZaHcTO9b9e/s642/Captura%20de%20pantalla%20-2024-01-01%2015-38-17.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="642" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm8fNudykUBjUPHUfwHzI9NfuPlbQASsj59u4Gn7viyp1kqtrh5cCbc5HbXUAYwbV1evDTusv1pXpYnyQ-kdkxmeY37gINnx2-01xPYHvGsJblN2IIV4TgTw6zcXwHm3lnngkQ7nPNx3UvWokWME1qH8MQY9NeFru4liHNiFGedDhbcUdul0ZaHcTO9b9e/s320/Captura%20de%20pantalla%20-2024-01-01%2015-38-17.png" width="320" /></a></div><p></p><p>El sistema multijugador por Internet cuenta con no menos de ocho centenares de salas incorporadas, señal de la alta popularidad con que goza el Movimiento. No será extraño incorporar servidores compañeros, mediante la opción <b><i>Multiplayer / Specify</i></b>. Por ejemplo:<br /></p><p>cyberdelia.com.ar, puerto 27960 (Todos contra todos)<br />cyberdelia.com.ar, puerto 27961 (Todos contra todos, con bots)</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_7woEa7X6XlQGsfFnxTN3rFoT-8BOSL3xXOeZ7SS8lqPXcTbVNxKCqVF5NBk4eu_dBRfy2uLNxUE1odxi_Awvp0SOTohj9FkwRKOtMk2IJ508_60uNL25vhzsr3TOuMT3ocVkEpdMKaypzLpaSMKh35SlhraMkXFLkGKZJ4groq1C54Wh64ilabnysaRf/s1408/specify%20server.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="922" data-original-width="1408" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_7woEa7X6XlQGsfFnxTN3rFoT-8BOSL3xXOeZ7SS8lqPXcTbVNxKCqVF5NBk4eu_dBRfy2uLNxUE1odxi_Awvp0SOTohj9FkwRKOtMk2IJ508_60uNL25vhzsr3TOuMT3ocVkEpdMKaypzLpaSMKh35SlhraMkXFLkGKZJ4groq1C54Wh64ilabnysaRf/s320/specify%20server.png" width="320" /></a></div><br />Si queremos cargar la notable expansión oficial <b>Quake 3 Team Arena</b>, que nos permite jugar una historia diseñada por Activi$ion. Esta abarca <b>hasta cinco equipos distintos</b>, incorpora tres nuevas armas y niveles multijugador ajustados para estos desafíos en red. Lo importante sin embargo es la incorporación de nuevas modalidades de juego por equipo (capturar bandera, deathmatch por equipos con o sin respawn, etc). Podremos instalarlo en nuestro sistema GNU con Linux mediante el siguiente comando de organización:<br /><p></p><p><b>wget https://cybercdn.cyberdelia.com.ar/gamez/quake3-team-arena-data_49.1_all.deb ;<br />sudo dpkg -i quake3-team-arena-data_49.1_all.deb ;</b></p><div class="separator" style="clear: both; text-align: center;"><b><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYRQSURkbWfzYMVWQVECHjtLPnOsOr6w5UJPR291fV4fvX1IDFFUC6Kki3QhksyMNfrcqRw7__efLSrGH1yHna5JaTP0hVV8_P-l6J-FQAMPcAOwBnw1lgBxFHmdVWEUkgs4hlHi4nYTwYWINPRT6N4ZgtPGS6pcf_fqPaAWlQ2woRbcZweJIcBDmM1ejS/s640/Captura%20de%20pantalla%20-2024-01-01%2015-38-52.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="640" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYRQSURkbWfzYMVWQVECHjtLPnOsOr6w5UJPR291fV4fvX1IDFFUC6Kki3QhksyMNfrcqRw7__efLSrGH1yHna5JaTP0hVV8_P-l6J-FQAMPcAOwBnw1lgBxFHmdVWEUkgs4hlHi4nYTwYWINPRT6N4ZgtPGS6pcf_fqPaAWlQ2woRbcZweJIcBDmM1ejS/s320/Captura%20de%20pantalla%20-2024-01-01%2015-38-52.png" width="320" /></a></b></div><p></p><p>Naturalmente, debemos activar el Mod en el menú principal antes de jugar en esta modalidad, o bien podremos recurrir a un lanzador específico <b><i>Aplicaciones / Juegos / Quake 3 Team Arena</i></b>.</p><p>Indudablemente, el mantenimiento de una cerrada y absoluta intransigencia con firme voluntad de vencer e inquebrantable decisión de llevar la lucha adelante, será el único secreto del éxito perseguido. El Pueblo no puede ser vencido ni aún por las fuerzas armadas si se decide a poner en acción su extraordinarios poderes naturales, y si los afila en Quake 3 Arena. El Movimiento Peronista ha demostrado en tres elecciones inobjetables que contaba con el setenta por ciento del electorado argentino; hoy, no sólo no ha disminuído sino que ha aumentado su predicamento popular porque el desempeño de la dictadura ha sido tan desastroso que, por contraste, ha hecho resaltar las excelencias del Gobierno Justicialista. Y no digamos con este entrenador de lucha callejera en primera persona...<br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-86450371934334189372023-12-19T18:41:00.004-03:002023-12-19T18:43:10.914-03:00¿Cómo instalo en plugin sintetizador Vaporizer2 en Ubuntu?<div class="prodbodycon"><p style="text-align: center;"><i>No era extraño que en las visitas estudiantiles a Casa de Gobierno, Juan Perón agasajara a los pequeños con software libre, enseñándoles a <b>instalar el plugin Vaporizer2 en Ubuntu</b>.</i><br /></p><p>¡Mis queridos descamisaditos!</p><p>Existen épocas que nos engalanan, permitiéndonos proveer aquello que merecemos por justo derecho. Esta es una de ellas, donde la risa de los niños es música que hemos sintetizar para Felicidad de un Pueblo.</p><p>Nuestra Doctrina consagra la necesidad de la Justicia Social, y el Software Libre es justicia social en la CPU. Por eso es he enseñado ya <a href="https://ubuntuperonista.blogspot.com/2019/04/como-instalo-efectos-e-instrumentos-vst.html">como instalar instrumentos virtuales en Ubuntu</a>. Nunca es suficiente saciar el hambre y restañar heridas, y cada paso que damos en la senda de la Liberación nos acerca más al ideal magnánimo que nos ha consagrado.</p><p>Queridos niños, hoy podrán llevarse a casa para disfrutar con sus amiguitos una copia modificable de un instrumento musical virtual de potencia: el <b>Vaporizer2</b>. Se trata un programa liberado bajo GPLv3, y como tal - a pesar de estar inicialmente proyectado de manera privativa por la VAST Dynamics - se dignifica hoy sirviendo al Pueblo en un formato LV2 compatible con nuestro GNU con Linux.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5dc-c66EW0X2PTAkMdXj1PlBb6zimd30BbSlrXWUf5LTxTlC3942fPlkTZ63A8_VgKebWy3c6pPi6Izi-bYa-JRlIi0RtynTHsoQQYOG7Bu0qj9hq3zJlfoZabHHFH9lb00ESOhyphenhyphenrnJopd6340i1VIg22hSsrJkzezcmu01TjCZS0HrXaJ9TJ9O_j_MCh/s489/per%C3%B3n%20con%20nenes.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="489" data-original-width="306" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5dc-c66EW0X2PTAkMdXj1PlBb6zimd30BbSlrXWUf5LTxTlC3942fPlkTZ63A8_VgKebWy3c6pPi6Izi-bYa-JRlIi0RtynTHsoQQYOG7Bu0qj9hq3zJlfoZabHHFH9lb00ESOhyphenhyphenrnJopd6340i1VIg22hSsrJkzezcmu01TjCZS0HrXaJ9TJ9O_j_MCh/s320/per%C3%B3n%20con%20nenes.png" width="200" /></a></div><p style="text-align: left;"></p></div><p class="prodbodycon" style="text-align: left;"></p><p class="prodbodycon" style="text-align: left;">A pesar de su gratuidad, es tan poderoso como la CGT en la que está afiliado papi, aunque su uso de CPU es contenido, incluso al disparar más de 1.000 osciladores virtualizados. Es que se trata de un instrumento virtual híbrido, que cuenta con <b>síntesis aditiva,
sustractiva y de tabla de ondas</b>. Como resultado, podremos utilizarlo
para generar todo tipo de sonidos electrónicos.</p><p><b>Existen dos maneras de instalar Vaporizer2 en Ubuntu</b>. Como Conductor me considero un maestro, por lo que os instruiré recomendando el camino más sencillo, que consiste en usar el paquete precompilado instalable <b>vaporizer-lv2</b> de los amiguitos de OpenSuse.org <a href="https://software.opensuse.org/download.html?project=multimedia%3Aproaudio&package=vaporizer2-lv2">aquí, buscando</a> aquél que corresponda a nuestra distribución. Por ejemplo, en mi caso disfruto de Ubuntu <span style="color: #38761d;">22.04LTS</span> por lo que abro una terminal con<b><i> Ctrl+Alt+T</i></b> y procedo a instalar todo pegando allí el siguiente bloque de Comandos de Organización y dándole Enter:<br /></p><p><b>mkdir /tmp/vaporizer2/ ;<br />cd /tmp/vaporizer2/ ;<br /> wget https://download.opensuse.org/repositories/multimedia:/proaudio/xUbuntu_22.04/amd64/<span style="color: #38761d;">vaporizer2-lv2_3.4.3+git.6.88bd029-1_amd64.deb</span> ;<br />sudo dpkg -i <span style="color: #38761d;">vaporizer2-lv2_3.4.3+git.6.88bd029-1_amd64</span></b></p><p>Asimismo, no viene mal instalar <b>recursos adicionales</b> que convierten al Vaporizer2 en una oda a la facilidad. Se trata de <b>los presets de fábrica y más de 440 presets adicionales </b>
elaborados por el amable Thomas Trupiano (síntesis de bajos,
campanas, percusiones, órganos, sonidos picados, tines, camas sonoras,
puertas, voces, y gran cantidad de pads). La cartita a la Fundación Eva Perón para pedirlos se envía simplemente pegando en la terminal este bloque de comandos:<br /></p><p><b>mkdir /tmp/vaporizer2/presets/ /tmp/vaporizer2/manual/ ;<br />cd /tmp/manual ; wget https://vast-dynamics.com/sites/default/files/downloads/Vaporizer2Manual.pdf<br />cd /tmp/vaporizer2/presets/ ;<br /> wget https://vast-dynamics.com/sites/default/files/downloads/Factory%20Presets.zip https://vast-dynamics.com/sites/default/files/downloads/Preset%20Bank%20by%20Thomas%20Trupiano.zip ; <br />wget https://vast-dynamics.com/sites/default/files/downloads/Wavetables%20Vaporizer2%20by%20PietW.zip ;<br />unzip 'Wavetables Vaporizer2 by PietW.zip' ;<br />unzip 'Factory Presets.zip' ;<br />unzip 'Preset Bank by Thomas Trupiano.zip'<br />mkdir ~/Documentos/Vaporizer2/ ;<br />mkdir ~/Documentos/Vaporizer2/Presets/ ;<br />mv /tmp/vaporizer2/manual/ </b><b>~/Documentos/Vaporizer2/ ;</b><br /><b>mv /tmp/vaporizer2/presets/Analog/ ~/Documentos/Vaporizer2/Tables/ ;<br />mv /tmp/vaporizer2/presets/Digital/ ~/Documentos/Vaporizer2/Tables/ ;<br />mv /tmp/vaporizer2/presets/Presets/* ~/Documentos/Vaporizer2/Presets ;<br />mv /tmp/vaporizer2/presets/Trupiano/Presets/ ~/Documentos/Vaporizer2/Presets/Trupiano</b><br /></p><p>Sin embargo, papá y mamá podrían querer tomarse el trabajo de compilar todo localmente. Hemos de notar que en tal caso todo el andamiaje se colgaría del arbolito de archivos en <i>/usr/<span style="color: #0b5394;">local</span>/lib/lv2/VASTvaporizer2.lv2/ </i>en lugar de hacerlo en<i> </i><i>/usr/lib/lv2/VASTvaporizer2.lv2/</i> como en el caso anterior:</p><p><b>cd /tmp<br />git clone https://github.com/VASTDynamics/Vaporizer2.git ;<br />cd /tmp/Vaporiser2 ;<br />git submodule update --init --recursive ;<br />./build_linux.sh</b></p><p>Cualquiera sea el proceder, conforme hayamos instalado el plugin LV2 en nuestro GNU, podremos lanzarlo desde nuestra DAW favorita (<a href="https://ubuntuperonista.blogspot.com/2019/01/como-puedo-producir-audio-en-qtractor.html">qTractor</a> en mi caso).</p><p>La ventana del Vaporizer2 cuenta con cuatro secciones discernibles. <br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitfG0QhNa-jAGeXUhpsa8jqApCFAs6ygBeS-7eWMT5btPwypt6hUvb_C31zu1Xm0T-XynzroFx6SLoLqZzCfbXA3w5jbwFQ5g8BmVq30TqTu6YIlvFx10jWaSE_qNqbWJh5p95rt-dSirCD3HjPGqZTVK3lfLKfqPP9RbyHOLHvt2V8-k3XUEk9qifD9OE/s1423/vaporizer2%20synth.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="855" data-original-width="1423" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitfG0QhNa-jAGeXUhpsa8jqApCFAs6ygBeS-7eWMT5btPwypt6hUvb_C31zu1Xm0T-XynzroFx6SLoLqZzCfbXA3w5jbwFQ5g8BmVq30TqTu6YIlvFx10jWaSE_qNqbWJh5p95rt-dSirCD3HjPGqZTVK3lfLKfqPP9RbyHOLHvt2V8-k3XUEk9qifD9OE/w400-h240/vaporizer2%20synth.png" width="400" /></a></div><p>En el <b>cabezal</b> encotramos el logotipo, que lejos de ser un ocupador inútil de espacio, nos permite regular el nivel de zoom para nuestra comodidad (hasta 4K). También contamos allí con el selector de presets, y la sección Master del sonido estéreo (con volúmen, ganancia, sincronización con la DAW y tono, y selector de polifonía).</p><p>En la <b>parte inferior</b> daremos con un piano MIDI interactivo, con ruedas de pitchbed y modulación. Aquí también podremos elegir las opciones de portamento para los deslizamientos tonal. Naturalmente, si contamos con un <b>controlador MIDI</b> o teclado adosado a
nuestro sistema, podremos ejecutar con sólo pulsarlo y este replicará lo hecho de forma gráfica. Pero también podríamos utilizar el teclado de la computadora para elaborar nuestros
acordes y melodías si esto es de nuestro agrado.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHt8TARWTZG3rz2iXDLOO7CvDKV0LLk4xe0g9Iqe6zolvAkTE6ogTnNhjtIswMagTQ1ZORN-VY6ioWH_bj0Z-BKtt2EWMZ92TQQG74R4iJX5jMyxNL_n65zwPQlWinQxc_r66TO0GG6gABkcBSom7LZWGbuYyt90Tssygof8OPEUNDN-T1zWoFk36VAu-H/s1453/UI.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="597" data-original-width="1453" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHt8TARWTZG3rz2iXDLOO7CvDKV0LLk4xe0g9Iqe6zolvAkTE6ogTnNhjtIswMagTQ1ZORN-VY6ioWH_bj0Z-BKtt2EWMZ92TQQG74R4iJX5jMyxNL_n65zwPQlWinQxc_r66TO0GG6gABkcBSom7LZWGbuYyt90Tssygof8OPEUNDN-T1zWoFk36VAu-H/w640-h262/UI.png" width="640" /></a></div>En el cuadrante derecho veremos acceso a los controles de cuatro bancos de osciladores conmutables, todos ellos filtrables, y un banco de efectos de tres cadenas y una <b>sección de generación de ruido</b> voluble (rosa, blanco y café). <p></p><p>Es importante destacar que para mayor control, todos los controles rotativos y deslizables de la interfaz gráfica cuentan con la funcionalidad <b>Learn MIDI</b>, lo
que permite asignar funciones MIDI como perillas o botones a las
acciones de la interfaz de la ventana. Para ello hacemos clic con el
botón izquierdo del ratón a la perilla que queremos programar, y en el
menú contextual elegimos "MIDI Learn". Luego movemos el deslizador o
perilla que queremos usar y se asignará automáticamente. También
podremos eliminar la asignación.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpBbYzn87gQF173eBMWmHHKGVKRS0cUM6uLIzaIjU3izXDjJwcAB_5wPdtRAvfYDvhQLrRs5GPhnAU9KpKOv7PZmTuw71HCddEHH3u6u9zEtIrt3L_Nx_aFcK4hsSJdkdof55iUeGjvA2NOhoAHI7V6mHtKi6qCTbD5UeOWIIWDaJ3Ej_m5rRhk1p6D4_W/s1422/vaporizer2%20wavetable.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="1422" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpBbYzn87gQF173eBMWmHHKGVKRS0cUM6uLIzaIjU3izXDjJwcAB_5wPdtRAvfYDvhQLrRs5GPhnAU9KpKOv7PZmTuw71HCddEHH3u6u9zEtIrt3L_Nx_aFcK4hsSJdkdof55iUeGjvA2NOhoAHI7V6mHtKi6qCTbD5UeOWIIWDaJ3Ej_m5rRhk1p6D4_W/s320/vaporizer2%20wavetable.png" width="320" /></a></div>Al iniciar nos encontraremos en la solapa <i>WT Editor</i>, el <b>editor de tabla de ondas</b>, corazón del Vaporizer2. Este sintetizador por tabla de ondas destaca por su efecto antialiasing, y su tratamiento polifónico y en tiempo real.<br /><p></p><p>Sus posibilidades de edición son bastante complejas, y se basan en alterar muestras de audio (<i>samples</i>) de formato .ogg, .wav y .mp3. Estos se afectan según distintos parámetros, lográndose efectos ambientales espectaculares.</p><p>La delimitación de los samples también puede programarse según sus puntos de bucle, inicio, cruce de cero, modulación y registro tonal, e incluyen función de trazado a mano alzada o mediante curvas bezier, con ajuste a la grilla, etc. </p><p>La modificación del motor de este banco puede seguir el camino de la Frecuencia Modulada aditiva (con edición armónica en tiempo real), Modulación de Pulso de Onda, o formantes filtradas, entre otras posibilidades expresivas.</p><p></p><p></p><i><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbbfhoDu176TE8b3Go2Fg3HxJK6NtQBWgnYroUIWfORA0TLCNuBmwKBTLTLsUeows_CiGjTfyOSLijiuwpYT2YhPNvnQCuh-4_guBm4P8qxFSigzGOQChthyphenhyphen7k6h04mmLYfGfCU01ZVA70MKNjUZkD42eMPj5CiJNxSGGYfm99jyGsRfS8NByezCCFT1Vj/s1422/matrix.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="1422" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbbfhoDu176TE8b3Go2Fg3HxJK6NtQBWgnYroUIWfORA0TLCNuBmwKBTLTLsUeows_CiGjTfyOSLijiuwpYT2YhPNvnQCuh-4_guBm4P8qxFSigzGOQChthyphenhyphen7k6h04mmLYfGfCU01ZVA70MKNjUZkD42eMPj5CiJNxSGGYfm99jyGsRfS8NByezCCFT1Vj/s320/matrix.png" width="320" /></a></div></i>Al activar la solapa <i>Matrix</i> nos encontraremos con el <b>Sistema de ruteo de audio</b> innovador para todos los generadores de
sonido, filtros y cadenas de efectos activos. Esta dispone de <b>25 fuentes de modulación</b> que incluyen clave de la pista,
deriva al azar, y cuatro perillas de macros personalizables, y van enrutados a unos <b>220 destinos de modulación</b>, paramétricos, los que conforman combinaciones casi ilimitadas. Incluye un presentador
gráfico para las curvas de modulación resultantes.<br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_qDle3CCCtB31koPMf0x_Me3Lb9GdWWb_kDLP-n9dwKuYUL1EIv0evxdlQRtrlNZrx21HG9r5k5sloSHmgJw_gPALPLdJEaTl_VkszZORSlteFrr2RpPu2Qqu9mI8e1rdhYtLIM7YpCkF3X_HVcHBEp9PNntybna9MJa6Q_l_E0MNUYBvK1icFpBvmrpI/s1422/filtros.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="1422" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_qDle3CCCtB31koPMf0x_Me3Lb9GdWWb_kDLP-n9dwKuYUL1EIv0evxdlQRtrlNZrx21HG9r5k5sloSHmgJw_gPALPLdJEaTl_VkszZORSlteFrr2RpPu2Qqu9mI8e1rdhYtLIM7YpCkF3X_HVcHBEp9PNntybna9MJa6Q_l_E0MNUYBvK1icFpBvmrpI/s320/filtros.png" width="320" /></a></div><p>La solapa <i>Filter</i> nos da acceso al <b>banco de filtrado</b> con mas de 30 tipos de filtros, paso-alto, pasabanda, filtro muesca, filtro peine, peraltados programables, etc, todos ellos con control de resonancia y presentación gráfica del filtrado en tiempo real. Las curvas de filtrado peraltadas para bajos profundos.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnP4zXRnOHK0WXuWgdgBu8-LnJ_Z9xzdiGb3W-9a45IQ57vkMcIe_0YI6t0pjBzt40beuC_qqL04zcZ1SXnokyMlSHQ2ULwFRnDfNrocHYGorbSnbxmoEJz8P-izVxDrWOlgaLsJteBi8h8_RX7biWmAjHFmiDoub7YGoVCYRgGwqnOyet-UYvT1via6u6/s1422/lfo%20mseg%20env.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="1422" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnP4zXRnOHK0WXuWgdgBu8-LnJ_Z9xzdiGb3W-9a45IQ57vkMcIe_0YI6t0pjBzt40beuC_qqL04zcZ1SXnokyMlSHQ2ULwFRnDfNrocHYGorbSnbxmoEJz8P-izVxDrWOlgaLsJteBi8h8_RX7biWmAjHFmiDoub7YGoVCYRgGwqnOyet-UYvT1via6u6/s320/lfo%20mseg%20env.png" width="320" /></a></div><p>La solapa <i>LFO & MSEG</i> nos permite controlar cinco <b>bancos de Osciladores de Baja Frecuencia</b>
apilables por voz (80 LFOs en total), con mapa y fase tanto por voz como global (puede sincronizarse con la DAW). Esto lo hace a través de envolvente
multietapa (MSEG).</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiclEwrLMxeOnYEJr8WPdg5ySk5OD-4qknOeecQKAdRSHMeXbuqjE4kiiNZDmikrpUgxovOvlUPH6jlA5cN1RpzbxtmeilgYESqXOprYrtVMDJzD4_Ma3-tNDl79IN6OvDfxeFaABF54U4o41bt-0lnpP_m6gitBptMliwz7PxcuEN6U8ZatjPPkPbQZkG8/s1422/fx.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="1422" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiclEwrLMxeOnYEJr8WPdg5ySk5OD-4qknOeecQKAdRSHMeXbuqjE4kiiNZDmikrpUgxovOvlUPH6jlA5cN1RpzbxtmeilgYESqXOprYrtVMDJzD4_Ma3-tNDl79IN6OvDfxeFaABF54U4o41bt-0lnpP_m6gitBptMliwz7PxcuEN6U8ZatjPPkPbQZkG8/s320/fx.png" width="320" /></a></div>La solapa <i>FX</i> ofrece el control de <b>tres cadenas de efectos</b> que incluyen sobremuestreo y mono cutoff para preservar unos bajos limpios. Nos permiten administrar mas
de 11 efectos paramétricos activables y reordenables: reverberación, retraso, coro, flanger,
ecualización, bitcrush, compresor, limitador, phaser, filtro peine,
conformador de ondas, entre otros<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmGpZ3Kg_1XgSHmpGb7x39tJx3bKTLc9MlNEuJdF_O0vCWNN2GecAB0C6Y8HWKfsO3L_ia8YgBzxn3P3CVC9eJj0q7wtvbk8TXHkLBViscZfPtYaSPpGlE2T1HOIILOw0OCXFlepRlP9dFgsB5cltEdbTCVo-mBeXzYeYQJwzJvUxIhhBzs1qqdv6uVd0c/s1422/arp.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="1422" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmGpZ3Kg_1XgSHmpGb7x39tJx3bKTLc9MlNEuJdF_O0vCWNN2GecAB0C6Y8HWKfsO3L_ia8YgBzxn3P3CVC9eJj0q7wtvbk8TXHkLBViscZfPtYaSPpGlE2T1HOIILOw0OCXFlepRlP9dFgsB5cltEdbTCVo-mBeXzYeYQJwzJvUxIhhBzs1qqdv6uVd0c/s320/arp.png" width="320" /></a></div>La solapa <i>ARP</i> nos presenta el <b>arpeggiador</b> <b>programable</b>. Este permite definir notas o glisandos multipaso, ya sea de forma automática, programable, o el arpeggiador acompasado que sigue nuestros acordes y melodías.<p></p><p>La solapa <i>Preset</i> nos sirve para <b>configurar el Vaporizer2</b>. Podremos definir localización de las carpetas de Presets (normalmente, esta es <i>~/Documentos/Vaporizer/Presets)</i>. Asimismo, nos deja escoger entre tres tamaño de tipografía y cuatro skins diferentes.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKf8M9pBn8-NP_JWw2SGNi6oq1iSaRXub6jziOXu_fDqOjvO3sW6e-uweEkKDWVzfGnzUB4SlYBmfl_JoJ5SiKDMnDS__1w9CWlg9-_LNBt9W2-zh0E_jPH9xJfLkN-1flKfcw1JT3Gn6njUmiJyWlWAcbe4-1Tohh3bpg8d6ake3B_StfonPAMQBML7ww/s1422/skin%20vaporizer2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="1422" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKf8M9pBn8-NP_JWw2SGNi6oq1iSaRXub6jziOXu_fDqOjvO3sW6e-uweEkKDWVzfGnzUB4SlYBmfl_JoJ5SiKDMnDS__1w9CWlg9-_LNBt9W2-zh0E_jPH9xJfLkN-1flKfcw1JT3Gn6njUmiJyWlWAcbe4-1Tohh3bpg8d6ake3B_StfonPAMQBML7ww/w400-h240/skin%20vaporizer2.png" width="400" /></a></div><p>En la <b>biblioteca de sonidos</b> podremos encontrar los presets
opcionales de fábrica rápidamente gracias a sus distintas opciones de
clasificación. Además, gracias a la Fundación Eva Perón, contaremos con
los presets de en formato .wav de Thomas Trupiano, que incluye mas de 780
sonidos para el sintetizador de tabla de ondas, junto
con más de 450 presets de fábrica.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Lj_bXeQoBmwtOLe2IUENtO8DShAZRujT31P3y-7i7pzLPVGLP0DJXKStg0MvEAh0yrrfATu_faqPzB4gfGQ-CITV_BjVY5_4sBwCMca6JrJ6MXEXdgIdrZxVeW3ThJDKJseA7NWzsWL8khoPafWUN0BfdAco12GPswa33KOqoXQ4HyDu0FRhKNbTBxoS/s1423/presets.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="1423" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Lj_bXeQoBmwtOLe2IUENtO8DShAZRujT31P3y-7i7pzLPVGLP0DJXKStg0MvEAh0yrrfATu_faqPzB4gfGQ-CITV_BjVY5_4sBwCMca6JrJ6MXEXdgIdrZxVeW3ThJDKJseA7NWzsWL8khoPafWUN0BfdAco12GPswa33KOqoXQ4HyDu0FRhKNbTBxoS/s320/presets.png" width="320" /></a></div><p></p><p>El <a href="https://vast-dynamics.com/sites/default/files/downloads/Vaporizer2Manual.pdf">manual de Vaporizer2</a> (en inglés) es sumamente completo.</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-32855118488691272072023-12-14T13:18:00.006-03:002023-12-14T17:23:38.381-03:00¿Cómo instalo OwnCloud en Ubuntu?<p style="text-align: center;"><i>Durante el discurso del 19 de enero de 1948 concerniente a la inauguración del Tren de las Nubes, Juan Perón enseñó <b>cómo instalar OwnCloud en Ubuntu Server</b>.</i><br /></p><p>¡Estimados Señores!</p><p>Este augusto día inauguramos el ferrocarril Trasandino del Norte, que une las ciudades de Salta con la chilena de Antofagasta, como <b>Obra de Unión de los Pueblos</b>. En nuestras tierras pasa por Cerrillos, Rosario de Lerma, San Antonio de los Cobres, Salar de Pocitos, Toco-Toco, Caipe y Socompa, en un recorrido de 571 km del lado argentino, y cruzado al territorio hermano de Chile, las queridas localidades de Victoria, Palestina y Antofagasta, en los 331 kilómetros que tiene allí la traza. </p><p>Forman parte de su ánima 33 puentes de acero y 21 túneles con una longitud total de 3.234 metros. La altura máxima del ramal alcanza los 4.475 metros en el imponente macizo del Abra de Chorrillos, lo que le ha valido el cariñoso apelativo de "<b>Tren de las Nubes</b>",</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTnyHx6Eb0hNx5aqBkGOLBkjfi4J7KFPzJJuica4KL49i9LhZ-sdThFhtZO3kGLvJwnhri_WBjGa7rYEIdnOaaITx3jHSHjKe8QHf-hWlek_hCHWg2YhxhYtWNon7-Gt8Utqm4CwDT8_zUADkqhmv6l98qexItmqvLnsPQUqYzG6MqSNnetQWRBXDS6lIa/s320/277.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="220" data-original-width="320" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTnyHx6Eb0hNx5aqBkGOLBkjfi4J7KFPzJJuica4KL49i9LhZ-sdThFhtZO3kGLvJwnhri_WBjGa7rYEIdnOaaITx3jHSHjKe8QHf-hWlek_hCHWg2YhxhYtWNon7-Gt8Utqm4CwDT8_zUADkqhmv6l98qexItmqvLnsPQUqYzG6MqSNnetQWRBXDS6lIa/s1600/277.jpg" width="320" /></a></div><p></p><p>Siempre me han dicho que el Peronismo está en las nubes, e indudablemente que este nos inspira la concreción de una vía de los datos que hermane Pueblos: un troncal capaz de unir centros de datos propios controlados y conducidos por el Justicialismo. Es esto a lo que aspiramos.<br /></p><p>Sin embargo, cuando muchos se refieren a "la nube" no lo hacen para homenajear a este querido tren, sino que lo hacen para ocultar el hecho de hablar de un almacenamiento informático proporcionado en <b>una computadora ajena</b>, que sólo ofrece acceso limitado desde la red de datos Internet. </p><p>La premisa de que a estas máquinas es posible cargarle nuestro contenido digital a veces sin costo monetario, y que éste podría estar disponible para su descarga en múltiples dispositivos, podría parecer - a primera vista - sumamente beneficiosa. Contaríamos así con la dicha y comodidad de contar con la información digitalizada al alcance telemático sin necesidad de portar medios de almacenamiento de masa para suplir la demanda. Estos señores dicen que podríamos acceder a ellos a través de los enlaces de datos...<br /></p><p></p><p>Pues bien señores, es mi opinión que en estos menesteres, <b>el costo es lo de menos</b>: el hecho que la máquina sea ajena (y para peor, normalmente de una omnímoda corporación oligárquica) nos cuadra el más <b>grave riesgo </b>al que alguien pueda someterse sin llevar puesto un casco y un fusil. No podía ser de otra manera: <b>¡estas empresas lucran con los metadatos de tales archivos, a la par de reservarse su uso con fines inconfesables</b>!</p><p>Googl€, Amazon y Micro$oft son sólo algunas de las empresas que - de mano
de una opresión interesada - que ofrecen este tipo de soluciones bajo los
nombres de Googledriv€, AW$, y One$pace respectivamente. Sin embargo, estas<b> soluciones son prohibitivas ya que el contenido es sometido a inspección y no va cifrado de manera alguna</b>.<br /></p><p>La lucha de los hombres por la Liberación de su software es una que acarrea riesgos y es dificultosa, pero entrenándonos para suplir las verdaderas necesidades de la lid explica la manera de salir victoriosos. </p><p>En el caso de los servicios de almacenamiento en la nube, lo procedente <b>no es usar un servicio - por mas gratuito que sea - y mucho menos pagarlo</b> si es una empresa extranjera. <b>Lo ideal es montar nuestra propia nube con software libre</b>, de la misma forma en la que nacionalizamos los ferrocarriles.<br /></p><p>Para ello contamos con la <b>plataforma de alojamiento de archivos</b> <b>OwnCloud</b>, liberada bajo AGPLv3. Junto con el servicio de alojamiento propio - que podemos dar a los usuarios que queremos en medios de almacenamiento propios en nuestro servidor - también contaremos con las funcionalidades de ofimática que nos ofrece OnlyOffice. Este nos permitirá resguardo, cifrado opcional, visualización y edición - incluso colaborativa - de documentos de todo tipo.<br /></p><p>Desde el punto de vista de software, <b>OwnCloud requiere una instalación base de <a href="https://www.ubuntu.com/download/server">Ubuntu 22.04 Server</a> con SSH activado</b>, y una partición <i>/var</i> con el espacio de disco deseado (en mi caso, haré uso de unos 20 Terabytes). El directorio de OwnCloud se encotnrará en <i>/var/www/owncloud</i>. La versión de PHP debe ser al menos la 5, (por defecto en Ubuntu Server 20.04 se puede instalar PHP 7.4). Asimismo debemos contar con el <a class="page" href="https://doc.owncloud.com/server/next/admin_manual/installation/manual_installation/manual_installation_apache.html#multi-processing-module-mpm">Módulo de Multiprocesador (MPM)</a> correcto (debemos leer las notas <a class="page" href="https://doc.owncloud.com/server/next/admin_manual/installation/manual_installation/manual_installation_prerequisites.html#openssl-version">Versión de OpenSSL</a>, importantes cuando se planea usar encriptación).</p><p>En este caso haremos las preparaciones de de instalación en la máquina de servicio munida con Ubuntu Server con los servicios web Apache, de base de datos MariaDB y de programación PHP 7. <br /></p><p>Naturalmente, si contamos con un usuario común escalable en el servidor, debemos utilizar el comando <b>sudo su</b> e ingresar la contraseña de administrador correspondiente. </p>Primero introduciremos los comandos que configuren el servicio del nombre de dominio que va a tener la instalación de de OwnCloud, especialmente el nombre de dominio que queremos para la máquina:<br /><div class="sect1">
<div class="sectionbody">
<div class="sect2">
<h3 id="set-your-domain-name">Configurar el nombre de dominio<br /></h3>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">mi_dominio=<span class="hljs-string">"<span style="color: #0b5394;"><b>nube.peronismo.org</b></span>"</span>
<span class="hljs-built_in">echo</span> <span class="hljs-variable">$mi_dominio</span>
hostnamectl set-hostname <span class="hljs-variable" style="color: #0b5394;">$mi_dominio</span>
hostname -f</code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div></div></div></div><div class="sect2">
<h3 id="generate-strong-passwords">Generar contraseñas fuertes</h3><p id="generate-strong-passwords" style="text-align: left;">A continuación generamos las contraseñas seguras para el usuario administrador de OwnCloud y para el usuario de la base de datos SQL. Estas se resguardarán en <i>/etc/.sec_admin_pwd.txt</i> y <i>/etc/.sec_db_pwd.txt:</i><br /></p>
<div class="listingblock">
<div class="content"><b>sec_admin_pwd=$(openssl rand -base64 18)
;<br />echo $sec_admin_pwd > /etc/.sec_admin_pwd.txt ;</b></div><div class="content"><b>sec_db_pwd=$(openssl rand -base64 18)
;<br />echo $sec_db_pwd > /etc/.sec_db_pwd.txt</b><br /></div>
</div>
</div>
<div class="sect2">
<div class="paragraph">
<p>Acto seguido conviene aseguramos que todos los paquetes del servidor estén instalados y totalmente actualizados, a la vez que comprobamos que tenemos PHP a mano en el repositorio APT. Para hacer esto, seguimos las instrucciones siguientes:</p><p><b>apt update && apt upgrade -y </b><br /></p>
</div>
</div>
<h3 id="create-the-occ-helper-script"></h3>
<div class="paragraph">
<p>Debemos crear ahora un guion de ayuda que nos simplifique la tarea de ejecución de los <a class="page" href="https://doc.owncloud.com/server/next/admin_manual/configuration/server/occ_command.html">comandos occ</a> de OwnCloud. Esto lo haremos ingresando:<br /></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">FILE=<span class="hljs-string">"<span style="color: #38761d;">/usr/local/bin/occ</span>"</span>
<span class="hljs-built_in">cat</span> <<<span class="hljs-string">EOM >$FILE
#! /bin/bash
cd /var/www/owncloud
sudo -E -u www-data /usr/bin/php /var/www/owncloud/occ "\$@"
EOM</span></code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div><div class="paragraph">
<p>A este guion de OwnCloud llamado <i><span style="color: #38761d;">/usr/local/bin/occ</span></i> le otorgamos permisos de ejecución:</p><p><b>chmod +x <span style="color: #38761d;">$FILE </span></b><br /></p>
</div>
<p id="install-the-required-packages" style="text-align: left;"><span style="font-weight: normal;">Con las preparaciones listas, instalamos las dependencias necesarias para todo:</span></p><p id="install-the-required-packages" style="text-align: left;"><b>apt install -y apache2 libapache2-mod-php mariadb-server openssl redis-server wget php-imagick php-common php-curl php-gd php-gmp php-bcmath php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis php-ldap php-phpseclib </b><br /></p>
<h3 id="install-smbclient-php-module"></h3>
<div class="paragraph">
<p>Si bien es opcional, es sabido recomendar conectar nuestro servidor a unidades de almacenamiento externas de Window$ a través del protocolo Samba. Para ello habríamos de instalar el módulo <b>smbclient</b><b> php</b>. Aunque normalmente en el caso de las máquinas de escritorio con GNU con Linux no suele ser el caso, no es raro que otras unidades de almacenamiento y discos puedan accederse a través de la red, y en tal caso el cliente Samba por terminal nos vendría de perillas para que el servidor integre las mismas también a nuestra OwnCloud. Para ello primero instalamos sus dependencias:</p></div><div class="paragraph"><p><b>apt-get install -y libsmbclient-dev php-dev php-pear </b><br /></p>
</div>
<div class="paragraph">
<p>...y luego instalaríamos el módulo <i>smblclient php</i> por medio de <i>pecl</i>:</p><p><b>pecl channel-update pecl.php.net ;<br />mkdir -p /tmp/pear/cache ;<br />pecl install smbclient-stable ;<br />echo "extension=smbclient.so" > /etc/php/7.4/mods-available/smbclient.ini ;<br />phpenmod smbclient ;<br />systemctl restart apache2</b><br /></p>
</div>
<div class="paragraph">
<p>Revisamos entonces si fue activado de manera exitosa:</p><p><b>php -m | grep smbclient</b></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"></pre></div></div><div class="paragraph">
<p>El servidor nos debería devolver lo siguiente:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-plaintext hljs" data-lang="plaintext">libsmbclient
smbclient</code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div>
<h3 id="install-the-recommended-packages"></h3>
<div class="paragraph">
<p>...denunciando la activación de ambos módulos - ahora en más automática - toda vez que inicie el servicio.<br /></p><p>No viene mal instalar el herramental útil adicional, que sería necesario en caso de tener que revisar y depurar errores en el servidor. Lo haremos con:<br /></p><p><b>apt install -y unzip bzip2 rsync curl jq inetutils-ping ldap-utils smbclient </b><br /></p>
</div>
<h3 id="configure-apache">Configurar servidor web Apache</h3>
<div class="sect3">
<p id="create-a-virtual-host-configuration" style="text-align: left;"><span style="font-weight: normal;">Ya deberíamos contar con el servidor web Apache instalado en nuestro Ubuntu Server. Este nos daría el servicio a la web por intermedio de un entorno virtual de uso. Para que funcione aceitadamente junto a OwnCloud debemos configurarlo con ciertas especificaciones. </span></p><p id="create-a-virtual-host-configuration" style="text-align: left;"><span style="font-weight: normal;">Para ello creamos un fichero de configuración <i>/etc/apache2/sites-available/owncloud.conf</i> para el host virtual de OwnCloud: </span><br /></p>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-apache hljs" data-lang="apache"><span class="hljs-attribute">FILE</span>=<span class="hljs-string">"/etc/apache2/sites-available/owncloud.conf"</span>
<span class="hljs-attribute">cat</span> <<EOM >$FILE
<span class="hljs-section"><VirtualHost *<span class="hljs-number">:80</span>></span>
<span class="hljs-comment"># descomentar la línea siguiente si la variable fue configurada</span>
<span class="hljs-comment">#ServerName $mi_dominio</span>
<span class="hljs-attribute">DirectoryIndex</span> index.php index.html
<span class="hljs-attribute">DocumentRoot</span> /var/www/owncloud
<span class="hljs-section"><Directory /var/www/owncloud></span>
<span class="hljs-attribute">Options</span> +FollowSymlinks -Indexes
<span class="hljs-attribute">AllowOverride</span> <span class="hljs-literal">All</span>
<span class="hljs-attribute">Require</span> <span class="hljs-literal">all</span> granted
<span class="hljs-section"><IfModule mod_dav.c></span>
<span class="hljs-attribute">Dav</span> <span class="hljs-literal">off</span>
<span class="hljs-section"></IfModule></span>
<span class="hljs-attribute">SetEnv</span> HOME /var/www/owncloud
<span class="hljs-attribute">SetEnv</span> HTTP_HOME /var/www/owncloud
<span class="hljs-section"></Directory></span>
<span class="hljs-section"></VirtualHost></span>
<span class="hljs-attribute">EOM</span></code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div></div>
<p id="enable-the-virtual-host-configuration" style="text-align: left;"><span style="font-weight: normal;">Finalmente, activamos esta configuración de Host Virtual, mediante:</span> <br /></p><p id="enable-the-virtual-host-configuration" style="text-align: left;"><b>a2dissite 000-default<br />a2ensite owncloud.conf</b></p>
<h3 id="configure-the-database">Configurar la Base de Datos</h3>
<div class="admonitionblock important">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
<br /></td>
<td class="content"><span style="color: red;">Como en todo uso telemático, se recomienda ejecutar el comando <b>mysql_secure_installation</b> para asegurar la instalación de la base de datos SQL MariaDB y ponerle una </span><span style="color: #741b47;"><b>contraseña fuerte al usuario de la base de datos ("sec_db_pwd")</b></span><span style="color: red;">.
</span></td>
</tr>
</tbody></table>
</div>
<div class="paragraph">
<p>Nos aseguramos que el nivel de aislamiento de transacciones esté configurado, y el <i>performance_schema</i> esté activado.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-highlighted="yes" data-lang="bash">sed -i <span class="hljs-string">"/\[mysqld\]/atransaction-isolation = READ-COMMITTED\nperformance_schema = on"</span> /etc/mysql/mariadb.conf.d/50-server.cnf
<span class="hljs-built_in">systemctl</span> <span class="hljs-built_in">start</span> mariadb
<span class="hljs-built_in">mysql</span> -u root -e \
<span class="hljs-string">"CREATE DATABASE IF NOT EXISTS owncloud; \
CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY '<span class="hljs-variable">${<span style="color: #741b47;">sec_db_pwd</span>}</span>'; \
GRANT ALL PRIVILEGES ON *.* TO 'owncloud'@'localhost' WITH GRANT OPTION; \
FLUSH PRIVILEGES;"</span></code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div><div class="paragraph">
<p>Se recomienda ejecutar el guion <b><i>mysqltuner</i></b> para analizar la configuración de la base de datos luego de usarlo con carga de trabajo durante varios días.</p><p>Finalmente, activamos los módulos recomendados del servidor Apache: <br /></p>
</div>
<div class="sect3">
<p id="enable-the-recommended-apache-modules" style="text-align: left;"><b>a2enmod dir env headers mime rewrite setenvif ;<br />systemctl restart apache2 </b><br /></p>
</div>
<h2 id="installation">Instalación de OwnCloud</h2><p id="installation" style="text-align: left;">Con el servidor Web Apache y la base de datos SQL funcionando, podremos descargar e instalar OwnCloud.<br /></p>
<div class="sectionbody">
<div class="sect2">
<h3 id="download-owncloud">Descargar ownCloud</h3><p style="text-align: left;"><b>cd /var/www/ ;<br />wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 ;<br />tar -xjf owncloud-complete-latest-tar.bz2 ;<br />chown -R www-data. owncloud<br /></b></p></div></div>
<h3 id="install-owncloud">Instalar ownCloud</h3>
<div class="admonitionblock important">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
<br /></td>
<td class="content">Recuerda configurar una contraseña fuerte <u>para el usuario de administración de ownCloud</u>, y proveer la <span style="color: #741b47;">contraseña del usuario de la base de datos </span>previamente obtenida, bajo el argumento <code>--database-pass</code>.
</td>
</tr>
</tbody></table>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"><span class="hljs-built_in">occ</span> maintenance:<span class="hljs-built_in">install</span> \
--database <span class="hljs-string">"mysql"</span> \
--database-name <span class="hljs-string">"owncloud"</span> \
--database-user <span class="hljs-string">"owncloud"</span> \
--database-pass <span class="hljs-variable">${<span style="color: #741b47;">sec_db_pwd</span>}</span> \
--data-dir <span class="hljs-string">"/var/www/owncloud/data"</span> \
--admin-user <span class="hljs-string">"admin"</span> \
--admin-pass <span class="hljs-variable">${<span style="color: #351c75;">sec_admin_pwd</span>}</span></code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div>
<h3 id="configure-ownclouds-trusted-domains">Configurar los Dominios Confiables de ownCloud</h3>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">mi_ip=$(hostname -I|<span class="hljs-built_in">cut</span> -f1 -d <span class="hljs-string">' '</span>)
<span class="hljs-built_in">occ</span> config:system:<span class="hljs-built_in">set</span> trusted_domains 1 --value=<span class="hljs-string">"<span class="hljs-variable" style="color: #38761d;">$mi_ip</span>"</span>
<span class="hljs-built_in">occ</span> config:system:<span class="hljs-built_in">set</span> trusted_domains 2 --value=<span class="hljs-string">"<span class="hljs-variable" style="color: #0b5394;">$mi_dominio</span>"</span></code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div>
<h3 id="configure-the-cron-jobs">Configurar las automatizaciones de cron</h3>
<div class="paragraph">
<p>Cron nos resultará últil para automatizar distintas tareas automáticas de mantenimiento. Configuramos el trabajo de segundo plano en cron:</p><p><b>occ background:cron</b></p>
</div>
<div class="paragraph">
<p>Configuramos la ejecución de un trabajo cronometrado cada 15 minutos y la limpieza de restos todas las noches a las 3 am:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"><span class="hljs-built_in">echo</span> <span class="hljs-string">"*/15 * * * * /var/www/owncloud/occ system:cron"</span> \
| <span class="hljs-built_in">sudo</span> -u www-data -g crontab <span class="hljs-built_in">tee</span> -a \
/var/spool/cron/crontabs/www-data
<span class="hljs-built_in">echo</span> <span class="hljs-string">"0 3 * * * /var/www/owncloud/occ dav:cleanup-chunks"</span> \
| <span class="hljs-built_in">sudo</span> -u www-data -g crontab <span class="hljs-built_in">tee</span> -a \
/var/spool/cron/crontabs/www-data</code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div><div class="admonitionblock note">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
<br /></td>
<td class="content">
<div class="paragraph">
<p>Si necesitamos sincronizar los usuarios de un LDAP o un servidor Active Directory, podemos agregar <a href="https://doc.owncloud.com/server/next/admin_manual/configuration/server/background_jobs_configuration.html">este cron adicional</a>.
De esta forma cada 4 horas cronometradas se producirá la sincronización de los usuarios LDAP en ownCloud y se desactivarán aquellos que no están disponibles en ownCloud. Además se obtendrá una bitácora en <i>/var/log/ldap-sync/user-sync.log</i> para su eventual depurado.</p>
</div>
</td>
</tr>
</tbody></table>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"><span class="hljs-built_in">echo</span> <span class="hljs-string">"1 */6 * * * /var/www/owncloud/occ user:sync \
'OCA\User_LDAP\User_Proxy' -m disable -vvv >> \
/var/log/ldap-sync/user-sync.log 2>&1"</span> \
| <span class="hljs-built_in">sudo</span> -u www-data -g crontab <span class="hljs-built_in">tee</span> -a \
/var/spool/cron/crontabs/www-data
<span class="hljs-built_in">mkdir</span> -p /var/log/ldap-sync
<span class="hljs-built_in">touch</span> /var/log/ldap-sync/user-sync.log
<span class="hljs-built_in">chown</span> www-data. /var/log/ldap-sync/user-sync.log</code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div>
<h3 id="configure-caching-and-file-locking">Configuramos Caché y Acerrojado de Ficheros</h3>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"><span class="hljs-built_in">occ</span> config:system:<span class="hljs-built_in">set</span> \
memcache.local \
--value <span class="hljs-string">'\OC\Memcache\APCu'</span>
<span class="hljs-built_in">occ</span> config:system:<span class="hljs-built_in">set</span> \
memcache.locking \
--value <span class="hljs-string">'\OC\Memcache\Redis'</span>
<span class="hljs-built_in">occ</span> config:system:<span class="hljs-built_in">set</span> \
redis \
--value <span class="hljs-string">'{"host": "127.0.0.1", "port": "<span style="color: #0b5394;"><b>6379</b></span>"}'</span> \
--<span class="hljs-built_in">type</span> json</code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div>
<h3 id="configure-log-rotation">Configuramos la rotación de bitácoras</h3>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">FILE=<span class="hljs-string">"/etc/logrotate.d/owncloud"</span>
<span class="hljs-built_in">sudo</span> <span class="hljs-built_in">cat</span> <<<span class="hljs-string">EOM >$FILE
/var/www/owncloud/data/owncloud.log {
size 10M
rotate 12
copytruncate
missingok
compress
compresscmd /bin/gzip
}
EOM</span></code><div class="source-toolbox"><span class="source-lang"></span></div></pre></div></div>
<h4 id="finalize-the-installation">Finalizar la Instalación</h4>
<div class="paragraph">
<p>Nos aseguramos que los permisos sean los correctos:</p><p><b>cd /var/www/<br />chown -R www-data. owncloud</b><br /></p>
</div><p>Y con esto debería haber quedado instalado ownCloud. Ahora podremos confirmar que está listo para activar el protocolo seguro de conexión HTTPS <a href="https://doc.owncloud.com/server/next/admin_manual/installation/letsencrypt/using_letsencrypt.html">(por ejemplo usando certificados Let’s Encrypt)</a> dirigiendo nuestro navegador web browser a la URL o IP de nuestra propia instalación de ownCloud (en este caso, <span style="color: #0b5394;">nube.peronismo.org</span>). </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-ScyWap-H1wVQFASPxX99VtAa-33-KJHQsUuf8WMhG6hYIhRsk04Bbl51AuyNh3DWo7Ma1AGLxL4bzTmEqCOiiUxujh831wlsgidSnD6lXiBFdPk8s1Nvb8PKRl2PLOq10cPBQ6gsRJ-s3TcMulSBYCi65lFjB6ClQrNlgy6cZKZaN5GgrJn-GYHg_GQf/s396/owncloud_logo.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="200" data-original-width="396" height="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-ScyWap-H1wVQFASPxX99VtAa-33-KJHQsUuf8WMhG6hYIhRsk04Bbl51AuyNh3DWo7Ma1AGLxL4bzTmEqCOiiUxujh831wlsgidSnD6lXiBFdPk8s1Nvb8PKRl2PLOq10cPBQ6gsRJ-s3TcMulSBYCi65lFjB6ClQrNlgy6cZKZaN5GgrJn-GYHg_GQf/w200-h101/owncloud_logo.png" width="200" /></a></div>Para evaluar la correcta instalación en el servidor y para ver si funcionan los comandos occ, podremos ejecutar lo siguiente:<p></p><div class="paragraph">
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"><span class="hljs-built_in">occ</span> -V
<span class="hljs-built_in">echo</span> <span class="hljs-string">"Su contaseña de Admin es: "</span><span class="hljs-variable">$<span style="color: #351c75;">sec_admin_pwd</span></span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"Está documentada en /etc/.sec_admin_pwd.txt"</span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"Su contraseña de Base de Datos es: "</span><span class="hljs-variable">$<span style="color: #741b47;">sec_db_pwd</span></span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"Está documentada en /etc/.sec_db_pwd.txt y en su config.php"</span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"Su ownCloud está accesible desde: "</span><span class="hljs-variable">$<span style="color: #0b5394;">mi_dominio</span></span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"La instalación ha sido completada."</span></code></pre>No viene mal almacenar esta información de forma segura en un medio aparte, y resguardarlo en caja fuerte.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtMFdSkmtLuekzhqyCAioZE7qPbA_3rcJjTVKqjCM436ldahIRotYSp2r3-0BvtWp7KEchD8Ep7eU4u9gf2jD3HX3FOog5Lk0A-WH2UOKfIbrrHD_pZntffRVIWI656sdIgJNXYxxssw67TA8e5KO4hobdmFj6D9dA0_hgSfbFRDKssI_JoB9sJMxoN57F/s1909/Screenshot_20210716_170101.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="839" data-original-width="1909" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtMFdSkmtLuekzhqyCAioZE7qPbA_3rcJjTVKqjCM436ldahIRotYSp2r3-0BvtWp7KEchD8Ep7eU4u9gf2jD3HX3FOog5Lk0A-WH2UOKfIbrrHD_pZntffRVIWI656sdIgJNXYxxssw67TA8e5KO4hobdmFj6D9dA0_hgSfbFRDKssI_JoB9sJMxoN57F/w400-h176/Screenshot_20210716_170101.png" width="400" /></a></div><div class="content"></div><div class="content">Podremos encontrar la documentación del servidor de OwnCloud <a href="https://doc.owncloud.com/server/">aquí</a>. <br /></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-29892937878569895692023-11-27T15:34:00.003-03:002023-11-27T15:34:36.299-03:00¿Cómo instalo Art of Ilussion en Ubuntu?<p style="text-align: center;"><i>Toda vez que Juan Perón promovía la organización sindical como síntesis para promover y alcanzar las conquistas sociales, enseñaba <b>cómo instalar Art of Ilussion para hacer imágenes sintéticas con raytracing en Ubuntu</b>.</i><br /></p><p>¡Trabajadores!</p><p>Ya vivimos esto en la Argentina... La táctica del Estado abstencionista era encontrarse frente a ciudadanos aislados, desamparados y económicamente débiles, con el fin de pulverizar las fuerzas productivas y conseguir, por contraste, un poder arrollador.</p><p>La contrapartida de las masas fue volcarse al sindicalismo anárquico, simple sociedad de resistencia sin otra finalidad que la de oponer a la intransigencia patronal y a la indiferencia del Estado, una concentración de <b>odios y resentimientos</b>. </p><p>La carencia de una orientación inteligente de la política social, la falta de organización de las profesiones, y la ausencia de un <b>ideal colectivo superior</b> - que reconfortara los espíritus y los templara para una acción esencialmente constructiva y profundamente patriótica - ha retrasado el momento en que las asociaciones profesionales estuviesen en condiciones de <b>gravitar en la regulación de las condiciones de trabajo y de vida de los trabajadores</b>.</p><p><b>El ideal de un Estado no puede ser la carencia de tales asociaciones</b>. Casi afirmaría que es todo lo contrario. Lo que sucede, es que las asociaciones únicamente pueden ser eficaces, fructíferas y beneficiosas cuando - además de un arraigado amor a la patria y un respeto inquebrantable a la ley - vivan organizadas de tal manera que constituyan verdaderos agentes de enlace que lleven al Estado las inquietudes del más lejano de sus afiliados y hagan llegar a éste, las inspiraciones de aquél.</p><p>La organización sindical llegará a ser indestructible cuando <b>las voluntades humanas se encaminen al bien y a la justicia</b>, con un sentido a la vez colectivo y patriótico. Y, para alcanzar las ventajas que la sindicación trae aparejadas, las asociaciones profesionales deben sujetarse a uno de los imperativos categóricos de nuestra época: el imperativo de la <b>organización</b>.</p><p>La vida civilizada en general, y la económica en particular (del mismo modo que la propia vida humana), se extinguen cuando falla la organización de las células que la componen. Por ello, siempre he creído que se debe impulsar el espíritu de asociación profesional y estimular la formación de cuantas entidades profesionales conscientes de sus deberes y anhelantes de sus justas reivindicaciones se organicen, de tal manera que se erijan en colaboradores de toda acción encaminada a<b> extender la justicia y prestigiar los símbolos de la nacionalidad</b>, levantándolos por encima de las pugnas ideológicas o políticas.</p><p>Pero <b>no perderemos el tiempo</b> que media entre el momento actual y el del florecimiento de organizaciones de este tipo constructivo. La realidad golpea las puertas y exhibe las cuestiones candentes que deben ser <b>inmediatamente dilucidadas</b>.<br /></p><p>El organización político-social llevada a cabo no podrá ser detenida como no fuera por un cataclismo, pero a condición de que <b>organicemos nuestras ideas</b>, pues su estabilidad y durabilidad del Movimiento dependen esencialmente de esa organicidad. </p><p>Las reglas del momento son cuatro:</p><ul style="text-align: left;"><li>simplicidad orgánica, </li><li>sistematización orgánica, </li><li>estabilidad orgánica </li><li>finalidad orgánica.</li></ul><p>Hubo muchos revolucionarios de café que propalaban revoluciones sacadas de los libros, y planteaban que la misma podría hacerse con sólo imaginarlas. Pero a una revolución no es una ilusión: se la planea y se la diagrama. <b>Cuando una revolución estalla, ya está programada</b>. <br /></p><p>De poco serviría un Movimiento que no cuente con la previsión de un <b>plan que lo insunfle de las medidas revolucionarias verdaderamente anheladas</b> por el Pueblo. En esto no somos iluminados, lo que es iluminado son las herramientas que usamos para lograrlo.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifxERmxv58s_NzLvac3xjTpRdvlRanTzQcuiQV0jMGJi_h4Qd-SaoCpSO3DaSvzeXN1gZnLUyHGE-LE7qaA6a_k8oFaDqP3AEmSyC0FE9_Q8NbzRpoOPp3Pi7SOS20VDCYdxQor4lnyW_kd01UA4Vh2ZMQvnDf8y6xh7Gz5pRwzCre42LerV2qZRHT2ZLo/s563/generalsaludo.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="563" data-original-width="424" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifxERmxv58s_NzLvac3xjTpRdvlRanTzQcuiQV0jMGJi_h4Qd-SaoCpSO3DaSvzeXN1gZnLUyHGE-LE7qaA6a_k8oFaDqP3AEmSyC0FE9_Q8NbzRpoOPp3Pi7SOS20VDCYdxQor4lnyW_kd01UA4Vh2ZMQvnDf8y6xh7Gz5pRwzCre42LerV2qZRHT2ZLo/s320/generalsaludo.PNG" width="241" /></a></div><p></p><p>Indudablemente la técnica del Raytracing nos permitía ya en los tiempos del primer
peronismo trazar de forma computado el recorrido de la luz, y - a costa de un ingente costo en potencia de cálculo - obrar resultados fotorrealistas que sintetizaran esta iluminación revolucionaria.</p><p>En aquellos tiempos - merced de las CPUs que se usaban - esto no podía sino lograrse sino tras mucho esfuerzo y tiempo maquinal. Pero ya entonces era posible prever un momento en el cual la misma operativa podría aplicarse con enorme velocidad, incluso un mero instante una vez que la tecnología estuviese disponible.</p><p>Estamos en los tiempos del jet, y la capacidad multinúcleo nos permite contar ya con dicha técnica en escasos segundos. Indudablemente las GPUs más poderosas permiten lograrlo en tiempo real, y a decenas de cuadros por segundo. Gracias a esto es factible elaborar animaciones según esta técnica.</p><p>Por entonces era posible hacerlo gracias al veterano <b>Art of Ilussion</b>, un editor 3D escrito en Java con facilidades de raytracing capaz de elaborar estas escenas paramétricas que dal ilusión de realidad. Este programa tuvo su génesis a mediados de los 90s como producto para estaciones de trabajo Silicon Graphics y plataformas UNIX, pero hace mucho tiempo fue liberado bajo GPLv2.<br /></p>Su instalación es bastante sencilla. Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes Comandos de Organización:<br /><p><b>sudo apt install openjdk-11-jdk-headless<br />cd /tmp ;<br />wget wget https://sourceforge.net/projects/aoi/files/ArtOfIllusion/3.2.1/Art%20of%20Illusion%203.2.1%20linux.zip ;<br />unzip "Art of Illusion 3.2.1 linux.zip" ;<br />./aoisetup.sh</b></p><p>Con esto se ejecutará el instalador del programa:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYIDEjdNw2-JZbSbZElUe-bG-ofOFFNFM4gpb3FGfiD2YpsM_YEf0AF_XEpbNwfpCVxSH4_iAZtzoiacB3APrWGrt_wEvNXvL8AKgTrHSvg_UUSVmzM8ntca0RLcSj404gOBLAndqn6vYHUMrYPmT9Zcqn0Ys327JvyNAuKL9XihZCE4SP9J403JOIP4jl/s548/1%20splash.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="479" data-original-width="548" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYIDEjdNw2-JZbSbZElUe-bG-ofOFFNFM4gpb3FGfiD2YpsM_YEf0AF_XEpbNwfpCVxSH4_iAZtzoiacB3APrWGrt_wEvNXvL8AKgTrHSvg_UUSVmzM8ntca0RLcSj404gOBLAndqn6vYHUMrYPmT9Zcqn0Ys327JvyNAuKL9XihZCE4SP9J403JOIP4jl/s320/1%20splash.png" width="320" /></a></div>En primer lugar elegimos el idioma de instalación (está disponible en inglés, francés o alemán). <p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFOZZh266svZQhJNIyFMUFxCA9vPqBVGbUoT4dGQ8rNX8FyUZMqMtrrHefstZWrjKdN-MmMFXWGFKNonLadGo8NC-gGmPnTlRPq8vZfTOOBFAi_g1Debj6yINlsCPA3Nbp-4lrU4lgTAsHbCMKzFhl5YJh-FEFKVpkYXhfvveFcSC8EqhjZQgqXO5wj9zO/s190/2%20seleccionar%20idioma.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="171" data-original-width="190" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFOZZh266svZQhJNIyFMUFxCA9vPqBVGbUoT4dGQ8rNX8FyUZMqMtrrHefstZWrjKdN-MmMFXWGFKNonLadGo8NC-gGmPnTlRPq8vZfTOOBFAi_g1Debj6yINlsCPA3Nbp-4lrU4lgTAsHbCMKzFhl5YJh-FEFKVpkYXhfvveFcSC8EqhjZQgqXO5wj9zO/s1600/2%20seleccionar%20idioma.png" width="190" /></a></div>Luego podremos leer la licencia GPLv2 bajo la cual se encuentra liberado.<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid8RKKIBR5B6jV5_dVnc5kKHdfGu7VOpFGkdHyX1Z75FBD1iytO2KvsMva0Y4LKVoFHbrdHDvm-IpBq-uai01kOYb_CgMKW_tbv8u2Mq_vLdiOrQAf2rcVaJ8IOSfk9EojgRz_kirp59VRQtWcVeHJzMTlpFq6zWpqry9yRIhtR0yKSa1ZKy4jB7i0wpXD/s640/3%20ver%20licencia.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="580" data-original-width="640" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid8RKKIBR5B6jV5_dVnc5kKHdfGu7VOpFGkdHyX1Z75FBD1iytO2KvsMva0Y4LKVoFHbrdHDvm-IpBq-uai01kOYb_CgMKW_tbv8u2Mq_vLdiOrQAf2rcVaJ8IOSfk9EojgRz_kirp59VRQtWcVeHJzMTlpFq6zWpqry9yRIhtR0yKSa1ZKy4jB7i0wpXD/s320/3%20ver%20licencia.png" width="320" /></a></div>El programa instalador nos solicitará indicar la ruta de instalación. Para que lo instale en una carpeta de usuario oculta, conviene indicarle <b><i>/home/<span style="color: #bf9000;">$USER</span>/<span style="color: red;">.</span>ArtOfIllussion.</i></b><br /><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheca-GfWL0nR1W9_YXeJ6lZxpbsumHqC10faVK1gKN0BXFgDqvgwP55pdwM1JAXaZX_ZdYcXUzJXEqyBVxMYzhUzIUKwD_GOsZMuLxlZLwhPSnfEuy07e1FK19jXN_jb0279BKrH3IrZVb2uQpLPe7utox3kkjvWKhp8qKQ4MTj3mIpHT7h1Hhyphenhyphenu63Kjkp/s640/4%20elegir%20ruta.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="580" data-original-width="640" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheca-GfWL0nR1W9_YXeJ6lZxpbsumHqC10faVK1gKN0BXFgDqvgwP55pdwM1JAXaZX_ZdYcXUzJXEqyBVxMYzhUzIUKwD_GOsZMuLxlZLwhPSnfEuy07e1FK19jXN_jb0279BKrH3IrZVb2uQpLPe7utox3kkjvWKhp8qKQ4MTj3mIpHT7h1Hhyphenhyphenu63Kjkp/s320/4%20elegir%20ruta.png" width="320" /></a></div>Acto seguido, indicamos todos los componentes.<br /> <div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDS3wSniaQQoiIseisEapuCVY_vgahHaUvEfehsnhI7BU0W9LKnRJYfWC3NJTnji3ewkWzgXBDaJvOVi4Iu3zvOhALGmKz5sZNhhCQFDdqDR5a9fzJGJVcFUgR5fqae5eTdwfr4GbvUxEUj2xSgS6kAK0PE49chKvtK7eI9go104GYXb7PixXtSbK5S2-S/s640/5%20elegir%20elementos.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="580" data-original-width="640" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDS3wSniaQQoiIseisEapuCVY_vgahHaUvEfehsnhI7BU0W9LKnRJYfWC3NJTnji3ewkWzgXBDaJvOVi4Iu3zvOhALGmKz5sZNhhCQFDdqDR5a9fzJGJVcFUgR5fqae5eTdwfr4GbvUxEUj2xSgS6kAK0PE49chKvtK7eI9go104GYXb7PixXtSbK5S2-S/s320/5%20elegir%20elementos.png" width="320" /></a></div><p></p><p>Tras comenzar la instalación tendremos una barra de progreso.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyFob5GRxeNSRVnytLxuJQfYXhOMcUXLnXlBAUVv7kfr65BJyBABofZ_MZaQLWVHrKzjspReOd3AXHhbNOLy0YGN-ePAjbedvGtKmpbgDjkoJdGfTL8KpGo_vaSe0bd9L_Wg7Lcz_rLRCLa-MXhgwSz-IFIlGQmP4TcNQFpBIc6LAC6JQdrbjnJ0Ra6LKw/s640/7%20instalacion%20terminada.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="580" data-original-width="640" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyFob5GRxeNSRVnytLxuJQfYXhOMcUXLnXlBAUVv7kfr65BJyBABofZ_MZaQLWVHrKzjspReOd3AXHhbNOLy0YGN-ePAjbedvGtKmpbgDjkoJdGfTL8KpGo_vaSe0bd9L_Wg7Lcz_rLRCLa-MXhgwSz-IFIlGQmP4TcNQFpBIc6LAC6JQdrbjnJ0Ra6LKw/s320/7%20instalacion%20terminada.png" width="320" /></a></div><p></p><p>Tras lo cual la instalación habrá finalizado correctamente.</p><p>Para ejecutar el programa, vamos a <b><i>Aplicaciones / Gráficos / Art of Ilussion</i></b>, aunque en ocasiones también crea un lanzador en el Escritorio del sistema (en mi caso lo he eliminado pues no me interesa contar con lanzadores en el escritorio).<br /></p><p>Tras presentarnos un splashscreen de presentación, <i>Art of Ilussion</i> nos dejará en su ventana de trabajo principal, en un despliegue en blanco (sin objetos). Esta está formada por los cuatro paneles de perspectivas del mundo 3D, junto con sus escuetas barar de herramientas para objetos.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW7TXnmvm0iL6wQ_uM1kdNMppw6VMs58Dz4gysFmnW_RiXbvW8lCWstozFUuWfzQ6iLnRZ9tehR8BYx7HEXS0d7_bMKMi4YdQr0l5i3LCTZ8v1HBr5qlxxmTEZCopezOwewQ_Qw4CxZIK7DOcMNxrzMce3G-9OjIVROsDeZfyxV5F5EM5mnFMUPHzXEZGB/s1920/Art%20of%20Ilussion.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1013" data-original-width="1920" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW7TXnmvm0iL6wQ_uM1kdNMppw6VMs58Dz4gysFmnW_RiXbvW8lCWstozFUuWfzQ6iLnRZ9tehR8BYx7HEXS0d7_bMKMi4YdQr0l5i3LCTZ8v1HBr5qlxxmTEZCopezOwewQ_Qw4CxZIK7DOcMNxrzMce3G-9OjIVROsDeZfyxV5F5EM5mnFMUPHzXEZGB/w400-h211/Art%20of%20Ilussion.png" width="400" /></a></div><p>La elaboración de una imagen 3D se realiza haciendo composiciones de los objetos básicos, los cuales son cubos, poliedros, cilindros, etcétera, todos ellos modificables. Asimismo, podremos agregar objetos descriptivos de antiguo formato POV (PointOfView), o bien modelarlos a mano con las herramientas de acción poligonal.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii669k5uKUr1SJsepgPL1b3nMl4ADJdaHsmE6L5Ms0cyQ0hLaxdF-EEviTcOGk3eU_TRF2PjfAlptvVHyEVTkZpzP04nJvrq9NY3O9Kzod_6SUM5iUNADNLCWS3iVx8wRS87_BGtBjJCpTb7M5kfNL_1nT9MtVSol2sN7cdDs2UvfkhGBykdXuw3ON1hWV/s1535/Captura%20de%20pantalla%20-2023-11-23%2015-33-39.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1015" data-original-width="1535" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii669k5uKUr1SJsepgPL1b3nMl4ADJdaHsmE6L5Ms0cyQ0hLaxdF-EEviTcOGk3eU_TRF2PjfAlptvVHyEVTkZpzP04nJvrq9NY3O9Kzod_6SUM5iUNADNLCWS3iVx8wRS87_BGtBjJCpTb7M5kfNL_1nT9MtVSol2sN7cdDs2UvfkhGBykdXuw3ON1hWV/s320/Captura%20de%20pantalla%20-2023-11-23%2015-33-39.png" width="320" /></a></div>Con el tiempo podremos elaborar objetos más complejos, incluyendo la clásica cristalería y fluidos transparentes o reflectivos, una de las bazas que hacían destacar a la técnica del <i>raytracing</i>.<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitIpiFIgmo7Xdb7-CUTWOL78R4XD-UVzvPy_BVfAvyIm1qp9JEPFAWXFcmMkgulPlDB0NxYdyumrorr0H30fKWEQPDV_rthO9FIdWljgleuIg6REIAU_Ys_PVDdpXJUbh8U9Du_IWDyXrXauImPoCWF-QVdJz1cwQ2pYhmR8qNHrW-fb3BSCqakK7KIfWc/s1920/editor.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1013" data-original-width="1920" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitIpiFIgmo7Xdb7-CUTWOL78R4XD-UVzvPy_BVfAvyIm1qp9JEPFAWXFcmMkgulPlDB0NxYdyumrorr0H30fKWEQPDV_rthO9FIdWljgleuIg6REIAU_Ys_PVDdpXJUbh8U9Du_IWDyXrXauImPoCWF-QVdJz1cwQ2pYhmR8qNHrW-fb3BSCqakK7KIfWc/s320/editor.png" width="320" /></a></div><p></p><p></p><p></p>El renderizado se puede hacer a través de <i><b>Scene / Render Scene</b></i>. Para ello se puede usar un complejo motor de software que hace uso de las funcionalidades Raytracing convirtiéndolo a imágenes sintéticas de 256 colores (originalmente) y superiores (hasta 16,7 millones de colores en el motor gráfico mejorado). Esto nos implica que los valores básicos de procesado son computacionalmente económicos, pero podremos exigirlos hasta la demencia, agregando sombras de alta calidad, transparencias, efectos de oclusión reflectiva, y demás derechos incorporados en el Estatuto del Render.<br /><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4dMZUkX4wrITUEj_kL9iFAjKGQYX3sH6kTvlXu3fKYqjrac0crY47cPEE7DTNA2Mq6KNSTKSBY0qdOwLkq-RxDIVPWppknaUrqHoOlahDW7Wc2xJGGYzaPmn3HuWzTzPmN_3QqFm-ah-7mykFdQUcYE9Nus-tEGEDJ1K26MOz7E31CRNnNitkhRoWjKo-/s521/render.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="521" data-original-width="438" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4dMZUkX4wrITUEj_kL9iFAjKGQYX3sH6kTvlXu3fKYqjrac0crY47cPEE7DTNA2Mq6KNSTKSBY0qdOwLkq-RxDIVPWppknaUrqHoOlahDW7Wc2xJGGYzaPmn3HuWzTzPmN_3QqFm-ah-7mykFdQUcYE9Nus-tEGEDJ1K26MOz7E31CRNnNitkhRoWjKo-/s320/render.png" width="269" /></a></div>Al presionar el botón <b>Ok</b>, se producirá una revolución en los cores de las CPUs, y se calcularán las múltiples sendas de los rayos de luz, elaborando en RAM una imagen sintética por yuxtaposición de esfuerzos computacionales.<br /><p></p><p>Como ayer, este tipo de técnica permite una notable y graciosa posibilidad de generar cuadros estáticos, pero también animaciones que - con la actualizaciones doctrinarias y siguiendo una explosión cuantitativa provocada por la Juventud - pudo afianzarse en tiempo real.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghwnS6pjEeKg8GCW41poRHkWYQRd31LTE9H9w6I9cXpY_0T8iYkDtqrh1pMWhFMeiQqseIanP6YR8nKKAzUn5YDr-veYtx3OWNPBYOokPkQ8onik45eU3I2l_u_7aZTpp3tb_VK8Jav3zNRru4FU_Sfztxai27nW8DcgdiyBfT-GoN6uWzD6S3CBiOIUPF/s1440/milkshake%20render.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1440" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghwnS6pjEeKg8GCW41poRHkWYQRd31LTE9H9w6I9cXpY_0T8iYkDtqrh1pMWhFMeiQqseIanP6YR8nKKAzUn5YDr-veYtx3OWNPBYOokPkQ8onik45eU3I2l_u_7aZTpp3tb_VK8Jav3zNRru4FU_Sfztxai27nW8DcgdiyBfT-GoN6uWzD6S3CBiOIUPF/w400-h300/milkshake%20render.png" width="400" /></a></div><p>Indudablemente <i>Art of Illusion</i> es válido para plantearnos arte paramétrico-lumínico. Podríamos incluso asentar la creación de un bodegón sintético, de forma parametrizada, y sin hacer uso de inteligencia artificial generativa basada en extracción de datos y metadatos. El programa guarda sus fuentes en ficheros *.aoi.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP_lrRD4KufFfO72BH8aO6kFFolk_pU9VRP8x_8SEdN6JsZx5OSmSFktTkUWypxYKkKddw5MITYHsSuyEdng24DGwr_mASLIS_acHsj1Ld6s86bZiqGTlmuW0d0KrxiWb7A0DO-fdfT2skuwHp6Izgtk6Jj6i1xKNMMFdNzAPkjCNMbPoRpsb7DqqtBJ_E/s1920/bodeg%C3%B3n.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1014" data-original-width="1920" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP_lrRD4KufFfO72BH8aO6kFFolk_pU9VRP8x_8SEdN6JsZx5OSmSFktTkUWypxYKkKddw5MITYHsSuyEdng24DGwr_mASLIS_acHsj1Ld6s86bZiqGTlmuW0d0KrxiWb7A0DO-fdfT2skuwHp6Izgtk6Jj6i1xKNMMFdNzAPkjCNMbPoRpsb7DqqtBJ_E/w640-h338/bodeg%C3%B3n.png" width="640" /></a></div><br />El resultado de la compilación gráfica en la que decanta este arte es estándar. Podemos guardarlas en formato JPEG, PNG o TIFF, mientras que las animaciones las realiza o bien compendiándolas en un viejo fichero de animación MPG, o bien como cuadros individuales de los formatos anteriormente mencionados, los cuales podrían agregarse en forma de MP4 gracias a <a href="https://ubuntuperonista.blogspot.com/2022/12/como-utilizo-ffmpeg-para-convertir.html">programas externos</a>.<br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHPbaBAo4z10BGjLG6Qf-k9q3C5hDcFy5mebHx710rbx6AmNL03GPZRs9ieuAqrgf8_jhDHzT-RtU-SLZqdv03_BwjL_UdP7blFdg2DwAy-qCWBtXphmUkGqpgoIheH3f0Yn2m6V0kjs_pKR70QOyXf8n4FWBRUvvfl1WYJ37PC3CbCd8rvFA7LxLIOgJb/s1440/render%20bodeg%C3%B3n.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1440" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHPbaBAo4z10BGjLG6Qf-k9q3C5hDcFy5mebHx710rbx6AmNL03GPZRs9ieuAqrgf8_jhDHzT-RtU-SLZqdv03_BwjL_UdP7blFdg2DwAy-qCWBtXphmUkGqpgoIheH3f0Yn2m6V0kjs_pKR70QOyXf8n4FWBRUvvfl1WYJ37PC3CbCd8rvFA7LxLIOgJb/w400-h300/render%20bodeg%C3%B3n.png" width="400" /></a></div><p></p><p>El uso del programa es algo complejo, pero alejado de la verdadera dificultad que podría significarnos una suite como <a href="https://ubuntuperonista.blogspot.com/2012/03/como-instalo-blender-262-en-ubuntu-1010.html">Blender</a>. Podremos contar con la <a href="http://artofillusion.org/documentation">documentación en línea de Art of Illusion (en inglés)</a>, o bien descargar el manual con:<br /></p><p><b>mkdir ~/.ArtOfIllusion/manual/<br /> cd </b><b>~/.ArtOfIllusion/manual/</b><br /><b>https://sourceforge.net/projects/aoi/files/ArtOfIllusion-manual/3.2.1/Art%20of%20Illusion%203.2.1%20manual.zip ;<br />unzip "Art of Illusion 3.2.1 manual.zip" ;</b></p>Unknownnoreply@blogger.com047GR45F4+CJ-39.8764156 -63.8434121-90 -134.1559121 15.746451038685606 6.4690878999999981tag:blogger.com,1999:blog-1082347280713529648.post-30836835424432312892023-11-17T21:27:00.016-03:002023-11-19T17:15:16.857-03:00¿Cómo instalo GopherVR en Ubuntu?<div class="separator"><p style="margin-left: 1em; margin-right: 1em; text-align: center;"><i>No era de extrañar que en Puerta de Hierro se apersonaran frondosas delegaciones a recibir consejo de Juan Perón. El conductor en el exiliado exponía sobre el quehacer nacional y explicaba <b>cómo instalar GopherVR en Ubuntu</b>.</i> <br /></p></div><p></p><p>¡Mis queridos descamisados!<br /><br />Siempre me es de agrado recibir argentinos en Puerta de Hierro, que me tienen al dedillo de todos los sucesos de la Argentina.<br /><br />No hay dudas para nadie que además de honrar las palmas y laureles de General de la Nación - de las que nunca me he desprendido, a pesar de los que algunos desaprensivos han anhelado - decía que me he permitido diagnosticar a la distancia los problemas del país. Esto lo puedo hacer por estos contactos que me prodigan, pero también gracias al uso de las herramientas que nos da la técnica bien entendida.</p><p style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYbTxJY2BVchIGRkCNAxryV9cs4D28yw1NadMKVBDYFhNETVgQy2li1T9aS1ZxDLJHRnwi3lD0LP8nkEgFMR4DhTWVYwOTF6madE6pZ3-MV6VNGT3tCuEegoLCa1TTEaQqpuZNZvi7h12w_ynBbxYMJV00Nl3XLlTzm9F3oO7yeLBRJFkVBNyQGms2MLqO/s1443/dsc_3462.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1443" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYbTxJY2BVchIGRkCNAxryV9cs4D28yw1NadMKVBDYFhNETVgQy2li1T9aS1ZxDLJHRnwi3lD0LP8nkEgFMR4DhTWVYwOTF6madE6pZ3-MV6VNGT3tCuEegoLCa1TTEaQqpuZNZvi7h12w_ynBbxYMJV00Nl3XLlTzm9F3oO7yeLBRJFkVBNyQGms2MLqO/s320/dsc_3462.png" width="320" /></a><br /></p><p>Es que un programador puesto al servicio del Pueblo, jamás comete errores. Aquello que llaman bugs, no son más que características de sus programas que los neófitos no han podido escrutar. Enfrentados estas a los estrepitosos errores de diseño de cualquier sistema operativo de los grandes capitales de los datos, son beneficencia...</p><p>Me he hecho perito en aquellos sistemas similares a UNIX, entre los que destaca el GNU con núcleo Linux. Con todos ellos podemos realizar las tareas informáticas que se nos ocurran, pero nuestro ideal marca que <b>ha de hacerse en beneficio del Pueblo</b>. Es mi convicción que gracias al GNU - versión completamente libre inspirada en ciertos elementos del UNIX - podremos <b>otorgar al Pueblo los beneficios de la libertad computacional sin gastar una chirola</b>.</p><p>Indudablemente que un sistema multiusuario como este ha de confabularse con un perfecto entorno documental. Sólo así podremos compartir el conocimiento de la forma en la cual se debe hacer para mantener la pureza ideológica: sin intermediarios. <a href="https://ubuntuperonista.blogspot.com/2019/01/como-uso-gopher-en-ubuntu.html">Ya he enseñado a operar en Gopher</a> - uno de los ambientes documentales casi extintos, pero sumamente funcionales. </p><p>Esto nos permite una facilidad de navegación sin parangón - tanto que hasta Isabelita lo usa - toda vez que su consumo contenido facilita las transmisiones incluso en las redes de datos con interfases de únicamente texto. Con el es muy fácil recibir comunicados y documentos propalados desde Puerta
de Hierro, dejándolos al alcance de todo aquél habitante del mundo que
cuente con acceso a las redes de datos de alcance global. <br /></p><p>No han faltado díscolos que consideran a Gopher como un remedo del pasado, un protocolo oscuro. ¡Qué dirían esos señores entonces del cliente tridimensional de realidad virtual, el GopherVR! Se trata de<b> una implementación de cliente Gopher </b>capaz de apuntar hacia servidores Gopher dispuestos en todo el mundo. A esta la presentará <b>desplegando su estructura en gráficas tridimensionales</b> según el clásico visualizador de estilo FSN. Con él se puede acceder a todo tipo de documentos de texto puestos a disposición de manera gratuita.</p><p>Pues bien señores, aunque GopherVR no viene incorporado en los repositorios de paquetes de Ubuntu, al tratarse de un programa multiplataforma es posible instalarlo en numerosos equipos, desde estaciones de trabajo Sun y Silicon Graphics, pasando por GNU y sus distribuciones.</p><p>Para seguir tal temperamento en Ubuntu, podremos instalarlo abriendo una terminal con <b><i>Ctrl+Alt+t</i></b> y pegamos el siguiente bloque de Comandos de Organización:<br /></p><p></p><p></p><p><b>fc-cache -frv ;<br />sudo apt update ;<br />sudo apt install git xutils-dev libmotif-dev xfonts-terminus fonts-liberation ;<br />cd ~ ;<br />git clone https://github.com/michael-lazar/gopherVR<br /></b></p><p>Tras solicitarnos la contraseña de usuario, el sistema descargará los paquetes de software que constituyen sus requerimientos, así como el código fuente necesario. Tras esto, lo emparchamos opcionalmente para que acepte letras Freestyle:</p><p><b>cp ~/.Xdefaults ~/Xdefaults.bak<br />echo '' >> </b><b>~/.Xdefaults ;<br /></b><b>echo '!Xft.dpi: 86' >> ~/.Xdefaults ;<br />echo '*renderTable.variable.fontType: FONT_IS_XFT'</b><b> >> ~/.Xdefaults ;<br />echo '*renderTable.variable.fontName: Liberation Sans' >> </b><b>~/.Xdefaults ;<br /></b><b>echo '*renderTable.variable.fontSize: 14' >> </b><b>~/.Xdefaults ;<br /></b><b>echo '*renderTable: variable' >> </b><b>~/.Xdefaults ;<br /></b><b>echo '*renderTable.fixed.fontType: FONT_IS_XFT' >> </b><b>~/.Xdefaults ;<br /></b><b>echo '*renderTable.fixed.fontName: Liberation Mono' >> </b><b>~/.Xdefaults ;<br /></b><b>echo '*renderTable.fixed.fontSize: 14' >> </b><b>~/.Xdefaults ;<br /></b><b>echo '! *XmText*renderTable: fixed' >> </b><b>~/.Xdefaults ;<br /></b><b>echo '! *XmTextField*renderTable: fixed' >> </b><b>~/.Xdefaults ;<br /></b><b>echo 'gophervr*XmText*renderTable: fixed' >> </b><b>~/.Xdefaults ;<br /></b><b>echo 'gophervr*XmTextField*renderTable: fixed' >> </b><b>~/.Xdefaults ;<br /></b><b>echo 'gophervr*renderTable: fixed' >> </b><b>~/.Xdefaults ;</b><br /><b>echo '' >> </b><b>~/.Xdefaults ;<br />xrdb ~/.Xdefaults ;</b><br /><b>echo '##agregado para las fuentes de gophervr' </b><b>>> </b><b>~/.xsession ;</b><br /><b>echo 'xset +fp /usr/share/fonts/misc' >> ~/.xsession ;<br />echo 'xset fp rehash' >> </b><b>~/.xsession</b> <br /></p><p><b>cd ~/gopherVR/ ;<br />wget -O xft.patch https://termbin.com/uz2b<br />git stash; <br />git reset --hard;<br />make clean ;<br />git apply xft.patch</b></p><p>Y lo compilamos con:<b><br /></b></p><p><b>cd ~/gopherVR/ ;<br />make linux</b><br /></p><p>Una vez compilado, instalarlo a mano no será difícil; sólo tenemos que pegar este bloque de comandos en la terminal y darle <b>Enter</b>:<br /></p><p><b>cd ~/gopherVR/gophervr/ ;<br />sudo cp gophervr /usr/local/bin/ ;<br />cd /usr/local/lib ; <br />sudo mkdir hershey/ ;<br />cd /usr/share/doc/ ;<br />sudo mkdir gophervr/<br />sudo cp ~/gopherVR/gophervr/gophervr.help /usr/share/doc/gophervr/ ;<br />sudo cp ~/gopherVR/gophervr/futura.hfont /usr/local/lib/hershey/ ;</b><b><br /></b></p><p>Si lo deseamos, podremos crear un lanzador que nos dirija a <i>gophervr</i>. En el caso de Ubuntu MATE hacemos clic con el botón derecho del ratón sobre el menú de Aplicaciones en el panel superior, y elegimos la opción <b><i>Editar Menús</i></b>. Se desplegará el cuadro <i>Menú Principal</i>, y en él escogemos el menú Internet y presionamos el botón <b><i>+Nuevo ítem</i></b>. En el cuadro de diálogo Crear lanzador completamos el campo <i>orden</i> con "gophervr" (sin las comillas) y le ponemos un nombre y una descripción opcional. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvWPCF6Bhl589xVkJMbc7yav7uk3sAcqZiMAoMR4fSWOkiIvqDo6TKieG4578ZiN1HX10zYe_PcXu9Dt5zGLIVv1EbwauyibNaqUzAFbtFwAZ_3HPddHA2MQErY-c8gJNwslG8JY1xqnxnXYyweqvhvkf6FhXs5hyzvC_Q92ISszTkNhpy8xFzfpjjvuJz/s702/lanzador%20gophervr.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="564" data-original-width="702" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvWPCF6Bhl589xVkJMbc7yav7uk3sAcqZiMAoMR4fSWOkiIvqDo6TKieG4578ZiN1HX10zYe_PcXu9Dt5zGLIVv1EbwauyibNaqUzAFbtFwAZ_3HPddHA2MQErY-c8gJNwslG8JY1xqnxnXYyweqvhvkf6FhXs5hyzvC_Q92ISszTkNhpy8xFzfpjjvuJz/s320/lanzador%20gophervr.png" width="320" /></a></div>Presionamos el botón <b>Aceptar</b> y ahora podremos lanzar el programa desde <b><i>Aplicaciojnes / Internet / GopherVR</i></b>.<br /><p></p><p></p>Al iniciar el programa, se abrirán dos ventanas. Una con un cliente de Gopher en modo texto, y otra con una ventana tridimensional que representa los ficheros y carpetas del hoyo Gopher por defecto, <a href="gopher://foodgap.org">gopher://foodgap.org</a>.<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPexqa-0hZoasrNG1CuCSXLX-WIyxXwGpQRC5SOTd2V7aPd0WgkABhhjEn1P6MH7pQHvWTmnc2bOrHKfVonPpJY4dshAre2FgwmotLI2_IXzj8inzgl4CrfsgMMG4S-m1SxOPK6ES2ZF14qfu7DwDS90Jh8CLpjISC-uzFbzAQU7rsSoSk3477bzIWCDdx/s1051/gopherVR.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="971" data-original-width="1051" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPexqa-0hZoasrNG1CuCSXLX-WIyxXwGpQRC5SOTd2V7aPd0WgkABhhjEn1P6MH7pQHvWTmnc2bOrHKfVonPpJY4dshAre2FgwmotLI2_IXzj8inzgl4CrfsgMMG4S-m1SxOPK6ES2ZF14qfu7DwDS90Jh8CLpjISC-uzFbzAQU7rsSoSk3477bzIWCDdx/s320/gopherVR.png" width="320" /></a></div><p>El cliente de navegación nos permite navegar el Gopherespacio. Consta de un manejo similar al bizarro navegador de archivos tridimensional FSN se ejecutaba como parte del sistema IRIX de las oligárquicas Silicon Graphics. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJXutPnzxTgZHin1gIuPH7xFYkxtDNx6FgprGQUG2KG_6h4FGakKD6e5CbKpLJdlvWgO5nXZLZqn0uTDj_-9IPS2fyDjzpQiKYU6IOur8FMMjLJyeTqns6SlRVkcRz0-ckbFmtiXuaH8jEbF9wNr0BFjOD0Lr1CMfaSKlaDRv7sOAVititw__uYWR2lz5D/s1024/es%20un%20sistema%20unix.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="1024" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJXutPnzxTgZHin1gIuPH7xFYkxtDNx6FgprGQUG2KG_6h4FGakKD6e5CbKpLJdlvWgO5nXZLZqn0uTDj_-9IPS2fyDjzpQiKYU6IOur8FMMjLJyeTqns6SlRVkcRz0-ckbFmtiXuaH8jEbF9wNr0BFjOD0Lr1CMfaSKlaDRv7sOAVititw__uYWR2lz5D/s320/es%20un%20sistema%20unix.png" width="320" /></a></div><p>Nos movemos con el ratón, haciendo clic con el botón derecho y arrastrando horizontalmente para girar el punto de vista de izquierda a derecha, o bien presionando el botón derecho y arrastrando verticalmente para acercarnos y alejarnos.</p><p><img border="0" data-original-height="272" data-original-width="500" height="217" src="https://1.bp.blogspot.com/-4KTEZnwzsiw/XQwAFdqd-LI/AAAAAAAANC8/wWg4C-OtA-sqk0MD0sqSlmyDp3elu9GQgCLcBGAs/w400-h217/unixsystem.gif" width="400" /> <br /></p><p></p><p></p><p></p>Si no tenemos ratón, también podremos usar los botones que aparecen en la parte inferior izquierda de la ventana gráfica.<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt-ngKGvmT0uro-r8dHKN0mo4pAS8F0cQLfT9YyH9TOncvATx7eE1w3-qijBsbYmsYrTap89xiwReik0NCSxLX6K2RxxAmihvIKjQpA1QdOk5oj2oFbTdQiue68ODq0BFr3QquAgpPThu6dAdBFwEsCiQsYXL8uFV63qfpf9LdBEvlZfHiGPHZh45CPmM3/s643/gophervr.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="635" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt-ngKGvmT0uro-r8dHKN0mo4pAS8F0cQLfT9YyH9TOncvATx7eE1w3-qijBsbYmsYrTap89xiwReik0NCSxLX6K2RxxAmihvIKjQpA1QdOk5oj2oFbTdQiue68ODq0BFr3QquAgpPThu6dAdBFwEsCiQsYXL8uFV63qfpf9LdBEvlZfHiGPHZh45CPmM3/s320/gophervr.png" width="316" /></a></div><p>Se nos presentará un mojón en forma de estrella roja con el nombre del hoyo gopher abierto. Este hace caso a la existencia de un fichero gophermap (el mapa que define los hoyos gopher).</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_Dt5rkOXTy7XDLwyEStjF2F_gqrRJJwJNpCj9w2GEs7q1rf_3E8lRk8zCmvqYVIggcsPqBVuadSDWTwkp8PLkrGPyiEJL2LrpDgk5Qiw_Gj-oAdYJdS_jPZanU0UYxuOV7cNZ08DLJWLH8gGqGnVJ4D2rsmjFIAZOj9EXX0Ar2qsOvP-DNarwsUQmMAvc/s1698/gopherVR%20Ubuntu%20Peronista.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1013" data-original-width="1698" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_Dt5rkOXTy7XDLwyEStjF2F_gqrRJJwJNpCj9w2GEs7q1rf_3E8lRk8zCmvqYVIggcsPqBVuadSDWTwkp8PLkrGPyiEJL2LrpDgk5Qiw_Gj-oAdYJdS_jPZanU0UYxuOV7cNZ08DLJWLH8gGqGnVJ4D2rsmjFIAZOj9EXX0Ar2qsOvP-DNarwsUQmMAvc/s320/gopherVR%20Ubuntu%20Peronista.png" width="320" /></a></div>Los documentos de texto son elementos de color naranja, que pueden ser abiertos con un mero doble clic del ratón. Ante esta acción dichos elementos se volverán de color rojo (denotando que ya los hemos abierto) y se desplegará una nueva ventana denominada <i>TextShell</i> con una copia del contenido textual descargado.<p></p><p>La ventana TextShell opera como la de cualquier cliente Gopher: también con ella podremos navegar y leer los documentos. <br /></p><p></p><p>Para abrir una nueva localización podemos navegar tridimensionalmente en los directorios a lo través de las ramas de directorios del casi infinito hoyo Gopher, o bien solicitar una URL específica. Esto podremos hacerlo presionando <b>Alt-o</b>, e ingresar la URL de un hoyo gopher que deseemos, por ejemplo <a href="https://gopher.tildeverse.org/texto-plano.xyz/1/~peron/">gopher://texto-plano.xyz/1/~peron/</a>.</p><p>Normalmente, al ingresar a un nuevo hoyo Gopher, este se encontrará circundado por toda una serie de elementos rectangulares en color celeste: son directorios a los cuales podremos dirigirnos, y que podrían contener otros documentos.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxkJSQyNYuA38T3sg29Z1PTQZft1bkktcnjK7qYKxJAbqd8x-ybTcruPdx6l74Z8zF3Yuq6MQZshRCdLzbV9rg5qztSbZMtDgUMvXoZtFI60SOdu5S7ZKqyNaNMUvm6PwJ10zJ1xGQ8iuayQHgA0fJWx3trnGVyxP-FlTZK0hAm13_LKLek8GgvrPRr08c/s643/gophervr%20navegaci%C3%B3n.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="636" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxkJSQyNYuA38T3sg29Z1PTQZft1bkktcnjK7qYKxJAbqd8x-ybTcruPdx6l74Z8zF3Yuq6MQZshRCdLzbV9rg5qztSbZMtDgUMvXoZtFI60SOdu5S7ZKqyNaNMUvm6PwJ10zJ1xGQ8iuayQHgA0fJWx3trnGVyxP-FlTZK0hAm13_LKLek8GgvrPRr08c/s320/gophervr%20navegaci%C3%B3n.png" width="317" /></a></div><p>Desde allí es simple solicitar copias de los documentos y distintos elementos avalados por el protocolo documental Gopher, y visualizarlos en una ventana gráfica específica. En ella podremos seleccionar y copiar, cortar y pegar con <b>Alt+x</b>, <b>Alt+c</b> y <b>Alt+y</b> respectivamente.</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIHyJeupixnd3BcQ3jnt1K81__8h12OoQPFv_ytavr0C5CKrWSWkkrOshWxvWb6tuRswDaDkx7HwJrQda1s_VAVbQq9PbJdWb-wS7PIZDA-38NVVtw3XyTfwTWwMk-ND6wTKoTilchpi06XidB9qQHnUxQoPgu8G-2CWo79SRw9JfyAr2Ru2unO4tHbfb-/s1633/gophercr%20documento.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1015" data-original-width="1633" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIHyJeupixnd3BcQ3jnt1K81__8h12OoQPFv_ytavr0C5CKrWSWkkrOshWxvWb6tuRswDaDkx7HwJrQda1s_VAVbQq9PbJdWb-wS7PIZDA-38NVVtw3XyTfwTWwMk-ND6wTKoTilchpi06XidB9qQHnUxQoPgu8G-2CWo79SRw9JfyAr2Ru2unO4tHbfb-/s320/gophercr%20documento.png" width="320" /></a></div>Como en todo cliente de navegación de Gopher, los vínculos con ".." nos permiten retornar al nivel anterior. Pero en GopherVR también contamos con un árbol de navegación en la parte superior del documento, sobre el que podemos hacer clic para retornar a las ramas superiores del árbol de directorios que dan forma a los hoyos Gopher visitados.<br /><p></p>Unknownnoreply@blogger.com047MRXVP9+PG-36.0131386 -63.131191699999988-74.646155429903914 -133.4436917 2.6198782299039181 7.181308300000012tag:blogger.com,1999:blog-1082347280713529648.post-72392962141594256112023-10-29T14:04:00.004-03:002023-10-29T15:19:00.894-03:00¿Cómo puedo ver videos de YouTube sin publicidad en Ubuntu?<p style="text-align: center;"><i>Durante la década de 1960, los jardines del mítico chalet de Puerta de Hierro fueron testigos de improvisadas disertaciones de Juan Perón junto a delegaciones de visitantes. En una de ellas atendió a la manera de <b>ver y descargar videos de YouTube sin publicidad con Pstube</b>.</i><br /></p><p>(...) <br /></p><p>Gracias, mire, yo prefiero estos que son más suavecitos <i>[prende un Chesterfield]</i>.<br /><br />Véanlo en la República Argentina con la llegada de Onganía... <i>[fuma]</i> Nosotros que hicimos realmente nos costó dos años de preparación primero para tener - diremos así - la preparación humana, que la hicimos de Trabajo y Previsión, y la preparación técnica que la hicimos en el Consejo Nacional de Posguerra. Nos costó dos años de trabajar día y noche, para poder llegar, porque una revolución no se puede hacer improvisada, hay que prepararla.</p><p>Onganía llega allí. Cuando yo vi que llegaba este muchacho y dijeron que iba a hacer "la Revolución Argentina", me hizo gracia. Porque si nosotros - después de dos años de preparación llegamos allí y tuvimos terribles problemas para resolverlo - cómo iba a creer yo que este hombre iba a andar en esto... [pita el faso] Tenía que fracasar, llegar ahí con peludo regalo, y hacer una revolución.</p><p>Lo que le pasó a el fue muy simple: llegó allí y se encontró con ese problema eligió su gabinete. Entre los que hacían ejercicios espirituales con él por un lado, esos trasnochados de toda la vida, un sector de el Ateneo de la República, que son esos nacionalistas macaneadores que hace cuarenta años que vienen hablando y nunca hacen nada, un sector agroexportador, y un remanente del sector gorila, que todavía quedaban. Del tipo Señorans, y todos esos tipos. Y bueno, comienzan. Y estos cuatro grupos, en lugar de gobernar, se empiezan a pelear entre ellos a ver ver quién va a quedar con el poder detrás del trono. Mientras tanto, el Fondo Monetario Internacional - del que se han hecho socios estos cretinos - porque ese es el que en realidad gobierna, le empieza a cerrar el crédito a la República Argentina en todas partes.</p><p>Cuando el país está casi en cesación de pagos le presentan el problema a Onganía y no tiene más remedio que decir "cualquier solución". ¿Cual es la solución? Cambiar el gabinete y nombrar un nuevo gabinete. Claro que al hacer eso ha mandado al ministro de economía a pedir limosna, y el crédito se ha venido abajo. Si un día le va a pedir limosna un ministro, el país de ese ministro pierde crédito inmediatamente. Muy bien, se le presenta el Fondo Monetario Internacional y le dicen "nosotros le abrimos el crédito, pero necesitamos garantías". Y cuales son las garantías? El ministro se lo ponemos nosotros. Y entonces de una de sus compañías del monopolio yanqui sacan un empleado y se lo ponen de Ministro de Economía. Ese es Krieger Vassena.</p><p>Eso es lo que lo hace fracasar, porque en el mundo, mientras el hombre sea hombre, el humanismo es la primera virtud a practicar. Mientras no le solucionen los problemas al hombre, es inútil que se lo solucionen a la ciencia o a la técnica. Todo ese proceso está en marcha, y el hombre comienza ahora - en la era tecnológica - a darse cuenta que la tecnología es la deshumanización. Todo lo que se tecnifica, se deshumaniza simultáneamente. Es decir, usted toma la escuela - que es para niños - pero cuando se tecnifica, deja de ser para ser para niños y pasa para ser la escuela.</p><p>La medicina, es lo mismo. La medicina es para el enfermo, pero cuando se tecnifica en gran grado, la medicina pasa a ser para el médico. Se cambian los factores, y se desvirtúa totalmente su función. Esa es uno de los defectos de la tecnificación, es decir que hay que llegar a una alta tecnología, al servicio del hombre, que es lo que no se hace. Es el concepto actual de la tecnocracia.</p><p>Rusia es una tecnocracia perfecta, pero el hombre a pasado a ser como una abeja en una colmena, o como una hormiga, metido en su alvéolo y de ahí no puede salir.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXkS5U_FXIntClZodF3CPPsJ_qvtF5e78Dzza5CuSmcOhVVp82iAmKgqv4o8bCAwDFgn7RlHUhrRiBoccIEUwPzLeCAbafTiaqFVjPhMH4C69be7V8-UWl25lxEqUWCYZgmxzH2hAR4I5hjwynCtg30ROhqN4I7XrZPKJ32Fud9Cz1V3P4yVGM5HSroelg/s555/pocho%20puerta%20de%20hierro.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="555" data-original-width="459" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXkS5U_FXIntClZodF3CPPsJ_qvtF5e78Dzza5CuSmcOhVVp82iAmKgqv4o8bCAwDFgn7RlHUhrRiBoccIEUwPzLeCAbafTiaqFVjPhMH4C69be7V8-UWl25lxEqUWCYZgmxzH2hAR4I5hjwynCtg30ROhqN4I7XrZPKJ32Fud9Cz1V3P4yVGM5HSroelg/s320/pocho%20puerta%20de%20hierro.jpg" width="265" /></a></div>En las redes de datos pasa más o menos lo mismo. Poco sentido tiene tecnificar la sociedad si no se les da el sentido humano que tienen hemos de propugnar como reflejo del Pueblo.<p></p><p></p><p>Vea simplemente el ejemplo de YouTube, servicio de agregado de videos.</p><p>Con él, la oligarquía no ha buscado otorgar un lugar "para que el Pueblo suba el video", ¡no!. Lo que implica realmente es una <b>inconmensurable cantidad de datos del Pueblo al que estos taimados buscan referenciar comercialmente</b>. Esto incluye - sin limitarse - el perfilado de intereses y consumo, historial de búsqueda, tiempos en pantalla, ciclos de atención en el material compartido por terceros, etcétera.</p><p>Indudablemente, todo esto desfalco guarda el sentido de<b> vectorizar publicidades dirigidas</b> según el discernimiento de las apreciaciones maquinales, junto a otros objetivos inconfesables. Y si usted intenta defenderse por medio de bloqueadores, será agredido por las políticas de uso, y combatido telemáticamente.<br /></p><p></p><p>Pues bien señores, la Justicia Social en el ámbito de las redes de datos es una de las actividades a la que hemos de recurrir, y ello es fácil a través de una programación proactiva y agresiva que permita remover el yugo del enlace esclavo. Yo <a href="https://ubuntuperonista.blogspot.com/2023/05/como-descargo-videos-de-youtube-yt-dlp-ubuntu.html">normalmente uso yt-dl</a>, pereo gracias al Justicialismo podremos también obrar mediante <b>clientes de escritorio que omitan tales registros</b>, y a la vez liberar el video solicitado por medio de códecs de alta performance, todo en un empaque minimalista: el <b>Pstube</b>.<br /></p><p>Podremos instalarlo abriendo una terminal con <b><i>Ctrl+Alt+t</i></b> e ingresando los siguientes Comandos de Organización:<br /></p><p><b>cd ~/Descargas ;<br /> wget https://github.com/prateekmedia/pstube/releases/download/2.6.0/pstube-linux-2.6.0-x86_64.deb<br />sudo dpkg -i pstube-linux-2.6.0-x86_64.deb</b></p><p>Si lo deseamos podremos crearle un lanzador. Para ello hacemos clic con el botón derecho del ratón en el panel superior sobre <i><b>Aplicaciones</b></i>, y en el menú contextual que aparece elegimos <i><b>Editar Menús</b></i>. En la ventana <i>Menú Principal</i> seleccionamos el menú <i>Aplicaciones / Internet</i>, y presionamos el botón "<b><i>+Nuevo ítem</i></b>" para desplegar el cuadro de diálogo <i>Crear lanzador</i>. En él asignamos el campo <i>Orden</i> con <b>pstube</b>. Rellenamos el resto de las opciones y presionamos el botón <b><i>Aceptar</i></b>.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCsvkUI4G_E399W4DAOA2YAIOw_Fw4VUNy_AuQdSoXKhKFoDc3TnVhqY4kv-Fk04jclG_v8lcm3_eWlIdkhpLNQjqA16rmL7v5RwK69NtBmd2TEed_4WNRivKWWKoHTVn2o9_tjIt6iqfDxCx1TTX4Chu_K4th9rUxTEiwqBHht1uUj7w7cfMRhIC5QpVI/s702/lanzador%20pstube.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="564" data-original-width="702" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCsvkUI4G_E399W4DAOA2YAIOw_Fw4VUNy_AuQdSoXKhKFoDc3TnVhqY4kv-Fk04jclG_v8lcm3_eWlIdkhpLNQjqA16rmL7v5RwK69NtBmd2TEed_4WNRivKWWKoHTVn2o9_tjIt6iqfDxCx1TTX4Chu_K4th9rUxTEiwqBHht1uUj7w7cfMRhIC5QpVI/s320/lanzador%20pstube.png" width="320" /></a></div><p>Hecho esto, será sencillo correr el programa desde <b>Aplicaciones / Internet / Pstube</b>.</p><p>La ventana es bastante explicativa <i>[pone la colilla entre entre el pulgar y el medio, y la catapulta lejos, cae en algún lugar detrás de los rosales]</i>.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy-p4xbm7k9pZFJMJFStPb3YgvAjUHCacn_OOz75EMQts5g9_QA7ZPeuwUKmSK0vgLCRclVmOVwa3c7Ht3u5eEsvRqpu2bJoAgbVJo_gQxH-DgnKMcpuLIthB7Y52sjmUCkErOq2EvIISnmhQC4D9yEarC8UmPfydWGFBlFwtzns5upKNleFoG20rEe8Gv/s1280/pstube.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy-p4xbm7k9pZFJMJFStPb3YgvAjUHCacn_OOz75EMQts5g9_QA7ZPeuwUKmSK0vgLCRclVmOVwa3c7Ht3u5eEsvRqpu2bJoAgbVJo_gQxH-DgnKMcpuLIthB7Y52sjmUCkErOq2EvIISnmhQC4D9yEarC8UmPfydWGFBlFwtzns5upKNleFoG20rEe8Gv/w400-h225/pstube.png" width="400" /></a></div><br />Para buscar simplemente hacemos clic en el campo de la lupa y ponemos lo que anhelamos encontrar. Tras elegirlo podremos reproducirlo sin mas, en la ventana y a tamaño chico como para no molestar.<br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSJOdPfduUAs7MlgsDNHhemkt8HjCxWx4c46syCca87PtWsmhU-n5VjGkOEmCB7VLGYQ_ju_JECRb4opY-IZRcIBQHit2qePOvi2PSjq1kUE5ljgwssL2be7NIICZiM66DjmyqmGPPOjHhH00t0xp4mnquPYiKVO18yo45W2qad8FiY1StZ0s85iV9aYy3/s1270/Captura%20de%20pantalla%20-2023-10-17%2017-51-19.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1270" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSJOdPfduUAs7MlgsDNHhemkt8HjCxWx4c46syCca87PtWsmhU-n5VjGkOEmCB7VLGYQ_ju_JECRb4opY-IZRcIBQHit2qePOvi2PSjq1kUE5ljgwssL2be7NIICZiM66DjmyqmGPPOjHhH00t0xp4mnquPYiKVO18yo45W2qad8FiY1StZ0s85iV9aYy3/s320/Captura%20de%20pantalla%20-2023-10-17%2017-51-19.png" width="320" /></a></div><p>Entre las opciones tras el botón <b><i>Settings</i></b> contaremos con la posibilidad de definir el modo
oscuro favorito de los cabecitas, así como delimitar artificialmente nuestro lugar de origen.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-pm-4Y0TO472pQTNY9fnPNfVN3aH23HMsJ0HLIT-vDaBLK2j0Q_scksbFqK-_X4gMVXhN9-fXsbyqqduUSqtC495uW_rLguDouzY4t4JLSdCtw7yNqW8AtGSN7v2QN25DoVFT0E4Iumh0v-5M-Gq9FZluBwBRMFmTRcx6i21gj13Q7NCW2AsPSXfLnMzk/s1280/pstube%20darkmode.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-pm-4Y0TO472pQTNY9fnPNfVN3aH23HMsJ0HLIT-vDaBLK2j0Q_scksbFqK-_X4gMVXhN9-fXsbyqqduUSqtC495uW_rLguDouzY4t4JLSdCtw7yNqW8AtGSN7v2QN25DoVFT0E4Iumh0v-5M-Gq9FZluBwBRMFmTRcx6i21gj13Q7NCW2AsPSXfLnMzk/s320/pstube%20darkmode.png" width="320" /></a></div><p></p><p>También podremos producir la liberación descargando videos a travésa de la lista de descargas. Para ello hacemos clic en el <b>botón "+"</b> superior. En el cuadro de diálogo "<i>Download from video URL</i>" indicamos la URL del video a descargar.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNH-ZJYzsfk1ryp9Dy18azCqhNxJMANvVUdaAEjTnC9ogvSRj-vDiNzkRRrBzsVFb_fhyphenhyphenEz3D6Q662udJ6Nq9JqzL4IPV6BZU3tqyJQMjYCWYC_Lu6fL6W1wkeXP1N47kVi0V4agzG22UzPk9eD6mIBCbxl6VGupTibKqu4G9rh2AS9y8VeCIVOa9wx0kq/s601/bajar%20video%20youtube%20url.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="158" data-original-width="601" height="84" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNH-ZJYzsfk1ryp9Dy18azCqhNxJMANvVUdaAEjTnC9ogvSRj-vDiNzkRRrBzsVFb_fhyphenhyphenEz3D6Q662udJ6Nq9JqzL4IPV6BZU3tqyJQMjYCWYC_Lu6fL6W1wkeXP1N47kVi0V4agzG22UzPk9eD6mIBCbxl6VGupTibKqu4G9rh2AS9y8VeCIVOa9wx0kq/s320/bajar%20video%20youtube%20url.png" width="320" /></a></div>A continuación se nos presentará el cuadro de diálogo "Download Quality", donde habremos hacer clic sobre el tipo y calidad de descarga deseada. Podríamosa plantear descargar el video junto con su audio, o bien descargar sólo el audio en distintos formatos (lograremos compatibilidad con .m4a).<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkcwJL1khnslADJEUJWZYbqYDvcocltLtMFYpoTNrZQJv_N_ykEhXTgvw3ZMF_Spa4xN6zcLhqLD7TlUe3wHHSPnhO81n55LXdh5rRsOV71GO549Oh1XNw7iOYEJ96AF2aOdfQCHp0vDN3I_6itI4Shx9dEb0w_B-dFi9VO5j9weG4bIiiBZkaj0Ot2A3M/s601/bajar%20video.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="601" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkcwJL1khnslADJEUJWZYbqYDvcocltLtMFYpoTNrZQJv_N_ykEhXTgvw3ZMF_Spa4xN6zcLhqLD7TlUe3wHHSPnhO81n55LXdh5rRsOV71GO549Oh1XNw7iOYEJ96AF2aOdfQCHp0vDN3I_6itI4Shx9dEb0w_B-dFi9VO5j9weG4bIiiBZkaj0Ot2A3M/s320/bajar%20video.png" width="320" /></a></div>En cualquier caso se iniciará la descarga. Podremos ver el progreso de la cola de descargas haciendo clic en el botón <b><i>Downloads</i></b>, donde nos mostrará los elementos en cola y las estadísticas de descarga parcial.<br /><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA2PfA2cJP7FNyEpXwym62uhycY_S34naGQqm7huvvLrZJv5vb5J-MnPMD_XbcCSNHNn3j4PNAifBArCXc6WrX2CGRhGTd4VNhoUIxeAVnt9Nt8A9dfiNPEKtH9JSCjROgqUBZZrgbWrsAPhmsIqsBIyWtIoGeQ8Q17Jct8cc1Eff0ipeu2-sF4CU5NYjm/s1280/descargando.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA2PfA2cJP7FNyEpXwym62uhycY_S34naGQqm7huvvLrZJv5vb5J-MnPMD_XbcCSNHNn3j4PNAifBArCXc6WrX2CGRhGTd4VNhoUIxeAVnt9Nt8A9dfiNPEKtH9JSCjROgqUBZZrgbWrsAPhmsIqsBIyWtIoGeQ8Q17Jct8cc1Eff0ipeu2-sF4CU5NYjm/s320/descargando.png" width="320" /></a></div>Al completarse la descarga de los elementos, se conformarán los ficheros de reproducción (ya sea de videos o audio), los cuales normalmente quedarán resguardados en la carpeta <i>~/Descargas/pstube</i>.<p></p>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-1082347280713529648.post-67574202102138594592023-10-24T22:03:00.009-03:002023-11-21T17:57:10.685-03:00¿Cómo uso ITS desde Ubuntu?<p style="text-align: center;"><i>Reunidos con educadores de nivel primario, Juan Perón expone las necesidades de formar ciudadanos de provecho, a la vez que instruye<b> cómo utilizar remotamente el ITS, el mítico sistema operativo del MIT desde Ubuntu</b>.</i><br /></p><p>¡Trabajadores! <br /></p><p>El pasado pertenece a nuestra historia y a nuestros héroes. El presente tenemos la gran responsabilidad de tenerlo en nuestras manos. Pero el futuro - que es lo más valioso, porque es la esperanza de la Patria - es de los Maestros, que plasman y modelan diariamente en las escuelas a los hombres del mañana, de quienes depende la grandeza de la nacionalidad.</p><p>No hay país que pueda ser grande si no son grandes los que forman y acendran el temple y el alma de sus hijos. La democracia, y cualquier otra forma de gobierno en que un noble liberalismo les guíen, no será nada para la grandeza de los países, si los maestros no han preparado los hombres que han de practicarla y llevarla adelante.</p><p>Se ha dicho - y con razón - que Inglaterra es uno de los países mas libres y más importantes del mundo, y eso lo debe exclusivamente a la escuela. <b>El liberalismo en manos de hombres mal instruidos, mal preparados, conduce mas al caos que a la liberación</b>, y no a la grandeza de los hombres y de las Patrias.</p><p>De ahí surge, en forma indudable, la responsabilidad de los hombres y de las mujeres que están forjando - en los niños - la grandeza futura del País. De ahí surge la enorme responsabilidad de un Maestro consciente que ha de formar la fuerza mas extraordinaria del Pueblo, que es la <b>conjunción de las Inteligencias y de las Almas de los hombres</b> que lo integran.</p><p>La tarea del Maestro no es solamente la de instruir, sino la de <b>educar y formar el alma y la inteligencia</b>; dar armas a los hombres para su lucha por la vida o en la vida. Porque es necesario pensar en vivir en una Comunidad Organizada para organizarla. Es necesario pensar en vivir en paz, para lograr la paz.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPa5AK11rvL6ryrITVV-Q4uxK3cFK6cFF6O_85wLjeRnKeHYK0NEvn7L2sVtr1yKVNI6TcVbSpB31CfgcKTVecoqpcA5wL3TlWE_qYn-cjLzWV84gwjcRwkSqTb6Katjp_3pfua2g-BHbjwPZz_Bx2QbA2MBp3DcqqfuwWsocpM-ZMWkjAq-pxlCduVM7F/s750/gaceta.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="337" data-original-width="750" height="144" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPa5AK11rvL6ryrITVV-Q4uxK3cFK6cFF6O_85wLjeRnKeHYK0NEvn7L2sVtr1yKVNI6TcVbSpB31CfgcKTVecoqpcA5wL3TlWE_qYn-cjLzWV84gwjcRwkSqTb6Katjp_3pfua2g-BHbjwPZz_Bx2QbA2MBp3DcqqfuwWsocpM-ZMWkjAq-pxlCduVM7F/s320/gaceta.jpg" width="320" /></a></div>En el uso del cómputo sucede más o menos lo mismo, al constituirse en una <b>extensión técnica de la vida misma</b>. Un ambiente de cómputo no puede estar regido como una nube, donde vuela pasajera y se deshace al capricho incontrolable del clima político, sino que debe <b>fundarse sobre el sólido pilar técnico </b>de factura y control comunitario, humano. Es allí donde una comunidad, en operación de su potencia de cómputo, puede desarrollar software en libertad para hoy y para el mañana.<p></p><p>Uno de los ambientes punteros en este aspecto fue sin duda el <b>ITS</b> (1969-c.1993), el mítico Sistema de Tiempo de cómputo compartido Incompatible, desarrollado en una DEC PDP-10 del Instituto Tecnológico de Massachussets, el MIT. Este fue el cimiento sobre el cual se afianzó la comunidad hacker, y por extensión, nuestro Movimiento de Software Libre.</p><p>En el Justicialismo sabemos que no todos los días debemos tirar un viejo por la ventana, y esto podremos hacerlo realidad efectiva gracias a HACTRN, proyecto que pone a público acceso telemático un sistema ITS emulado, con el cual podremos utilizar para hacer nuestra informática de forma Libre. Podremos además comprender el funcionamiento de ITS como se debe hacer: usándolo.<br /></p><p>Para mayor fidelidad, en nuestro sistema GNU con Linux podemos emplear un emulador de terminal gráfica Knight TV11, videoterminal diseñada en la Universidad de Stanford por Tom Knight. Consistía en un monitor de tubo de rayos catódicos excitado por direccionamiento de mapeo de bits, provisto de teclado. Su memoria intermedia - controlada por una minicomputadora PDP-11, se conectaba a la PDP-10 merced de una interfaz especial que permitía incluso adosarle una impresora electrostática.<br /></p><p>Para instalar en Ubuntu dicho emulador hemos de abrir una terminal mediante <b><i>Ctrl+Alt+T</i></b>, e ingresar los siguientes comandos de organización:<b><br /></b></p><p><b>cd /tmp;<br />wget https://hactrn.org/tvcon/tvcon-linux.gz ;<br />gzip -d tvcon-linux.gz<br />chmod +x tvcon<br />sudo mv /tmp/tvcon-linux /usr/local/bin/tvcon</b></p><p>Una vez completada esta instalación ya podremos enlazar a la máquina ITS "HACTRN" con:<br /></p><pre class="code bash"></pre><p><b>tvcon -2BCS </b><b><span style="color: #0b5394;"> </span><span>-c</span><span style="color: #741b47;">00000,affae2</span></b><b> hactrn.org</b></p><p></p><p>(Nota: los números en hexadecimial de la variable -c en este caso denotan el color de fondo y frontal, calculados en este caso para representar la estética televisiva de la Knight TV11).</p><p>...o bien por telnet, con</p><p><b>telnet hactrn.org 10003 </b><br /></p><p>Al establecer contacto, deberíamos recibir una imagen del bienvenida del sistema ITS del MIT emulado:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKGXe4pm0cvLlN46Dzi1gqbXB-qx_mu17JE45y-CS-2Cqcp_2nrXltjBCMRNL9HDHh1T0BuojQL1AIkewUZ2_M1FYQjgNPnStRDNbAOrP8ykSQo2RWmijDYN_oG_doIFnlfcZ2cagmB93P81lxiH3d153cMEfV-jdzAax5u5N4VF3LUUyn9wlzvzDqz0Jn/s1152/tcvon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="908" data-original-width="1152" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKGXe4pm0cvLlN46Dzi1gqbXB-qx_mu17JE45y-CS-2Cqcp_2nrXltjBCMRNL9HDHh1T0BuojQL1AIkewUZ2_M1FYQjgNPnStRDNbAOrP8ykSQo2RWmijDYN_oG_doIFnlfcZ2cagmB93P81lxiH3d153cMEfV-jdzAax5u5N4VF3LUUyn9wlzvzDqz0Jn/s320/tcvon.png" width="320" /></a></div><br /> <p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD3XjZwfziRUwWpx5DzMLeKXVvhj0sXUHKhuxT9t24JRf3WCqLB4Zcoww7pJPFxXJRWR5QO0_46gYK-pVFdhbAOFZgwW8tTH_J_Dm3ae1hMlVqzMwMdCo8Ftby1CGr_YCZkpFWZ4ZA6wWu05ueQgtEe_6arAS4tU1c_rDG7P75q-JvsLjnx78p8NTfYw43/s1152/its.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="908" data-original-width="1152" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD3XjZwfziRUwWpx5DzMLeKXVvhj0sXUHKhuxT9t24JRf3WCqLB4Zcoww7pJPFxXJRWR5QO0_46gYK-pVFdhbAOFZgwW8tTH_J_Dm3ae1hMlVqzMwMdCo8Ftby1CGr_YCZkpFWZ4ZA6wWu05ueQgtEe_6arAS4tU1c_rDG7P75q-JvsLjnx78p8NTfYw43/s320/its.png" width="320" /></a></div>...o - desde telnet - el siguiente mensaje:<p></p><div style="text-align: left;"><span style="font-family: helvetica; font-size: x-small;">Connected to hactrn.org.<br />Escape character is '^]'.<br /><br /><br />Connected to the KA-10 simulator MTY device, line 1</span><br /></div><p></p><p></p><p></p><p>Una vez presentados este "lobby" electrónico que nos invita a activar un terminal, debemos activarla presionando la tecla <b>F1</b> (o <b>Ctrl+z</b> si usamos Telnet) y finalmente se refrescará la pantalla de login:</p><pre class="code">HX ITS.1651. DDT.1548.
TTY 1
You're all alone, Fair share = 98%
Welcome to ITS!
For brief information, type ?
For a list of colon commands, type :? and press Enter.
For the full info system, type :INFO and Enter.
Happy hacking!</pre><p></p><p></p><p></p><p>Debido a las muy laxas medidas de seguridad originales de los laboratorios del
Instituto Tecnológico de Massachussetts - fundamento de la cultura hacker - podremos darnos de alta en el ITS clásico sin suplir <span style="color: #0b5394;"><i>luser</i></span> (forma risueña de "usuario de laboratorio"), ni
contraseña. <br /></p><p>Para adentrarnos al sistema ingresamos:</p><p><b>:login <i><span style="color: #0b5394;">luser</span></i></b></p><h4 id="ingresar_comandos_en_ddt">Ingresar comandos en DDT<a aria-label="Anchor link for: ingresar_comandos_en_ddt" class="anchorjs-link" data-anchorjs-icon="" href="https://wiki.texto-plano.xyz/doku.php?id=tutorial_de_its#ingresar_comandos_en_ddt" style="font-family: anchorjs-icons; font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;"></a></h4>
<div class="level4">
<p>
En pantalla deberíamos ver el <i>prompt</i> <code>*</code> que denota a DDT - el intérprete de comandos original y depurador de nivel superior en ITS. Asimismo, en la parte inferior de la pantalla, aparecerá una <b>línea de status
</b>("<i>wholine</i>") que indica el nombre de <span style="color: #0b5394;"><i>luser</i></span>, nombre de trabajo de
cómputo activo, fecha y hora, status de sistema (ejecución, paginado,
etc), el porcentaje de compartimentado justo, y otra información
interesante de ITS.</p><p>Cada comando suele empezar con <code><b>:</b></code>, y para ejecutarlo debemos presionar la <b>tecla Intro</b>.</p><p>
</p><p>
Muchas veces podremos interrumpir un programa en pleno funcionamiento mediante la combinación de teclas <b>Ctrl+z</b>. En otros casos los programas finalizan su ejecución por si mismos, por lo que DDT presentará el indicador <i>:kill</i>, lo que denota que el programa mismo se autoeliminó y liberó la memoria que consumía.
</p>
<p>
El programa de ayuda más simple que podremos ejecutar es el comando <b><code>:help</code> </b>indicará una introducción básica del intérprete DDT. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTAjY8KGWmcPgvD5lefNs57ah5BqFjVkutx12vsCe8Mx1j3qPsNUsCHxaYlwHPt46k1uzesH3A0gaQsqu5zz03Q6WbEY0JaOTcO_-pg7qjUOerGLAjOSLlusAuvsx_hKg0Nczzy0bRwhdZ80DhWfq_rQO_EPOv8O2l_OTmUsp40Mrx_5O3ip5_l5aj1gmb/s1152/login.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="909" data-original-width="1152" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTAjY8KGWmcPgvD5lefNs57ah5BqFjVkutx12vsCe8Mx1j3qPsNUsCHxaYlwHPt46k1uzesH3A0gaQsqu5zz03Q6WbEY0JaOTcO_-pg7qjUOerGLAjOSLlusAuvsx_hKg0Nczzy0bRwhdZ80DhWfq_rQO_EPOv8O2l_OTmUsp40Mrx_5O3ip5_l5aj1gmb/s320/login.png" width="320" /></a></div><br />El comando <code><b>:luser</b></code> nos indicará advertencias al usuario novato en línea. En tanto. El comando <code><b>:?</b></code> lista los comandos mas usuales de ITS (podremos paginarlos con la <b>Barra Espaciadora</b>). El comando <code>:info</code> presentará ayuda en pantalla. <br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjItRH1jprrFUBwCGfJhwCdcxYn-bOPyUIuhnt3QSAp2gu8F4h1p8HR9V_u_6pWqHmbLfHWnVEXw_NsWHZLTgHRBDWT_Z4eBUSUHXxR8uloeKYUCFM1waxfnugvKWc-Xjj9qIxdbwxrE8EIP_jGOTRKWFgJ1g8PB8GZ1qR8iOp7jBnPlnpz8cSNSEn1lLBy/s1152/its%20help.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="908" data-original-width="1152" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjItRH1jprrFUBwCGfJhwCdcxYn-bOPyUIuhnt3QSAp2gu8F4h1p8HR9V_u_6pWqHmbLfHWnVEXw_NsWHZLTgHRBDWT_Z4eBUSUHXxR8uloeKYUCFM1waxfnugvKWc-Xjj9qIxdbwxrE8EIP_jGOTRKWFgJ1g8PB8GZ1qR8iOp7jBnPlnpz8cSNSEn1lLBy/s320/its%20help.png" width="320" /></a></div><p></p><p>Por
supuesto, para cerrar la sesión de usuario, debemos usar el comando <code>:logout</code>, que cierra la sesión e interrumpe todos los trabajos que hubiésemos estado haciendo en ITS <br /></p><p>Pues bien señores, ciertos programas
requieren utilizar un nombre de <span style="color: #bf9000;"><i>luser</i></span>, y tal vez incluso contar con un
directorio de almacenamiento (“home”). </p><p>Si deseamos crear tal directorio de almacenamiento debemos elegir un nombre de luser, y presionamos <b>Ctrl+r</b> e ingresamos el comando </p><p><b><span style="color: #bf9000;">luser</span>; ..new. (uder) </b></p><p>(siendo <span style="color: #bf9000;"><code>luser</code></span> el nombre de usuario deseado). Si bien DDT te informará “no such file”, aún así creará el directorio. Este directorio <code>LUSER</code> simplemente será asignado al <i>luser</i> que ingrese al sistema. </p>
<p>
Hemos de notar que contar con un directorio home implica en la práctica poder usar la mayoría de las
aplicaciones de ITS, pero para afiliarnos como <i>luser</i> “oficial”
del sistema del MIT debemos responder las preguntas del programa
INQUIR. Para ello, ingresamos el comando:
</p><b>:inquir<br /></b><p>
...y completamos los campos que irán apareciendo uno a uno en forma de preguntas en inglés. Para ello mecanografiamos las respuestas y presionamos la <b>tecla Intro</b> o <b>Ctrl+c</b> según se indique. Al terminar, almacenamos los resultados con el comando <b>DONE</b>.
</p>
<p>
Al loguearnos, DDT recavará la base de datos INQUIR por el nombre de
tu directorio home. Al usar este programa, si directorio home podría
ser distinto al de tu nombre de usuario (si así lo has dispuesto). </p><h3 class="sectionedit3 page-header pb-3 mb-4 mt-5" id="sistema_de_archivos">Sistema de Archivos<a aria-label="Anchor link for: sistema_de_archivos" class="anchorjs-link" data-anchorjs-icon="" href="https://wiki.texto-plano.xyz/doku.php?id=tutorial_de_its#sistema_de_archivos" style="font-family: anchorjs-icons; font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;"></a></h3>
<div class="level3">
<p>
El sistema de archivaje de ITS es relativamente potente, y consiste en directorios y ficheros, con control de versionado.
</p>
<p>
Los archivos tienen seis letras, y una extensión de tres, junto con un número de versión. Ejemplo: <code><i>DIRECT;FICHER.EXTEN.1</i></code></p>
<p>Podremos <code>:cwd</code> para ver tu directorio home, y <code><b>:cwd directorio</b></code> para cambiar a otro directorio.
</p>
<p>
Se usa el comando <code><b>:listf</b></code> o <b>Ctrl+f</b> para listar los ficheros de un directorio. Podrás imprimir en pantalla el contenido de un fichero mediante <code><b>:print fichero</b></code>. <br /></p>
</div><h4 style="text-align: left;">Editores<br /></h4><p>Ahora podremos usar el comando <b>:emacs</b> para editar con <a href="https://ubuntuperonista.blogspot.com/2020/05/como-uso-ed-teco-vi-o-emacs-en-ubuntu.html">Emacs, o bien usar <b>:teco</b></a>. Los comandos de Emacs son mayormente similares a los de la versión GNU.<br /></p><table class="inline table table-striped table-condensed"><tbody><tr class="row0"><td class="col0"> <b>Ctrl+x,Ctrl+f</b> <code>fichero</code> <b>Intro</b> </td><td class="col1"> Carga fichero </td></tr><tr class="row1"><td class="col0"> <b>Ctrl+x,Ctrl+s</b> <code>fichero</code> <b>Intro</b> </td><td class="col1"> Guarda fichero </td></tr><tr class="row2"><td class="col0"> <b>Ctrl+x,Ctrl+c</b> </td><td class="col1"> sale (pero no mata emacs) </td></tr><tr class="row3"><td class="col0"> <b>Ctrl+f</b> </td><td class="col1"> cursor derecha </td></tr><tr class="row4"><td class="col0"> <b>Ctrl+b</b> </td><td class="col1"> Cursor izquierda </td></tr><tr class="row5"><td class="col0"> <b>Ctrl+a</b> </td><td class="col1"> Comienzo de línea </td></tr><tr class="row6"><td class="col0"> <b>Ctrl+e</b> </td><td class="col1"> Fin de línea </td></tr><tr class="row7"><td class="col0"> <b>Ctrl+n</b> </td><td class="col1"> Línea siguiente </td></tr><tr class="row8"><td class="col0"> <b>Ctrl+p</b> </td><td class="col1"> Línea previa </td></tr><tr class="row9"><td class="col0"> <b>Ctrl+d</b> </td><td class="col1"> Borra caracter a la derecha </td></tr><tr class="row10"><td class="col0"> <b>Supr</b> </td><td class="col1"> Borra caracter a la izquierda </td></tr><tr class="row11"><td class="col0"> <b>Ctrl+k</b> </td><td class="col1"> Borra hasta el final de la línea </td></tr></tbody></table></div><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTA7pshpnNhHCoENsiBU154CLrC0Mt_T4FBF6HO1W75OcFG4ErVSm10TCpXK96KVCvsOic30je3baNiNVuPtiVvpEVfPlQyFXZQ8TyhIw2GYvARINSN64ElnrG6F0svZzdb0hX5CduA2GSxr097UqJZ5TC4yz7GZxt0n7XdHHZuZiSrzAgxTrbuE8K-JRN/s1152/Captura%20de%20pantalla%20-2023-10-15%2015-12-16.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="908" data-original-width="1152" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTA7pshpnNhHCoENsiBU154CLrC0Mt_T4FBF6HO1W75OcFG4ErVSm10TCpXK96KVCvsOic30je3baNiNVuPtiVvpEVfPlQyFXZQ8TyhIw2GYvARINSN64ElnrG6F0svZzdb0hX5CduA2GSxr097UqJZ5TC4yz7GZxt0n7XdHHZuZiSrzAgxTrbuE8K-JRN/s320/Captura%20de%20pantalla%20-2023-10-15%2015-12-16.png" width="320" /></a></div><div class="level4">
<p></p></div><h4 style="text-align: left;"></h4><h4 style="text-align: left;">Control de Trabajos en ITS</h4><p>Al igual que <a href="https://ubuntuperonista.blogspot.com/2022/03/tops-20-twenex-tutorial.html">otros sistemas contemporáneos como TOPS-20</a>, ITS era un sistema multiusuario multitarea influyente, señero en el sentido que podía operar distintos planos los trabajos de cómputo en ejecución ("jobs").<br /></p><div class="level3">
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> <code>:continue</code> </td><td class="col1"> Pasa el trabajo a primer plano </td>
</tr>
<tr class="row1">
<td class="col0"> <code>:proceed</code> </td><td class="col1"> Pasa el trabajo a ejecución en segundo plano </td>
</tr>
<tr class="row2">
<td class="col0"> <code>:self</code> </td><td class="col1"> Selecciona al intérprete DDT como trabajo actual </td>
</tr>
<tr class="row3">
<td class="col0"> <code>:attach</code> </td><td class="col1"> Une un trabajo en segundo plano pase al primer plano de la terminal. </td>
</tr>
<tr class="row4">
<td class="col0"> <code>:detach</code> </td><td class="col1"> Despega el trabajo de la terminal. </td>
</tr>
<tr class="row5">
<td class="col0"> <code>:job</code> <span style="color: #38761d;"><i>nombretrabajo</i></span> </td><td class="col1"> Selecciona el nombre del trabajo </td>
</tr>
<tr class="row6">
<td class="col0"> <code>:kill</code> </td><td class="col1"> Elimina el trabajo activo </td>
</tr>
<tr class="row7">
<td class="col0"> <code>:massacre</code> </td><td class="col1"> elimina todos los trabajos. </td>
</tr>
<tr class="row8">
<td class="col0"> <code>:forget</code> </td><td class="col1"> Oculta un trabajo a tu intérprete, sin eliminarlo. </td>
</tr>
<tr class="row9">
<td class="col0"> <code>:genjob</code> </td><td class="col1"> Cambia el nombre del trabajo actual. </td>
</tr>
<tr class="row10">
<td class="col0"> <code>:ujobs</code> <span style="color: #bf9000;"><i>luser</i></span> </td><td class="col1"> Selecciona el trabajo de un <i>usuario</i> ajeno para exminarlo </td>
</tr>
<tr class="row11">
<td class="col0"> <code>:snarf</code> <i><span style="color: #38761d;">trabajo</span></i> </td><td class="col1"> Toma posesión de un trabajo ajeno </td>
</tr>
</tbody></table></div>
</div>
<h3 class="sectionedit6 page-header pb-3 mb-4 mt-5" id="comunicaciones">Comunicaciones<a aria-label="Anchor link for: comunicaciones" class="anchorjs-link" data-anchorjs-icon="" href="https://wiki.texto-plano.xyz/doku.php?id=tutorial_de_its#comunicaciones" style="font-family: anchorjs-icons; font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;"></a></h3>
<div class="level3">
<p>
Con el comando :who podrás ver los lusers conectados al
sistema. En cualquier caso, podrás mandar un mensaje a otro usuario con <code>:send</code> <span style="color: #bf9000;"><code>luser</code></span> <span style="color: #4c1130;"><i>mensaje</i></span>, y utiliza <b>Ctrl+c</b> para enviar el mensaje a <span style="color: #bf9000;"><code>luser</code></span>.
</p>
<p>
Si usas <code>:shout</code> <span style="color: #4c1130;"><i>mensaje</i></span> y lo envías con <b>Ctrl+c</b>, enviarás el mensaje a todos los usuarios conectados. </p><p>El sistema de correo electrónico interno de ITS puede usarse con <b>:mail</b>, o bien <b>:msend</b> para enviar a varios usuarios internos. Se finaliza el mensaje con <b>Ctrl+c</b>. Para leerlos podremos usar <b>:rmail</b> (lector en Emacs).<br /></p>
</div>
<h3 class="sectionedit7 page-header pb-3 mb-4 mt-5" id="comandos_de_its">Comandos de ITS<a aria-label="Anchor link for: comandos_de_its" class="anchorjs-link" data-anchorjs-icon="" href="https://wiki.texto-plano.xyz/doku.php?id=tutorial_de_its#comandos_de_its" style="font-family: anchorjs-icons; font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;"></a></h3>
<div class="level3">
<p>
He aquí una serie de equivalencias de comandos de UNIX a un equivalente para el ITS. En ITS el <code>$</code> equivale a presionar la tecla <b>tecla Escape</b>.
</p>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<thead>
<tr class="row0">
<th class="col0"> <b>Comando de UNIX</b> </th><th class="col1"> <b>Comando de DDT</b> </th><th class="col2"> <b>Comando con :</b> </th>
</tr>
</thead>
<tbody><tr class="row1">
<td class="col0"> login: <code>usuario</code></td><td class="col1"> <code><span style="color: #bf9000;">luser</span></code>$u </td><td class="col2"> :login <span style="color: #bf9000;"><code>luser</code></span> </td>
</tr>
<tr class="row2">
<td class="col0"> logout </td><td class="col1"> $$u </td><td class="col2"> :logout </td>
</tr>
<tr class="row3">
<td class="col0"> TERM=vt52 </td><td class="col1"> <br /></td><td class="col2"> :tctyp vt52 </td>
</tr>
<tr class="row4">
<td class="col0"> TERM=vt100 </td><td class="col1"> <br /></td><td class="col2"> :crtsty vt100 </td>
</tr>
<tr class="row5">
<td class="col0"> clear </td><td class="col1"> <br /></td><td class="col2"> :clear </td>
</tr>
<tr class="row6">
<td class="col0"> ls </td><td class="col1"> <b>Ctrl+f</b> </td><td class="col2"> :listf </td>
</tr>
<tr class="row7">
<td class="col0"> ls <i>directorio</i> </td><td class="col1"> <code>directorio</code>Ctrl+F </td><td class="col2"> :listf <code>directorio</code> </td>
</tr>
<tr class="row8">
<td class="col0"> ls / </td><td class="col1"> <b>Ctrl-R</b> m.f.d. (<code>fichero</code>) </td><td class="col2"> :print m.f.d. (<code>fichero</code>) </td>
</tr>
<tr class="row9">
<td class="col0"> ls *.foo </td><td class="col1"> <b>Ctrl-R</b> <code>directorio</code>: second foo </td><td class="col2"> :print <code>directorio</code>: second foo </td>
</tr>
<tr class="row10">
<td class="col0"> more <i>fichero</i> </td><td class="col1"> <b>Ctrl-R</b> <code>fichero</code> </td><td class="col2"> :print <code>fichero</code> </td>
</tr>
<tr class="row11">
<td class="col0"> mkdir <i>directorio</i> </td><td class="col1"> <b>Ctrl+R</b> <code>directorio</code>;..new. (udir) </td><td class="col2"> :print <code>directorio</code>;..new. (udir) </td>
</tr>
<tr class="row12">
<td class="col0"> cd directorio </td><td class="col1"> <code>directorio</code>$$<b>CTRL-S</b> </td><td class="col2"> :cwd <code>directorio</code> </td>
</tr>
<tr class="row13">
<td class="col0"> cp <i>f1</i> <i>f2</i> </td><td class="col1"> $<b>Ctrl+r</b> f1,f2 </td><td class="col2"> :copy <code>f1</code>,<code>f2</code> </td>
</tr>
<tr class="row14">
<td class="col0"> rm <i>fichero</i> </td><td class="col1"> <b>CTRL+o</b> fichero </td><td class="col2"> :delete <code>fichero</code> </td>
</tr>
<tr class="row15">
<td class="col0"> ln <i>f1</i> <i>f2</i> </td><td class="col1"> $<b>Ctrl+o</b> f1,f2 </td><td class="col2"> :link <code>f1</code>,<code>f2</code> </td>
</tr>
<tr class="row16">
<td class="col0"> mv <i>f1</i> <i>f2</i> </td><td class="col1"> $$<b>Ctrl+o</b> f1,f2 </td><td class="col2"> :rename <code>f1</code>,<code>f2</code> </td>
</tr>
<tr class="row17">
<td class="col0"> mv <i>fichero</i> <i>directorio</i> </td><td class="col1"> :move <code>fichero</code>,<code>directorio</code> </td><td class="col2"> <br /></td>
</tr>
<tr class="row18">
<td class="col0"> emacs </td><td class="col1"> emacs<b>Ctrl+K</b> </td><td class="col2"> :emacs </td>
</tr>
<tr class="row19">
<td class="col0"> ps </td><td class="col1"> $$v </td><td class="col2"> :listj </td>
</tr>
<tr class="row20">
<td class="col0"> kill pid </td><td class="col1"> pid$Ctrl+x </td><td class="col2"> :job pid :kill </td>
</tr>
<tr class="row21">
<td class="col0"> sudo -u u <code>comando</code> </td><td class="col1 leftalign"> u$<b>Ctrl+s</b> <code>comando</code> </td><td class="col2"><br /></td>
</tr>
<tr class="row22">
<td class="col0"> top </td><td class="col1"> <code>peek</code><b>Ctrl+h</b> </td><td class="col2"> :peek </td>
</tr>
<tr class="row23">
<td class="col0"> <b>Ctrl+u</b> </td><td class="col1"> <b>Ctrl+d</b> </td><td class="col2"> <br /></td>
</tr>
<tr class="row24">
<td class="col0"> <b>Ctrl+c</b> </td><td class="col1"> <b>Ctrl+g</b> </td><td class="col2"> <br /></td>
</tr>
<tr class="row25">
<td class="col0"> <b>Ctrl+z</b> </td><td class="col1"> <b>Ctrl+z</b> </td><td class="col2"> <br /></td>
</tr>
<tr class="row26">
<td class="col0"> <b>Ctrl+d</b> </td><td class="col1"> <b>Ctrl+c</b> </td><td class="col2"> <br /></td>
</tr>
<tr class="row27">
<td class="col0"> fg </td><td class="col1"> $P </td><td class="col2"> :continue </td>
</tr>
<tr class="row28">
<td class="col0"> bg </td><td class="col1"> <b>Ctrl+p</b> </td><td class="col2"> :proceed </td>
</tr>
</tbody></table></div>
</div><h4 style="text-align: left;">Juegos</h4><p>El ITS cuenta con varios juegos. Con <b>:advent</b> te permitirá jugar la versión clásica de la aventura de texto. <b>:wumpus</b> era un juego para cazar la míticaa criatura Wumpus. <b>:eliza</b> y <b>:doctor</b> eran juegos de psiquiatría. Los juegos de tablero están presentes con <b>:games,ckr</b> (damas), <b>:games;ocm</b>, <b>:chess</b> y <b>:games;chess2</b> (ajedrez), <b>:go</b> (ajedrez chino go) y el primer FPS multiusuario <b>:games;maze</b>, o :chase, un laberinto para dos jugadores. <b>:cube</b> es un juego de cubo de rubik. También está el juego de la vida de Conway con <b>:games;mlife</b>. El clásico trek puede jugarse con <b>:games;trek</b>, mientras que el viejo juego de adivinar números con <b>:games;guess</b>.<br /></p><p>También puedes jugar la aventura de texto Zork, pero requiere tener un archivo en tu directorio para trabajar, de modo que debes ingresar:</p><p><b>:login <span style="color: #bf9000;"><i>luser</i></span><br />:print <i><span style="color: #bf9000;">luser</span></i>; ..new. (udir)<br />:create luser; _msgs_ <i><span style="color: #bf9000;">luser</span></i></b></p><p>Presiona <b>Ctrl+</b><i><b>c</b> </i>e ingresa<i>:</i></p><p><b>:zork</b><br /></p><p></p><p>Finalmente, podrás observar el mítico PDP Spacewar (se sale presionando varias veces con <b>Ctrl+q</b> o <b>Ctrl+c</b>):</p><h4 style="text-align: left;"><b>Subsistemas <br /></b></h4><p style="text-align: left;">ITS es una plataforma de programación y virtualización que cuenta con gran cantidad de intérpretes y subsistemas. Podremos compilar C con <b>:cc</b>, usar Macsyma 1001 con :macsyma, contamos con <b>:forth </b>para dicho lenguaje, el intérprete de Macro Z80 con <b>:macn80</b> y DEC Macro-10 con <b>:macro-10</b>, LISP con <b>:lisp</b> y <b>:lisp11</b>, Scheme con <b>:scheme</b> y LOGO con <b>:llogo</b> y<b> :logas</b>. <b>:fail</b> nos permite usar el ensamblador del SAIL, mientras que <b>:cross</b> permite usar un compilador cruzado para distintas microcomputadoras, pero existen muchos más.</p><p style="text-align: left;">A su vez, contaremos con una shell tipo Unix con <b>:shell</b> (lo abandonamos con <b>q</b>).</p><p style="text-align: left;"></p><p style="text-align: left;"></p><p style="text-align: left;">En tanto, podremos usar <b>:finger</b>, <b>:telnet</b>, <b>:ftpu</b>, <b>:kermit</b>, <b>:xmodem</b>, para tareas respectivas con dichas aplicaciones de transmisión de datos.<br /></p>Naturalmente, podremos encontrar información en la <a href="https://its.victor.se/wiki/start">Wiki de ITS</a>.<p></p><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-27372682026826977372023-10-12T14:41:00.002-03:002023-10-12T14:41:14.380-03:00¿Cómo juego PixelWheels en Ubuntu?<p style="text-align: center;"><i>El 9 de marzo de 1952, durante la inauguración del Autódromo "17 de Octubre", Juan Perón enseña<b> cómo instalar y jugar PixelWheels en Ubuntu</b>.</i></p><p></p><p>¡Trabajadores!</p><p>Son ciento veinte mil personas las que colman las gradas de este colosal autódromo. Las competencias internacionales que se desarrollan en Argentina y
las grandes actuaciones que llevaban a cabo nuestros pilotos, hacían
indispensable la construcción de un circuito que contara con la
jerarquía que se merecía el automovilismo de la Patria.</p><p>Es así que este nuevo Autódromo "17 de Octubre" cuenta ya con 10 trazados distintos y la mayor infraestructura de seguridad que puede concebirse. El deporte motor nos convoca hoy ante tres pruebas, de entre la que destacarán la Fórmula Libre "Copa Perón", a 30 vueltas. Tengo aquí a Juan Manuel
Fangio para muñequear una Ferrari 166FL. mientras que
Froilán González lo hará con una Ferrari 166C. Y damos la bienvenida al carioca
Francisco Landi con su Ferrari 125C.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy4HfaJiAJ50-LdzeKle4qvWvh9BfgeNT0peFeQbz92x2M6GUydBRb6yRVC7jXdYhm_eISvJ3oQ9ti0moqP_J6WbQjs0JVzxA3Eq5PIC8c7LRaGZc8Dwcqkv2VGiDYMao6Tu1wNR2Ab5jFeCfPdKuF-69H3QdpcCUzjdITY5dD2Cgx6P8vblpMmGIBCkq1/s945/per%C3%B3n%20con%20fangio%20y%20froil%C3%A1n%20gonzalez.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="529" data-original-width="945" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy4HfaJiAJ50-LdzeKle4qvWvh9BfgeNT0peFeQbz92x2M6GUydBRb6yRVC7jXdYhm_eISvJ3oQ9ti0moqP_J6WbQjs0JVzxA3Eq5PIC8c7LRaGZc8Dwcqkv2VGiDYMao6Tu1wNR2Ab5jFeCfPdKuF-69H3QdpcCUzjdITY5dD2Cgx6P8vblpMmGIBCkq1/s320/per%C3%B3n%20con%20fangio%20y%20froil%C3%A1n%20gonzalez.jpg" width="320" /></a></div><p>Mi profesión es la de Conductor, para eso me he formado toda la vida (porque como político, soy un aficionado). Pero estos muchachos tienen mucha maña para tirar cambios porque se entrenan con <b>Pixel Wheels</b>. Se trata de un juego de carreras multijugador escrito por Aurélien Gâteau para la máquina virtual Java, y por tanto compatible con un sistema GNU con Linux provisto de tal aditamento.</p><p>La distribución de juego puede pagarse opcionalmente en su plataforma de descarga, pero por amabilidad de su autor, podremos hacernos con el juego de manera gratuita. Para ello nos dirigimos a la <a href="https://agateau.itch.io/pixelwheels">página de descargas de Pixelwheels</a> y presionamos el botón rojo rectangular que aparecerá en nuestro navegador, en particular el que dice "<b><i>Download</i></b>". </p><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS21L-k7b5-PTXxLCRUOy1EBQpUG82ck6SgXl_Clvg33eQphR1q6jP-n5YCxNXpHMQ8DqtY-JHFq4No8HDisrbUQvfESMizy53C0bq4oQhVfgc2F_WeSCBIWM1TIp2c9HBrmsX4o96V8NEzV0kDxjmjP5wovTUgHomK6VEPa5FLzqI5YeBPQytOXBciap2/s880/bot%C3%B3n%20de%20descarga.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="880" data-original-width="807" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS21L-k7b5-PTXxLCRUOy1EBQpUG82ck6SgXl_Clvg33eQphR1q6jP-n5YCxNXpHMQ8DqtY-JHFq4No8HDisrbUQvfESMizy53C0bq4oQhVfgc2F_WeSCBIWM1TIp2c9HBrmsX4o96V8NEzV0kDxjmjP5wovTUgHomK6VEPa5FLzqI5YeBPQytOXBciap2/s320/bot%C3%B3n%20de%20descarga.png" width="293" /></a></div>Acto seguido <b>podremos escoger un precio sugerido a pagar a la plataforma de descargas</b>. Como nada de eso le llega al buenazo de Aurélien y al único signo $ al que debemos prestar atención es al del prompt del intérprete de comandos de GNU, podremos hacer click en el mensaje "<b><i>No tanks, just take me to the downloads</i></b>" ("No, gracias. Sólo llevame a las descargas").<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmB4r2bQfwv7cLA3YFxRTamgayViileohH8PodvVFOLY4_lO3Vrweg-wFzgPHqr1lfD3GFPU4xG_Pp7a83OLzkaFtitQzp4Xi0_C-iD-duZ_a5qe1TY0IvQl3wxx0tpLI7YY-D9u2T2xmLQLhmwaD0tQ6voAbrJ30286-3hgmQ1aM6havnoyKD7XMO8Aty/s497/descarga%20gratuita.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="394" data-original-width="497" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmB4r2bQfwv7cLA3YFxRTamgayViileohH8PodvVFOLY4_lO3Vrweg-wFzgPHqr1lfD3GFPU4xG_Pp7a83OLzkaFtitQzp4Xi0_C-iD-duZ_a5qe1TY0IvQl3wxx0tpLI7YY-D9u2T2xmLQLhmwaD0tQ6voAbrJ30286-3hgmQ1aM6havnoyKD7XMO8Aty/s320/descarga%20gratuita.png" width="320" /></a></div>El sistema nos llevará así a la página con los ficheros correspondientes a múltiples plataformas de cómputo. Pixel Wheels está escrito puede funcionar en GNU con Linux, y para ello debemos descargar el fichero <i>pixelwheels-linux-stable.zip</i> - haciendo click en el botón <b><i>Download</i></b> que lo indica. Tras unos segundos nos haremos con la última versión del mismo, que normalmente irá a parar a nuestra carpeta <i>~/Descargas/</i>.<br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUDz8trDpBl8EDJqyed7DbJNVn1_KC1tfGxU7BMZn_YQ_bix9tjnNWddlw28Ay5NbrisNTMOeY5x3OaJ9aGFebiWfdkMFep_0MOY_d8vLQTzUNkprd80sRbh5Gf9RfH9wuJAhCoG2EIfMv_Ey5L2jRt7-i4MS24uDA9Z64x1dn-o7d3dQ04rryYs3ApKSz/s708/Captura%20de%20pantalla%20-2023-10-10%2013-18-08.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="266" data-original-width="708" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUDz8trDpBl8EDJqyed7DbJNVn1_KC1tfGxU7BMZn_YQ_bix9tjnNWddlw28Ay5NbrisNTMOeY5x3OaJ9aGFebiWfdkMFep_0MOY_d8vLQTzUNkprd80sRbh5Gf9RfH9wuJAhCoG2EIfMv_Ey5L2jRt7-i4MS24uDA9Z64x1dn-o7d3dQ04rryYs3ApKSz/s320/Captura%20de%20pantalla%20-2023-10-10%2013-18-08.png" width="320" /></a></div>Una vez descargado los aproximadamente 80 megabytes del juego, podemos instalarlo. Recurriremos a la terminal para tal menester, abriendo una con <b><i>Ctrl+Alt+T</i></b> e ingresando los siguientes Comandos de Organización:<p><b>cd ~/Descargas/<br />unzip pixelwheels-linux-stable.zip<br />cd pixelwheels-0.25.1-linux64/<br />./install.sh</b></p><p>Normalmente el juego instalará un vínculo en <i>/home/$USER/.local/</i> y se agregará a los juegos instalados de forma automática. Por tal motivo, podemos ejecutarlo desde <b>Aplicaciones / Juegos / Pixel Wheels</b>.</p><p>Al arrancar el juego se nos presentará un sencillo menú en castellano, donde podremos optar por jugar de a uno, o entre varios (hasta 4 jugadores). Asimismo, el modo de juego puede definirse entre <i>carrera rápida</i>, o <i>modo campeonato</i>, donde debemos disputar la serie de carreras.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpK7I_I-Y0IgDFGjDv5_uXxYPTZon9r4NLZTvcVTQxMt4gVmlP3Xo5-xzJiIH7Gii42qNOUVOhWHUcwuZ6kx37SvPgD7oPPoE7oLiWP0gBleWtnQnS7NYqd7nTOeKw-tGVbAjVNj-xwGI_TazZd0fjyMBSYjpSn1jlXMmIuNnnrEbUUwf-I6QGUE5lko4S/s962/Men%C3%BA%20Pixel%20Wheels.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="962" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpK7I_I-Y0IgDFGjDv5_uXxYPTZon9r4NLZTvcVTQxMt4gVmlP3Xo5-xzJiIH7Gii42qNOUVOhWHUcwuZ6kx37SvPgD7oPPoE7oLiWP0gBleWtnQnS7NYqd7nTOeKw-tGVbAjVNj-xwGI_TazZd0fjyMBSYjpSn1jlXMmIuNnnrEbUUwf-I6QGUE5lko4S/s320/Men%C3%BA%20Pixel%20Wheels.png" width="320" /></a></div><p></p><p>Al preparar la carrera podremos elegir uno de los circuitos. Tres de
ellos estarán disponibles al inicio, y los otros habremos de
desbloquearlos. <br /></p><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEYeevxAGZvILLiJHgBoFB500VPrQnLT8RlBLFtuaynK2lRhvlUg92LCGdVf37G0ByHrfVCFrtjedONiGI395Wgh4_p4qC7BrX8gHhho6EhVdOiYzQ1RvmVSul_LpyXhJru6P3RMdmJkVyxdfBdmYecfh84oPpxo9hzlIX3DgVeA5MgDW5OEzJR8f8pnbo/s962/circuitos.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="962" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEYeevxAGZvILLiJHgBoFB500VPrQnLT8RlBLFtuaynK2lRhvlUg92LCGdVf37G0ByHrfVCFrtjedONiGI395Wgh4_p4qC7BrX8gHhho6EhVdOiYzQ1RvmVSul_LpyXhJru6P3RMdmJkVyxdfBdmYecfh84oPpxo9hzlIX3DgVeA5MgDW5OEzJR8f8pnbo/s320/circuitos.png" width="320" /></a></div><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLp52B53GEaLHYx3TdpmLGkG06chqZXP0lJpEthQCHuMnwWdEZFRolyUFEqc0h37YDL4jhpKLpQa4KTPLlBj9c3oC0bf3dYTMm6wpnO7_19gl-K3sonWzsftkGjOnTxoXBlh2xf6-q9XSgAGg00f-b9gPQlzpSTU2bs2QkTn2V_qFUt1Gd1dM0JN4Zciy6/s743/autodromo%2017%20de%20octubre.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="495" data-original-width="743" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLp52B53GEaLHYx3TdpmLGkG06chqZXP0lJpEthQCHuMnwWdEZFRolyUFEqc0h37YDL4jhpKLpQa4KTPLlBj9c3oC0bf3dYTMm6wpnO7_19gl-K3sonWzsftkGjOnTxoXBlh2xf6-q9XSgAGg00f-b9gPQlzpSTU2bs2QkTn2V_qFUt1Gd1dM0JN4Zciy6/s320/autodromo%2017%20de%20octubre.jpg" width="320" /></a></div><br />Para correr necesitamos elegir un coche. A diferencia de las Ferraris de los muchachos, hay varios activados, desde un pistero, un patrullero, un rastrojero, etcétera. Cada uno de ellos tiene distintas características de pique, aceleración, agarre al piso, inercia, velocidad, etcétera. El resto podremos desbloquearlos conforme vayamos ganando carreras.<br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzFO8yOddK2dOuigJ69X0anjBxTmuC5blu7AipLXhKc94i8UTlnefo_bcN9uyNmwt9n7IzHQQL1tui_4Odb-7o7FHxg3Q863uzNNt-cfzrqZVFqkkaf8-zAIjBuj7yc5srk4NoIo4IvlXilq5_snTmBvf8fWqwpoWIbG34uaLaAw6OiUBqksSnUhC7Z7TQ/s962/elegir%20auto.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="962" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzFO8yOddK2dOuigJ69X0anjBxTmuC5blu7AipLXhKc94i8UTlnefo_bcN9uyNmwt9n7IzHQQL1tui_4Odb-7o7FHxg3Q863uzNNt-cfzrqZVFqkkaf8-zAIjBuj7yc5srk4NoIo4IvlXilq5_snTmBvf8fWqwpoWIbG34uaLaAw6OiUBqksSnUhC7Z7TQ/s320/elegir%20auto.png" width="320" /></a></div>La carrera rápida es frenética y a tres vueltas: no bien el semáforo de la orden de largada, debemos ponerlo al taco. En mi rastrojero, cuando mando rebajes para curvar, el motor brama aullando "¡pe-róoon, pe-róooon!".<br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8coRTEZo1h9U1yCY1oPMj2lHJDXr-ClWTdnhbpqhOK89OjDrKD-PqWS4uDz6kl-tBpd2UwE66vV2RfXJ_kUxVe3RssMUvBGxPY3aOZW1E6C16wVo3L3WMJdCvKLoMSepWxStQ_PD9RAoNO4-bKriDQLMTwO_GRlSZuIkzTmrpdPIPn6rzfxv2TH4LqFXF/s962/Captura%20de%20pantalla%20-2023-10-10%2014-36-52.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="962" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8coRTEZo1h9U1yCY1oPMj2lHJDXr-ClWTdnhbpqhOK89OjDrKD-PqWS4uDz6kl-tBpd2UwE66vV2RfXJ_kUxVe3RssMUvBGxPY3aOZW1E6C16wVo3L3WMJdCvKLoMSepWxStQ_PD9RAoNO4-bKriDQLMTwO_GRlSZuIkzTmrpdPIPn6rzfxv2TH4LqFXF/s320/Captura%20de%20pantalla%20-2023-10-10%2014-36-52.png" width="320" /></a></div><p></p><p></p><p>Podemos jugar de a dos en un teclado (e incluso de a cuatro, si
sumamos dos gamepads o joysticks USB a la computadora). <br /></p><p>El jugador 1 maneja con las <b>flechas del cursor</b>: dobla con las<b> flechas de cursor izquierda/derecha</b>, y acelera y frena con las <b>flecha cursor arriba</b>/<b>abajo</b>, a la vez que activa las opciones con la <b>barra espaciadora</b> y retrocede con la <b>tecla Escape</b>.<br /></p><p>El jugador 2 usa las <b>teclas dxcv</b>: o sea que acelera con la <b>tecla d</b> y frena con la <b>tecla c</b>, mientras que gira a la izquierda con <b>x</b> y a la derecha con <b>v</b>. A la vez activa las opciones con la <b>tecla Ctrl izquierda</b> y retrocede con <b>tecla q</b>.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnFqFySGg3bDJYUSzUg5Cacb1-oIAPraMQbut8BrfIu7ULkyOuRu3jRDZjtXV_qTkLniT7VFI18o4J5sxHuDHxqS9xGo7sJH55CpauzqQcxOmJtz6Q85-EZgDygsoSoNG007wgHEa_oYWNr77ykUDY5NhEjoNNJsPhPko-00coPgfx334cg6pz6zmykBKO/s962/Captura%20de%20pantalla%20-2023-10-10%2014-35-48.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="962" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnFqFySGg3bDJYUSzUg5Cacb1-oIAPraMQbut8BrfIu7ULkyOuRu3jRDZjtXV_qTkLniT7VFI18o4J5sxHuDHxqS9xGo7sJH55CpauzqQcxOmJtz6Q85-EZgDygsoSoNG007wgHEa_oYWNr77ykUDY5NhEjoNNJsPhPko-00coPgfx334cg6pz6zmykBKO/w400-h239/Captura%20de%20pantalla%20-2023-10-10%2014-35-48.png" width="400" /></a></div><p>En este aspecto
multijugador es donde el Pixel Wheels se torna mucho más competitivo y
divertido, ya que <b>funciona perfectamente incluso en las Netbooks con Huayra del Conectar Igualdad</b>/Juana Manso. <br /></p><p>Como
su nombre lo indica, la estética de PixelWheels replica los clásicos
juegos de 8 bits, y si bien no se caracteriza por su imaginería
absolutamente pixelada, lo cierto es que no reinventa la rueda. Tiene un cierto parecido al libre <a href="https://ubuntuperonista.blogspot.com/2020/11/como-instalo-dustracing2d-en-ubuntu.html">Dust Racing 2</a>, aunque también podremos recoger power-ups y encontrar "turbos" tirados en la pista, al estilo de <a href="https://ubuntuperonista.blogspot.com/2019/04/como-instalo-supertuxkart-10-en-ubuntu.html">SuperTuxKart</a>. Al tomarlos podremos usar armas de energía y cohetazos para desbancar a nuestros oponentes.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnFqFySGg3bDJYUSzUg5Cacb1-oIAPraMQbut8BrfIu7ULkyOuRu3jRDZjtXV_qTkLniT7VFI18o4J5sxHuDHxqS9xGo7sJH55CpauzqQcxOmJtz6Q85-EZgDygsoSoNG007wgHEa_oYWNr77ykUDY5NhEjoNNJsPhPko-00coPgfx334cg6pz6zmykBKO/s962/Captura%20de%20pantalla%20-2023-10-10%2014-35-48.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="962" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnFqFySGg3bDJYUSzUg5Cacb1-oIAPraMQbut8BrfIu7ULkyOuRu3jRDZjtXV_qTkLniT7VFI18o4J5sxHuDHxqS9xGo7sJH55CpauzqQcxOmJtz6Q85-EZgDygsoSoNG007wgHEa_oYWNr77ykUDY5NhEjoNNJsPhPko-00coPgfx334cg6pz6zmykBKO/w400-h239/Captura%20de%20pantalla%20-2023-10-10%2014-35-48.png" width="400" /></a></div>Como novedad contamos ahora con una pista de sonido de música electrónica, que podemos regular en volumen o desactivar.<p></p><p></p><p></p><p>En fin, un excelente juego para hacerse un as del volante por $0.<br /></p>Unknownnoreply@blogger.com047JV5W62+CF-37.8389362 -62.0988339-90 -132.4113339 18.280913080643252 8.2136660999999975tag:blogger.com,1999:blog-1082347280713529648.post-30970387595969582952023-10-11T18:11:00.005-03:002023-10-11T19:06:07.066-03:00¿Cómo instalo yt-dlp-gui en Ubuntu?<p></p><p>¡Compañeros!</p><p>El cómputo sigue mas o menos las mismas premisas que la Política. Si en esta no debemos perder los principios, en nuestro sistema GNU con Linux no debemos perder el backend; el front-end responde a las necesidades tácticas. Es decir, los principios han de ser inconmovibles, en tanto que el método con el cual llegamos a la acción puede variar fluidamente de acuerdo a una percepción lúcida de la situación imperante.</p><p>Esto, que lo hemos reconocido y con lo cual operamos, también cuenta con un raciocinio que puede portarse a los sistemas similares a UNIX. Es que muchas de las herramientas más útiles cuentan con una sencillez espartana, pero donde la complejidad de la tarea lo requiera, contaremos con herramientas mucho más complejas, y ello las hará difíciles de dominar.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy-Wknai2Bxgoo1DdasvYrsABd3wEoOvwvQYRzTgBgASXpNc_E3QYvtQlu2AgrCe_U2_oYuexdE0-rfWxqNeoUW6CYwkiuY9u7-h-V8k0D1aR2Tx_jmZh4ev8GvodGBwXql8PqNA_8cn_-qbW3wvCwvn-GZWpAIHf-wWXMcj2QPDdHIAxQDjnpZp4_r6gj/s1011/pocho2.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1011" data-original-width="633" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy-Wknai2Bxgoo1DdasvYrsABd3wEoOvwvQYRzTgBgASXpNc_E3QYvtQlu2AgrCe_U2_oYuexdE0-rfWxqNeoUW6CYwkiuY9u7-h-V8k0D1aR2Tx_jmZh4ev8GvodGBwXql8PqNA_8cn_-qbW3wvCwvn-GZWpAIHf-wWXMcj2QPDdHIAxQDjnpZp4_r6gj/s320/pocho2.jpeg" width="200" /></a></div><p></p><p><a href="https://ubuntuperonista.blogspot.com/2023/05/como-descargo-videos-de-youtube-yt-dlp-ubuntu.html">yt-dlp</a> es una de ellas. Sin duda este programa para terminal es excelso para bajar videos de YouTube desde la terminal (así como otros sitios de contenidos agregados). Y si bien su uso es simple, una vez que demandamos extracciones de streams de audio por separado, diferentes codificaciones y demás, deja de ser moco de pavo.</p><p>Afortunadamente, podremos contar con un front-end gráfico que puede atemperar el problema al neófito. Tal es la tarea de <b>yt-dlp-gui</b>, una interfaz gráfica de usuario escrita en Python 3.9 que opera junto al yt-dlp y permite facilitar las operaciones de descargas de video.<br /></p><p>Abrimos una terminal con <b>Ctrl+Alt+t</b> e ingresamos el siguiente bloque de comandos de organización para instalar todo lo necesario:<b><br /></b></p><p><b>sudo apt update ;<br />sudo apt install ffmpeg -y<br /></b> <b>sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp ;<br />sudo chmod a+rx /usr/local/bin/yt-dlp ;</b><br /><b>sudo yt-dlp --update<br />cd ~ ;<br />git clone https://github.com/dsymbol/yt-dlp-gui ;<br />
cd yt-dlp-gui ;<br />pip install -r requirements.txt ;<br />cd app ;<br />pyinstaller --name=yt-dlp-gui --clean -y app.py<br />cd ~/yt-dlp-gui/app/dist/<br />cp -r yt-dlp-gui/ ~/.local/bin/<br /></b></p>Una vez instalada la interfaz, por comodidad deberíamos crear un lanzador. Para ello vamos a <b><i>Sistema / Preferencias / Aspecto y comportamiento / Menú principal</i></b>. En la ventana <i>Menú Principal</i>, podremos seleccionar la categoría de menú <i>Aplicaciones</i> / <i>Internet</i>, y a continuación presionar el botón "<b>+Nuevo ítem</b>". Este abrirá el cuadro de diálogo <i>Crear Lanzador</i>. En el campo <i>Nombre</i> de dicho cuadro asignar le al lanzador "yt-dlp-gui", mientras que en el campo Comando o Órden debemos asignar la ruta <i>/home/<span style="color: #b45f06;">usuario</span>/.local/bin/yt-dlp-gui/yt-dlp-gui.</i><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOazj84z42oLFFgRhe5OYSUGQZrOHQzFumlwHVtDRTuLoNobP6RznLhzIUmciVik9Zfg7NgCvS-XO91VMKIRPZlOcB4M3EoE9L6KiVxGd5S2KolgelIWbKdL0eri7F6BBLoMCp615CGIBvcHb495vwB63J4ir8SZ11btHaAeCm7QcjsvgC5kYrQWZFmxw1/s702/lanzador%20yt-dlp-gui.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="564" data-original-width="702" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOazj84z42oLFFgRhe5OYSUGQZrOHQzFumlwHVtDRTuLoNobP6RznLhzIUmciVik9Zfg7NgCvS-XO91VMKIRPZlOcB4M3EoE9L6KiVxGd5S2KolgelIWbKdL0eri7F6BBLoMCp615CGIBvcHb495vwB63J4ir8SZ11btHaAeCm7QcjsvgC5kYrQWZFmxw1/s320/lanzador%20yt-dlp-gui.png" width="320" /></a></div><p>Ahora podremos lanzar yt-dlp-gui desde<b> Aplicaciones / Internet / yt-dlp-gui</b>, con lo cual se abrirá su ventana.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQy-tgI0fyVtRqlZyq_CH1OYSHSac8W1evYmvm-osTSGOX_z4p-9QkFFOvcP2sy6yL60wNxi7sSHwLUpvh1ip5_ZTPH0kEsxLurPHqA_QqUhbJReuAhrETWbiIC5YmlkG3py7mgGdLXfp0q1ZyY7Akp993X7dRhZJHs1-JcbvCzZjNVMe_MrXxjSa9GCy8/s569/inicio%20de%20yt-dlp-gui.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="389" data-original-width="569" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQy-tgI0fyVtRqlZyq_CH1OYSHSac8W1evYmvm-osTSGOX_z4p-9QkFFOvcP2sy6yL60wNxi7sSHwLUpvh1ip5_ZTPH0kEsxLurPHqA_QqUhbJReuAhrETWbiIC5YmlkG3py7mgGdLXfp0q1ZyY7Akp993X7dRhZJHs1-JcbvCzZjNVMe_MrXxjSa9GCy8/w400-h274/inicio%20de%20yt-dlp-gui.png" width="400" /></a></div><p>El uso del programa es bastante sencillo. Debemos pegar el link (URL) del video que queremos descargar en el campo <i>Link</i>. Asimismo, en el campo <i>Path</i> debemos indicar la carpeta donde irán a parar los ficheros descargados (por ejemplo, <b><i>/home/<span style="color: #b45f06;">usuario</span></i></b>). </p><p>Opcionalmente, el indicador <i>Format</i> nos desplegará un menú que nos permite escoger un formato preferido de descarga. La opción por defecto <b><i>best</i></b> elige el mejor, <b>mp4</b> utiliza tal formato de video. Para audio y extracción de audio de un video contempla el formato <b>mp3</b> (compresión con pérdida), <b>wav</b> (sin compresión), o <b>flac</b> (compresión sin pérdida).<br /></p><p>En el campo filename podremos escoger un nombre de archivo a descargar (por ejemplo, <i>video.mp4</i>), o bien por defecto se indicaría una estructura de renombrado "<i>%(title)s.(ext)s</i>", que simplemente asigna el nombre o título de la pista de audio y la extensión escogida.</p><p>Una vez que incluimos la URL, ruta y nombre de archivo, podremos agregar el link a la cola de descarga presionando el <b>botón "+"</b> ("agregar"). Para iniciar la carga de los links ingresados en la lista, presionamos el botón <b>Descargar</b>.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimoOoe25enDauQzQrltgf4xHMAHwEtrKyZSaGUOie_pm5u43pnSVQlrX3ilZ8pLeQpZsmoPGtJPC9NDRmZepS_qxAQEfPxObehWQ5savrU20m9aUwBuwjwG7y7nEEE6SgqPn811__dJ0128N6qS3dvGc2n6z5hvTOmMWWbkmzWKJ4SRJshkJIe4qthVSXI/s843/yt-dlp-gui.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="656" data-original-width="843" height="249" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimoOoe25enDauQzQrltgf4xHMAHwEtrKyZSaGUOie_pm5u43pnSVQlrX3ilZ8pLeQpZsmoPGtJPC9NDRmZepS_qxAQEfPxObehWQ5savrU20m9aUwBuwjwG7y7nEEE6SgqPn811__dJ0128N6qS3dvGc2n6z5hvTOmMWWbkmzWKJ4SRJshkJIe4qthVSXI/s320/yt-dlp-gui.png" width="320" /></a></div><p>El yt-dlp-gui usará el programa <i>yt-dlp</i> para ir descargando secuencialmente los elementos según su posición están en la cola. Los archivos descargados quedarán en la carpeta que le solicitamos.</p><p>Es importante destacar que el módulo de descarga es siempre yt-dlp, y como tal este debe actualizarse manualmente para poder afrontar los desafíos que pudiesen surgir en los distintos agregadores de contenidos. Normalmente la actualización de dicho módulo no es automática, sino que debe realizarse manualmente en la terminal con el siguiente comando:<br /></p><p><b>sudo yt-dlp --update</b><br /></p><p>Una vez que esté instalado el programa, opcionalmente podríamos eliminar el clon local del repositorio con:</p><p><b>rm -r yt-dlp-gui/</b><br /></p><p></p>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1082347280713529648.post-14088246851065142582023-10-08T15:49:00.002-03:002023-10-09T18:53:06.697-03:00¿Cómo juego al ajedrez online desde la terminal de Ubuntu?<div class="mobile-friendly--abstract-container"><div class="wsj-abstract"><div class="wsj-abstract-text-container" style="text-align: left;"><p class="ds-body-lg-regular wsj-abstract-paragraph" style="text-align: center;"><i>Recordando el "match telegráfico" de Ajedrez entre el Jockey Club de La Plata y el Manhattan Chess Club neoyorquino, Juan Perón explica <b>cómo jugar ajedrez en línea desde la terminal de Ubuntu</b>.</i><br /></p><p class="ds-body-lg-regular wsj-abstract-paragraph">¡Estimados Maestros y Grandes Maestros!</p><p class="ds-body-lg-regular wsj-abstract-paragraph">Las características que hacen del Ajedrez el más respetado de los deportes, lo sustancian de las virtudes más universales. </p><p>No solo es un juego de estrategia en el que se enfrentan dos jugadores, cada uno de los cuales tiene 16 piezas de valores diversos que pueden mover, siguiendo ciertas reglas, sobre un tablero dividido en cuadrados blancos y negros. El objetivo de "derrocar al Rey" propone la bondad de agilizar la mente, sino que la lid sobre el tablero bien puede consagrar la amistad entre sus muy temporales oponentes.</p><p class="ds-body-lg-regular wsj-abstract-paragraph">Ha sido a través de la historia que el más duradero de los <i>kriegsspiel</i> ha propuesto los mayores desafíos, y - por que no - divertimentos. Como tal, hubiese sido extraño que nuestro país escapase a estas visiones positivas. El Juego Ciencia se había popularizado en estas tierras ya desde la épocas coloniales, y una vez establecida la Nación no puede ignorarse la labor del ciertamente oligárquico Club del Progreso. A este le siguieron una buena cantidad de círculos y clubes ajedrecísticos de distintas proveniencias y montas, con fuerte jugadores. De todos ellos, sin duda el Club Argentino de Ajedrez (1905) y el vanguardista Círculo de Ajedrez de Buenos Aires (1916) contaron con temibles mesas. En 1922, la formalización de la unidad entre veintidós de estos círculos vio nacer a la Federación Argentina de Ajedrez (FADA), cuya labor se vio aureolada en la realización del <b>Campeonato Mundial de Ajedrez de 1927</b>, sede del legendario choque Capablanca-Alekhine. <br /></p><p class="ds-body-lg-regular wsj-abstract-paragraph"></p><p class="ds-body-lg-regular wsj-abstract-paragraph">Sin embargo, distintas acepciones fueron dando lugar un "cisma" federativo local. La solución a tal división no podía venir sino de mano del Justicialismo, lo que confluyó en lo que podríamos describir como una <b>Segunda Era del Ajedrez Argentino</b>, regada con merecidos <b>apoyos y subvenciones gubernamentales</b>. La Cámara de Diputados aprobó un subsidio
anual para la Federación Argentina De Ajedrez (FADE) por $ 50.000, en tanto que el Club Argentino de Ajedrez adquirió su sede
de Paraguay 1858 merced de un subsidio del Congreso de la Nación. </p><p class="ds-body-lg-regular wsj-abstract-paragraph">Esto permitió elaborar una fuerte serie de torneos locales, culminados por encuentros internacionales auspiciados por la FIDE. El <b>Torneo
Internacional de Mar del Plata</b> se constituyó en un gran certamen a equipos, con 18 Grandes Maestros de altísimo calibre. Fue ganado por Najdorf en gran forma, seguido por Ståhlberg, Eliskases,
Pilnik, Euwe, Julio Bolbochán. Posteriormente se jugó el fortísimo
<b>Sextangular Buenos Aires/La Plata</b>, coronando a Ståhlberg. </p><p class="ds-body-lg-regular wsj-abstract-paragraph">El <b>IV Torneo Memorial Roberto Grau</b> fue algo más
fuerte que el del año anterior, dominando Ståhlberg. Rossetto se impuso en el <b>Campeonato
Argentino</b>.</p><p class="ds-body-lg-regular wsj-abstract-paragraph">Sin duda uno de los logros que permitieron las subvenciones fue <b>maridar al ajedrez con los desarrollos tecnológicos</b>. En este marco es de especial trascendencia el mítico <b>match telegráfico Jockey Club de La Plata-Manhattan Chess Club</b> de 1947 donde el equipo argentino integrado por Ståhlberg, Najdorf, Julio Bolbochán,
Pilnik, Maderna, Michel, Rossetto, Guimard, García Baladó y Marcos
Luckis dio por tierra con el seleccionado neoyorkino a través de terminales teletipo, en un épico 6½:3½.</p></div></div></div><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-sgf8Wfc8VmM/UFKAxJ6h7oI/AAAAAAAADRA/f7MyvtL3N8M/s507/peron.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="507" data-original-width="305" height="320" src="https://2.bp.blogspot.com/-sgf8Wfc8VmM/UFKAxJ6h7oI/AAAAAAAADRA/f7MyvtL3N8M/s320/peron.jpg" width="193" /></a></div><p>Difícilmente este tipo de matchs ajedrecísticos "por télex" podrían haberse extendido como una Realidad Efectiva si no fuese por el alcance de las redes de datos en materia de la lúdica. Un sistema de tipo UNIX, donde un computador hace las veces de tablero, reloj, ujier y árbitro, nos permitió replicar e incluso superar esta propuesta, máxime si consideramos la posibilidad que ofrece el acceso público. Este logro se conoce como <b>FICS</b>, un servidor libre de ajedrez en la red de datos. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVAfylR-WcpJIloLy2Oqx_W3QVNx9CUw6AQ0ukf6Qs6Lx2REKCbg6JQOWJVcYyEzqRd3gmU9TX35D9OWK50Kuqr-W8z0AjKCjYxdMroWZazPCPQrD96Hdk2XWIM4IQEvwPQc38-5aD5UyKN4N0hXCMIJnE1FGCAPjy0twJqdHaMfu97jkAMyOa-o0l_aVO/s1868/ajedrez%20por%20telex.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="872" data-original-width="1868" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVAfylR-WcpJIloLy2Oqx_W3QVNx9CUw6AQ0ukf6Qs6Lx2REKCbg6JQOWJVcYyEzqRd3gmU9TX35D9OWK50Kuqr-W8z0AjKCjYxdMroWZazPCPQrD96Hdk2XWIM4IQEvwPQc38-5aD5UyKN4N0hXCMIJnE1FGCAPjy0twJqdHaMfu97jkAMyOa-o0l_aVO/w400-h186/ajedrez%20por%20telex.png" width="400" /></a></div><p>Pues bien señores, hoy todo el mundo puede usar dicho programa desde múltiples avenidas, incluyendo la popular freechess.org, lo que permite jugar contra
otros parroquianos electrónicos. Si bien FICS acepta perfectamente clientes gráficos libres (incluyendo al superclásico xboard, <a href="https://ubuntuperonista.blogspot.com/2011/07/pychess-el-ajedrez-peronista.html">pychess</a> o Gnome Chess), no escapa a lo interesante jugar "a la télex", usando una terminal enlazada a un sistema GNU con Linux.</p><p>Es que todo sistema GNU que se precie cuenca aún con un cliente capaz de enlazar a redes a través del viejo protocolo Telnet. Este podrá utilizarse para establecer el enlace que nos interesa. <br /></p><p>Para ello abrimos una terminal con <b>Ctrl+Alt+t</b> y llamamos al servidor con el cliente de telnet. Podremos hacerlo ingresando el comando:</p><p><b>telnet freechess.org </b><br /></p><div class="level1">
<p>
</p><p>
Al establecer el enlace telemático, con la potencia de los baudios se nos presentará en pantalla el aviso de login al sistema ajedrecístico remoto FICS de freechess.org:
</p>
<pre class="code"> _ __ __ __
| | / /__ / /________ ____ ___ ___ / /_____
| | /| / / _ \/ / ___/ __ \/ __ `__ \/ _ \ / __/ __ \
| |/ |/ / __/ / /__/ /_/ / / / / / / __/ / /_/ /_/ /
|__/|__/\___/_/\___/\____/_/ /_/ /_/\___/ \__/\____/
^^__ _____________________ _ _ _
/ - \_ / ____/ _/ ____/ ___/ _ | || || |
<| __< / /_ / // / \__ \ (_) |_______|
<| \ / __/ _/ // /___ ___/ / _ \__ ___ /
<| \ /_/ /___/\____//____/ (_) |___|_|
<|______\ |_|___|
_|____|_ ====================================== |___|_|
(________) freechess.org ---- 54.39.129.129 (_______)
/________\ ====================================== /_______\
(Login screen designed by Alefith)
****** Welcome to the Free Internet Chess Server at freechess.org ******
Webpage: http://www.freechess.org
Head admin : mattuc Complaints to : complaints@freechess.org
Server location: freechess.org Server version : 1.25.20
If you are not a registered player, enter guest or a unique ID.
(If your return key does not work, use cntrl-J)
login:</pre>
<p>Naturalmente si ya tuviésemos un usuario registrado podríamos ingresar con el nombre de usuario específico y una contraseña. Sin embargo, al tratarse de un ordenador público podremos perfectametne utilizar un nada pretencioso usuario “invitado”. Para ello debemos logueamos como "<b>g</b>" o "<b>guest</b>". </p><p>Con este recibiremos un alias del tipo <i>Guestxxxx</i> podremos darnos de alta y acercarnos a un tablero para jugar partidas sin obtener puntaje (como quien va a la plaza a jugarle a los jubilados).</p><p></p>
</div>
<div class="secedit editbutton_section editbutton_1"><form action="/doku.php" class="button btn_secedit form-inline" method="post"><div class="no"></div></form></div><h3 class="sectionedit2 page-header pb-3 mb-4 mt-5" id="convenir_partida">Convenir partida<a aria-label="Anchor link for: convenir_partida" class="anchorjs-link" data-anchorjs-icon="" href="https://wiki.texto-plano.xyz/doku.php?id=freechess#convenir_partida" style="font-family: anchorjs-icons; font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;"></a></h3>
<div class="level3">
<p></p><p>
Una vez ingresado al servidor por Telnet, veremos el intérprete de comandos del servidor ajedrecístico FICS, indicado con <i>prompt</i>:</p><p> <code>fics%</code>. <br /></p><p></p><p>Ahora bien, existen varias maneras de localizar un oponente: <br /></p><p>Al entrar a un servidor ajedrecísitico tan concurrido como freechess.org, normalmente deberían ir apareciendo las solicitudes de otros concurrentes invitados, que desea jugar en alguna modalidad de juego. Estas aparecerían según este formato:
</p>
<pre class="code">GuestQRXX (++++) seeking 15 0 unrated standard ("play 13" to respond)</pre>
<p>
Esto indica que el jugador <code>GuestQRXX</code> quiere jugar una partida en el <i>tablero 13</i>. Para jugar contra este jugador, en el prompt fics% deberíamos ingresar el comando <b>play 13</b>.</p><p>Además: </p><ul style="text-align: left;"><li>Podemos ver quién está en línea con el comando who, y usar el comando match con el nombre del jugador en línea que nos interesa.</li><li>Podremos usar el comando seek para buscar un jugador que ya conocemos.</li><li>Podremos usar el comando de chat general cshout y gritar en el servidor "Quiero jugar una partida del tipo...".
</li></ul></div><div class="level4">
</div><p>Nuestro oponente recibirá en pantalla nuestra solicitud y podrá aceptarla o
rechazarla. De aceptarla, el servidor determinará al azar el color de piezas de cada contrincante. Cada uno recibirá un tablero inicial en su pantalla, y las Blancas podrán iniciar la partida. </p><p>(Naturalmente, también nos podrían proponer una partida, la cual podremos aceptar o declinar).
</p><div class="level4">
</div>
<div class="secedit editbutton_section editbutton_2"><form action="/doku.php" class="button btn_secedit form-inline" method="post"><div class="no"></div></form></div><h2 class="sectionedit3 page-header pb-3 mb-4 mt-5" id="jugar_al_ajedrez">Jugar al ajedrez<a aria-label="Anchor link for: jugar_al_ajedrez" class="anchorjs-link" data-anchorjs-icon="" href="https://wiki.texto-plano.xyz/doku.php?id=freechess#jugar_al_ajedrez" style="font-family: anchorjs-icons; font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;"></a></h2>
<div class="level2">
<p>
Durante la partida a través FICS con Telnet, debemos mover las piezas en el tablero introduciendo varias órdenes o solicitudes. Para ello introducimos comandos en el prompt <i>FICS%</i>.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim1VsqgcjMo-sqcBzQhUBw8gEe4fz6Nxnms6ZL4eVED92NxyuE37k2HrMmPxbsfgk39Ym9SVTikKobAtfMRmLo90twEzKY1LjZLKj7ZfAyecBHnQgjdmDh0HygRixDdW9dbjq8y7xVCAdOzmjEuw1282vkl2ZQSGsKKJMrgKYUaWEK4GdWreOYENM6wL_D/s800/freechess.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="561" data-original-width="800" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim1VsqgcjMo-sqcBzQhUBw8gEe4fz6Nxnms6ZL4eVED92NxyuE37k2HrMmPxbsfgk39Ym9SVTikKobAtfMRmLo90twEzKY1LjZLKj7ZfAyecBHnQgjdmDh0HygRixDdW9dbjq8y7xVCAdOzmjEuw1282vkl2ZQSGsKKJMrgKYUaWEK4GdWreOYENM6wL_D/s320/freechess.png" width="320" /></a></div><p></p>
</div>
<h4 id="hacer_una_jugada"></h4>
<div class="level4">
<p>
Cada vez que el oponente mueve, el servidor enviará la nueva posición del tablero a ambos oponentes. </p><p>Los escaques del ajedrez están divididas en filas del tablero, que van de la <code>a</code> a la <code>h</code> (siendo la <code>a</code> el lado de Blancas y la <code>h</code> el lado de Negras), y columnas del tablero, que van de la <code>1</code> a la <code>8</code> (siendo la <code>1</code> el lado de Blancas y la <code>9</code> el de Negras). <br /></p>
</div>
<div class="secedit editbutton_section editbutton_3"><form action="/doku.php" class="button btn_secedit form-inline" method="post"><div class="no"></div></form></div><h3 class="sectionedit4 page-header pb-3 mb-4 mt-5" id="notacion_algebraica">Notación algebraica<a aria-label="Anchor link for: notacion_algebraica" class="anchorjs-link" data-anchorjs-icon="" href="https://wiki.texto-plano.xyz/doku.php?id=freechess#notacion_algebraica" style="font-family: anchorjs-icons; font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;"></a></h3>
<div class="level3">
<p>
En la notación algebraica, cada escaque está definido por sus coordenadas <i>fila</i>-<i>columna</i>. En notación algebraica, cada pieza del ajedrez está representada por una letra propia, según su nombre en inglés:
</p>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> <b><i>Símbolo</i></b> </td><td class="col1"><b><i> Pieza </i></b></td>
</tr>
<tr class="row1">
<td class="col0"> <code>k</code> </td><td class="col1"> rey </td>
</tr>
<tr class="row2">
<td class="col0"> <code>q</code> </td><td class="col1"> reina </td>
</tr>
<tr class="row3">
<td class="col0"> <code>b</code> </td><td class="col1"> alfil </td>
</tr>
<tr class="row4">
<td class="col0"> <code>n</code> </td><td class="col1"> caballo </td>
</tr>
<tr class="row5">
<td class="col0"> <code>r</code> </td><td class="col1"> torre </td>
</tr>
<tr class="row6">
<td class="col0"> <code>p</code> </td><td class="col1"> peón (aunque realmente no se usa la “p”). </td>
</tr>
</tbody></table></div>
<p>
Por este motivo, el tablero que representa la jugada se ilustria de esta manera (con símbolos ASCII): </p>
<pre class="code"> ---------------------------------
8 | | *R| | | *R| | *K| |
|---+---+---+---+---+---+---+---|
7 | *P| | | *B| *P| *P| *B| *P|
|---+---+---+---+---+---+---+---|
6 | | | | | | *N| *P| |
|---+---+---+---+---+---+---+---|
5 | *Q| | | *P| | | B | |
|---+---+---+---+---+---+---+---|
4 | | | | | | P | | |
|---+---+---+---+---+---+---+---|
3 | | | N | B | P | | | |
|---+---+---+---+---+---+---+---|
2 | P | P | | | Q | | P | P |
|---+---+---+---+---+---+---+---|
1 | | | R | | | R | K | |
---------------------------------
a b c d e f g h</pre>
<p></p><p>Según este ejemplo, las Blancas se disponen en la parte inferior del
tablero, mientras que las Negras lo hacen en la parte superior. Los
símbolos de las piezas aparecen en mayúsculas, mientras que el símbolo <code>*</code> denota que es una de las piezas Negras. El Rey de las Negras (<code>*K</code>) está en el escaque <i>g8</i>; el rey de las Blancas (<code>K</code>) está en el escaque <i>g1</i>, etcétera. Juegan las Negras. <br /></p>
</div>
<h4 id="movidas">Movidas <br /></h4><p id="movidas" style="text-align: left;"><span face="anchorjs-icons" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;">Podemos usar varias notaciones para mover las piezas. </span></p><p id="movidas" style="text-align: left;"> Aquellos jugadores que deseen emplear la <b>Notación algebraica</b>, pueden definir en su comando las piezas a mover y los escaques. Supongamos que las Negras desean mover su caballo (<code>*N</code>) del escaque <i>f6</i> al escaque <i>e4</i>. La movida algebraica a ingresar sería <b><code>Ne4</code></b> (o directamente <b><code>ne4</code></b>, pues el servidor de ajedrez es insensible a mayúsculas). Como normalmente siempre avanzan sobre una columna, para mover peones el intérprete es sensato, por lo cual no suele ser necesario consignar <code>p</code>
para denotar al peón; basta con indicarle el escaque al
cual queremos moverlo. Suponiendo que las Negras deciden mover
el peón (<code>*P</code>) del escaque <i>h7</i> al escaque <i>h6</i>, el comando sería <b><code>h6</code></b> (aunque opcionalmente se puede especificar al peón, indicando <b><code>Ph6</code></b>). Para hacer enroque corto (lado del rey) usamos <code><b>O-O</b></code>, mientras que para enroque largo usamos <code><b>O-O-O</b></code>. </p><div class="level4"><p>Este
método funciona bastante bien si somos ágiles con la notación
algebraica inglesa. Es importante al principio elegir jugadas estándar en lugar de rápidas ("blitz"), pues puede llevarnos algunos segundos introducir la jugada y ser ágiles con la notación algebraica.<br /></p><p>Sin embargo, debemos tener cuidado con aquellas jugadas que resultan
ambiguas en esta notación. Durante el juego podría suceder que hubiesen varios peones,
caballos, torres e incluso reinas en capacidad de desplazarse a un mismo
escaque de destino. Ante tales
casos no alcanzaría con ingresar simplemente <code>Nd4</code>,<code> </code><code>Rd4 </code>o<code> </code><code>Qd4</code>
pues se produciría una ambigüedad que el servidor estaría incapacitado de
discernir correctamente (no distinguiría cuál de las piezas de dicho tipo es la que debe mover). Ante tal incidencia, <b>debemos
consignarle específicamente cuál de es la pieza a
mover</b>. Esto se hace de varias maneras:<br /></p></div><div class="level5">
<ul class="fix-media-list-overlap"><li class="level1"><div class="li"> Indicando las coordenadas de <i>fila</i> o <i>columna</i>
de <i>la pieza</i> en cuestión (cualquiera que aclare la posición). Por
ejemplo, en caso que las Negras tuviesen caballos en los
escaques <i>c2</i> y <i>e2</i>, ambas piezas podrían moverse al escaque <i>d4</i>. Por ello para definir el movimiento del caballo del escaques <i>c2</i> a <i>d4</i>, conviene indicar <code><b>Ncd4</b></code>, donde la <code>c</code> aclara cuál de los caballos debe mover (en este caso, el caballo situado en la <i>fila c</i>). Si fuese el caso que ambos caballos se sitúan en la <i>fila c</i>, entonces se debe indicar la coordenada algebraica completa de la pieza interesada, ya sea <code>N2d4</code> o bien <code>N6d4</code>.</div>
</li><li class="level1"><div class="li">Describir la coordenada algebraica
completa para <i>la movida</i>, esto es: indicar el tipo de pieza, el escaque
de origen y el escaque de destino; por ejemplo <code>Nb6c4</code>.</div>
</li></ul>
</div>
<h4 id="capturar_piezas">Captura de piezas</h4>
<div class="level4">
<p>
En <i>notación algebraica</i>, la captura de piezas se denota con un <code>x </code>(se pronuncia en su acepción algebraica como "por").</p>
<p>
Supongamos que las Negras desean usar la torre de las Negras (<code>R*</code>) situada en <i>b8</i> para comer el peón (<code>P</code>) de las Blancas situado en <i>b2</i>; en la notación algebraica inglesa tradicional la movida se escribe como <b><code>Rxb2</code></b>. Sin embargo, el servidor podría interpretar esto tanto como:
</p>
<ol class="fix-media-list-overlap"><li class="level1"><div class="li"> una movida simple <code>Rb2</code>, y sabría que es una captura,</div>
</li><li class="level1"><div class="li"> <code>RxP</code> pero no sabría cuál escaque se quería decir (ya que en esta posición la torre puede capturar únicamente un peón).</div>
</li></ol>
</div>
<p>Nuevamente podría suceder que en ciertas posiciones de tablero tanto el peón de una <i>fila b</i>
y un alfil pudiesen moverse hacia un mismo escaque. En tal
caso el intérprete confundiría el significado de la <code>b</code> (ya que puede referirse tanto al peón en la <i>fila b</i> o un alfil de Blancas, <code>B</code>). En tal caso, si ingresamos <b><code>bc6</code></b> se produciría tal ambigüedad y el servidor se ve incapaz de saber cual de las dos piezas realizará la captura (si el peón en <i>fila b</i> o el alfil). Para subsanar esto debemos consignar qué pieza es la que consagrará la captura, indicandolo como <code><b>pxc6</b></code>.
</p>
<p>
Naturalmente de esto se desprende el otro caso que puede dar lugar a movida ambigua: el concierne a cuál pieza deseamos comer. </p><p>Por ejemplo, <code>Rxb4</code> ¿significa “Torre captura en escaque <i>b4</i>” o “torre captura alfil en la <i>columna 4</i>”?
Para evitar tales malentendidos, debemos evitar especificar dicha captura
como una movida algebraica simple desde un escaque a otro (por ejemplo, <code>Rb4</code>), y especificarla la movida de manera completa (indicando la pieza a mover,
su posición inicial y la pieza situada en la posición de destino final, de esta manera:
<b> <code>RxPb4</code></b>) </p><div class="level5"><p>
En cualquier caso, para evitarse problemas con las movidas ambiguas,
también es posible utilizar la poco tradicional notación de computadora que os explicaré a continuación.
</p>
</div><h3 class="sectionedit4 page-header pb-3 mb-4 mt-5" id="notacion_algebraica">Notación computarizada<br /></h3><p id="movidas" style="text-align: left;"></p><p id="movidas" style="text-align: left;"><span face="anchorjs-icons" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;">La manera más simple (aunque tal vez no la más ágil o utilizada) es usar la <b>notación de computadora</b>. Esta es puramente en base al sistema de coordenadas, y cons</span>constan de la siguiente sintaxis:
</p>
<pre class="code bash">escaque_de_origen-escaque_de_destino</pre>
<p>
Por ejemplo, en la posición de tablero indicada, para mover la torre de Negras desde <i>b8</i> a <i>b2</i> deberíamos ingresar simplemente <code><b>b8-b2</b></code>.
</p>
<p>
Como se ve, no se usan las letras identificadores de las piezas, simplemente
los escaques, y por este motivo las movidas ingresadas en notación de
computadora no pueden ser ambiguas, simplemente son más largas de
ingresar y no son descriptivas.</p>
<h4 id="comandos_de_solicitudes">Comandos de solicitudes<a aria-label="Anchor link for: comandos_de_solicitudes" class="anchorjs-link" data-anchorjs-icon="" href="https://wiki.texto-plano.xyz/doku.php?id=freechess#comandos_de_solicitudes" style="font-family: anchorjs-icons; font-style: normal; font-variant: normal; font-weight: normal; line-height: 1; padding-left: 0.375em;"></a></h4>
<div class="level4">
<p>
Durante la partida también será necesario introducir algunos comandos de solicitudes en el prompt FICS, que <b>se utilizan para realizar determinadas <span class="u">solicitudes al oponente</span></b>. El oponente debería aceptarlas para que ocurran. Estos comandos son:<br /></p>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<thead>
<tr class="row0">
<th class="col0"> Comando </th><th class="col1"> Función </th>
</tr>
</thead>
<tbody><tr class="row1">
<td class="col0"> <code>abort</code> </td><td class="col1"> Solicita cancelar el juego </td>
</tr>
<tr class="row2">
<td class="col0"> <code>adjourn</code> </td><td class="col1"> pide guardar y detener la partida para poder seguirla más adelante </td>
</tr>
<tr class="row3">
<td class="col0"> <code>draw</code> </td><td class="col1"> Solicita tablas (declarar empate) </td>
</tr>
<tr class="row4">
<td class="col0"> <code>flag</code> </td><td class="col1"> finaliza la partida porque el oponente se quedó sin tiempo </td>
</tr>
<tr class="row5">
<td class="col0"> <code>moves</code> </td><td class="col1"> pide al servidor FICS que le envíe la lista de movidas de la partida </td>
</tr>
<tr class="row6">
<td class="col0"> <code>pause</code> </td><td class="col1"> solicita suspender temporalmente la partida, sin detenerla para continuarla mas adelante </td>
</tr>
<tr class="row7">
<td class="col0"> <code>promote</code> </td><td class="col1"> configura la pieza a coronar cuando el peón llegue a coronación </td>
</tr>
<tr class="row8">
<td class="col0"> <code>refresh</code> </td><td class="col1"> Presenta la posición actual del tablero </td>
</tr>
<tr class="row9">
<td class="col0"> <code>resign</code> </td><td class="col1"> Otorga la victoria al oponente, y finaliza la partida </td>
</tr>
<tr class="row10">
<td class="col0"> <code>say</code> </td><td class="col1"> Se comunica con el oponente actual (o el último) </td>
</tr>
<tr class="row11">
<td class="col0"> <code>switch</code> </td><td class="col1"> solicita que su oponeten cambie de piezas (color) </td>
</tr>
<tr class="row12">
<td class="col0"> <code>takeback</code> </td><td class="col1"> solicita que una o más movidas sea retrocedidas (cancela movidas) </td>
</tr>
<tr class="row13">
<td class="col0"> <code>unpause</code> </td><td class="col1"> solicita que una partida en pausa continúe </td>
</tr>
<tr class="row14">
<td class="col0"> <code>withdraw</code> </td><td class="col1"> cancela una solicitud que ha realizado (siempre que no hubiese sido concedida) </td>
</tr>
</tbody></table></div>
<p>Podremos decirle algo al contrincante con el comando <b>say</b>. Naturalmente, también existen muchos más comandos que se pueden aprender a través del comando general de ayuda help. <br /></p><p>Una vez dominado el entorno, podremos incluso jugar partidas con más de un contrincante, a la manera
de un torneo de exhibición en simultáneas. Para ello deberíamos introducir el comando <code>simuls</code>.
</p>
<p>
Para cerrar la sesión, ingresa el comando <code>logout</code>
</p>
<pre class="code">Logging you out.
.::.
_()_ _::_
_O _/____\_ _/____\_ _O
_ _ _ ^^__ / //\ \ / \ / / //\ ^^__ _ _ _
| || || | / - \_ { } \____/ \____/ { } / - \_ | || || |
|_______|<| __< \___/ (____) (____) \___/ <| __< |_______|
|__ ___ |<| \ (___) | | | | (___) <| \ \__ ___ /
|___|_| <| _ \ |_| |__| |__| _|_| <|_ \ |___|_|
|_|(_)| <|__(_)_\ /(_)\ /(_) \ (_) \ (_) \ <(_)____\ (_)|___|
|_(___) _|(___)_ ((___)) ((___)_) (___)__) (___)__) (___)__|_(___)_|_|
(_ _|_|_)(_ _|_|_ )( _|_|_ )(__|_|_ _) _|_|____)_|_|____)_|_|_ ___)|_|_____)
/_(_____)/_(_____)\/(_____)\/(_____)_\(_____)__(_____)__(_____)__(_____)___\
/_____\ /_____\ /_____\ /_____\ /_____\ /_____\ /_____\ /_____\
(Logout screen by Alefith)
Thank you for using the Free Internet Chess server (http://www.freechess.org).
</pre>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-53884533583546252552023-09-29T18:43:00.001-03:002023-09-29T18:43:28.477-03:00¿Cómo mostrar un mensaje de login SSH en Ubuntu?<p style="text-align: center;"><i>En el metraje de </i>La Revolución Justicialista<i> los integrantes del Grupo Cine Liberación ceden a la visión de Juan Perón imperante durante fines de la década de 1960. Entre las consideraciones sobre las reformas sociales acaecidas durante su gestión, explicó cómo presentar un banner de login SSH en Ubuntu.</i><br /></p><p>(...) <br /></p><p>Yo he hablado de la solución económica que nuestro gobierno dio a la situación imperante de posguerra. Pero es indudable que esta situación económica hizo posible también todas las <b>reformas sociales</b> que sería largas de enumerar. </p><p>Si uno revisa los anales de la legislación argentina - que son mas o menos treinta tomos - casi quince tomos son la legislación Justicialista. En esa legislación Justicialista, el acento está marcado precisamente hacia el Pueblo. Y dentro del Pueblo, a la clase trabajadora. Por primera vez en la historia sindical argentina, se conformó una organización y se dio un status legal y constitucional a esa legislación, que <b>permitió la organización de toda la clase trabajadora argentina</b>. Hasta 1946, el sindicato era una Asociación Ilícita, porque había un fallo de la Suprema Corte que declaraba al sindicato como asociación ilícita. Eso fue posible porque hasta entonces jamás la organización sindical tuvo status constitucional. Recién en la legislación que parte del Justicialismo, se le comienza a dar status legal primero, y en la Constitución de 1949, se le da status constitucional. Es decir, se incorporan los derechos del Trabajador a la Constitución. Esto que aparentemente no tendría gran importancia, tiene una importancia decisiva, porque al establecer en la Constitución que el obrero tiene derecho a organizarse para la defensa de sus intereses profesionales, ya no puede considerarse como una asociación ilícita: es una asociación de bien público.<br /><br />Yo siempre cito un ejemplo. Habían regiones donde los peones ganaban 12 pesos por mes, que no les alcanzaban ni para los cigarrillos, y andaban harapientos y miserables. El <b>Estatuto del Peón</b> que fue uno de las primeras conquistas nuevas, obligó pagar sueldo de dignidad por lo menos. La primera carta que recibí fue de mi madre, que en la estancia tuvo que pagar a los peones con los sueldos establecidos por nosotros. Y me escribió una carta: "vos parece que te has vuelto loco, si te parece que podemos pagar esos sueldos", y yo lo que le dije fue "vieja, o pagás o cerrá la estancia", y lo tuvo que pagar.<br /><br />Bueno, todo este proceso que ha vivido el Pueblo Argentino no es necesario citarlo mas; en muchas partes del mundo ya nos citan como ejemplo de Justicia Social. Por otra parte, uno de los primeros que hablamos de la Justicia Social en el mundo fuimos nosotros. Los <b>acuerdos colectivos de trabajo</b>, también fuimos los iniciadores en el mundo. Hace 25 años establecimos nosotros los primeros acuerdos colectivos del trabajo, y las primeras leyes estableciendo la obligatoriedad de realizar esos convenios colectivos de trabajo.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP4wvYSi5X5BO_tFNV-ivCSfTgc5hyphenhyphenaQelKhzGfl1u1wPBxEY4zKt_meTjA8_-axtT8EsV0QSHovoF1Jy-hSZJPiuoSFxfcGuvZEIYvjnSUbQ8rF54WjOQOilrX_q1W7hU9LY-8LOhKa_45qTii0UWDmX7GEPJji_71ZmgT-kKLHSZ3FQWafjIOGjQN7x-/s240/mpv-shot0005.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="180" data-original-width="240" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP4wvYSi5X5BO_tFNV-ivCSfTgc5hyphenhyphenaQelKhzGfl1u1wPBxEY4zKt_meTjA8_-axtT8EsV0QSHovoF1Jy-hSZJPiuoSFxfcGuvZEIYvjnSUbQ8rF54WjOQOilrX_q1W7hU9LY-8LOhKa_45qTii0UWDmX7GEPJji_71ZmgT-kKLHSZ3FQWafjIOGjQN7x-/s1600/mpv-shot0005.jpg" width="240" /></a></div>Si estas reformas sociales han sido imperecederas, ha sido porque el que las ha custodiado el Pueblo. Este sabe por instinto lo que tiene que defender, <b>pero no viene mal recordárselo</b>: no debemos descuidarnos ni en el Cementerio, no vaya a ser que le corten la mano por un anillo de ónix negro...<p></p><p>Saben ustedes que ya los antiguos egipcios estaban prevenidos, y no descuidaban colocar una serie de jeroglíficos preanunciando las más abyectas de las maldiciones ante quienes osaran profanar sus tumbas. Nosotros no tenemos pirámides en la herencia, pero indudablemente <b>un servidor de acceso remoto por contraseña debe contar con las mismas prerrogativas</b>. Es sabido que los hackers del primer peronismo se abocaron a ello con ahínco, no soslayando incluso a quienes discaban por medio de terminales teletipo. Esto se llamaba "banner".<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRKzbjXjotY2SxSAPEavyjZHdO3p-agOi0SLka_4lxiNTXSN58G0v77TMKUIi8qfzEktQ7GMt-m0aBeoQISPRT_SAM-2YG4gfLEySSmsugc39k1f8Y3k4B9RteKy7HJD-zXJQZsqCvScC_d8Tz2ojCAgfXISTADUFblMsRbGjpNbucL10qJgdPDmilOJBh/s1186/advertencia_ssh.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="641" data-original-width="1186" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRKzbjXjotY2SxSAPEavyjZHdO3p-agOi0SLka_4lxiNTXSN58G0v77TMKUIi8qfzEktQ7GMt-m0aBeoQISPRT_SAM-2YG4gfLEySSmsugc39k1f8Y3k4B9RteKy7HJD-zXJQZsqCvScC_d8Tz2ojCAgfXISTADUFblMsRbGjpNbucL10qJgdPDmilOJBh/s320/advertencia_ssh.png" width="320" /></a> <br /></div><p>Si esto ya se podía hacer con los sistemas de tiempo de cómputo compartido más veteranos, sin duda <b>podremos incorporar un archivo de texto de advertencia o saludo para <a href="https://ubuntuperonista.blogspot.com/2012/08/como-administro-remotamente-ubuntu-con.html">el servidor de Secure Shell</a></b><a href="https://ubuntuperonista.blogspot.com/2012/08/como-administro-remotamente-ubuntu-con.html"> de nuestro sistema operativo GNU con Linux</a>, o cualquier otro que use OpenSSH. De esta forma, cada que que queramos establecer un enlace remoto, recibiremos el mensaje incluido:<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr3Z8tOaM7_D4MxYPcEwdMdQWEXBIfHaZqpUuXZ-IdKMB6LNXNbGML17kh4xJ5nxeAELZ5bg1Kq9X3NUSi5jwMjx8oNdQSfwrdSWQ2mA36kJtBGr-5xGCalUnQPHVZgDyqz000iulZdOWEsLzPDB3erAr8Mhk6tONJVkWP8aZppl0IyQGeEFQU00o6T91G/s1058/loginscreen.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="711" data-original-width="1058" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr3Z8tOaM7_D4MxYPcEwdMdQWEXBIfHaZqpUuXZ-IdKMB6LNXNbGML17kh4xJ5nxeAELZ5bg1Kq9X3NUSi5jwMjx8oNdQSfwrdSWQ2mA36kJtBGr-5xGCalUnQPHVZgDyqz000iulZdOWEsLzPDB3erAr8Mhk6tONJVkWP8aZppl0IyQGeEFQU00o6T91G/s320/loginscreen.png" width="320" /></a></div><p></p><p>Para hacer de esto una realidad efectiva, en primer lugar debemos activar el uso de <i>banner</i> en nuestro servidor. Para ello debemos editar el archivo de configuración del demonio Secure Shell en el servidor SSH. Esto lo haremos abriendo allí una terminal con <b><i>Ctrl+Alt+t</i></b> e ingresando el siguiente Comando de Organización:</p><p><b>sudo nano /etc/ssh/sshd_config</b></p><p>Se abrirá el editor GNU Nano con tal fichero. Debemos buscar y decomentamos la cadena <i>#Banner /etc/banner</i>, eliminando el # de modo que nos quede así:<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTkBMeE0VyFIq8M1XWvgf37YZG5_ElwS3YyJ6C4LIh6KwvAYwaI2zmZOmFiLHl2XIATPsRgeqiuJt6EwHbHkzkLdUn_rjRTAQE5GcuYi9jTQ4pDD0efhhoiKJPUxLVCdUgZ1n6FoKdSEqIdcXX9pTVxJarTvo2ZJgCvuN_mIjjs7tMylPYDRGTK_5Qco8m/s1058/sshd_config%20banner.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="711" data-original-width="1058" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTkBMeE0VyFIq8M1XWvgf37YZG5_ElwS3YyJ6C4LIh6KwvAYwaI2zmZOmFiLHl2XIATPsRgeqiuJt6EwHbHkzkLdUn_rjRTAQE5GcuYi9jTQ4pDD0efhhoiKJPUxLVCdUgZ1n6FoKdSEqIdcXX9pTVxJarTvo2ZJgCvuN_mIjjs7tMylPYDRGTK_5Qco8m/s320/sshd_config%20banner.png" width="320" /></a></div>Esto habilitará la presentación del texto contenido en el archivo /etc/banner). Tras guardar los cambios con <b><i>Ctrl+o</i></b> y salir del editor con <b><i>Ctrl+x</i></b>, podremos editar ya el fichero de texto <i>/etc/banner</i> propiamente dicho. Esto podremos hacerelo con:<p><b>sudo nano /etc/banner</b></p><p>Podremos incluir el contenido de texto que se nos ocurra. Idealmente el banner debe contener archivos ASCII, y no extenderse más allá de las 80x24 líneas (tamaño de video-terminal estándar).</p><div style="text-align: left;"><span style="font-size: xx-small;"><span style="font-family: Ubuntu Mono;"> __________________________<br /> |+++|++++|++++|++++|++|++ /\<br /> |----+----+----+----+--|++/ _| NODO PJ: EL BRAZO TECH DEL JUSTICIALISMO<br /> ____| +++ ++++ ++++ ++++ ++ |/ ++ |<br />| ---------------------------------- ¡¡ VIVA PERÓN CARAJO !!<br />| | ------ | |<br />| | | | | | Este nodo computacional se encuentra<br />| | | | /|\ o /| al servicio del Pueblo, su Masa<br />| | | | _/ ||\O/|| Trabajadora, y encuadrado en una<br />| | |_______| _/ || o || lucha sin cuartel contra la puta<br />| | | / | \ / | oligarquía gorila.<br />| | |____/ /-| V |<br />| | | / |\ /| La verdadera computación es aquella<br />| | /| / ||\O/|| donde la CPU hace lo que el usuario<br />| |---------/~~~---~\--------|| o || quiere y defiende un solo interés:<br />| |.....__/ \\.......| \ / | el del usuario.<br />| |..../ \_\.......| V |<br />| |-- ______/\/..........|\ /| Queremos un software socialmente justo,<br />| |/ /.....|.............||\O/|| económicamente libre, y políticamente<br />| | /......|.............|| o || soberano.<br />| |___ /__________...........| \ / |<br />\_____________ |...........| Y | Y cuando uno de nuestros servidores caiga<br /> | +----------- J | ¡¡CAERÁN CINCO DE LOS DE ELLOS!!<br /> \____________________/</span><br /></span></div><p></p><p>Una vez armado el banner, será necesario reiniciar el servicio SSH para que estos cambios resulten aplicados y de ahora en más surtan efecto.</p><p><b>sudo systemctl restart sshd</b></p><p>De ahora en más, al conectar al servidor SSH con contraseña, deberíamos recibir el texto del fichero <i>/etc/banner</i>.</p><h3 style="text-align: left;">MOTD<br /></h3><p>Si quisiéramos disponer un "mensaje del día" para que se presente al usuario una vez ingresada la contraseña e inciada la sesión, podremos hacerlo a través de indicar un fichero <i>/etc/motd</i>. Normalmente este mensaje se utiliza para advertir alguna particularidad a todos sus usuarios, y como se ha mencionado, se muestra <u>antes de dar inicio al intérprete de comandos</u> de cada usuario remoto.</p><p>Para ello editamos el fichero <i>/etc/motd</i> y disponemos en ella un mensaje de texto en cuestión.</p><p>En mi caso, puedo recurrir a esta funcionalidad de "mensaje del día" para <a href="https://ubuntuperonista.blogspot.com/2022/09/comoadoctrinarmecowsayfortuneterminalubuntu.html">propalar una enseñanza al azar con fortune y cowsay</a>.</p><p><b>sudo fortune doctrina | cowsay -f gaucho > /etc/motd</b><br /></p><p>En cualquier caso, hay que reiniciar el demonio servidor sshd para que surta efecto:</p><p><b>sudo systemctl restart sshd</b> <br /></p><p>De esta manera se presentará una galleta de la fortuna con una gráfica ASCII.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggqVz0pVFoiOn6jZE9RNMQeln0yuJiakRVnA_oBshMUXT9apztZnlqmE34fgpAx6Fswj_gidicNIuSJe3l1zNYZzZKIlfDwHMsPulfCJO-kmMgs6sp5Ro3Gl0ggutiZ8zb7qpGp-tBmaJQdRMYDg2DElGB3rrmUj7RW5BmxBtiQekvF1811Gk1lQqx-5IK/s907/motd.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="740" data-original-width="907" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggqVz0pVFoiOn6jZE9RNMQeln0yuJiakRVnA_oBshMUXT9apztZnlqmE34fgpAx6Fswj_gidicNIuSJe3l1zNYZzZKIlfDwHMsPulfCJO-kmMgs6sp5Ro3Gl0ggutiZ8zb7qpGp-tBmaJQdRMYDg2DElGB3rrmUj7RW5BmxBtiQekvF1811Gk1lQqx-5IK/s320/motd.png" width="320" /></a></div><p></p><p></p><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-29150103916238132282023-09-27T14:11:00.009-03:002023-09-27T21:06:37.793-03:00GNU cumple 40 años<p>Se cumplen hoy 40 años del Proyecto GNU (<a href="http://gnu.org">gnu.org</a>), patrocinado por la Fundación del Software Libre.</p>
<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7uBN2drFWIjWIu3Jv-w8mxJJbiQbnI9e2W94Is_5I8weTgJxlNTCsla5esILTHC_2RY2uZxmTvvKMnkuLgUWT11bXwKB0aOj0Sjb80heSRyeCbaO0eDY9v9aF4i7He6ea8Xp0qejcbjFdeH2XcuRPzTM1GLCVtoL_HhHT9bspztYnQW3ABZq3yyvQ-_g3/s400/gnu-logo-5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="391" data-original-width="400" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7uBN2drFWIjWIu3Jv-w8mxJJbiQbnI9e2W94Is_5I8weTgJxlNTCsla5esILTHC_2RY2uZxmTvvKMnkuLgUWT11bXwKB0aOj0Sjb80heSRyeCbaO0eDY9v9aF4i7He6ea8Xp0qejcbjFdeH2XcuRPzTM1GLCVtoL_HhHT9bspztYnQW3ABZq3yyvQ-_g3/w200-h196/gnu-logo-5.png" width="200" /></a></div>El objetivo de este Proyecto - iniciado por Richard Stallman el 27 de
septiembre de 1983 - es el desarrollo de un sistema operativo de computadoras formado
enteramente por software libre.<p></p>
<p>Este cometido creativo se inició como reacción un proceso de
privatización del software, que había restringido gran cantidad de
programas a la legislación de derechos de autor. Esto degeneró en
fuertes limitaciones de uso. Ciertos fabricantes de software habían
considerado esto de vital importancia para sus intereses comerciales.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkaKHv2NmOhaRT8XnQFlZuZiUafXjSV7BwxPGADgd6XNytd-TEf4fll2-7K5x-d_zQNd637imastMSzIfG6AkjUTPgvTMzH1T6zKFzxXfi-qtJD-xzoZWZwnOrOfIGO2zM8hF04SInmgpZzW4wSApVeSSh_lTObqt4uqjAxB0UM2-3yjOqgpyCqCd7oAJ/s1280/t10-office_0.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkaKHv2NmOhaRT8XnQFlZuZiUafXjSV7BwxPGADgd6XNytd-TEf4fll2-7K5x-d_zQNd637imastMSzIfG6AkjUTPgvTMzH1T6zKFzxXfi-qtJD-xzoZWZwnOrOfIGO2zM8hF04SInmgpZzW4wSApVeSSh_lTObqt4uqjAxB0UM2-3yjOqgpyCqCd7oAJ/s320/t10-office_0.jpg" width="320" /></a></div><p></p>
<p>Paulatinamente el sistema GNU dio lugar a una miríada de programas
que componen un sistema operativo total y completo, entre aquellos
llamados “similares a UNIX”. Este se encuentra salvaguardado por
licencias públicas que identifican y protegen los derechos de los
usuarios a copiar el código fuente del programa, usarlo en la forma que
el mismo usuario decida, e incluso eventualmente modificarlo y
redistribuir estas copias modificadas para el bien de una comunidad de
otros usuarios semejantes. La Fundación del Software Libre entiende esta
acción como fundamento para una Sociedad Digital justa.</p><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-17121325917014054492023-09-06T22:03:00.002-03:002023-10-29T14:10:51.079-03:00¿Cómo reemplazo unidades de disco NVMe de un RAID en Ubuntu Server?<p></p><p style="text-align: center;"><i>Juan Perón expone sobre la necesidad de integrar la lucha a la vez que explica cómo reemplazar las <b>unidades de disco NVMe en Ubuntu Server</b>. </i><br /></p><p>¡Trabajadores! <br /></p><p></p><p></p><p>Las dicotomías del Mundo parecen impulsar al hombre hacia su final destrucción. Se lo ha apremiado artificialmente hacia un híper-consumismo cuyo único sentido es generar una clase de ultra-ricos solventados por una descomunión de ultra-pobres. A su vez, ello ha requerido de la súper-explotación de los recursos ecológicos de nuestro Planeta, y de la ultra-dependencia política de los Pueblos que lo componen.</p><p></p><p>La acción irresoluta del hombre contra el hombre parece querer consumar una lucha enconada, y se le ha ofrecido como solución la competencia entre esclavos por el afecto de un amo al que siquiera conocen, y de cuyos frutos jamás podrán gozar. Muy pocos guardar alguna duda que el diseño mismo de esta lid es el culpable de estas circunstancias.<br /></p><p>Ante estas construcciones artificiosas no podemos mas que valernos de la
conciencia natural de los Pueblos, que por instinto han comprendido que
todo lo perderán si no asocian a su existir mancomunado una prédica social de integración, en un sentir que - si no es humano - al menos ha de ser justo. </p><p></p><p></p><div class="separator" style="clear: both; text-align: center;"></div><p>Hemos hallado coto a esta situación en la Justicia Social. En esto no he sido los únicos, pero si hemos sido los primeros en desarrollarla e implementarla en este rincón del Globo.</p><p style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGLYpcLqy6WsASDFt5Lr3oZwIquHgVooyLDW4tCjZSOMFj7-HDHfUgbMtLipQ72B1O7ZLUNYslq6BixkFR05INPDTh-HPAXB4IFV4awhtXyyvXh3FspuFIrbRhN2tRz_AhrXCse1k00cas06Jf4cTuCqQ5v2MDG6SzpIYuoNZVZ6BHSgqwD1vc7EMX6jh1/s1080/dsc_4362.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1054" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGLYpcLqy6WsASDFt5Lr3oZwIquHgVooyLDW4tCjZSOMFj7-HDHfUgbMtLipQ72B1O7ZLUNYslq6BixkFR05INPDTh-HPAXB4IFV4awhtXyyvXh3FspuFIrbRhN2tRz_AhrXCse1k00cas06Jf4cTuCqQ5v2MDG6SzpIYuoNZVZ6BHSgqwD1vc7EMX6jh1/s320/dsc_4362.png" width="312" /></a> <br /></p><p></p><p>Es indudable que desde un comienzo nos dimos en tornar realidad efectiva una solución de memoria de masa en base a discos rígidos con acceso al Pueblo. Esto ha sido así porque oligárquicas compañías sin Patria ni Bandera que lo intentaban lo hacían con el único propósito de robar datos y explotar metadatos.</p><p>Nuestro mérito en un clúster de datos para el Pueblo nos permite en cambio <b>almacenar para trabajar</b>, y <b>resguardar para luchar</b>. Tal ha sido nuestra previsión, y no nos hemos equivocado.</p><p>Cuando surgió la necesidad, contábamos ya con una herramienta, que de afilarse puede constituir un arma. Es que nuestro servidor Ubuntu de acceso popular en las redes de datos no contaba con la posibilidad de instalarle novedosos discos NVMe, sino que daba uso a las sencillas unidades SATA en forma de discos rígidos mecánicos. Pero la expansión que permite un Justicialismo en anhelo de lucha le permite integrar una <b>placa controladora</b> <b>para discos NVMe</b> que permite darle al Pueblo aquello a lo que antes sólo accedía el oligarca. Es posible así munirle hasta cuatro discos de estado sólido NVMe. Con unidades de 240GB cada uno permitían totalizar próximo a un Terabyte, erogando una velocidad cinco veces superior a la de los discos de estado sólido SATA2, y unas veinticinco
veces superior a las de los viejos discos rígidos mecánicos, a la vez que se guardaba la información del daño esperable y lógico al que la someten las operaciones mecánicas. Por demás, su funcionamiento es totalmente silencioso.<br /></p><div class="separator" style="clear: both; text-align: center;"><p style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="347" data-original-width="476" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimRoSvLlBJFcoPgAcZVrvBOZ89-kJ8j9IMJ3JdJtb9fRgQmrHMSjwLdW0Zfdw0R9Mio3Yze1phQodPJehfK5wXcVUsTCNwKcZJ93EUFVfjwYTQm5B4VgxIs8s3pqo3oeLsGcRYpXztG_d01S8su_-PCoZNqAE4vjBXrbeOWjESv-PH2Sxk-eKFdHc5PNgf/s320/controladora%20nvme.jpg" width="320" /></p></div><p>La Doctrina que hemos creado permanece irresoluta, pero el avance de la técnica puesta a nuestra disposición nos permite tomar la decisión de <b>reemplazar dichas unidades de referencia por cuatro más veloces y mayores, cada una ya de 2 Terabytes</b>. Para ello recurriremos a desacoplarlas de la controladora, y operarlas individualmente según un modo de redundancia RAID que creamos convenientes para nuestras necesidades. Las viejas unidades de 240 nos servirán perfectamente para nuevas laptops "de combate" que disponían de los zócalos pertinentes pero no de discos.<br /></p><div class="separator" style="clear: both; text-align: center;"></div><p>Si bien el armado de cero de un servidor o un clúster RAID no opone gran resistencias, el planteo de reemplazar las unidades NVMe del conjunto de arranque <span style="color: red;">RAID1</span> en Ubuntu Server (con datos propios y ajenos) <b>constituye en cambio un desafío </b>mucho mayor, al que debemos encarar como si de discos rígidos en uso se tratara. No es algo que puede hacerse "a tontas y a locas": en efecto, debemos hacer caso al procedimiento de realizar una copia de resguardo, tomar nota del particionado actual las unidades, y luego reemplazarlas físicamente, para sincronizar las unidades nuevas.<br /></p><p>En este caso el servidor contaba con Ubuntu Server en cuatro unidades de disco de estado sólido NVMe, conocidas como <span style="color: #b45f06;">nvme0n1</span>, <span style="color: #bf9000;">nvme1n1</span>, <span style="color: #38761d;">nvme2n1</span> y <span style="color: #134f5c;">nvme3n1</span>, divididas en pares según el estándar <span style="color: red;">raid1</span> (según este, las particiones de las unidades se duplican pero el uso equivale al del disco de menor capacidad del conjunto).<br /></p><p>El par de unidades de 240GB que forman el conjunto <span style="color: red;">raid1</span> cuentan con particionado para que las mismas operen de unidades de arranque, según la siguiente estructura:<br /><br /> UEFI 512M<br /> <span style="color: #351c75;">md0</span> / boot 1GB<br /> <span style="color: #741b47;">md1</span> / LVM <resto del disco><br /><br />La idea es replicar esto en las unidades NVMe nuevas.</p><p>Antes de comenzar, instalaremos en el servidor los programas de administración de discos (si es que no los tuviésemos a mano ya):</p><p><b>sudo apt install mdadm parted smartctl sfdisk efibootmgr</b><br /></p><p>En primer lugar probamos que todas las unidades NVMe se encuentren realmente montados y en línea como deberían. Para ello introducimos el comando:<br /><br /><b>cat /proc/mdstat</b><br /><br />...ante lo cual el sistema nos devuelve algo como:<br /><br /><span style="font-family: courier;"><span style="font-size: x-small;">Personalities : [<span style="color: red;">raid1</span>] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] <br /><span style="color: #741b47;"></span></span></span><span style="font-family: courier;"><span style="font-size: x-small;"><span style="color: #351c75;"><b>md0</b></span> : active <span style="color: red;">raid1</span> <span style="color: #b45f06;">nvme0n1</span>p2[3] <span style="color: #bf9000;">nvme1n1</span>p2[2]<br /> x blocks super 1.2 [2/2] <b>[</b><span style="color: #04ff00;">UU</span><b>]<br /></b><span style="color: #741b47;"><b>md1</b></span> : active <span style="color: red;">raid1</span> <span style="color: #bf9000;">nvme1n1</span>p3[2] <span style="color: #b45f06;">nvme0n1</span>p3[3]<br /> x blocks super 1.2 [2/2] <b>[</b><span style="color: #04ff00;">UU</span><b>]</b><br /> bitmap: 3/7 pages [12KB], xKB chunk<br /></span></span><br />Esto nos asegura que las unidades de disco se encuentran montadas como conjunto <span style="color: red;">raid1</span>. Debe indicarnos [<span style="color: #04ff00;">UU</span>] y no [<span style="color: #ffa400;">U_</span>] o algo similar.</p><p>Es prudente utilizar por ejemplo el comando <b>smartctl -ia <span style="color: #b45f06;">/dev/nvme0</span></b>, <b>smartctl -ia <span style="color: #bf9000;">/dev/nvme1</span></b>, etc, con el fin de tomar nota de los números de serie de las unidades. En mi caso particular permite delimitar esto con seguridad cuál unidad NVMe específica es la que se reemplaza (ya que físicamente son todas iguales, y el orden de los conectores en la placa controladora no es correlativo, por alguna decisión de diseño).<br /><br />Acto seguido, como generamos una copia de respaldo de la partición EFI de 512MB que contiene el sector de arranque, la cual necesitaremos posteriormente (no viene mas resguardarla en un pendrive):<br /><br /><b>dd if=<span style="color: #bf9000;">/dev/nvme0n1p1</span> bs=4M of=/root/<span style="color: #0b5394;">PARTICION_EFI.img</span></b><br /><br />Escogemos ahora algunas de las unidades y la ponemos fuera de línea (una de las ventajas interesantes de las unidades NMEe):<br /><br /><b>mdadm <span style="color: #351c75;">/dev/md0</span> --fail <span style="color: #bf9000;">/dev/nvme0n1p2</span> --remove <span style="color: #bf9000;">nvme0n1p2</span><br />mdadm <span style="color: #741b47;">/dev/md1</span> --fail <span style="color: #38761d;">/dev/</span><span style="color: #38761d;">nvme0n1p3</span> --remove <span style="color: #38761d;">nvme0n1p3</span></b><br /><br />Ahora reemplazamos físicamente una de las unidades NMVe en el servidor. Ya que estamos puede ser una buena idea <b>actualizar el firmware</b> de la unidad nueva (si es que existe un binario disponible en el sitio del fabricante). En este caso las unidades se colocan en uno de los cuatro zócalos de la controladora tras remover un disipador metálico atornillado y ajustar un pin de retención.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB4qZKIoKBodoFez7VOeRlbMiaeSXCLi7ezhWYn_BSE2GTVtQv9XyyTNVFvCwSes0F0uIUENeYgmBhUQ8kPgs5xdA79qkN-7-s2k9gBUihKhWwtETF6W7PfKCOhLpadlSQihbCFL3y_iwHl-sqsJXhWyGodn1MoE5YZYt0rQ4oONVGzfNoRhKRFUfT55Os/s500/controlador%20nvme%20con%20disipador.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="425" data-original-width="500" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB4qZKIoKBodoFez7VOeRlbMiaeSXCLi7ezhWYn_BSE2GTVtQv9XyyTNVFvCwSes0F0uIUENeYgmBhUQ8kPgs5xdA79qkN-7-s2k9gBUihKhWwtETF6W7PfKCOhLpadlSQihbCFL3y_iwHl-sqsJXhWyGodn1MoE5YZYt0rQ4oONVGzfNoRhKRFUfT55Os/s320/controlador%20nvme%20con%20disipador.jpg" width="320" /></a></div><br /><p>Una vez emplazada la nueva unidad NVMe, colocada la placa nuevamente e iniciado el servidor desde la unidad restante, copiaremos la tabla de particiones de dicha unidad restante (que era un RAID duplicado) a la nueva. Y a continuación generaremos nuevos UUIDs (identificadores únicos de unidad) nuevas para todas sus particiones:<br /><br /><b>sfdisk -d <span style="color: #bf9000;">/dev/nvme1n1</span> | sfdisk <span style="color: #b45f06;">/dev/nvme0n1</span><br />sgdisk -G <span style="color: #b45f06;">/dev/nvme0n1</span></b><br /><br />Hecho esto, podremos volver a agregar estas dispositivos al conjunto del <span style="color: red;">RAID1</span>:<br /><br /><b>mdadm --manage <span style="color: #351c75;">/dev/md0</span> --add <span style="color: #b45f06;">/dev/nvme0n1p2</span><br />mdadm --manage <span style="color: #741b47;">/dev/md1</span> --add <span style="color: #b45f06;">/dev/nvme0n1p3</span></b><br /><br />Tras este procedimiento, el RAID comenzará lógicamente a sincronizar en segundo plano todas las particiones a la unidad "pelada", como un loco (le llevará un tiempo). Podríamos monitorear el status de dicha reconstrucción del RAID introduciendo un comando como:<br /><br /><b>watch cat /proc/mdstat</b><br /><br />Si la reconstrucción RAID se ve sumamente lenta, es probable que se encuentre <b>limitada por software</b> en el servidor a velocidades de unos 200 MB/segundo (11 GB/minuto, algo típico para evitar sobre-exigir de las unidades de disco de estado sólido, y no presentar inconvenientes en el caso de ambientes de acceso en red). Sin embargo, en este caso de mantenimiento vigilado podríamos solicitar que la carga máxima de trabajo de la unidad se eleve muy por encima de tal valor de precaución, lo que podría redundar en una velocidad máxima por ejemplo 1.600MB/segundo (~94 GB/minuto, dependiendo de la velocidad del controlador de discos). Esto podría hacerse con:<br /><br /><b>echo 1600000 > /proc/sys/dev/<span style="color: red;">raid</span>/speed_limit_max</b><br /><br />De esta forma podremos lograr una sincronización completa de 1TB en 11 o 12 minutos, a costa de una mayor generación de calor. Naturalmente podríamos escoger un valor de 800000 como compromiso; en operación normal con Ubuntu, prácticamente no genera calor. En este caso, el disipador provisto redunda en una buena refrigeración momentánea (las unidades NVMe en este regímen generan bastante más calor, y el disipador lo contiene momentáneamente por unos siete y ocho minutos). </p><p>Una vez que la reconstrucción RAID haya concluido, necesitaremos reparar la EFI, comenzando por copiar de nuevo la imagen de partición EFI que respaldamos anteriormente:<br /><br /><b>dd if=/root/<span style="color: #0b5394;">PARTICION_EFI.img</span> bs=4M of=<span style="color: #b45f06;">/dev/nvme0n1p1</span></b><br /><br />Asimismo, debemos reparar el arrancador grub:<br /><br /><b>update-grub<br />grub-install <span style="color: #b45f06;">/dev/nvme0n1</span></b><br /><br />Y finalmente reinstalamos la opción de arranque UEFI. En Ubuntu esto se hace con:<br /><br /><b>efibootmgr -v | grep ubuntu # solo muestra una entrada<br />efibootmgr --create --disk <span style="color: #b45f06;">/dev/nvme0n1</span> --part 1 --label "ubuntu" --loader "\EFI\ubuntu\shimx64.efi"</b><br /><br />Una vez concluido esto, deberíamos contar dos entradas "ubuntu" en el efibootmgr, una para cada unidad NVMe. Esto debería ser todo para un simple reemplazo de unidades en el <span style="color: red;">RAID1</span>.<br /></p><p>Como comprobación cruzamos los dedos e intentamos reiniciar el servidor, de modo de asegurar que el arranque con UEFI se produce correctamente desde cualquiera de los dos unidades NMVe.<br /><br />Naturalmente, si necesitáramos reemplazar otras unidades en un conjunto con mayor número de discos deberíamos seguir el mismo procedimiento funcional, utilizando en cambio el designador de unidad <span style="color: #bf9000;">nvme1n1</span>. </p><h3 style="text-align: left;">Redimensionado de Disco NVMe</h3><p>En este caso particular, las nuevas unidades NVMe no sin similares, sino mayores que las anteriores, lo que permiten incrementar el tamaño del conjunto RAID1 hasta 1 terabyte. Para delimitar este cambio habremos de utilizar el programa <i>parted</i>. Primero sacamos de línea la unidad y luego la abrimos con <i>parted</i>:<br /><br /><b>mdadm <span style="color: #741b47;">/dev/md1</span> --fail <span style="color: #b45f06;">/dev/nvme0n1p3</span> --remove <span style="color: #b45f06;">nvme0n1p3</span><br />parted <span style="color: #b45f06;">/dev/nvme0n1</span></b><br /><br />Y usamos el comando <i>resizepart</i> del programa <i>parted</i> para cambiar el tamaño de la partición desde los ~240GB anteriores hasta los ~1960GB.<br /></p><p>Conforme lo hayamos definido, agregamos el disco nuevamente al conjunto <span style="color: red;">RAID1</span>:<br /><br /><b>mdadm --manage <span style="color: #741b47;">/dev/md1</span> --add /dev/nvme0n1p3</b><br /><br />Ahora aguardamos que se produzca la resincronización del RAID (podemos usar <b>cat /proc/mdstat</b> para comprobarlo) y luego agrandamos el conjunto RAID con el comando <b>grow</b> hasta su máximo posible:<br /><br /><b>mdadm --grow <span style="color: #741b47;">/dev/md1</span> --size=max</b><br /><br />Luego, necesitaremos reformular el tamaño del sistema de archivo.<br /><br />En el caso de que hubiese sido particionado de tipo GPT simplemente deberíamos ejecutar <br /><br /><b>resize2fs <span style="color: #741b47;">/dev/md1</span></b><br /><br />Sin embargo, en este caso que el esquema RAID cuenta con una estructura de particionado LVM mas avanzado, al cual se adosan las un particionado de formato ext4, por lo cual utilizamos:<br /><br /><b>pvresize <span style="color: #741b47;">/dev/md1</span><br />lvextend -L +1G /dev/<span style="color: #741b47;">vg-md1</span>/lv-root<br />resize2fs /dev/<span style="color: #741b47;">vg-md1</span>/lv-root</b></p>Y ahora ya podremos contar con un servidor con 1TB en dos discos de arranque NVMe Gen2 en el conjunto RAID1 (y en mi caso, otro conjunto RAID con 2 discos mas para otros usos). Naturalmente, estos también deben ser respaldados, todo sea por la protección que merecen los datos del Pueblo. Así podemos buscar la Tikún Olam, como dicen los judíos.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-61979071552474484282023-08-22T18:05:00.003-03:002023-08-22T22:39:24.712-03:00¿Cómo puedo usar un émulo del XEDIT de VM/CMS en Ubuntu?<p></p><p style="text-align: center;"><i><span data-offset-key="6pa1u-0-0"><span data-text="true">En la típica visita del Día del Niño a la Casa de Gobierno, Juan Perón regala chocolate caliente y enseña <b>cómo utilizar el editor de texto THE en Ubuntu</b>.</span></span></i></p><p>A los niños les gusta ponerse calificativos. Los hay ortodoxos, los hay heterodoxos, los hay combativos, los hay contemplativos, pero todos juegan. Algunos usan DEC y habrá siempre otros que usen equipamiento de potencia IBM. No podemos ser sectarios, ya que a todos podremos instalarles GNU si lo proponemos.</p><p></p><p>No caben dudas para nadie que <b>el viejo editor XEDIT era uno de los instrumentales en los mainframes del Gigante Azu</b>l. Contaba con facilidades para el trabajo interactivo, pero especialmente destacaban las funciones de operación diferida, que permitía contactar a un mainframe remoto a través de videoterminales, y ejecutar allí un trabajo de edición preparado. Esto permitía programar en ellas un fichero de macro con los cambios escritos en un lenguaje específico - REXX era uno de los favoritos - y luego efectuar modificaciones en un santiamén a través de uina mera llamada telefónica de escasos
segundos.<br /></p><p></p><p>Si bien con el advenimiento de las comunicaciones de datos de banda ancha, esta modalidad de trabajo podría parecernos innecesaria, nunca serán inexistentes las ocasiones donde podría anhelarse un herramental de este tipo, considerando que anteriormente sólo podía gozarlo el oligarca. Pudiendo elaborar nuevas y más
módicas soluciones, podremos utilizarlas según dicha costumbre de obrar, pues si es para sumar, todo sirve.</p><p>Nuestro Movimiento es uno que hace de una necesidad un derecho, y podremos otorgarlo con la misma facilidad y efecto con el que uno da chocolate caliente a un niño.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhus59iCfYQqZxD9f5kJxU_BOJ9s4FGIseIF0mT60BxVTkeVjB4ebSOB-Eh7caVTQC_iOaLn-QqOkeQS_oqkMuMEZqXvwd7SEn5NxMLuPo0baNGwc54IQ8iMiu_SRV-dYKYewe4e1Rk7Ooj8hsWlSw-CXDeO8mproyw42-ZSO-54BOvBsmzHzOtaThT8ChO/s901/per%C3%B3n%20saluda%20nenes.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="577" data-original-width="901" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhus59iCfYQqZxD9f5kJxU_BOJ9s4FGIseIF0mT60BxVTkeVjB4ebSOB-Eh7caVTQC_iOaLn-QqOkeQS_oqkMuMEZqXvwd7SEn5NxMLuPo0baNGwc54IQ8iMiu_SRV-dYKYewe4e1Rk7Ooj8hsWlSw-CXDeO8mproyw42-ZSO-54BOvBsmzHzOtaThT8ChO/s320/per%C3%B3n%20saluda%20nenes.png" width="320" /></a></div><p></p><p></p><p><b>THE</b> ("El Editor Hessling") es un editor de texto que opera a través de órdenes en la línea de comandos y combinaciones de teclas. Fue concebido en 1991 <b>replicando al XEDIT (1980), Editor intrínseco del viejo sistema tiempo de cómputo compartido de IBM, el VM/CMS</b>. Como este, también representa en gran medida al editor KEDIT (1985) de Mansfield Software, del cual existía versión portada para UNIX System V (no confundir con posterior y extinto KEdit de KDE).<br /></p><p>THE fue escrito originalmente para su utilización por individuos encasillados en grandes máquinas de IBM pero que preferían la acción del Justicialismo. Y ya que les resultaba familiar el uso de XEDIT, y se le incorporó un intérprete de órdenes de edición de lenguaje REXX. Para lograr dicha compatibilidad, THE utiliza una implementación libre de tal lenguaje denominada REGINA.</p><p>Para instalarlo en Ubuntu abrimos una terminal con <b><i>Ctrl+Alt+t</i></b> e ingresamos el siguiente comando de organización: <br /></p><p><b>sudo apt install the</b></p><p>Iniciaremos el editor con;</p><p><b>the archivo.txt</b></p><p>Al arrancar el editor THE, <b>el cursor se encontrará en la línea de comandos</b>, cuyo tradicional prompt ====> se encuentra en la parte inferior de la pantalla.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih3QkVTT4eFOaV4MURy6ByRy7dU_AoRMmw_P8sLyoYXWDQaV_rEhF-4QviGS2nE6qdqEieBR20HqQ0KPWg0nyoB_8zfhECUYR6WbR9yO1anpAXkD62eNUsSzFEzfg7Xo_uhci2faI0tosDMmmNilnZZJgru_3KRsxuNwMmzyksyDZeREPg0qgH0qpnkHRR/s880/the%20xedit.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="700" data-original-width="880" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih3QkVTT4eFOaV4MURy6ByRy7dU_AoRMmw_P8sLyoYXWDQaV_rEhF-4QviGS2nE6qdqEieBR20HqQ0KPWg0nyoB_8zfhECUYR6WbR9yO1anpAXkD62eNUsSzFEzfg7Xo_uhci2faI0tosDMmmNilnZZJgru_3KRsxuNwMmzyksyDZeREPg0qgH0qpnkHRR/w400-h319/the%20xedit.png" width="400" /></a></div>Podremos utilizar esta línea de comandos para introducir cualquiera de los <a href="https://hessling-editor.sourceforge.net/doc/index.html">comandos de THE</a>, y ejecutarlos con la <b>tecla Intro</b>. <p></p><p>Estos comandos son en gran parte similares a los de XEDIT/KEDIT. Entre los típicos comandos de operación encontraremos <b>EDIT</b> <b>fichero</b> ("abrir") <b>SAVE</b> ("guardar"), <b>QUIT</b> ("salir del programa") y <b>QQUIT</b> ("salir rápidamente sin preguntar"), así como el comando de ayuda <b>HELP</b> <i>comando</i>.</p><p>Para conmutar entre la línea de órdenes y la FILEAREA (la zona de los contenidos de edición) debemos presionar la <b>tecla</b> <b>Inicio</b>, con lo cual el adepto a los editores de inspiración IBM podrá comenzar su producción, mecanografiar en modo reemplazo (podremos activar el modo inserción con la <b>tecla Ins</b>).<br /></p><p></p><p></p><p>THE es un editor altamente configurable. Por ejemplo, podríamos activar el macro que activa la compatibilidad con XEDIT, mediante la orden:</p><p><b>set compat xedit</b></p><p></p><p>La pantalla cobrará entonces el formato tradicionalista IBM:</p><p></p><p></p><p></p><p></p><pre><span style="font-size: xx-small;"> DIFERENCIAS Size=10 Line=10 Col=1 Alt=10
XEDIT:
===== VM/<abbr data-original-title="Content Management System" title="">CMS<br /></abbr>===== .sp
===== VM/CMS opera bajo el concepto de registros, a diferencia de Unix
===== que lo hace sobre ficheros enteros. Por tal motivo se hizo
===== especialmente válido para el manejo de bases de datos secuenciales,
===== así como otro tipos de editores de registros.
===== Contaba con un manejo bastante similar al de MULTICS, dando uso
===== a un intérprete de comandos llamado EXEC, inaugurando el concepto
===== de Máquinas Virtuales, en un sentido similar a los proceso de UNIX
===== o demonios en BSD, y luego incoporando pipelines, emulos de los
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
===== caños de UNIX.<br />===== Entre sus grandes suites de aplicaciones se encuentra el clásico<br />===== editor de registros XEDIT. Pronto se adaptó para utilizar<br />===== funcionalidades de procesamiento de texto y de correo electrónico<br />===== con anterioridad al modelo cliente-servidor.<br />===== * * * End of File * * *
====>
X E D I T 1 File</span><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrbDxXOe-uyYsriGy2DBnKaIXlQ6363JS-60b_zEC6YxhryMhVj4NxdwyS7r08lcxShHjXNZG2FmXa4Vjrly4b7by-_WfTbH3bNUIKflwbF7XsP5pTDZeWDpp9m2PIKTkLYjeMlhVZ9K5ZJFZzU_WmdPsFofcfGxz1aFRau0Eva3bhe0GtK2kGGtd4OlAO/s1232/the%20xedit.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="849" data-original-width="1232" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrbDxXOe-uyYsriGy2DBnKaIXlQ6363JS-60b_zEC6YxhryMhVj4NxdwyS7r08lcxShHjXNZG2FmXa4Vjrly4b7by-_WfTbH3bNUIKflwbF7XsP5pTDZeWDpp9m2PIKTkLYjeMlhVZ9K5ZJFZzU_WmdPsFofcfGxz1aFRau0Eva3bhe0GtK2kGGtd4OlAO/w400-h276/the%20xedit.png" width="400" /></a></div></pre><p></p><p>Todo este andamiaje de comandos se aplicaba también a la mera edición
del texto. El funcionamiento completo del XEDIT - al menos en sus
versiones postreras para z/VM - está documentado en su <a href="https://publibz.boulder.ibm.com/epubs/pdf/hcsd9a20.pdf">frondoso manual</a>. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7bqOBMC3XHfvOktKAFJGvuYh0BmH390b_zY4f3XZbgZT_nCR947KcT6m8s3LDFHgTXYZVrS28bHKZN3pnLsTtF99-tEE0r4QK665BF9XpfyLf7efCuAgzbzgiTw1QzsvGQjB8va_pptVzheHgysBKP0mBPdQkX-QN1GZbhBNUUOkwLhh0LiFyOP-9CGD0/s1837/xedit.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1421" data-original-width="1837" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7bqOBMC3XHfvOktKAFJGvuYh0BmH390b_zY4f3XZbgZT_nCR947KcT6m8s3LDFHgTXYZVrS28bHKZN3pnLsTtF99-tEE0r4QK665BF9XpfyLf7efCuAgzbzgiTw1QzsvGQjB8va_pptVzheHgysBKP0mBPdQkX-QN1GZbhBNUUOkwLhh0LiFyOP-9CGD0/s320/xedit.jpg" width="320" /></a></div>Sin embargo, podremos acotar su aprendizaje conociendo que el funcionamiento básico de edición de XEDIT consistía en delimitar <i>bloques</i> de texto (que se marcaban con el comando <b>MARK LINE linea1 linea2</b>), o bien delimitar una seguidilla de caracteres con coordenadas posicionales, como <b>MARK STREAM <i>linea1 columna1 linea2 columna2</i></b>.
Como referencia se usaba la reglita de columnas y el contador de
puntero. Una vez delimitado el bloque, se lo podía operar con los
comandos <b>COPY</b> <i><b>posición1 posición2</b></i> ("copiar"), <b>MOVE</b> <b><i>posición1 posición2</i></b> ("cortar y pegar"), y eventualmente <b>DELETE</b> ("borrar"). Esta era la forma folklórica de operar en las terminales IBM 3270 y superiores. <br /><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbcVUmiNyD6vIyeoT_ZmTBPA9dfSf6EGebeeu0tWBQ1A6LXfJRVPohjunu1evxnGDC1pD3mEXRTGm03OECzEj3_mbgY14BxDQ8JByJ-fMKYURabo3-CAOKtCohFq9f5mAYiwSpqI1N7O7kHsXYevjVEBJmBjFmhN_28oYaC5arXSJnGoyVHmTzXAgxXrVZ/s962/the%20xedit%20texto.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="677" data-original-width="962" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbcVUmiNyD6vIyeoT_ZmTBPA9dfSf6EGebeeu0tWBQ1A6LXfJRVPohjunu1evxnGDC1pD3mEXRTGm03OECzEj3_mbgY14BxDQ8JByJ-fMKYURabo3-CAOKtCohFq9f5mAYiwSpqI1N7O7kHsXYevjVEBJmBjFmhN_28oYaC5arXSJnGoyVHmTzXAgxXrVZ/s320/the%20xedit%20texto.png" width="320" /></a></div><p></p><p>Los más pitucos podrán ordenar <b>set compat kedit</b> si tal editor nos es más favorable. Esta nos será útil si reservamos especial aprecio al <a href="https://www.kedit.com/techart.macros.html">uso de Bibliotecas de Macros de KEDIT</a>, sus clásicos ficheros <i>.kml</i>.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI1_87YvGCuQ8boGDceJdi0CMEC9klzTOpfPfLOq04muwsUrhmKDV3dQjmP9bEwcuKkEstoVSgvsLDqiKah4OaIXWBvtrAu6EZReiaYSV2v2ik1OnlgCPqO_uWCz-arni-V28icurTAN53Ij2sN9x9AfpLiaT7l_tAaGNnAeOkf0WfhZQNvKMgI7sUsujJ/s880/the%20kedit.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="700" data-original-width="880" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI1_87YvGCuQ8boGDceJdi0CMEC9klzTOpfPfLOq04muwsUrhmKDV3dQjmP9bEwcuKkEstoVSgvsLDqiKah4OaIXWBvtrAu6EZReiaYSV2v2ik1OnlgCPqO_uWCz-arni-V28icurTAN53Ij2sN9x9AfpLiaT7l_tAaGNnAeOkf0WfhZQNvKMgI7sUsujJ/s320/the%20kedit.png" width="320" /></a></div>Ante cualquier eventualidad podremos emprender el retorno al modo de compatibilidad nativo, si usamos <b>set compat the</b>. <p></p><p>Naturalmente, podremos poner estos comandos en un fichero de perfil para the, llamado <i>~/.therc</i>. Como es común en los sistemas similares a UNIX, este fichero se busca y se ejecuta al inicio, permitiéndonos dejar allí una secuencia de comandos que hagan a nuestra configuración de THE favorita.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaHedlzjMTK6MYoM2QtvvCzy80xO_C2VzIjdFFsJEqNZwJ01y0CSJp9duwmRPPA-xV5M0SxVMeQhxhpkqqCEBOfDErTWBiboU__m8q2ptCILmfsrKCEsAbSFFFKRCHEW_Ho8-fA-Xn71KS_2nQXWbLLqJVpk1v92abv6Tw62fvAlMeBzHzfrI0KLs0Fua0/s882/xedit%20cobol.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="553" data-original-width="882" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaHedlzjMTK6MYoM2QtvvCzy80xO_C2VzIjdFFsJEqNZwJ01y0CSJp9duwmRPPA-xV5M0SxVMeQhxhpkqqCEBOfDErTWBiboU__m8q2ptCILmfsrKCEsAbSFFFKRCHEW_Ho8-fA-Xn71KS_2nQXWbLLqJVpk1v92abv6Tw62fvAlMeBzHzfrI0KLs0Fua0/s320/xedit%20cobol.png" width="320" /></a></div><p></p>¡Con todos ellos podremos tanto editar textos como escribir programas, desde COBOL a C! <br />Unknownnoreply@blogger.com083M5+7F Santa María, Provincia de Buenos Aires, Argentina-37.666787000000006 -61.9412636-66.587048804148878 -132.25376359999996 -8.746525195851131 8.371236399999944tag:blogger.com,1999:blog-1082347280713529648.post-63899416905686318322023-08-16T20:26:00.003-03:002023-08-16T20:47:54.437-03:00¿Cómo instalo CryptPad en Ubuntu?<p style="text-align: center;"><i>En su </i>Latinoamérica Ahora o Nunc<i>a, Juan Perón expone la necesidad de la unión continental, a la vez que expone <b>cómo instalar la suite en línea para trabajo colaborativo seguro CryptPad en Ubuntu Server</b>.</i><br /></p><p>(...)</p><p>Hay gente que escucha las palabras y las hace suya. ¡El Desarrollo! Yo vengo de un mundo que está terriblemente arrepentido del desarrollo que ha hecho, y en este momento el mundo superdesarrollado está entrando en una etapa de desesperación, porque ve que su desarrollo tecnológico lo ha llevado a <b>la destrucción de los medios que la naturaleza</b> le ha venido ofreciendo para pervivir...<br /><br />En este momento, las sociedades de consumo han llevado a un <b>despilfarro</b> tal los medios ecológicos de la humanidad, que se está quedando sin comida y sin materia prima. El problema más grande de este momento es que año tras año - mientras aumenta la población - disminuye la posibilidad de ofrecerle comida, porque ésta va escaseando y escaseará cada día mas. Ellos sufren, y <b>sólo podrán transferir dicho sufrimiento si el Tercer Mundo es tonto</b>.<br /><br />La solución de nuestros Movimientos es <b>integrarnos continentalmente. Nosotros debemos de integrarnos en el continente latinoamericano</b>, que es el último que va quedando por integrarse. Todos los demás ya lo han hecho. Europa se ha integrado ya casi en un asociación confederativa política para defenderse de las acechanzas de ese futuro, que ellos ven con una tremenda claridad. Se está integrando el Asia, se está integrando el África. Y nosotros vamos resultando el último orejón del tarro...<br /><br />Ese es el empeño que debemos poner, y en eso estamos. <b>En 1948 realizamos un Tratado de Complementación Económica en Chile</b>, buscando <b>crear la Comunidad Económica Latinoamericana</b>, que pusiera en paralelo nuestros intereses y uniera nuestros países. Tuvimos mucho éxito inicialmente, casi todos los países latinoamericanos, excepto los cipayos conocidos, se unieron y adhirieron a ese Tratado de Complementación Económica. Fíjense que lo hicimos en 1948, y en esto los apresurados fuimos nosotros, porque Europa lo hace después, en 1958, con el Tratado de Roma, diez años después que nosotros.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGtu5rEK-LHxtEZPK9L9DiJmCyZfspP4ipVLwna91-fBio6DBa4MERkeqv7HmswtAbdT7F6_0dbnSgJy54D_g4uhwwGGwpamIMEolHVEBHkKG1wgRTPVeuig0d7w5Lw1JSvf10z9E5j2Dodba8KpMpXgX68CSE9w73A2T7q7emZuKhCm4XBYrGjty17KXi/s508/pocho%20riendo.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="479" data-original-width="508" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGtu5rEK-LHxtEZPK9L9DiJmCyZfspP4ipVLwna91-fBio6DBa4MERkeqv7HmswtAbdT7F6_0dbnSgJy54D_g4uhwwGGwpamIMEolHVEBHkKG1wgRTPVeuig0d7w5Lw1JSvf10z9E5j2Dodba8KpMpXgX68CSE9w73A2T7q7emZuKhCm4XBYrGjty17KXi/s320/pocho%20riendo.png" width="320" /></a></div><br />Y pudimos porque contamos con una herramienta Justicialista que permitía <b>elaborar documentos digitales por acuerdo encriptado: el CryptPad</b>, en una época donde esto parecía ciencia ficción.<p></p><p></p><p>CryptPad permite contar con un <b>ambiente de trabajo de ofimática</b>,
en línea colaborativo y protegido por cifrado, lo que supera
notablemente propuestas privativas deleznables como Offic€365 o Googl€Doc$, que
carecen de cifrado.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_uvuYlfXx9yoaebWSyKUVCpn2zerY8BtSQY9ILaTHb5xqfq_PJyRAP7M69YD9W0VfLgZAX8lHPZfdRt0gT3zWnhKVCaBgIfqiW1_jCm84Z8wb-aosBLZFemOG-iUtkT3M4k0p8gNzO9ggN2Bep6Znayh9JSl2y8YSnqD5-ApLuE4sULM4mqscJPDrbnXS/s1610/cryptpad%20panel.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="835" data-original-width="1610" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_uvuYlfXx9yoaebWSyKUVCpn2zerY8BtSQY9ILaTHb5xqfq_PJyRAP7M69YD9W0VfLgZAX8lHPZfdRt0gT3zWnhKVCaBgIfqiW1_jCm84Z8wb-aosBLZFemOG-iUtkT3M4k0p8gNzO9ggN2Bep6Znayh9JSl2y8YSnqD5-ApLuE4sULM4mqscJPDrbnXS/s320/cryptpad%20panel.png" width="320" /></a></div>El
uso del sistema en sí es sumamente sencillo y seguro. Requiere el alta
de un usuario (con contraseña o doble registro, llegado el caso) , y se
puede usar desde cualquier navegador de internet. También cuenta con
clientes para teléfonos celulares.<p></p><p>Todas las siete opciones del
ambiente de trabajo CryptPad nos presentan editores, eventualmente
colaborativos o protegidos por contraseña. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG5YUoAaHuO6Yn0p0qSu4JTxavLTqTEhzhPS2jaTP_x8QDFueTh7cs05yVCZOzh_DuVO3lJ_YW_AfBJ9zlQGndfOGKTQi3TfVAj_9sF5jnUPjiBVBajAd-8EoSm0zpU12aJmTInpl4399vojCSN9iXWUz1NfG9XTIZbXHD5cXoytt5bjwxMP87uSJaNeir/s931/cryptpad%20documento.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="670" data-original-width="931" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG5YUoAaHuO6Yn0p0qSu4JTxavLTqTEhzhPS2jaTP_x8QDFueTh7cs05yVCZOzh_DuVO3lJ_YW_AfBJ9zlQGndfOGKTQi3TfVAj_9sF5jnUPjiBVBajAd-8EoSm0zpU12aJmTInpl4399vojCSN9iXWUz1NfG9XTIZbXHD5cXoytt5bjwxMP87uSJaNeir/s320/cryptpad%20documento.png" width="320" /></a></div>Contaremos con la opción <b>Texto enriquecido</b> para documentos generales, mientras que la opción <b>Código</b> hace lo mismo presentańdonos el <a href="https://wiki.texto-plano.xyz/markdown">lenguaje markdown</a>. <p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOx43OT5ubUHJacAVJCLH8LHwLqCT34Y57ZlIGr_6v2sDKSP2jFA1BY2_Wz8Jg0lyl3LM9CyhAjyVAlXpwGOY_xit2FqSsGotXIYFRycUQPvIJATTOfDc8TYNv_qFynbpA9wQmpLS0u103qxhWt_9fVecOfa3_bHYls2fEQfmgz60bbYHwjlzgCqjBFV4y/s1414/cryptpad%20editor%20de%20texto%20enriquecido.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1015" data-original-width="1414" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOx43OT5ubUHJacAVJCLH8LHwLqCT34Y57ZlIGr_6v2sDKSP2jFA1BY2_Wz8Jg0lyl3LM9CyhAjyVAlXpwGOY_xit2FqSsGotXIYFRycUQPvIJATTOfDc8TYNv_qFynbpA9wQmpLS0u103qxhWt_9fVecOfa3_bHYls2fEQfmgz60bbYHwjlzgCqjBFV4y/s320/cryptpad%20editor%20de%20texto%20enriquecido.png" width="320" /></a></div>El
módulo de texto enriquecido presenta un procesador de texto típico, con
opciones ya configuradas, que puede ser multiusuario (con control de
modificaciones y ventana de chat integrada para facilitar trabajar "de a
muchos", llegado el caso). El intérprete de lenguaje Markdown puede ajustarse con
una ventana lado a lado para ver el resultado, si esta es nuestra preferencia.<br /><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiXMfo93IcfqMBFWGAaOfH7ZvUP7GX-dR3gl97GBNHXyx6wEqAVibXMz7AfY9cZeFT0b-3yq-TPUmF1JjtkseOuYyNwBt5dQd1TfihRVx7mHy2GdnPVvnFI--xp_ReUqnbrk7Dnuq3gvw5WX_WoK7j7g1S03ORigs_qN1p6tm0fQeQhX7--ZHaJso3hpU4/s1920/cryptpad%20codigo%20markdown.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiXMfo93IcfqMBFWGAaOfH7ZvUP7GX-dR3gl97GBNHXyx6wEqAVibXMz7AfY9cZeFT0b-3yq-TPUmF1JjtkseOuYyNwBt5dQd1TfihRVx7mHy2GdnPVvnFI--xp_ReUqnbrk7Dnuq3gvw5WX_WoK7j7g1S03ORigs_qN1p6tm0fQeQhX7--ZHaJso3hpU4/s320/cryptpad%20codigo%20markdown.png" width="320" /></a></div><p>La
posibilidad de colapsar la barra de herramientas, elegir tema oscuro, y
utilizar la función de pantalla complementa la elección de un ámbito limpio
o cargado, según sea nuestro flujo de trabajo (superando en esto, nuevamente, a las variantes
privativas del imperialismo).</p><p>El módulo Kanban nos permite elaborar pizarras con simples etiquetas coloreadas multiuso, por ejemplo, para planificar y gestionar proyectos.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiWIg0eCx-mrHffdNBG2lTrN6vwYOz44_xqv8tD6pqg9pF9IzTr8ABcMQ4lLGnMjxZqiHQO2vqyM0eKZrahEZ7bKQLkqc3wq2bKOpm5oT75bDIcNc3xmQJzZKVu5L9d4FG4jI4SDeMx64Ra9GNJ4zPttDkV0LPja44TSnf4XwOT7NOU5uNalT-9wY-stkK/s1156/cryptpad%20kanban.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="981" data-original-width="1156" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiWIg0eCx-mrHffdNBG2lTrN6vwYOz44_xqv8tD6pqg9pF9IzTr8ABcMQ4lLGnMjxZqiHQO2vqyM0eKZrahEZ7bKQLkqc3wq2bKOpm5oT75bDIcNc3xmQJzZKVu5L9d4FG4jI4SDeMx64Ra9GNJ4zPttDkV0LPja44TSnf4XwOT7NOU5uNalT-9wY-stkK/s320/cryptpad%20kanban.png" width="320" /></a></div><p></p><p></p>En
fin, CryptPad es un ambiente de trabajo colaborativo en línea ideal si
contamos con opciones de internet, pero que también puede servirnos en
cualquier oficina a través del uso de una red LAN.<br /><p></p><p>Para
poder contar con este ambiente de trabajo accesible desde la web,
podremos utilizar cualquier instancia ya existente con las limitaciones
que nos propongan (por ejemplo, <a href="https://pad.tildeverse.org">pad.tildeverse.org</a>, que nos otorga 100 MB de
almacenamiento al registranos), o bien podremos montar una propia si ya contamos con un
servidor web funcional.</p><p>Sin embargo no es imposible disponer de los recursos que nosotros deseemos, si instalamos esta suite telemática en nuestra propia infraestructura en lugar de hacerla en una dominada. De esta manera lograremos lo mejor para nuestro
grupo de trabajo.</p><p>Para seguir este temperamento, deberíamos
contar ya con un servidor provisto de Ubuntu o Ubuntu Server, sistema
operativo que idealmente ya debería contar con una <a href="https://ubuntuperonista.blogspot.com/2023/08/instalar-nginx-ubuntu-22-04lts.html">instalación de servidor web Nginx</a>
en regla. Deberíamos asegurarnos especialmente de contar con dos
dominios web registrados y sus certificados correspondientes, los que
nos serán requeridos por CyptPad si es que queremos usarlo desde
Internet para trabajo remoto (esto es innecesario si sólo queremos
usarlo en una red de área local).<br /></p><p>Desde el punto de vista del
hardware, el ambiente funciona de manera veloz siempre que la máquina de
servicio cuente con un microprocesador de doble núcleo y al menos 2GB
de RAM y unos 20GB de disco (tal vez el doble o triple de eso sea lo
recomendado para un uso laboral remoto. A esta pueden conectarse
remotamente desde celulares y PC de bajos recursos, presentando un
funcionamiento veloz.<br /></p><p>Para instalar el ambiente CryptPad en
Ubuntu Server debemos hacer caso primero a sus prerrequisitos. Esta
paquetería se instala con:</p><p><b>sudo apt update && sudo apt upgrade -y;<br />sudo apt install git nodejs npm<br />sudo npm install -g bower</b></p><p>Pues
bien señores, normalmente en este servidor crearíamos un usuario
dedicado para administrar esta instancia de CryptPad, en lugar de
utilizar nuestro propio usuario <i>root</i> de Ubuntu. Este recaudo político está determinado para compartimentar la seguridad en un ambiente remoto.<br /></p><p>Conforme
hemos hecho caso a los prerrequisitos, clonamos el repositorio de
CryptPad a fin de bajar la última versión disponible de Internet, y la
instalamos en la máquina servidor:</p><p><b>git clone https://github.com/xwiki-labs/cryptpad.git cryptpad ;<br />git checkout $(git tag -l | grep -v 'v1.*$' | sort -V | tail -n 1)</b></p><section id="install-cryptpad"><div class="highlight-bash notranslate">
</div>
<section id="configuration"><p class="linemarker linemarker-79">Asimismo, nos instalamos las dependencias de CryptPad gracias al guion de instalación prefabricado. Esto lo hacemos con:</p><p class="linemarker linemarker-79"><b>cd ~/cryptpad<br />sudo npm install<br />sudo bower install</b><br /></p><p class="linemarker linemarker-79">...y nos copiamos un fichero de configuración de ejemplo que nos servirá para trabajar en ella:</p><p class="linemarker linemarker-79"><b>cd ~/cryptpad/config/<br />cp config.example.js config.js</b></p><div class="highlight-bash notranslate">
</div>
<p class="linemarker linemarker-86">Naturalmente este archivo de configuración <i>config.js</i>
ha de ser comprendido y modificado en sus variables operativas, según
lo veamos necesario para nuestra propia instancia de CryptPad. Debemos
tener especial resguardo con los dominios, que son particularmente
importantes.</p>
<p class="linemarker linemarker-88">Como parte de este proceso de personalización e instalación deberíamos leer <a class="reference internal" href="https://docs.cryptpad.org/en/admin_guide/customization.html#admin-customization"><span class="std std-ref">Customización de Instancia</span></a> y modificar el fichero <i>/customize/application_config.js</i> ya que algunas configuraciones no pueden cambiarse una vez que hemos creado las cuentas.</p>
<p class="linemarker linemarker-90">Una vez establecidas estas bases de trabajo, podremos dar inicio al servidor con</p><p class="linemarker linemarker-90"><b>cd cryptpad<br />sudo node server</b> <br /></p><p class="linemarker linemarker-97">La
instancia ahora quedará lista para ejecutarse pero no podrá ser
accedida desde la internet (sólo desde la máquina en sí, o desde la red
local, claro)</p>
</section>
<section id="daemonization">
<h3>Demonización</h3>
<p class="linemarker linemarker-102">En un ambiente de trabajo,
normalmente querremos correr CryptPad de forma de un programa
autoejecutable (para que la instancia inicie su ejecución
automáticamente en caso de necesidad).</p>
<section id="systemd">
<h4>Systemd<a class="headerlink" href="https://docs.cryptpad.org/en/admin_guide/installation.html#systemd" title="Permalink to this heading"></a></h4>
<p class="linemarker linemarker-107">Para ejecutar CryptPad como un servicio <i>systemd</i>, debemos seguir el <a class="reference external" href="https://github.com/xwiki-labs/cryptpad/blob/main/docs/cryptpad.service">fichero de ejemplo cryptpad.service</a>.</p>
<ol class="arabic simple"><li><p class="linemarker linemarker-109">Guardamos el ejemplo <a class="reference external" href="https://github.com/xwiki-labs/cryptpad/blob/main/docs/cryptpad.service">cryptpad.service</a> en <i>/etc/systemd/system/cryptpad.service</i></p></li><li><p class="linemarker linemarker-110">Hacemos los ajustes necesarios (ej. nombre de usuario, ruta, versión de nodejs)</p></li><li><p class="linemarker linemarker-111">Activamos la ejecución al inicio del demonio de servicio mediante el comando<b> sudo systemctl enable cryptpad</b>.</p></li></ol>
<p class="linemarker linemarker-113"><span style="color: red;"><b><u>Nota</u></b>: Existen otras maneras de demonización de aplicaciones nodejs, por ejemplo <a class="reference external" href="https://github.com/foreversd/forever">foreverjs</a> o bien <a class="reference external" href="https://pm2.keymetrics.io/">pm2</a>.</span></p>
</section>
</section>
</section>
<section id="admin-domain-config">
<span id="id1" style="color: red;"></span><h2>Dominios</h2>
<p class="linemarker linemarker-120">Como se ha expresado, se necesita de <u>dos dominios registrados</u> para sacar ventaja de las funciones de seguridad y encriptado remoto de CryptPad. Estos serán:<br /></p>
<ol class="arabic simple"><li><p class="linemarker linemarker-122">Un <i>dominio principal </i>con el cual los usuarios accederán a la instancia</p></li><li><p class="linemarker linemarker-123">Un dominio “sandbox” o <i>subdominio</i> configurado bajo una política restrictivva de contenidos, donde se aplicarán los encabezados</p></li></ol>
<p class="linemarker linemarker-125"><span style="color: red;"><u>Nota</u>: La intención de esta redundancia es
limitar el riesgo de vulnerabilidades del tipo Guionado de Sitio
Cruzado (XSS), que permitirían a eventuales atacantes filtrar datos de
usuario. La computación sensible (como el procesamiento de llaves
criptográficas) se llevará a cabo en el dominio principal, mientras que
la interfaz remota de usuario se implementará en el dominio "sandbox" o
subdominio.</span><br /></p>
<p class="linemarker linemarker-127">El <a class="reference external" href="https://github.com/xwiki-labs/cryptpad/blob/main/docs/example.nginx.conf">archivo de configuración de ejemplo para Nginx</a>
incluye los encabezados relevantes para permitir el sistema de
aislamiento sandbox. Sin embargo, debe configurar su instancia
correctamente para que sea efectivo. Necesitará:</p>
<ol class="arabic simple"><li><p class="linemarker linemarker-129">Los <span style="color: #0b5394;">dos dominios</span> o <span style="color: #0b5394;">subdominios</span></p></li><li><p class="linemarker linemarker-130">incluir ambos dominios en /<i>cryptpad/config/config.js</i> según se describe en <a class="reference internal" href="https://docs.cryptpad.org/en/admin_guide/installation.html#admin-cryptpad-config"><span class="std std-ref">Configurar CryptPad</span></a></p></li><li><p class="linemarker linemarker-131">Generar un certificado SSL que cubra tantos dominios.</p></li><li><p class="linemarker linemarker-132">Asignar correctamente ambos dominios y ambos certificados a las variables específicas para ellos situadas en el <a class="reference external" href="https://github.com/xwiki-labs/cryptpad/blob/main/docs/example.nginx.conf">archivo de configuración para Nginix de ejemplo</a></p></li></ol>
</section>
<section id="install-and-configure-nginx">
<h2>Instalar y configurar Nginx</h2>
<p class="linemarker linemarker-143">El servidor de aplicación de CryptPad maneja las conexiones activas a través <i>dewebsocket</i>
y sirve los activos estáticos (HTML, Javascript, CSS, etc) a los
solicitantes remotos. Esta configuración básica está diseñada para su
configuración sencilla, pero no protege el tráfico con SSL, ni maneja
adecuadamente muchos usuarios concurrentes.</p><p class="linemarker linemarker-143">En un ambiente productivo, se recomienda Nginx Estable. Para configurarlo para CyptPad:<br /></p><ol class="arabic simple"><li><p class="linemarker linemarker-159">Copiamos el <a class="reference external" href="https://github.com/xwiki-labs/cryptpad/blob/main/docs/example.nginx.conf">Archivo de configuración de ejemplo de Nginx para CryptPad example Nginx</a> de modo que se use, o sea importado en la confdiguración principal de Nginx, por ejemplo, poniéndolo en <i>/etc/nginx/conf.d/cyptpad.conf</i>.</p></li><li><p class="linemarker linemarker-160">Editamos el fichero de configuración con los dominios correctos y rutas a los certificados correspondientes.</p></li><li><p class="linemarker linemarker-161">Ejecutamos el comando <b>sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096</b> si no lo hicimos previamente en la máquina host.</p></li></ol>
<p class="linemarker linemarker-163">Ahora deberían estar accesibles los contenidos estáticos y páginas tales como <i>https://cryptpad.<span style="color: #351c75;">sudominio</span>.com/index.html</i>.</p>
</section>
<span id="admin-cryptpad-config"></span><h2>Configurar CryptPad<a class="headerlink" href="https://docs.cryptpad.org/en/admin_guide/installation.html#configure-cryptpad" title="Permalink to this heading"></a></h2>
<p class="linemarker linemarker-170">Para finalizar la instalación, debemos aseguranos que <i>cryptpad/config/config.js</i> contiene al menos:</p>
<ul><li><p class="linemarker linemarker-173">Los dominios correctos:<br /></p>
<ul><li><p class="linemarker linemarker-175">Su dominio principal en lugar de la cadena:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span class="nx">httpUnsafeOrigin</span><span class="o">:</span><span class="w"> </span><span class="s1">'http://<span style="color: #0b5394;">localhost</span>:3000'</span><span class="p">,</span>
</pre></div>
</div>
</li><li><p class="linemarker linemarker-181">Su dominio Sandbox o <span style="color: #0b5394;">subdominio.com</span> en lugar de la cadena:</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span class="nx">httpSafeOrigin</span><span class="o">:</span><span class="w"> </span><span class="s2">"https://<span style="color: #cc0000;">some-other-domain.xyz</span>"</span><span class="p">,</span>
</pre></div>
</div>
</li></ul>
</li><li><p class="linemarker linemarker-187">Un correo electrónico administrativo (que aparecerá en la página de Contacto) en lugar de la cadena:</p></li></ul>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span class="nx">adminEmail</span><span class="o">:</span><span class="w"> </span><span class="s1">'<span style="color: #cc0000;">i.did.not.read.my.config@cryptpad.fr</span>'</span><span class="p">,</span>
</pre></div>
</div>
<section id="diagnostics">
<h3>Diagnósticos</h3>
<p class="linemarker linemarker-196">CryptPad ofrece una página web de
diagnósticos, capaz de efectuar evaluaciones a la configuración de la
instancia. Una vez que hemos completado los pasos anteriores, podremos
https://cryptpad.<span style="color: #0b5394;">sudominio.com</span>/checkup/ para asegurarse que todo figura correctamente configurado.</p>
</section>
<section id="configure-administrators">
<span id="admin-adminusers"></span><h3>Configurar los administradores</h3>
<p class="linemarker linemarker-203">Una vez que CryptPad está
instalado, creamos una cuenta de usuario de CryptPad por medio del botón
Registrar en la página de inicio de CryptPad. Esto generará un usuario
común que podrá trabajar en el ambiente como todo hijo de vecino
registrado.<br /></p><p class="linemarker linemarker-203">Para hacer que esta cuenta se convierta en Administrador de la instancia de CryptPad debemos seguir este temperamento:</p><p class="linemarker linemarker-203"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir4zIGmEXLg4pSGynouRqLtjytnE2zs6dMLBQfckJaENdAArW05i8-w64xfgrdKdcF9YTSXQwWmkD7gXCfbAkJpbFsxtDASEXaHLJm8zrTdEYSpMbO4vX_ErJHMv3gN6_oUl-sSj_QvFNEY6uzAAqRXkJvA-dNtBXcYkRZ9-JvMNLlwxdZXSQp4Jh020td/s867/cryptpad%20llave.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="867" data-original-width="755" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir4zIGmEXLg4pSGynouRqLtjytnE2zs6dMLBQfckJaENdAArW05i8-w64xfgrdKdcF9YTSXQwWmkD7gXCfbAkJpbFsxtDASEXaHLJm8zrTdEYSpMbO4vX_ErJHMv3gN6_oUl-sSj_QvFNEY6uzAAqRXkJvA-dNtBXcYkRZ9-JvMNLlwxdZXSQp4Jh020td/s320/cryptpad%20llave.png" width="279" /></a></div><p></p>
<ol class="arabic simple"><li><p class="linemarker linemarker-205">Copiamos la llave pública que encuentre en <b>Menú de Usuario</b> (clic el avatar en la esquina superior derecha) > <b>Preferencias/Cuenta/Clave de la Firma Pública</b></p></li><li><p class="linemarker linemarker-206">Pegamos la llave en <i>cryptpad/config/config.js</i> en lugar de la siguiente cadena (la descomentamos y reemplazamos):</p></li></ol>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">adminKeys</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="s2">"[<span style="color: red;">cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo</span>=]"</span><span class="p">,</span>
<span class="p">],</span><span class="w"></span>
</pre></div>
</div>
<ol class="arabic simple" start="3"><li><p class="linemarker linemarker-214">Reiniciamos la instancia CryptPad con <b>sudo systemctl restart cryptpad</b></p></li></ol>
</section>
<section id="configure-support-mailbox">
<span id="admin-support-mailbox"></span><h3>Configurar la casilla de correo de soporte</h3><p class="linemarker linemarker-223">A
partir de la versión 4.6 de CryptPad, se ha incorporado una casilla de
correo electrónico de soporte para la instancia puede configurarse desde
el <a class="reference internal" href="https://docs.cryptpad.org/en/admin_guide/admin_panel.html#admin-panel"><span class="std std-ref">Panel de Administración</span></a>, ya sea para el administrador, o para administradores secundarios (en caso que estos fuesen necesarios).<br /></p>
<ol class="arabic simple"><li><p class="linemarker linemarker-225">Desde la cuenta de administrador de la instancia, visitamos la página <i>https://<span style="color: #0b5394;">subdominio.com</span>/admin/#support</i></p></li><li><p class="linemarker linemarker-226">Hacemos clic en <b>Generar Clave de Soporte</b></p></li><li><p class="linemarker linemarker-227">Ahora quedará activa la casilla de correo electrónico de soporte</p></li><li><p class="linemarker linemarker-228">Borra la caché para acceder a la casilla de correo desde la solapa <b>General</b> > <b>Eliminar Caché HTTP</b></p></li></ol>
<p class="linemarker linemarker-230">Para permitir que otros administradores secundarios accedan a la casilla de soporte debemos:</p>
<ol class="arabic simple"><li><p class="linemarker linemarker-232">Copiar la clave de soporte generada que aparece en la parte inferior de la página de soporte.</p></li><li><p class="linemarker linemarker-233">Enviar la clave de soporte a la cuenta de otro administrador</p></li><li><p class="linemarker linemarker-234">El otro administrador debe incorporarse la clave usando el campo <b><i>Agregar Clave Privada</i></b> de la página Soporte, con lo cual obtendrá acceso también a la susodicha casilla de correo de soporte.</p></li></ol>
</section>
<section id="build-static-pages-open-graph-metadata">
<span id="configure-open-graph"></span><h3>Armar páginas estáticas y metadatos Open Graph</h3>
<p class="linemarker linemarker-241"></p>
<p class="linemarker linemarker-243">Si deseamos elaborar páginas estáticas
con CryptPad y activar presentaciones preliminares para redes sociales,
debemos ejecutar el siguiente comando en el servidor:</p><p class="linemarker linemarker-243"><b>npm run build</b></p><p class="linemarker linemarker-243">Esto creará un fichero <i>index.html</i> para cada una de las aplicaciones o módulos en el directorio <i>customize/www</i>.
No se recomienda realizar modificaciones manualesa a dichas páginas, ya
que resultarán sobrescritas la próxima vez que ejecutemos <b>npm run build</b>. Para modificar la imágenes previsualizadas, debemos consultar <a class="reference internal" href="https://docs.cryptpad.org/en/admin_guide/customization.html#preview-images"><span class="std std-ref">Previsualización de Imágenes Open Graph</span></a></p>
<div class="admonition note">
<p class="admonition-title"><span style="color: red;"><u>Nota</u>:
Debemos recordar ejecutar el comando npm run build nuevamente si
actualizamos el servidor de CryptPad a una versión nueva puede dar como
resultado algún problema por código obsoleto.</span></p></div></section><p>Indudablemente nosotros caímos bajo la férula del imperialismo yanqui, que no permitió a estos países unirse, y que ha estado luchando siempre por separarnos y enfrentarnos entre nosotros, al fin de que esa unidad no se produzca.<br /><br />¿Por qué lo han hecho? Muy simplemente, porque <b>ellos se están quedando sin materias primas y están queriendo conservar como países satélites a aquellos que tengan las grandes reservas</b> de comida y materias primas para esa superpoblación que está ya a 25 o 39 años de distancia. Ellos querrán que después nosotros trabajemos para darles a ellos de comer y para darles nuestra materia prima. ¿Por qué? Porque los países superdesarrollados son los pobres del futuro, y los países infradesarrollados serán los ricos del futuro, que tendrán la materia prima y la comida suficiente.<br /><br />Hace pocos días, en Medio Oriente amenazaron a Estados Unidos de cerrarle el grifo del petróleo. El petróleo que produce Medio Oriente es el 80 por ciento del petróleo del mundo, de manera que si ellos cierran la canilla, la industria norteamericana, que está toda montada sobre energía basada en petróleo, tendrá un sacudón muy fuerte. ¿Cómo contestó Estados Unidos? El Senado de Estados Unidos contestó que si eso hacían los árabes, Estados Unidos ocuparía el Medio Oriente. Eso lo van a hacer, pero no sólo con los árabes: ¡lo van a hacer también con nosotros el día que necesiten y no tengan!</p><p>Por ello todo lo necesario para lograr la independencia económica es poco. Saber prever es saber actuar.<br /></p>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1082347280713529648.post-35542639313847985082023-08-09T15:42:00.000-03:002023-08-09T15:42:25.276-03:00¿Cómo instalo Nginx en Ubuntu 22.04LTS?<p style="text-align: center;"> <span style="font-weight: normal;"><i>Apenas iniciada su primer Presidencia, Juan Perón impuso un plan en contra de la suba descontrolada de precios, que puso a tono los mismos y afianzó el poder de consumo del Pueblo Trabajador. Mientras presentaba el plan conocido como "de los sesenta días", explicó <b>cómo instalar el servidor web Nginx en Ubuntu</b>. </i></span></p><p></p><div id="introducción">
<span style="font-weight: normal;">¡Señores!</span><br />
</div>
<div id="introducción">
</div>
<div id="introducción">
<span style="font-weight: normal;"> </span></div><div id="introducción"><span style="font-weight: normal;">Es tal la trascendencia que asigno a la necesidad de terminar con la carestía de la vida - especialmente en beneficio de la clase humilde de la Nación - que he llegado hasta aquí con el deseo de dar la iniciación de esta campaña que llamamos de los sesenta días.<br /><br />En primer término se ha fijado ya hace tiempo cual es el concepto del <b>equilibrio social entre sueldos y salarios</b>. Existe una línea de la vida fijada por los salarios mínimos. Ese <b>salario mínimo establece la línea de la vida</b>. Los que por deficiencia de salario no alcanzan a ese salario vital, son sumergidos. Y los que lo pasan, son los emergidos.<br /><br />Buscamos que en el país - en relación a los precios existentes -<b> no existan salarios que establezcan la condición de sumergido para ningún ciudadano argentino</b>. Si los precios suben justificadamente, no hay otro remedio que <b>aumentar los salarios</b>. Pero si suben los precios injustificadamente, el remedio está en<b> bajar los precios</b>.<br /><br />En este momento, esos dos factores, el aumento justificado y el aumento injustificado, son las causas de la carestía de la vida. <br /><br />En realidad, el aumento que puede considerarse justificado obedece a razones reales, impulsados por la escasez de producción, por el exceso de exportación o por la mala distribución de los artículos de primera necesidad. Y la causas ficticias obedecen a la <b>especulación</b>, a la mala distribución por <b>acopio</b> o por <b>sustracción a la venta</b>.<br /><br />Lo primero ha de encararse para resolverlo en forma absolutamente racional, y por lo tanto con medidas racionales. Lo segundo, es decir la especulación, el acopio o la sustracción a la venta deberá <b>combatirse con medidas drásticas </b>de la mayor energía. <br /><br />En este trabajo que hoy inicia el gobierno, para abaratar los artículos de primera necesidad necesitamos <b>proceder racionalmente</b> para llevar al mínimo los costos de producción, equilibrar la producción misma en su aspecto cualitativo, evitar el exceso de exportación en perjuicio del consumo interno, y racionalizar la producción. Y en segundo término contra las medidas ficticias, es decir la especulación, el acaparamiento o la sustracción a la venta, <b>castigarlo con toda la fuerza de la Ley</b>, ya que ambas cosas deben de considerarse en épocas como las actuales - en que la Nación debe servir al exterior en una proporción desconocida hasta hoy para abastecer a los pueblos hambrientos de otros continentes sin que la población argentina sufra las consecuencias de esa escasez - con una <b>científica graduación</b> de lo que podemos enviar al extranjero y lo que debemos mantener para el alimento de nuestra población.<br /><br />Para ello, en primer término la <b>colaboración</b> <b>de todos </b>es absolutamente indispensable. Estamos encarando la solución de un problema de todos los argentinos, y en consecuencia todos los argentinos deben colaborar en su solución. Los<b> productores, los industriales y los comerciantes</b> deberán facilitar la solución del problema acelerando la producción, disminuyendo a lo indispensable la exportación, y<b> asegurando la distribución adecuada</b>. Eso en cuanto a las fuerzas patronales.<br /><br />Los <b>trabajadores</b> tienen aquí también su cooperación, y ella ha de ser aumentando el rendimiento de su trabajo para producir más. Esa es la misión de todo trabajador en este momento. Y su cooperación en el taller, en la fábrica, y en el campo ha de ser <b>asegurar para el país el mayor grado de producción </b>posible, rindiendo con su trabajo en todas las horas el máximo posible.<br /><br />Los <b>consumidores</b> - vale decir el Pueblo - también tiene su cooperación que asegurar en este problema. Cooperarán <b>no pagando en ningún caso precios mayores que los fijados y denunciando</b> a todo mal comerciante que quiera imponer precios sobre los oficiales fijados. Cada ciudadano debe ser un soldado de esta cruzada y cooperar con el Estado para el bien de todos.<br /><br />Los <b>funcionarios</b> encargados de la vigilancia e inspección deben ser <b>inflexibles</b> y rígidos en el cumplimiento de su función. Los poderes y autoridades del <b>Estado</b> en todas sus jerarquías y funciones deben <b>prestar apoyo </b>y cooperación para la mejor realización de este plan.<br /><br />Nadie dentro del país puede ser espectador indiferente sin que se lo considere un traidor a la causa de todos. Esta campaña de sesenta días, debe de poner a la Nación entera en marcha para vencer en ese plazo todas las dificultades, con la cooperación de los productores, industriales y comerciantes, con la cooperación de los trabajadores, haciendo rendir al máximo su trabajo, con la cooperación de los ciudadanos consumidores, no haciendo el juego a la especulación y no pagando en ningún caso un precio sobre los fijados. <br /><br />Y señores, por sobre todas las cosas para no inutilizar todos estos esfuerzo de conjunto, necesitamos honradez. Honradez en el comerciante, para mantener la calidad de los artículos y no inutilizar los esfuerzos realizados. Honradez en el público, que no se preste a maniobras de ninguna naturaleza. Honradez en los funcionarios para hacer cumplir a todos con su deber de acuerdo a la ley.<br /><br />Señores, vencidos los sesentas días, los precios de los artículos de primera necesidad serán los establecidos en 1945 por el Consejo Nacional de Posguerra, es decir, <b>lo que necesita una familia obrera, en comida, menaje y vestido, para vivir dignamente</b> con el salario vital mínimo establecido. </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-pBtfMfxBoF8/XgVBVvj5qaI/AAAAAAAANgo/ywBqaJGqEXgH1e_hQMx_78ZlryYsa3SaQCLcBGAsYHQ/s1600/per%25C3%25B3n%2Bdiscursea.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="766" height="300" src="https://1.bp.blogspot.com/-pBtfMfxBoF8/XgVBVvj5qaI/AAAAAAAANgo/ywBqaJGqEXgH1e_hQMx_78ZlryYsa3SaQCLcBGAsYHQ/s320/per%25C3%25B3n%2Bdiscursea.jpg" width="320" /></a></div>
<div id="introducción">
<span style="font-weight: normal;"></span>En los servicios telemáticos también hemos de obrar de la misma manera. Hemos de disponer de software servidor capaz de cooperar y de gastar lo mínimo requerido. <b>Nginix</b> es la solución que hemos propuesto.</div>
<div id="introducción">
<span style="font-weight: normal;"></span><br /></div>
<b>Se trata de </b>uno de los servidores web más populares del mundo y aloja
algunos de los sitios más grandes y con mayor tráfico en Internet. Es
más fácil de utilizar que Apache en la mayoría de los casos y puede
emplearse como servidor web o proxy inverso.<br />
<br />
En esta guía os explicaré la manera de<b> instalar Nginx en su servidor
de Ubuntu 22.04LTS</b>.<br />
<h2 id="requisitos-previos">
Requisitos previos</h2>
Antes de comenzar a usar esta guía, debería contar con lo siguiente:<br />
<ul>
<li>Un servidor de Ubuntu 18.04 y un usuario regular que no sea Conductor (root) capaz de ejercer privilegios sudo. Además, debería ya tener habilitado un firewall básico capaz de bloquear los puertos que no sean esenciales. Para aprender a configurar
una cuenta normal de usuario e instalar un firewall, siga nuestra guía
de configuración inicial para Ubuntu 18.04.</li>
</ul>
Cuando disponga de una cuenta, inicie sesión como usuario no root para comenzar.<br />
<h2 id="paso-1-instalar-nginx">
Paso 1: Instalar Nginx</h2>
Debido aq ue Nginx está disponible en los repositorios
predeterminados de Ubuntu, puede instalarlo utilizando el sistema de
paquetes <code>apt</code>.<br />
Actualice su índice local de paquetes:<br />
<br />
<b>sudo apt update</b><br />
<b>sudo apt install nginx</b><br />
<h2 id="paso-2-ajustar-el-firewall">
Paso 2: Ajustar el firewall</h2>
Si siguió el tutorial de configuración del servidor de los requisitos
previos, tendrá habilitado el firewall <i>UFW</i>. Compruebe los perfiles de
aplicaciones <code>ufw</code> disponibles con el siguiente comando:<br />
<br />
<b>sudo ufw app list </b><br />
<br />
...nuestro sistema nos devolverá:<br />
<code></code><br />
<pre class="code-pre"><code><span style="font-size: xx-small;">Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH</span>
</code></pre>
<br />
Habilitaremos el perfil más restrictivo, el cual de todas formas
permitirá el tráfico que hemos configurado y con ello el tráfico en el puerto 80. Para ello ingresamos:<br />
<br />
<b>sudo ufw allow 'Nginx HTTP' </b><br />
<br />
<code></code>Verificamos el cambio realizado con:<br />
<br />
<b>sudo ufw status </b><br />
<br />
...nuestro sistema nos devolverá:<br />
<br />
<pre class="code-pre"><code><span style="font-size: xx-small;">Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)</span>
</code></pre>
<a data-unique="paso-3-comprobar-su-servidor-web" href="https://www.blogger.com/null" name="paso-3-comprobar-su-servidor-web"></a><a data-unique="paso-3-comprobar-su-servidor-web" href="https://www.blogger.com/null" name="paso-3-comprobar-su-servidor-web"></a><br />
<h2 id="paso-3-comprobar-su-servidor-web">
Paso 3: Comprobar nuestro servidor web</h2>
Realziaremos una verificación con el sistema init <code>systemd</code> para saber si se encuentra en ejecución el servicio, ingresando la siguiente órden:<br />
<br />
<b>systemctl status nginx</b><br />
<br />
...a lo cual deberíamos recibir en la terminal algo como:<br />
<pre class="code-pre"><code><div class="secondary-code-label" title="Output">
</div>
<span style="font-size: xx-small;">
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: <span style="color: #38761d;"><span class="highlight">active (running)</span> </span>since Fri 2018-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process</span>
</code></pre>
<br />
A través su dirección IP, accederemos a la página de destino
predeterminada de Nginx para confirmar que el software opera de la manera deseada por el Pueblo:<br />
<br />
<b>http://IP_del_servidor </b><br />
<br />
Deberíamos ver la insulsa página web de destino predeterminada de Nginx:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/--ZxAMFn2MgA/XgVGKSZhm_I/AAAAAAAANg0/Ht9ib6sd2skBWXRAU1363s1TAEb_jbODACLcBGAsYHQ/s1600/bienvenido%2Bnginx.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="456" data-original-width="1493" height="120" src="https://1.bp.blogspot.com/--ZxAMFn2MgA/XgVGKSZhm_I/AAAAAAAANg0/Ht9ib6sd2skBWXRAU1363s1TAEb_jbODACLcBGAsYHQ/s400/bienvenido%2Bnginx.png" width="400" /></a></div>
<a data-unique="paso-4-configurar-bloques-de-servidor-(recomendable)" href="https://www.blogger.com/null" name="paso-4-configurar-bloques-de-servidor-(recomendable)"></a><a data-unique="paso-4-configurar-bloques-de-servidor-(recomendable)" href="https://www.blogger.com/null" name="paso-4-configurar-bloques-de-servidor-(recomendable)"></a><br />
<h2 id="paso-4-configurar-bloques-de-servidor-recomendable">
Paso 4: Configurar bloques de servidor (recomendable)</h2><p>
Al emplear el servidor web Nginx, podremos emplear _bloques de servidor
_(similares a los hosts virtuales de Apache) a fin de encapsular detalles de
configuración y alojar más de un dominio desde un único servidor.<br />
<br />
Configuraremos un dominio llamado <i><b><span style="color: #0b5394;">peronismo.com</span></b></i>, pero debería <b>cambiarlo por su propio nombre de dominio</b>.<br />
<br />
Creemos el directorio para <i>peronismo.com</i>, utilizando el indicador <code>-p</code> para crear cualquier directorio principal necesario:<br />
<br />
<b>sudo mkdir -p /var/www/<span style="color: #0b5394;">peronismo.com</span>/html</b><br />
<br />
Asignamos la propiedad del directorio:<br />
<br />
<b>sudo chown -R $USER:$USER /var/www/<span style="color: #0b5394;">peronismo.com</span>/html</b><br />
<br />
Los permisos de su las raíces de nuestras webs han de ser las correctas si no modificó su valor <i>umask</i>, pero podremos comprobarlo ingresando:<br />
<br />
<b>sudo chmod -R 755 /var/www/<span style="color: #0b5394;">peronismo.com </span></b><br />
<br />
<code></code>
Asimismo, crearemos allí una página de ejemplo <code>index.html</code> utilizando el editor GNU Nano:<br />
<br />
<b>nano /var/www/<span style="color: #0b5394;">peronismo.com</span>/html/index.html</b><br />
<br />
Se abrirá el editor <i>GNU Nano</i> con el archivo vacío index.html. Le pegaremos el siguiente contenido:<br />
<br />
<iframe src="https://pastebin.com/embed_iframe/AsTkNMjG" style="border: none; width: 100%;"></iframe> </p><p>Guardamos los cambios en el archivo con <b>Ctrl+o</b> y cerramos el editor con <b>Ctrl+x</b>.<br />
<br />
Acto seguido, creamos un nuevo bloque de servidor en <i>/etc/nginx/sites-available/<span style="color: #0b5394;">peronismo.com</span></i>. Lo haremos con:<br />
<br />
<b>sudo nano /etc/nginx/sites-available/<span style="color: #0b5394;">peronismo.com</span> </b><br />
<br />
<code></code>
Le pegamos en dicho archivo el siguiente bloque de configuración, a fin de actualizar nuestro nuevo directorio y nombre de dominio:<br />
<br />
</p><div class="code-label" title="/etc/nginx/sites-available/example.com">
</div>
<div class="code-label" title="/etc/nginx/sites-available/example.com">
</div>
<pre class="code-pre"><code>server {
listen 80;
listen [::]:80;
root /var/www/<span style="color: #0b5394;">peronismo<span class="highlight">.com</span></span>/html;
index index.html index.htm index.nginx-debian.html;
server_name <span style="color: #0b5394;">peronismo<span class="highlight">.com</span></span> <span style="color: #351c75;">www.peronismo<span class="highlight">.com</span></span>;
location / {
try_files $uri $uri/ =404;
}
}
</code></pre>
<br />
Guardamos el archivo con <b>Ctrl+o</b> y cerramos el editor GNU Nano con <b>Ctrl+x</b>.<br />
<br />
Habilitamos el archivo creando un enlace entre él y el directorio sites-enabled. Para ello utilizamos:<br />
<br />
<b>sudo ln -s /etc/nginx/sites-available/<span style="color: #0b5394;">peronismo.com</span> /etc/nginx/sites-enabled/</b><br />
<br />
Al ingresar este comando de organización, quedará habilitado y configurado los dos bloques del servidor para responder las solicitudes según las directivas <i>listen</i> y <i>server_name</i>.<br />
<ul>
<li><i><span style="color: #0b5394;">peronismo.com</span></i>: responderá a solicitudes de <i>peronismo.com </i>y <i><span style="color: #351c75;">www.peronismo.com</span></i>, en tanto</li>
<li><i>default</i>: responderá a cualquier solicitud en el puerto <i>80</i> que no coincida con los otros dos bloques.</li>
</ul>
Para evitar un posible problema de memoria de depósito hash
que pueda surgir al agregar nombres de servidor adicionales, será
necesario ajustar un valor en el archivo<i> /etc/nginx/nginx.conf</i>. A tal fin editaremos el archivo:<br />
<br />
<b>sudo nano /etc/nginx/nginx.conf</b><br />
<br />
Se abirá <i>Nano</i> con dicho archivo. Usamos <b>Ctrl+w</b> para buscar la directiva <i>server_names_hash_bucket_size</i>. Al localizar dicha línea, le eliminamos el símbolo numeral ("#") a fin de descomentar la línea.<br />
<span style="font-size: xx-small;"><br /></span>
<span style="font-size: xx-small;"><code></code></span><br />
<pre class="code-pre"><code><span style="font-size: xx-small;">...
http {
...
server_names_hash_bucket_size 64;
...
}
...</span>
</code></pre>
<br />
Tras guardar los cambios con <i>Ctrl+o</i> y salir del editor con <b><i>Ctrl+x</i></b>, realizaremos una prueba operativa en busca de posibles errores de sintaxis:<br />
<br />
<b>sudo nginx -t</b><br />
<br />
Finalmente, reiniciamos el servidor Nginx para que se apliquen los cambios:<br />
<br />
<b>sudo systemctl restart nginx</b><br />
<br />
<code></code>
Con todo esto, Nginx debería proporcionar su nombre de dominio. Podremos comprobar esto visitando <i>http://peronismo.com</i>. Allí, deberíamos ver el siguiente mensaje:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-E9EPigTCmE8/XgVJA2gPaXI/AAAAAAAANhE/Wv-NxFMCtxECw0LCzwPP7sh1vVc45gtTQCLcBGAsYHQ/s1600/exito%2Bnginx.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="136" data-original-width="1490" height="35" src="https://1.bp.blogspot.com/-E9EPigTCmE8/XgVJA2gPaXI/AAAAAAAANhE/Wv-NxFMCtxECw0LCzwPP7sh1vVc45gtTQCLcBGAsYHQ/s400/exito%2Bnginx.png" width="400" /></a></div>
<h2 id="conclusión">
Conclusión</h2>
Conforme hayamos instalado y configurado neustro servidor web, contaremos con muchas opciones respecto del
tipo de contenido que ofreceremos, y de las tecnologías que deseemos utilizar para
crear una experiencia más completa y Justicialista para el Pueblo, que es el verdadero consumo.<br />
<code><code><code><code><code><code></code></code></code></code></code></code>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-12526975677653706182023-08-07T15:40:00.003-03:002023-08-07T16:25:55.927-03:00¿Como veo archivos de imágenes médicas DICOM en Ubuntu?<div style="text-align: center;"><i>Juan Perón difundía su ideario desde España en cintas magnetofónicas, cuyas copias se distribuían subrepticiamente en la Argentina. En una de ellas explica <b>cómo visualizar archivos de imágenes médicas DICOM con Aeskulap o DICOMscope en Ubuntu.</b></i></div><p style="text-align: center;"></p><p>Señores: <br /></p><p>Mi profesión ha sido la de soldado, y como consecuencia de esta formación me he constituido en Conductor, un hombre que dirige el conjunto de esfuerzos. </p><p>Tal vez si no hubiese sido así, hubiese sido galeno, profesión que sin duda comparto. Son admirables esos muchachos, son admirables. Y el Che Guevara es... ha muerto él, pero van a salir mil Che Guevaras si esto sigue. Porque eso emula a la juventud que tiene la obligación de hacerlo. Es decir, las cosas hay que verlas como son. Yo creo - no se si yo estaré equivocado - pero yo estoy con ellos. Como estoy con Fidel Castro y estoy con toda esa gente que ha liberado a sus países. Ahora dicen que es comunista, ¡y a mí que me importa si es comunista! ¡Comunista! Fidel es tan comunista como yo. Mas bien es Justicialista.<br /></p><p>Es que en este mundo, en su eterna evolución, marcha generalmente hacia la <b>superpoblación</b> y la <b>superproducción</b>. Ello trae como inmediata consecuencia la <b>sobreexplotación</b> y el <b>desequilibrio</b>. Juntamente con estos fenómenos - o mejor dicho, por presión de ellos - la humanidad ha podido comprobar la aparición de otros fenómenos que contrapesan su accionar. Las <b>miserias colectivas</b>, la falta de todo, seguidas de enormes mortandades - como en la China, o bien como en Europa y sus estados en guerra - parecerían etapas inexorables a estos procesos.La ley de un oscuro y misterioso destino se cumple fatalmente: la guerra, la peste, y las enfermedades, parecen verse como el <b>medio de estabilizar la población humana</b>, en un ciclo más o menos constantes a lo largo de las regiones superexplotadas que hemos conocido.<br /></p><p>Pero esos problemas - que se producen y se han producido a través de la historia en las zonas superpobladas - no tienen relación con nuestro Pueblo. Nuestro problema es a la inversa, pero la vida de relación moderna han influido inevitablemente para que esos fenómenos de superproducción y superpoblación incidan en nuestro país en forma tal que <b>sintamos sus consecuencias</b>.</p><p>A todo esto lo hemos estudiado y hemos elaborado una diagnosis. Resultaba previsible que ante el desequilibrio, <b>los regímenes demoliberales nos plantearan exigencias para transferirnos sus problemas a cuenta,</b> de los que podríamos ser inmunes si las condiciones de nuestro propio ambiente bendecido por la paz y la abundancia prodigada pudiese ser aislada y defendida. Es por este motivo que nuestro Movimiento impuso como salvaguarda<b> la protección del hombre por el hombre</b>, instrumentando una defensa en la paz, y coadyuvando con la acción decidida de cuanto podemos hacer por beneficiar a las Masas Obreras <b>como factor de precaución</b>. </p><p>Este accionar cobró visos providenciales que deberían ser principios rectores de toda la humanidad: nadie podrá realizarse en una sociedad que no se realiza. Y lo hemos declamado en una organización doctrinaria que vela por todos. Este programa de acción es el <b>Justicialismo</b>.<br /></p><p>Uno de los amparos que hemos enhebrado ha sido el de la Sanidad Pública, donde la ciencia de Esculapio es ofrendada como pináculo del arte al conjunto de la población. El espectro ha sido evidente: llevamos a cabo la <b>medicina preventiva y la organización hospitalaria</b>. Con apoyo de la Fundación Eva Perón, se construyeron hospitales, centros sanitarios, hogares escuelas, hogares para ancianos, institutos formación en enfermería. Se estableció la <b>atención gratuita</b> para toda la población y se crearon políticas públicas como el Tren Sanitario,
que llegaba a los lugares más recónditos del país para brindar
capacitaciones en educación para la salud y atención médica en las
diferentes ramas de la medicina. Las <b>campañas de vacunación</b> de masas llegaron así a todo el país, un ejemplo exitoso fue la política pública implementada para combatir el paludismo que, en el marco de la campaña "<b>Grandes Luchas Sanitarias</b>", que redujo en cuatro años la cantidad de casos de 300.000 a 137. Además se creó EMESTA, <span class="s2">la primera fábrica nacional de medicamentos<b> </b>del Instituto Malbrán, que producía medicinas un </span>70% más baratas que las de los laboratorios privados. </p><p>Ante el gran problema, la gran solución es el Justicialismo. Los grandes problemas se deben dividir en muchos pequeños problemas que pueden solucionarse encadenadamente. La sanidad pública constituyó una de estas pequeñas soluciones que - encadenadas con otras - pudo llevar a cabo el país organizadamente, dando resolución efectiva en tiempo y espacio. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4uM_owWujkmFhfK5v3aAcGsdgcaZfB0pKJTL25nf9btI6NR5UGO_xEakV2V061nDBR5PxzmEzUGt9N0Rboo5VRBbDfnERAtUqTXgvRSwT3PUf0vODi7V_r9EOFGG1FDjBEW2kuGaHjYncYY7uqzR3sJZlfH-hsLniDcCZzIM9WTBak4eYzbGC-Yg3PeqD/s689/pocho.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="689" data-original-width="314" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4uM_owWujkmFhfK5v3aAcGsdgcaZfB0pKJTL25nf9btI6NR5UGO_xEakV2V061nDBR5PxzmEzUGt9N0Rboo5VRBbDfnERAtUqTXgvRSwT3PUf0vODi7V_r9EOFGG1FDjBEW2kuGaHjYncYY7uqzR3sJZlfH-hsLniDcCZzIM9WTBak4eYzbGC-Yg3PeqD/s320/pocho.jpg" width="146" /></a></div><p>Sin duda una de los grandes avances en estos términos fue la implementación de un importante método de diagnóstico por imágenes computadas, posibilitadas gracias a los ficheros digitales DICOM. Estos son archivos de imagen médicas realizados por diferentes tipos de aparatos de registro: radiografías, tomografías, ecografías, etcétera.<br /></p><p></p><p>Normalmente <b>la visualización de los ficheros DICOM estaba reservarda únicamente del oligarca, quien deseaba instituir sistemas operativos
privativos</b>. Pero por obra de la Fundación Eva Perón, se ha dado
con el magnífico que permiten a nuestro sistema GNU con Linux, la
revisión, análisis y gestión de estas imagenes.<br /></p><p></p><p>Sabemos que los archivos de este tipo normalmente disponen de nombres de 8 caracteres y por protocolo carecen de extensión (si bien en ocasiones alguien podría asignarles la extensión <span style="color: #351c75;">.dib</span> o <span style="color: #351c75;">.dibcom</span>, esto escapa del uso protocolar). Por tal motivo, conviene en primer término determinar si un archivo de estas características - sin extensión - corresponde realmente a una imagen DICOM y no a otra cosa. Para ello dilucidarlo, usamos el comando file junto con el nombre de archivo. Por ejemplo:</p><p><b>file <span style="color: #351c75;">cr00001</span></b><br /></p><p>Nuestro GNU con Linux analilzará el fichero, y debería devolvernos algo como:</p><p><span style="font-family: courier; font-size: x-small;">CR000001: DICOM medical imaging data </span><br /></p><p>Como vemos Se trata del estándar de Imagenes Digitales y Comunicación En Medicina ("<b>D</b>igital <b>I</b>maging and <b>Co</b>mmunication <b>I</b>n <b>M</b>edicine"). Este implica un formato de fichero de imágenes así como un protocolo de comunicación de red basado en TCP/IP que permite su transmisión en una red de datos. En sí cada fichero DICOM consiste en un encabezado de texto con campos estandarizados y
de formato abierto utilísimos para integrarlos como fichas en cualquier registro clínico (además de impedir la confusión de fichas), junto a un cuerpo con los <b>datos de la imagen médica digitalizada</b>. Un objeto
DICOM simple
puede contener solamente una imagen, pero esta puede estar formada por
múltiples fotogramas, lo que llegado el caso permite almacenarlos en bloques
secuenciados o animados. Normalmente estos datos de imagen se
almacenan sin compresión, pero en ciertos casos los datos pueden
comprimirse mediante estándares como JPEG.
</p><p>DICOM permite la integración de escáneres y aparatos de medicina, servidores, estaciones de
trabajo, impresoras y hardware de red de múltiples proveedores dentro de
un sistema de almacenamiento y comunicación de imágenes coherente.</p><p>En muchas ocasiones podríamos querer poder observar las imágenes registradas por equipamiento DICOM. </p><p>Para instalarlo abrimos una terminal con <b>Ctrl+Alt+t</b> e ingresamos:<br /></p><p><b>sudo apt install aeskulap <br /></b></p><p>Tras instalar el visualizador Aeskulap podremos abrir los ficheros de datos médicos codificadas en el formato Dibcom, lo que nos presentará en pantalla y permitirá un manejo simplón, de palo y a la bolsa.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCFOpmn6FldP-8rfDCvSJpcMWB0lfRNf7yif7o4k7oPG04RuuHBxRGucPEET_dmFwadw_zgwzb883UmqOdvatQeomcjJpUEOgo060dBSKPY4RHu9N3zpsbN5ZY1opYd1DciAbyEep3O8fHilKmX1n84KdlRP3L2The102td9HPOdIOBXKEh9kakKPx3EGY/s942/aeskulap.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="942" data-original-width="862" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCFOpmn6FldP-8rfDCvSJpcMWB0lfRNf7yif7o4k7oPG04RuuHBxRGucPEET_dmFwadw_zgwzb883UmqOdvatQeomcjJpUEOgo060dBSKPY4RHu9N3zpsbN5ZY1opYd1DciAbyEep3O8fHilKmX1n84KdlRP3L2The102td9HPOdIOBXKEh9kakKPx3EGY/s320/aeskulap.png" width="293" /></a></div><br />Presionando el botón derecho del ratón y arrastrándolo podremos desplazarnos en la imagen. Asimismo podremos <b>regular el zoom</b> <b>reglado</b> de la imagen presionando la rueda de scroll del ratón y moviéndola hacia adelante o atrás.<p></p><p></p><p>Por otro lado, podríamos <b>regular la respues contraste </b>("C") de la imagen con posterioridad a su registro, presionando el botón derecho del ratón y arrastrando verticalmente, con lo que iremos aumentando o disminuyendo la intensidad del mismo en tiempo real. En el caso de cierto tipo de registro médico por imágenes - tal es el caso de las radiografías, ciertas tomografías axiales computadas o ecodopplers - podríamos incluso <b>regular el canal que ilustra la respuesta densitométrica</b> ("W") presionando el botón derecho del ratón y arrastrando horizontalmente. En estos casos, podríamos ajustar la respuesta del visualizador para dar mejor respuesta a materiales duros, tejidos óseos, semiblandos, o líquidos. Naturalmente esto dependiendo del aparato con que se haya producido el registro. Ambos ejes se indican numéricamente en la esquina inferior derecha de la pantalla.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMbCFdwASiaS1kjweCb_xlid-nznmNG-DLtcNpTpT0ALBLkYu1cnFcZjAjs-UN6mgeJuOS9OuVRKnbNZ4KDRLNXgaPnP0qDkt9vNlWTZxWOq0bd_ctYzsHoVb1kLCrFAkn-DsqJKq7niR-7UEgSfsTbzJtED1coXCxuXZU0AOMwjo_TX1r1oQQFF6xjhgz/s993/aeskulap%20radiografia.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="993" data-original-width="672" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMbCFdwASiaS1kjweCb_xlid-nznmNG-DLtcNpTpT0ALBLkYu1cnFcZjAjs-UN6mgeJuOS9OuVRKnbNZ4KDRLNXgaPnP0qDkt9vNlWTZxWOq0bd_ctYzsHoVb1kLCrFAkn-DsqJKq7niR-7UEgSfsTbzJtED1coXCxuXZU0AOMwjo_TX1r1oQQFF6xjhgz/s320/aeskulap%20radiografia.png" width="217" /></a></div>Naturalmente, una técnica en imágenes habilidosa puede permitirnos ajustar ambos ejes al unísono moviendo el ratón en diagonales de distinto peraltado y dar con la exposición correcta en un santiamén.<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2rHDsbhvUdLx3a09mq1XrGPniexnd2gGAumhx5OHpVdNXvJUOJpOS1QEG41u5SpZEuxRhKsLaSD1jOX8-gzeEujNzEqCNk8cxP87MVf8ynPyKiG5zTsuDUtw-IQJFFF9R7CjlKy1vdKDj4nrcsUqULWS87LwYT7ZEFrlvaHnp0UM0x-CsswlC7g0HpEvj/s888/Captura%20de%20pantalla%20-2023-08-02%2021-29-35.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="888" data-original-width="672" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2rHDsbhvUdLx3a09mq1XrGPniexnd2gGAumhx5OHpVdNXvJUOJpOS1QEG41u5SpZEuxRhKsLaSD1jOX8-gzeEujNzEqCNk8cxP87MVf8ynPyKiG5zTsuDUtw-IQJFFF9R7CjlKy1vdKDj4nrcsUqULWS87LwYT7ZEFrlvaHnp0UM0x-CsswlC7g0HpEvj/s320/Captura%20de%20pantalla%20-2023-08-02%2021-29-35.png" width="242" /></a></div><p></p><p>Aeskulap normalmente presenta una imagen en positivo, pero podremos acomodar una presentación múltiple en forma de grilla para una secuencia de estudio por imágenes, disponiendo distintas imágenes de secuencia del estudio, o bien comparando izquierda/derecha, o arriba/abajo. Con <b>F11</b> en tanto activaremos el modo de pantalla completa. También podremos positivarla con el botón correspondiente.</p><p><br /></p><p>El programa permite contar también con un servidor de imágenes sencillo, lo que permite integrarlo en una red de área local y programas como GNU Health.<br /></p><p>Otro visualizador sencillo de estudios médicos por imágenes de tipo DICOM es <b>DICOMscope</b>. Consiste en un<b> </b>visualizador sencillo y libre, escrito en Java. Para instalarlo en Ubuntu desde la terminal ingresamos el siguiente comando de organización:</p><p><b>sudo apt install dicomscope</b></p><p><b>DICOMscope</b> consiste en un visualizador libre de DICOM que puede mostrar imaginería monocromática y sin compresión DICOM, y soporta calibración de monitores así como un cliente de impresión en escala de grises. Si bien es un programa algo antiguo, cumple con una función, y<b> sus controles son prácticamente similares a los de Aeskulap</b>.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjylA_jrTV356uGgUKCcvcMwZOqF7yWTjFtvjyWkMzwKV2M6k-k0OTW4xUEo1yrwwCyQlT2Vg3f0SmXPHZ-FCYd46jqZtQz8IaBEN00SE6Mx4bNhXMss-eD5q4fNVsmx9alpIv9EAtoC7vxWJMVFG9BDXKZVt3LoOaEaQ0Rf-9IhcNBaGTC55yChO_XtAj-/s1142/dicomscope.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="984" data-original-width="1142" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjylA_jrTV356uGgUKCcvcMwZOqF7yWTjFtvjyWkMzwKV2M6k-k0OTW4xUEo1yrwwCyQlT2Vg3f0SmXPHZ-FCYd46jqZtQz8IaBEN00SE6Mx4bNhXMss-eD5q4fNVsmx9alpIv9EAtoC7vxWJMVFG9BDXKZVt3LoOaEaQ0Rf-9IhcNBaGTC55yChO_XtAj-/s320/dicomscope.png" width="320" /></a></div><p>En particular, DICOMscope presenta una funcionalidad de anotación con capas, lo que permite hacer indicaciones o llamadas. También permite hacer un zoom de alta resolución, lo que lo presenta de especial interés para el análisis óseo tumoral, fracturas y torsiones. Permite establecer regiones poligonales y consta de funciones de composición limitadas pero que pueden ser útiles, como armar fotogramas compuestos y exportar el resultado en formatos de imágenes estándares tales como JPG o PNG, a la vez que permite imprimirlo llegada la necesidad.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbhHrNXZWLi87fKqYo_3DcEp_XKt28xmUulIBNxrCDzzc6JmEo68Pe5ReE7VU6XoKSNBgZeXC9aknuO1FqNLmlc3MhIdAcsvn5eQ6rFX0uPEgXEJzk32DmzBkIYNA4j9ofOc4GKLqv9g_ooIdAoEKH8isuVOW0d_IdAnZEWOcBjttP2QHhXlLZitdIChWQ/s1581/DICOMscope.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="981" data-original-width="1581" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbhHrNXZWLi87fKqYo_3DcEp_XKt28xmUulIBNxrCDzzc6JmEo68Pe5ReE7VU6XoKSNBgZeXC9aknuO1FqNLmlc3MhIdAcsvn5eQ6rFX0uPEgXEJzk32DmzBkIYNA4j9ofOc4GKLqv9g_ooIdAoEKH8isuVOW0d_IdAnZEWOcBjttP2QHhXlLZitdIChWQ/s320/DICOMscope.png" width="320" /></a></div><p>Naturalmente podremos contar lo bibliotecas de ficheros DICOM que fundamente el estudio, una de ellas podremos lograrla <a href="https://3dicomviewer.com/dicom-library/">aquí</a>.</p><p>Como ven, señores, nosotros lo hicimos en el pasado, y podremos volver a hacerlo en el
futuro, ya que la fórmula la tenemos en la biblioteca. Podemos adaptarla
a los tiempos que corren. Todo podrá hacerse si volvemos al libro que funciona: el Justicialismo.<br /></p><p></p><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-1737010569976889392023-07-29T21:42:00.008-03:002023-11-12T18:05:14.537-03:00¿Cómo instalo los editores Ecce y EdLin en Ubuntu?<p style="text-align: center;"><i>Su </i>Quinta 17 de Octubre<i> de Puerta de Hierro fue testigo de numerosos encuentros del Conductor del Justicialismo con delegaciones del quehacer político argentino. En una de las reuniones celebrada en 1969, Juan Perón expone ante frondosa concurrencia acerca de compilar e <b>instalar los editores de texto modales Ecce y EdLin en Ubuntu</b>.</i><br /></p><p style="text-align: left;">¡Compañeros!</p><p style="text-align: left;"></p><p style="text-align: left;">El nuestro es un Movimiento que está para darle a todos lo que merecen por Justo derecho.</p><p style="text-align: left;">Todos sabemos que antes de organizarse en pos del Justicialismo, los trabajadores argentinos daban comienzo a su mañana con mendrugos duros, un mate cocido y grandes anhelos para acompañar. Esta fue la base previa a la organización, que como consecuencia del obrar, elevaría esta humilde dieta a la del chori al parquet de roble eslavonia.</p><p style="text-align: left;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4mA5Z_35595ILr1fWOrJ27m4hqnW31Zh7MLqujg7ZvWfdtugrRpL3KaDCdCRGmnorNiVD6b6lMecd-JV7v9-5YRsTAMJd6zj-Vmar_ccIuSDM9O5QYR9RFi-NZrYLMCQj4MET4x_eo1R6ElvGZl7dEqc3fIoQ3O0YU4oE_ASF0OBVBh6L9WniiFTexkgH/s300/juan%20peron.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="237" data-original-width="300" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4mA5Z_35595ILr1fWOrJ27m4hqnW31Zh7MLqujg7ZvWfdtugrRpL3KaDCdCRGmnorNiVD6b6lMecd-JV7v9-5YRsTAMJd6zj-Vmar_ccIuSDM9O5QYR9RFi-NZrYLMCQj4MET4x_eo1R6ElvGZl7dEqc3fIoQ3O0YU4oE_ASF0OBVBh6L9WniiFTexkgH/s1600/juan%20peron.jpg" width="300" /></a></div><br />Observarán que en
el mundo del software sucede mas o menos el mismo temperamento. No podemos crear de la
nada absoluta, sino que debemos edificar en base a ladrillos lógicamente concebidos
y planificados en una estructuración que va se impone de menor a mayor. Es así
como yo creo para crecer, y esta es la fomra como se ingenia en la vida.<p></p><p style="text-align: left;">Este norte cardinal acompaña también la noción creativa que nos requiere la elaboración de un sistema operativo de potencia. Necesariamente habremos de conjugar en código máquina tres herramientas de difícil soslaye: un ensamblador
que para generar código objeto, un intérprete de comandos, y un editor que
nos permita crear texto y corregir lo hecho.</p><p style="text-align: left;"></p><p style="text-align: left;">Esto nos revela que la creación de texto pudo y debió hacerse con l<b>as herramientas más básicas</b>. En particular, los<b> editores de texto primordiales</b> se iniciaron con una modalidad operativa que podríamos describir como <b>modal</b>. Estos permitían introducir cadenas de caracteres en un almacén de memoria, destinados a formar <b>líneas de código</b>, y más adelante por conveniencia, cada línea definida así podría conformar también <b>un párrafo de texto</b>.</p><p style="text-align: left;">Y si bien a partir de esto pueden hacerse mejores cosas, siempre es bueno conocer lo pasado, para afirmarse en el presente y proyectarse para el futuro.<br /></p><h3 style="text-align: left;">Ecce <br /></h3><p style="text-align: left;">Naturalmente yo inicié mis tareas con el <b>Ecce</b>, el Editor de Texto Contextual de Edimburgo. Se trataba de un editor basado en líneas escrito por Hamish Dewar, y portado al lenguaje BCPL del sistema TOPS-10 de la minicomputadora DEC PDP-10 de finales de la década de 1960 - implementación que lo haría famoso entre varias mas.<br /></p><p style="text-align: left;">Hoy podremos instalarlo en nuestro sistema GNU con Linux merced de una versión instrumentada para Unix en el lenguaje C. Podremos compilarlo fácilmente si abrimos una terminal con <b><i>Ctrl+Alt+t</i></b> e ingresamos el siguiente bloque de Comandos de Organización:</p><p style="text-align: left;"><b>cd /tmp ;<br />wget https://ecce.sourceforge.net/ecce.c ;<br />gcc -o ecce -DWANT_UTF8 ecce.c ;<br />sudo mv /tmp/ecce /usr/local/bin/<br /></b></p>
<div class="level4" style="text-align: left;">
<p>Una vez instalado, podremos correr Ecce dando rienda a la siguiente sintaxis: </p><p><b>ecce <span style="color: #bf9000;">fichero_origen</span> <span style="color: #38761d;">fichero_destino </span></b><br /></p>
<pre class="code bash"></pre>
<p>Como vemos, este dinosaurio salió de un huevo para rugir en sistemas monousuario a través de terminales teletipo. Es ciertamente capaz de operar en sistemas multiusuario, pero si lo hacemos "así nomás" se produciría un efecto ostensiblemente destructivo, ya que uno de los usuarios podría alterar irremediablemente el documento que otro se encuentra operando en el mismo sistema. Es por este motivo por el cual para usar Ecce en GNU nos vemos obligados a instrumentar de forma adhoc un <span style="color: #bf9000;">fichero de origen</span> local (autónomo) que nos reparta los buñuelos. En efecto, lo más sencillo es utilizar el <i>touch</i> para crear un fichero <code><span style="color: #bf9000;">origen.txt</span></code> (si este no existiera ya). Por ejemplo:
</p><b>touch <span style="color: #bf9000;">origen.txt</span> ;<br />
ecce <span style="color: #bf9000;">origen.txt</span> <span style="color: #38761d;">destino.txt<br /></span></b><p>Una vez inicializado un fichero propio, Ecce podrá arrancar presentandonos la memoria disponible en su almacén (“búfer”), y aguardando órdenes: <br /></p>
<pre class="code">Espacio de almacén = 768 KBytes
Ecce
></pre>
<p>
Como todo editor de los llamados <i>modal</i>es, durante su operación Ecce nos presentará alguno de sus <i>prompts</i> indicativos del <i>modo de operación</i> en que se encuentra de momento. Estos son:
</p>
<ul class="fix-media-list-overlap"><li class="level1"><div class="li"> <i>Prompt</i> del <i>Modo de Comando</i>: <code>></code></div>
</li><li class="level1"><div class="li"> <i>Prompt</i> del <i>Modo de Inserción de texto</i>: <code>:</code></div>
</li></ul>
</div>
<div class="secedit editbutton_section editbutton_1" style="text-align: left;"><form action="/doku.php" class="button btn_secedit form-inline" method="post"><div class="no"></div></form></div>
<div class="level3" style="text-align: left;">
<p>
Para su empleo más sencillo y básico de entre sus numerosos comandos es suficiente dominar sólo tres:
</p>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<thead>
<tr class="row0">
<th class="col0"> <b>Comando</b> </th><th class="col1"> <b>Acción</b> </th>
</tr>
</thead>
<tbody><tr class="row1">
<td class="col0"> <b><code>g</code></b> </td><td class="col1"> Almacenar una sola línea nueva </td>
</tr>
<tr class="row2">
<td class="col0 leftalign"> <b><code>m</code></b> </td><td class="col1"> Avanza el puntero una sola línea </td>
</tr>
<tr class="row3">
<td class="col0"> <b><code>p</code></b> </td><td class="col1"> Imprime la línea donde se encuentra el puntero </td>
</tr>
</tbody></table></div>
<p>
De esta manera, sesión típica implica recibir el <i>prompt</i> de comandos <code>></code> donde introducimos la orden <b>g*</b> (“almacenar líneas <i>indefinidiamente</i>”), y presionar la <b>tecla Intro</b> para empezar a escribir. Su <b>prompt cambiará al de inserción texto</b> en forma de <code>:</code>. y podremos mecanografiar el párrafo deseado. Al concluirlo debemos presiona la <b>tecla Intro</b> para almacenar dicha línea en memoria. </p><p></p>
<p>
Conforme hayamos finalizado la inserción de la(s) línea(s) de texto deseadas podremos detener el modo de inserción ingresando el comando <b>:</b> que nos devolverá al <i>prompt de comandos</i> <code>></code>. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYnzRhjcjsxDYvOiljG4M9xlRvlpVdA9AZCR0KCa8EZTzB3FUBySMmFssgNr1Mq_e1eX3VGuWfdH2N-maB3zWk64tlWc_KfLehROoJJtY1Jrs8310nLtgNXRehNxsE58F5EN6xWNAE-Azl_yHfuo4CjG65u0_Uds4WEhys57ja7LmHcbuB_As1rAZQxgHu/s1188/ecce.c.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="616" data-original-width="1188" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYnzRhjcjsxDYvOiljG4M9xlRvlpVdA9AZCR0KCa8EZTzB3FUBySMmFssgNr1Mq_e1eX3VGuWfdH2N-maB3zWk64tlWc_KfLehROoJJtY1Jrs8310nLtgNXRehNxsE58F5EN6xWNAE-Azl_yHfuo4CjG65u0_Uds4WEhys57ja7LmHcbuB_As1rAZQxgHu/w400-h208/ecce.c.png" width="400" /></a></div>Estos cambios realizados al <span style="color: #bf9000;">fichero de origen</span> podremos guardarlos en el <span style="color: #38761d;">fichero destino</span> desde el <i>prompt de comandos</i> <code>> </code>(y cerrar el editor), si introducimos el comando <b>%c</b><code><b>.</b></code><p></p><p></p></div><div class="level4" style="text-align: left;">
</div>
<p id="movimiento_y_correccion" style="text-align: left;"><span style="font-weight: normal;">Naturalmente, podremos continuar agregando líneas <i>indefinidamente</i> hasta agotar el almacén, o introducir alguno de estos <b>comandos especiales de Ecce</b>:</span></p>
<table class="inline table table-striped table-condensed" style="text-align: left;"><tbody><tr class="row0">
<td class="col0"> <b><code>%a</code></b> </td><td class="col1"> Descarta la edición realizada.<br /></td>
</tr>
<tr class="row1">
<td class="col0"> <b><code>%c</code></b> </td><td class="col1"> Guarda los cambios y cierra.</td>
</tr>
<tr class="row2">
<td class="col0"> <b><code>%v</code></b> </td><td class="col1"> Imprime la versión de Ecce.</td><td class="col1"><br /></td></tr></tbody></table><p style="text-align: left;"></p><h2 style="text-align: left;"></h2><p id="movimiento_y_correccion" style="text-align: left;"></p><p id="movimiento_y_correccion" style="text-align: left;"><span style="font-weight: normal;">Pues bien señores, si bien este funcionamiento parecería similar al de una antigua máquina de escribir, contaremos con grandes ventajas con respecto a estas. Para movernos en el texto, podremos desplazar la posición actual de edición en el documento (llamada “<i>puntero</i>”). Al llegar al fin del documento recibiremos como indicación el mensaje <code><i>*** FIN ***</i></code>.Los comandos de desplazamiento son sencillos:<br /></span></p><div class="level4" style="text-align: left;">
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> <b><code>m</code></b> </td><td class="col1"> Baja el puntero una línea </td>
</tr>
<tr class="row1">
<td class="col0"> <b><code>m-</code></b> </td><td class="col1"> Sube el puntero una línea </td>
</tr>
<tr class="row2">
<td class="col0"> <b><code>k</code></b> </td><td class="col1"> Borra la línea actual del puntero </td>
</tr>
<tr class="row3">
<td class="col0"> <b><code>k-</code></b> </td><td class="col1"> Borra la línea anterior del puntero </td>
</tr>
<tr class="row4">
<td class="col0"> <b><code>r</code></b> </td><td class="col1"> Se mueve a la derecha un carácter en la línea actual </td>
</tr>
<tr class="row5">
<td class="col0"> <b><code>l</code></b> </td><td class="col1"> Se mueve a la izquierda un carácter en la línea actual </td>
</tr>
<tr class="row6">
<td class="col0"> <b><code>e</code></b> </td><td class="col1"> Borra un carácter en la línea actual </td>
</tr>
</tbody></table></div>
</div>
<div class="secedit editbutton_section editbutton_2" style="text-align: left;"><form action="/doku.php" class="button btn_secedit form-inline" method="post"><div class="no"></div></form></div><h3 class="sectionedit5 page-header pb-3 mb-4 mt-5" id="edicion_avanzada" style="text-align: left;"></h3>
<div class="level3" style="text-align: left;">
<p>
Junto a estos comandos básicos de una sola letra, Ecce dispone ciertamente de la posibilidad de
realizar tareas más complejas y avanzadas que permiten un mayor control. Estas funciones avanzadas inspirarían luego al <a href="https://ubuntuperonista.blogspot.com/2021/08/como-uso-el-comando-sed-para-editar.html">editor de cadenas sed</a>.<br /></p>
<p>
En primer lugar y como regla general, si introducimos un número <i><span style="color: #bf9000;">n</span></i> junto a nuestro comando, se lo ejecutará en bucle una <i><span style="color: #bf9000;">n</span></i> cantidad de veces. Por ejemplo:
</p>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> <b><code>p<span style="color: #bf9000;">23</span></code></b> </td><td class="col1"> Imprime las 23 líneas siguientes al puntero </td>
</tr>
<tr class="row1">
<td class="col0"> <b><code>m<span style="color: #bf9000;">10</span></code></b> </td><td class="col1"> Sube el puntero diez líneas </td>
</tr>
<tr class="row2">
<td class="col0"> <b><code>g<span style="color: #bf9000;">5</span></code></b> </td><td class="col1"> Deja 5 líneas de texto en blanco debajo del puntero </td>
</tr>
</tbody></table></div>
<p>
De esta manera es posible extender o bien invertir el orden del comando antecediendo al número <i><span style="color: #bf9000;">n</span></i> con un signo <code>-</code>. Por ejemplo:
</p>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> <b><code>p<span style="color: #bf9000;">*</span></code></b></td><td class="col1"> Imprime todo hasta el final del texto </td>
</tr>
<tr class="row1">
<td class="col0"> <b><code>p<span style="color: #bf9000;">-23</span></code></b> </td><td class="col1"> Imprime las 23 líneas anteriores al puntero </td>
</tr>
<tr class="row2">
<td class="col0"> <b><code>p<span style="color: #bf9000;">-*</span></code></b> </td><td class="col1"> Imprime todo hasta el inicio del texto </td>
</tr>
<tr class="row3">
<td class="col0"> <b><code>m<span style="color: #bf9000;">-10</span></code></b> </td><td class="col1"> Retrocede el puntero diez líneas </td>
</tr>
<tr class="row4">
<td class="col0"> <b><code>m<span style="color: #bf9000;">-*</span></code></b> </td><td class="col1"> Retrocede el puntero todas las líneas (vuelve al inicio del texto) </td>
</tr>
</tbody></table></div>
</div>
<p id="buscar_y_reemplazar" style="text-align: left;"><span style="font-weight: normal;">Una de las funcionalidades más utilizadas es la de <b>buscar y reemplazar.</b></span><br /></p>
<div class="level5" style="text-align: left;">
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> <b><code>i/<span style="color: #351c75;">texto</span>/</code></b> </td><td class="col1"> Inserta una cadena “<span style="color: #351c75;">texto</span>” aquí en la línea. </td>
</tr>
<tr class="row1">
<td class="col0"> <b><code>f/<span style="color: #351c75;">texto</span>/</code></b> </td><td class="col1"> Busca “<span style="color: #351c75;">texto</span>” indicado. </td>
</tr>
</tbody></table></div>
<p>
Como en el caso anterior, estos pueden repetirse indicándole números apropiados:
</p>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> <b><code>f/<span style="color: #351c75;">texto</span>/4</code></b> </td><td class="col1"> Busca la 4ta. iteración de “<span style="color: #351c75;">texto</span>” </td>
</tr>
<tr class="row1">
<td class="col0"> <b><code>r<span style="color: #bf9000;">40</span></code></b> </td><td class="col1"> Mueve a la derecha <span style="color: #bf9000;">40</span> caracteres </td>
</tr>
</tbody></table></div>
<p>Además, las órdenes pueden encadenarse. Por ejemplo:<br /></p>
<p>
<b><code>m<span style="color: #bf9000;">23</span> f/<span style="color: #351c75;">texto</span>/ p3</code></b>
</p>
</div>
<p id="comandos_de_edicion_avanzada" style="text-align: left;"><span style="font-weight: normal;">Los <b>comandos avanzados de Ecce</b> permiten incluso mayor potencia de trabajo:</span><br /></p>
<div class="level4" style="text-align: left;">
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> <b><code>A</code></b> </td><td class="col1"> Ajusta el largo </td>
</tr>
<tr class="row1">
<td class="col0"> <b><code>B</code></b> </td><td class="col1"> Divide la línea en dos en el puntero </td>
</tr>
<tr class="row2">
<td class="col0"> <b><code>C</code></b> </td><td class="col1"> Cambia mayúsculas con Mayúsculas derecha </td>
</tr>
<tr class="row3">
<td class="col0"> <b><code>C-</code></b> </td><td class="col1">Cambia a minúsculas con Mayúsculas izquierda </td>
</tr>
<tr class="row4">
<td class="col0"> <b><code>D/<span style="color: #351c75;">texto</span></code></b> </td><td class="col1"> Borra primer ocasión de <code><span style="color: #351c75;">texto</span></code> </td>
</tr>
<tr class="row5">
<td class="col0"> <b><code>D-/<span style="color: #351c75;">texto</span></code></b> </td><td class="col1"> Borra iteración previa de <code><span style="color: #351c75;">texto</span></code> </td>
</tr>
<tr class="row6">
<td class="col0"> <b><code>E</code></b> </td><td class="col1"> Borra carácter a la derecha del puntero </td>
</tr>
<tr class="row7">
<td class="col0"> <b><code>E-</code></b> </td><td class="col1"> Borra carácter a la izquierda del puntero </td>
</tr>
<tr class="row8">
<td class="col0"> <b><code>G/<span style="color: #351c75;">texto</span></code></b> </td><td class="col1"> Inserta línea de <code>texto</code> luego del puntero </td>
</tr>
<tr class="row9">
<td class="col0"> <b><code>G-</code></b> </td><td class="col1"> Sube una línea </td>
</tr>
<tr class="row10">
<td class="col0"> <b><code>I/<span style="color: #351c75;">texto</span></code></b> </td><td class="col1"> Inserta <code>texto</code> a la derecha del puntero </td>
</tr>
<tr class="row11">
<td class="col0"> <b><code>I-</code></b> </td><td class="col1"> Inserta texto a la izquierda del puntero </td>
</tr>
<tr class="row12">
<td class="col0"> <b><code>J</code></b> </td><td class="col1"> Une la siguiente línea </td>
</tr>
<tr class="row13">
<td class="col0"> <b><code>O/<span style="color: #351c75;">texto</span></code></b> </td><td class="col1"> Sobreescribe la línea con la cadena <code>texto</code> </td>
</tr>
</tbody></table></div>
</div>
<h4 id="comandos_compuestos" style="text-align: left;"></h4>
<div class="level4" style="text-align: left;">
<p>
Los<b> comandos compuestos de Ecce </b>son secuencias de comandos cerrados entre paréntesis. Pueden repetirse en bucle, tanto condicional como incondicional. Los ejemplos suelen aclararlo todo, como decía Napoleón:<br /></p>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<thead>
<tr class="row0">
<th class="col0"> Operación </th><th class="col1"> Ejemplo </th><th class="col2"> Significado/efecto </th>
</tr>
</thead>
<tbody><tr class="row1">
<td class="col0"> <code>0</code> o <code>*</code> </td><td class="col1"> <br /></td><td class="col2"> <b>Repetición indefinida</b> (“repite hasta no poder cumplir mas”) </td>
</tr>
<tr class="row2">
<td class="col0 leftalign"> <br /></td><td class="col1"> <code>r0</code> </td><td class="col2 rightalign"> Mueve el puntero al final de la línea </td>
</tr>
<tr class="row3">
<td class="col0 leftalign"> <br /></td><td class="col1"> <code>(mr)0</code> </td><td class="col2"> Busca la primer línea en blanco </td>
</tr>
<tr class="row4">
<td class="col0 leftalign"> <br /></td><td class="col1"> <code>e-0</code> </td><td class="col2"> Borra hacia atrás hasta el comienzo de la línea </td>
</tr>
<tr class="row5">
<td class="col0"> <code>?</code> </td><td class="col1"> <br /></td><td class="col2"> <b>Ejecución opcional</b> (se ignora la condición de falla) </td>
</tr>
<tr class="row6">
<td class="col0"> <br /></td><td class="col1"> <code>((r61p)?m)0</code> </td><td class="col2"> Imprime las líneas con no más de 60 caracteres </td>
</tr>
<tr class="row7">
<td class="col0"> <code>,</code> </td><td class="col1"> <br /></td><td class="col2"> <b>Ejecución alterna</b> (“si el primer intento falla, ejecuta el siguiente, etc”) </td>
</tr>
<tr class="row8">
<td class="col0"> <br /></td><td class="col1"> <code>(r81lb,m)0</code> </td><td class="col2"> Divide las líneas que tienen más de 80 caracteres </td>
</tr>
<tr class="row9">
<td class="col0"> <br /></td><td class="col1"> <code>(f/<span style="color: #20124d;">River</span>/(v/<span style="color: #20124d;">Bocado</span>/,e5i/<span style="color: #20124d;">Boca</span>/))*</code> </td><td class="col2"> “Reemplaza <span style="color: #351c75;">River</span> con <span style="color: #351c75;">Boca</span> excepto para <span style="color: #351c75;">Bocado</span>” </td>
</tr>
<tr class="row10">
<td class="col0"> <code>\</code> </td><td class="col1"> <br /></td><td class="col2"> Falla invertida </td>
</tr>
<tr class="row11">
<td class="col0"> <br /></td><td class="col1"> <code>(mv'+'\)0</code> </td><td class="col2"> Busca la siguiente línea que comienza con `<code>+</code> </td>
</tr>
</tbody></table></div>
<p>
Si sólo introducimos un <i>número</i> en la línea de comandos, Ecce repetirá el comando indicado anteriormente una <i><span style="color: #bf9000;">n</span></i> cantidad de veces.
</p>
<p>
Podremos delimitar patrones por cualquier carácter excepto letras,
dígitos, y aquellos que tienen significación definida. Podremos usar: <code>“</code>, <code>/</code>, <code>$</code>, <code>></code>, <code>+</code>, <code>.</code>, <code>:</code>, <code>=</code> y <code>_</code></p><p>Asimismo, podremos ver el <a href="https://history.dcs.ed.ac.uk/archive/apps/ecce/hmd/ldsecce.html">antiguo manual de Ecce</a>.
</p>
</div><h3 style="text-align: left;">EdLin </h3><p style="text-align: left;">A la vez que Ecce contaba con plétora de adeptos universitarios, su decante a las terminales teletipo en boga durante su desarrollo lo hizo verse progresivamente superado con la aparición de las la <b>edición visual de textos en pantalla</b>. Sin embargo los editores modales aún contaban con cierta valía si se hablaba de equipamiento de escasa potencia, y esto era válido con la IBM PC de primera factura y su sistema operativo, el DOS. En sus inicios se decidió adornarlo con un editor orientado a líneas descaradamente influido por el editor Ed del Unix: <b>EdLin</b>. </p><p style="text-align: left;">A pesar de que podría parecer de escasa valía, este ha sido implementado de manera libre por el <a href="https://ubuntuperonista.blogspot.com/2015/11/como-instalo-freedos-con-red.html">Proyecto FreeDOS</a>, y a caballo regalado no se le mira el diente. Por tanto podremos instalarnos una copia para nuestro sistema GNU, acudiendo a la terminal:</p><p style="text-align: left;"><b>wget https://sourceforge.net/projects/freedos-edlin/files/freedos-edlin/2.23/edlin-2.23.tar.gz ;<br />tar xvzf edlin-2.23.tar.gz ;<br />cd edlin-2.23/ ;<br />./configure;<br />make;<br />sudo make install</b></p><p style="text-align: left;">Una vez instalado en nuestro GNU, la ejecución del programa es sumamente sencilla:<br /></p><p style="text-align: left;"><b>edlin</b></p><p style="text-align: left;">Edlin nos presentará su pantalla inicial y nos hará la veña aguardando órdenes. Como tal <span style="font-weight: normal;">sigue premisas algo similares a otros editores nodales: <br /></span></p><div style="text-align: left;"><ul style="text-align: left;"><li><span style="font-weight: normal;"><i>Prompt</i> de su <i>Modo de Comandos</i>: <b>*</b></span></li><li><span style="font-weight: normal;"><i>Prompt</i> de su <i>Modo de Inserción</i>: <b>:<br /></b></span></li></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimrqTXrhECejlXN4YXoeChHhzbuIPk8I2f7vBLW5uROlaYLbIqOsVI0D2qSeIwzzZvmMPMraQHmgViC2Xr3n6uYLard_9GBA4n--i-fXH0UwVJU4AmDgecMtccWg4qt7wI3jogDhzhuUyCa1Xeg-4g6l0zLS5N3CnfYBDY3yrT3ARbZF76f9Bfg561h420/s816/edlin.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="331" data-original-width="816" height="130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimrqTXrhECejlXN4YXoeChHhzbuIPk8I2f7vBLW5uROlaYLbIqOsVI0D2qSeIwzzZvmMPMraQHmgViC2Xr3n6uYLard_9GBA4n--i-fXH0UwVJU4AmDgecMtccWg4qt7wI3jogDhzhuUyCa1Xeg-4g6l0zLS5N3CnfYBDY3yrT3ARbZF76f9Bfg561h420/s320/edlin.png" width="320" /></a></div></div><h4 style="text-align: left;"><span style="font-weight: normal;"></span></h4><div class="level3" style="text-align: left;">
<p>
Por convención EdLin opera con bloques de sólo 11 líneas. Para facilitar la explicación, usaremos entre nosotros las siguientes convenciones para operar en su <i>modo de comandos</i>:
</p>
<ul class="fix-media-list-overlap"><li class="level1"><div class="li"> Los corchetes <code><span style="color: #0b5394;">[]</span></code> denotarán <b>parámetros opcionales</b>.</div>
</li><li class="level1"><div class="li"> La <code><span style="color: #bf9000;"><i>n</i></span></code> nos representará un <b><span style="color: #bf9000;">número de línea</span></b>, que puede ser uno de varios valores posibles:</div>
</li></ul>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> Una <i>cadena de dígitos</i>, o sea un número de línea literal </td><td class="col1"> Por ejemplo, <span style="color: #bf9000;"><code>12</code></span> es la decimosegunda línea. </td>
</tr>
<tr class="row1">
<td class="col0"> <code><span style="color: #bf9000;"><b>n</b></span></code> </td><td class="col1"> Representa al <span style="color: #bf9000;">número de línea</span> justo <u>antes</u> de la última línea del fichero. </td>
</tr>
<tr class="row2">
<td class="col0"> <code><b>.</b></code> (“punto”) </td><td class="col1"> Representa <b>la línea actual</b> en el fichero. </td>
</tr>
<tr class="row3">
<td class="col0"> <code><b>$</b></code> (“peso”) </td><td class="col1"> Representa la <b>línea final</b> del fichero. </td>
</tr>
<tr class="row4">
<td class="col0"> <code><b>+<span style="color: #bf9000;">n</span></b></code> o <code><b>-<span style="color: #bf9000;">n</span></b></code> </td><td class="col1"> Es un <b>diferencial de suma o resta del número de línea actual</b>. Es útil para dar posiciones relativas a una línea, tal como <code>.+1</code> para significar “la línea posterior a la actual”. </td>
</tr>
</tbody></table></div>
<ul class="fix-media-list-overlap"><li class="level1"><div class="li"> El símbolo <code>$</code> representa una cadena de caracteres. Podrás encerrar la cadena tanto en <i>apóstrofes</i> <code>'<span style="color: #351c75;">texto</span>'</code> o bien en <i>comillas</i> <code>"texto"</code>, o podrán contener las siguientes secuencias de escape:</div>
</li></ul>
<div class="table-responsive"><table class="inline table table-striped table-condensed">
<tbody><tr class="row0">
<td class="col0"> <code>\a</code> </td><td class="col1"> Carácter de campana </td>
</tr>
<tr class="row1">
<td class="col0"> <code>\b</code> </td><td class="col1"> Carácter de Retroceder (borrado) </td>
</tr>
<tr class="row2">
<td class="col0"> <code>\e</code> </td><td class="col1"> Escape </td>
</tr>
<tr class="row3">
<td class="col0"> <code>\f</code> </td><td class="col1"> Alimenta papel </td>
</tr>
<tr class="row4">
<td class="col0"> <code>\t</code> </td><td class="col1"> Tabulador horizontal </td>
</tr>
<tr class="row5">
<td class="col0"> <code>\v</code> </td><td class="col1"> Tabulador vertical </td>
</tr>
<tr class="row6">
<td class="col0"> <code>\"</code> </td><td class="col1"> Comillas </td>
</tr>
<tr class="row7">
<td class="col0"> <code>\'</code> </td><td class="col1"> Apóstrofe </td>
</tr>
<tr class="row8">
<td class="col0"> <code>\.</code> </td><td class="col1"> Punto </td>
</tr>
<tr class="row9">
<td class="col0"> <code>\\</code> </td><td class="col1"> Barra invertida </td>
</tr>
<tr class="row10">
<td class="col0"> <code>\<span style="color: #0b5394;">xXX</span></code> </td><td class="col1 rightalign"> Valor Hexadecimal, donde cada <code>X</code> es un dígito hexadecimal (de <code>0</code> a <code>F</code>, tanto en mayúsculas como minúsculas) </td>
</tr>
<tr class="row11">
<td class="col0"> <code>\d<span style="color: #0b5394;">NNN</span></code> </td><td class="col1"> Valor decimal, donde cada <code>N</code> es un dígito decimal (de <code>0</code> a <code>9</code>) </td>
</tr>
<tr class="row12">
<td class="col0"> <code>\<span style="color: #0b5394;">OOO</span></code> </td><td class="col1"> Valor octal, donde cada <code>O</code> es un dígito cotal (de <code>0</code> a <code>7</code>) </td>
</tr>
<tr class="row13">
<td class="col0"> <code>\^<span style="color: #0b5394;">C</span></code> </td><td class="col1"> Caracter de Control, tal como <code>\^J</code> para un caracter “Control+J” literal (linefeed). </td>
</tr>
</tbody></table></div>
<p>Pues bien señores, al igual que Ecce, el funcionamiento básico de EdLin consiste en activar el comando de agregado al almacén, e insertar contenido en el mismo. Para ello, en el prompt * ingresamos el comando <b>a</b> y mecanografiamos las líneas. Para almacenarlas, presionamos la <b>tecla Intro</b>. Para cesar el modo del inserción, en este caso debemos ingresar un <b>.</b> aislado.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcJptzcQG3DmHIeQmdWPaiDmhkjp8c-2cGYq10zzAxfKYTOaAZqFjQaBQKemJcyvbqFpxqVhT1pdcH7lwXQHmTVlopG6QE0_cJZdbVdDEjxCqlTKjbDxsg0k4ax70nBMGrPpYIiCTmw7TZZqQcEG9dlqj5CALUPuWxzQNTNrw8KOQVafS72RPmsjosP5rR/s527/edlin%20sesion.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="341" data-original-width="527" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcJptzcQG3DmHIeQmdWPaiDmhkjp8c-2cGYq10zzAxfKYTOaAZqFjQaBQKemJcyvbqFpxqVhT1pdcH7lwXQHmTVlopG6QE0_cJZdbVdDEjxCqlTKjbDxsg0k4ax70nBMGrPpYIiCTmw7TZZqQcEG9dlqj5CALUPuWxzQNTNrw8KOQVafS72RPmsjosP5rR/s320/edlin%20sesion.png" width="320" /></a></div><p id="guardar_y_salir" style="text-align: left;">Para <b>guardar </b>usaríamos<b> </b><b>w <span style="color: #38761d;">fichero</span> </b>seguido del comando salir, que es <b>q</b>. (O bien podremos usar <b>e <span style="color: #38761d;">fichero</span></b>, que equivale a "guardar y salir"). Para salir de EdLin sin guardar se usa <b>q</b>, ante lo cual se nos interrogará “<i>Abort edit (Y/N)?</i>”. Deberíamos responder <code>yes</code>.
</p><div class="level5">
</div><p id="guardar_y_salir" style="text-align: left;"></p>
<div class="level4" style="text-align: left;"><p>Las funciones de edición de EdLin implican generalmente pocas variantes. La primera es indicar un <span style="color: #bf9000;">número de línea</span> para establecer el puntero, y escribirla de nuevo para <b>reemplazar la línea</b>.</p><p>Si en cambio quisiéramos <b>insertar una línea previamente a otra</b>, usaríamos <code><span style="color: #0b5394;">[</span><span style="color: #bf9000;">n</span><span style="color: #0b5394;">]</span>i</code> para ingresar al en el <i>modo inserción, la cual también acepta </i>las secuencias de escape indicadas. Para abandonar el <i>modo de inserción</i>, ingresamos <code>.</code> en una línea aislada (si necesitáramos escribir una línea que sólo contenga un punto literalemnte, deberías indicarlo escapándolo como <code>\.</code>). Tras de abandonar el <i>modo de inserción</i>, la línea posterior al
texto insertado se convertirá en la línea actual (a no ser que la
inserción se hubiese suspendido al final del almacén, en cuyo caso la
última línea del almacén se convertirá en la posición del puntero).</p></div><div class="level5"><p>Para borrar una línea debemos utilizar el comando <b>d</b>, el cual también acepta rangos en la forma de <code><b><span style="color: #0b5394;">[</span><span style="color: #bf9000;">n</span><span style="color: #0b5394;">][</span>,<span style="color: #bf9000;">n</span><span style="color: #0b5394;">]</span>d</b></code> que borrarían un bloque de líneas consecutivas del almacén. Los parámetros responden a la primer línea y la última línea del bloque a borrar.</p><p>Si tuviésemos la necesidad de <b>copiar un rango de líneas</b>, utilizaremos el comando <code><b><span style="color: #0b5394;">[</span><span style="color: #bf9000;">n</span><span style="color: #0b5394;">]</span>,<span style="color: #0b5394;">[</span><span style="color: #bf9000;">n</span><span style="color: #0b5394;">]</span>,<span style="color: #bf9000;">n</span>,<span style="color: #0b5394;">[</span><span style="color: #bf9000;">n</span><span style="color: #0b5394;">]</span>c</b></code> para copiar un rango de líneas consecutivo a otra localización del búfer. En este orden, los parámetros son los siguientes:
</p></div></div><div class="level4" style="text-align: left;"><ol><li> La primer línea que quiere copiar (si se omite se usará el puntero) </li><li>La última línea que quiere copiar (si se omite se usará el puntero) </li><li>La línea anterior en la cual desea insertar el bloque de líneas </li><li>La cantidad de veces que copiará el bloque demarcado (si se omite es 1)</li></ol><p>
(Luego de copiar las líneas, es conveniente usar el comando <code>l</code> (“listar”) para tener una idea de cómo quedaron los números de línea tras la operación).
</p>
</div><p style="text-align: left;">Para <i>mover</i> un bloque de texto (más conocido como "<b>copiar y pegar</b>"), debemos usar el comando <b>m</b>, y procedemos igual que con el comando <i>copiar</i> anteriormente descripto. En este caso funcionará igual que <i>copiar</i>, sólo que borrará el bloque de su posición original
</p><div class="level4" style="text-align: left;">
</div>
<p id="presentar_lineas" style="text-align: left;"><span style="font-weight: normal;">Si deseamos <b>presentar todas las líneas</b> usamos <b>p</b>, y para presentar un rango de líneas en pantalla, utilizamos <b><code><span style="color: #0b5394;">[</span><span style="color: #bf9000;">n</span><span style="color: #0b5394;">][</span>,<span style="color: #bf9000;">n</span><span style="color: #0b5394;">]</span>p</code></b>. Es similar al comando <code>l</code>
(list) con la excepción que los parámetros por defecto comienzan en el puntero en lugar de hacerlo 11 líneas posteriores.</span></p><div class="level5" style="text-align: left;">
<p>
Para <b>buscar</b> una cadena <span style="color: #351c75;">texto</span> usamos <code><span style="color: #0b5394;">[</span><span style="color: #bf9000;">n</span><span style="color: #0b5394;">][</span>,<span style="color: #bf9000;">n</span><span style="color: #0b5394;">][</span>?<span style="color: #0b5394;">]</span>s<span style="color: #351c75;">$</span></code> lo que realizará esta operación. Si omite el primer parámetro, comenzará a buscar desde la línea actual.
Si omite el segundo parámetro, dejará de buscar al llegar al final del
búfer. Si incluye el <code>?</code>, edlin solicitará confirmación ante
cada encuentro. Si respondemos “no”, continuará la búsqueda y si respondemos
“yes” la dará por concluida.<br /></p>
<p>
Si la búsqueda localiza la subcadena, desplazará el puntero.
</p>
</div><p id="presentar_lineas" style="text-align: left;">En caso de operar con <b>búsqueda y reemplazo</b> debemos utilizar <code><b><span style="color: #0b5394;">[</span><span style="color: #bf9000;">n</span><span style="color: #0b5394;">][</span>,<span style="color: #bf9000;">n</span>]<span style="color: #0b5394;">[</span>?<span style="color: #0b5394;">]</span>r<span style="color: #351c75;">$</span>,<span style="color: #351c75;">$</span></b></code> para reemplazar<b> </b>todas las iteraciones de la primer <span style="color: #351c75;">cadena</span> con la segunda cadena entre las dos líneas especificadas. Si omitimos el primer parámetro, EdLin comenzará reemplazando a partir del puntero.
Si en cambio omitimos el segundo parámetro, dejará de reemplazar <span style="color: #351c75;">texto</span> en la última línea del búfer.
</p><div class="level4" style="text-align: left;">
<p>
Si incluye un <code><b>?</b></code>, edlin mostrará un mensaje de confirmación antes de reemplazar las iteraciones de <span style="color: #351c75;">texto.</span></p><p>Para insertar un fichero usamos<b><code><span style="color: #0b5394;">[</span><span style="color: #bf9000;">n</span><span style="color: #0b5394;">]</span>t <span style="color: #38761d;">fichero</span></code></b>. Esto Insertará el contenido del <span style="color: #38761d;">fichero</span> <u>antes</u> del puntero. Si omitimos el primer número de línea, se insertará antes de
la línea actual del puntero.</p></div><div class="level4" style="text-align: left;"><p>Como vemos, los editores modales son simplones, pero permiten ciertas posibilidades efectivas de edición, y constituyen un herramental válido para comprender cómo se realizaba cómputo antes de que el Justicialismo garantizara los derechos de un editor de texto como la gente hasta al más humilde de mis grasitas.</p></div><p style="text-align: left;"></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-20506751845744569652023-07-12T14:09:00.005-03:002023-07-16T14:11:57.866-03:00¿Como instalo ClassicCube en Ubuntu?<p>¡Trabajadores!</p><p>Cualquiera puede destruir. Pero un Conductor ha de saber construir, que es mucho más difícil. Para hacerse perito en esto, habrá de recurrirse al aprendizaje siguiendo una obra como ejemplo de la instigación positiva. Es por ello que siempre he dicho que mejor que ordenar es persuadir...</p><p>La niñez se verá incentivada a la construcción si mas que aprenderla, la comprende, y una de las mejores técnicas para ello es el disfrute de los juegos de construcción, de los cuales tal vez los denominados "mundo abierto" o sandbox sean los ejemplos más aclamados.</p><p>Este tipo de aplicaciones computadas proponen la creación de un mundo virtual, con sus propias reglas universales y medios de organización. Incluso se pueden crear meta-mundos. Parecería que una propuesta de este tipo tan abierto e indeterminado podría no ser divertida, pero de todo hay en la viña del xeñor.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg8Cz5t6eTWCeqoJAFU9J2MEqL4Ii-gU7y2fBcmrsv6lve9uQQQrNMVlNEqaJcv7HF4wtgMyEdh_5qaXG7dzb7pY4lA2XTSaQ9a7glF0gU2AenJXwEB5zKL004tRxoGptLNQHu46Zeete3Q9dsc7N6UH1qjLOSA-JlpEpmdn7X8cdmPb2iPa3wA5GiInmd/s646/pocho.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="646" data-original-width="330" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg8Cz5t6eTWCeqoJAFU9J2MEqL4Ii-gU7y2fBcmrsv6lve9uQQQrNMVlNEqaJcv7HF4wtgMyEdh_5qaXG7dzb7pY4lA2XTSaQ9a7glF0gU2AenJXwEB5zKL004tRxoGptLNQHu46Zeete3Q9dsc7N6UH1qjLOSA-JlpEpmdn7X8cdmPb2iPa3wA5GiInmd/s320/pocho.jpg" width="163" /></a></div>Muchas veces me han pedido instalar un sucedáneo de Minecraft en GNU con Linux, pero uno donde se pueda crear un Mundo Peronista. Lo bueno es que existen muchas de estos, que se inspiran en el clásico de escrito por Markus "Notch" Persson. Probablemente el más logrado sea <b>ClassicCube</b>, escrito en C++. <p>Naturalmente podremos instalar <b>ClassicCube </b>en cualquier sistema GNU con Linux. Para hacerlo en Ubuntu y otros similares podremos utilizar la terminal. Para ello abrimos una con <b><i>Ctrl+Alt+T</i></b> e ingresamos los siguientes comandos de organización:</p><p><b>sudo apt install libcurl4 libopenal1 ;<br />mkdir ~/.ClassicCube/ ;<br />cd ~/.ClassicCube/ ;<br />wget https://cdn.classicube.net/client/release/nix64/ClassiCube.tar.gz ;<br />tar -xvf ClassiCube.tar.gz ;<br />cd ~<br /></b></p><p>Y lo ejecutamos con:</p><p><b>./.ClassicCube/ClassicCube</b></p><p>o bien podremos crear un lanzador:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP5EfgPWqBKZwMI1IQwqGcF4eL0UAosWnNKrbobhiVCKArP6Kb3u6PVdy47PdVe7UK0LLlsFXZPyAsN6LmOn_gW6SiaA4WRKIJTpEPeSyJUWpz5_WkQ6C4gWsqfxJvKVdAnlIZEi0XHs3rV63Cs0p5Kq9y3PhbHucqBW89gor1qPPsdRZ0p6tdC5wwcyF0/s702/classic%20cube%20lanzador.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="562" data-original-width="702" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP5EfgPWqBKZwMI1IQwqGcF4eL0UAosWnNKrbobhiVCKArP6Kb3u6PVdy47PdVe7UK0LLlsFXZPyAsN6LmOn_gW6SiaA4WRKIJTpEPeSyJUWpz5_WkQ6C4gWsqfxJvKVdAnlIZEi0XHs3rV63Cs0p5Kq9y3PhbHucqBW89gor1qPPsdRZ0p6tdC5wwcyF0/w200-h160/classic%20cube%20lanzador.png" width="200" /></a></div><br />Al iniciarse por primera vez el juego solicitará descargar los contenidos básicos. Presionamos el botón Ok.<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg74ocbsdGXO7d1dCsT1RHm7Ww9hifYEMJI_-zLlfYBQzzIZ761KKyi3ri6z1U5SH4JdporI-U5oDBhjZj0XFz5OZUwjAqRLnGkG1_elUF8xNaxas6mRjPZ-UmTS_CMlwWH-SelqssYoC3NXxWG26wbF1p_oNdCLMxQq-PEw7Gbru3VESUkJhntv_xOgNaA/s642/Captura%20de%20pantalla%20-2023-07-08%2023-10-54.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="434" data-original-width="642" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg74ocbsdGXO7d1dCsT1RHm7Ww9hifYEMJI_-zLlfYBQzzIZ761KKyi3ri6z1U5SH4JdporI-U5oDBhjZj0XFz5OZUwjAqRLnGkG1_elUF8xNaxas6mRjPZ-UmTS_CMlwWH-SelqssYoC3NXxWG26wbF1p_oNdCLMxQq-PEw7Gbru3VESUkJhntv_xOgNaA/s320/Captura%20de%20pantalla%20-2023-07-08%2023-10-54.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibIYxLUMPekpAjwgw8fsC0kfdeA-VGI7xJffh9Y6w8qZnYdaehubjb6qpMaPmRLFqLTum_0oNPg8nY-1K6sC7LTZMvPnaHCPV8IhiRHlu-nKQRpRa4_0VrF9yMeMa5tZCfI_fW9u1vKtB1m2xSXMh-TfHH2b-brNsYnCQ6oYOCmCL3eKl2IG6hhkFQTUcA/s642/Captura%20de%20pantalla%20-2023-07-08%2023-03-15.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="434" data-original-width="642" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibIYxLUMPekpAjwgw8fsC0kfdeA-VGI7xJffh9Y6w8qZnYdaehubjb6qpMaPmRLFqLTum_0oNPg8nY-1K6sC7LTZMvPnaHCPV8IhiRHlu-nKQRpRa4_0VrF9yMeMa5tZCfI_fW9u1vKtB1m2xSXMh-TfHH2b-brNsYnCQ6oYOCmCL3eKl2IG6hhkFQTUcA/s320/Captura%20de%20pantalla%20-2023-07-08%2023-03-15.png" width="320" /></a></div>ClassicCube tiene tres modos de juego. El modo <b>Classic</b> es un implementación clónica de MineCraft. <b>Enhaced</b> es una expansión de aquella, con bloques adicionales. Y <b>Classic+hax </b>es el modo clásico con algunos hacks.<br /><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqHiDOm-6o6sO6umHfHMufHw88VWacihXPN9FhM90KjDc0zGCG_NAfqhn5zPw2G68aSKdvTt7T08rkLFsGtC5YuuJJmRgKTo0g_ukNhNgapnm5eEVeo3VQbGvzWdpuLuz_8zkP_TfvNFMDNnUuYuIecce_5iYJ639Xa9Bs0onYXn6bHdEBLhs6wBOOdgi8/s642/classic%20cube.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="434" data-original-width="642" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqHiDOm-6o6sO6umHfHMufHw88VWacihXPN9FhM90KjDc0zGCG_NAfqhn5zPw2G68aSKdvTt7T08rkLFsGtC5YuuJJmRgKTo0g_ukNhNgapnm5eEVeo3VQbGvzWdpuLuz_8zkP_TfvNFMDNnUuYuIecce_5iYJ639Xa9Bs0onYXn6bHdEBLhs6wBOOdgi8/s320/classic%20cube.png" width="320" /></a></div><p></p><p>Una vez descargados, podremos comenzar el proceso de registro con el botón Register.<b><br /><br /></b>Una vez presionado el botón <b><i>Register</i></b>, se nos dirigirá a la web oficial de registro. Debemos ingresar un nombre de usuario, junto con una contraseña y una casilla de correo electrónico válida.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNpFr5J0fs-dnO4Zk54dMeZII0aLNVVO9t0Wx9MTsEGExFVzxCNq1VZlE8G8jCpG3P0U87lBdSQ8xXa0mlHGAlRnSN-Cu1M_GmvwuilK8cJe_STPXSBIBen1sbM7Rpy2Uj3BTx533rWXgK1LPgtfld5XrYnQsG-69gwBQjawgFhQsAH_w6bJXoBbm7spNa/s1347/registro%20classiccube.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="847" data-original-width="1347" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNpFr5J0fs-dnO4Zk54dMeZII0aLNVVO9t0Wx9MTsEGExFVzxCNq1VZlE8G8jCpG3P0U87lBdSQ8xXa0mlHGAlRnSN-Cu1M_GmvwuilK8cJe_STPXSBIBen1sbM7Rpy2Uj3BTx533rWXgK1LPgtfld5XrYnQsG-69gwBQjawgFhQsAH_w6bJXoBbm7spNa/s320/registro%20classiccube.png" width="320" /></a></div><br /> Cuando recibimos el correo electrónico, hacemos clic en su enlace para verificar la creación de la cuenta.<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp-Z3yZPFaXBsj00T0jK5DAQg8gbyr_nuptE_dDAms9dMGdEiT8FuYF_Oa3p2OLfypxRxImwzRXRRtrW99rvbg2Vy6XJ7wQKq_lPujDrLty3dAimhI-CvzoEcoe_-jnEvqB2rmQ4Jpnh0ENRzKE-F9JIyP4BTdbWMiGgY08HpCedVa0CKph7y4drgNneIQ/s603/verificacion%20classiccube.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="204" data-original-width="603" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp-Z3yZPFaXBsj00T0jK5DAQg8gbyr_nuptE_dDAms9dMGdEiT8FuYF_Oa3p2OLfypxRxImwzRXRRtrW99rvbg2Vy6XJ7wQKq_lPujDrLty3dAimhI-CvzoEcoe_-jnEvqB2rmQ4Jpnh0ENRzKE-F9JIyP4BTdbWMiGgY08HpCedVa0CKph7y4drgNneIQ/s320/verificacion%20classiccube.png" width="320" /></a></div><b></b>Ahora podremos ingresar al juego con nuestro usuario y contraseña validada. Una vez ingresadas las mismas, presionamos el botón <b><i>Si</i></b><b><i>gn In</i></b>.<br /><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpwG8Ma9tlNuM_CilhEgbpaKPuyB68a2QBL3-wkt7FkqbmuGnLbZg7SPweu6Fr4c1oa5Ojcyj8Ip1LXK7e9yjR69-Zp92UgoHvzgNuXyV3cHbLaW4kcrJsfYqEJB6a4qTP2iaABT3CVRwn-piEQB3QhK9tW1sdbPYV3x85VmfKYgyfr6F_54IHcoVVZrSi/s642/classiccube%20login.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="434" data-original-width="642" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpwG8Ma9tlNuM_CilhEgbpaKPuyB68a2QBL3-wkt7FkqbmuGnLbZg7SPweu6Fr4c1oa5Ojcyj8Ip1LXK7e9yjR69-Zp92UgoHvzgNuXyV3cHbLaW4kcrJsfYqEJB6a4qTP2iaABT3CVRwn-piEQB3QhK9tW1sdbPYV3x85VmfKYgyfr6F_54IHcoVVZrSi/s320/classiccube%20login.png" width="320" /></a></div>Ahora podremos seleccionar alguno de los servidores de ClassicCube.<b></b><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEff00L0wysi08WuxsjJf9ywah7QEWyTVe8AA-e5JHodLtQ0f_HYzv0l1C7MRsU1SxupHlWx1omKLWPNv3UoPycymwuXPsdFtzNvkyrYkPzqiS_SwgH3wCzdSA3IJtTUe_cmdwesT4J1AcfP4Jej8oLo_rvAKFInNYmRC5Jr62jVH3ZqjqvupJe3K838dL/s642/servidores.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="434" data-original-width="642" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEff00L0wysi08WuxsjJf9ywah7QEWyTVe8AA-e5JHodLtQ0f_HYzv0l1C7MRsU1SxupHlWx1omKLWPNv3UoPycymwuXPsdFtzNvkyrYkPzqiS_SwgH3wCzdSA3IJtTUe_cmdwesT4J1AcfP4Jej8oLo_rvAKFInNYmRC5Jr62jVH3ZqjqvupJe3K838dL/s320/servidores.png" width="320" /></a></div>Elegimos nuestro servidor favorito de ClassicCube y presionamos el botón <b><i>Connect</i>.</b><p></p><p>El juego es similar a otros juegos sandbox como MineCraft. Los jugadores deben explorar un mundo conformado por bloques tridimensionales de generación procedural, y deben descubrir y extraer materias primas, ingeniar herramientas e ítems y construir estructuras y maquinarias. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI81a0qJN6nglR3PAES1JpkZf2MuuZqL9Th_aBKflaUSgbqCtIk4vw4t8hgpsp1IZtqcI0E7dR3EO41CzciXcQfXzuU4eU8wGQlLWS7L137U4n4oghKauSaC4QuZuclOy8F2KXP42-lBPLdRcbFxIvWDvkOlKYKEjR8mNFOLtlVUA9QmT13X34TkqGtESG/s1920/classiccube2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1015" data-original-width="1920" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI81a0qJN6nglR3PAES1JpkZf2MuuZqL9Th_aBKflaUSgbqCtIk4vw4t8hgpsp1IZtqcI0E7dR3EO41CzciXcQfXzuU4eU8wGQlLWS7L137U4n4oghKauSaC4QuZuclOy8F2KXP42-lBPLdRcbFxIvWDvkOlKYKEjR8mNFOLtlVUA9QmT13X34TkqGtESG/s320/classiccube2.png" width="320" /></a></div>Dependiendo del modo de juego, los jugadores pueden enfrentar turbas iracundas, así como cooperar o competir contra otros jugadores del mismo mundo. Los modos de juego incluyen uno de supervivencia, y un modo creativo.<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnApkHKjmUddovbmKXxK2NHBEuRS1-rBcCwGc6Z4EgTXYEvO2dxXhKvMpPz5CiyQrkpokkOiQ2I-djpEo6634rp_JLOnlnCi4iL_es-UL6ODqe73SFpsBrMBkmJPkDuFSJeMaxXcUxhmjpDE_ivNU7yY2JN4Nyt80wn9XAsTKvcXrDCbReIuOrWNicC6CR/s1920/classiccube1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1015" data-original-width="1920" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnApkHKjmUddovbmKXxK2NHBEuRS1-rBcCwGc6Z4EgTXYEvO2dxXhKvMpPz5CiyQrkpokkOiQ2I-djpEo6634rp_JLOnlnCi4iL_es-UL6ODqe73SFpsBrMBkmJPkDuFSJeMaxXcUxhmjpDE_ivNU7yY2JN4Nyt80wn9XAsTKvcXrDCbReIuOrWNicC6CR/w400-h211/classiccube1.png" width="400" /></a></div><p></p><p>A primera vista, el apartado grafico es distinto por obvias
cuestiones de derechos de autor. Classic parece mas "antiguo", pero esta implementado desde cero, siendo sus mecánicas prácticamente similares.<br /></p><p></p><p>En Classic+hax tal vez sea mas recomendable, pues incluye las modificaciones que lo hacen divertido (el juego desde cero es muy básico). Con las "hax" podrás agregar enemigos, personajes no controlables NPC, minerales, condiciones climáticas, y un largo etc. <br /></p><p>En modo <i>survival</i> construyes para sobrevivir. Debes empezar por lo básico, modelando una casa para protegerte de tus enemigos, hacer
huerto para recuperarte de daño y no morir de hambre, y desarrollar distintas
herramientas que potencien tus habilidades. Así evitarás la ley de la selva y podrás expandir la Justicia Social en el Sandbox.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtQSK3aVP4fMMR4m9y51IhNoF4ZZG7XKd0VyizcS0JsDnnk-rnnoy2qbMphSIJ4UNEU80bFj93gH_xCZHnrdFjP6DNN1HSeew7GkciZHzZ6Q2YAzUf5r2QIfHH0Qr3-Ci0GAj9250F81mt_netrB0ufjbUnP5-5rLsdIe71WjcyVuZSSe7u6hCzlKA9g62/s856/CLASSIC%20cube%20ubuntu.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="856" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtQSK3aVP4fMMR4m9y51IhNoF4ZZG7XKd0VyizcS0JsDnnk-rnnoy2qbMphSIJ4UNEU80bFj93gH_xCZHnrdFjP6DNN1HSeew7GkciZHzZ6Q2YAzUf5r2QIfHH0Qr3-Ci0GAj9250F81mt_netrB0ufjbUnP5-5rLsdIe71WjcyVuZSSe7u6hCzlKA9g62/w640-h384/CLASSIC%20cube%20ubuntu.png" width="640" /></a></div><p></p><p>Los controles en la PC son simples. Nos movemos con <b>teclas WASD</b> y con Mayúsculas corremos. Con la <b>barra espaciadora</b> podremos saltar. Con clic usamos la acción. </p><p>Si estamos en modo hax, la<b> tecla z</b> conmutará el modo <i>vuelo</i> (durante el cual podremos subir o bajar con la <b>tecla q</b> o la <b>tecla e</b>). En tanto, la <b>tecla x</b> conmuta el modo <i>noclip</i> (posibilita atravesar paredes).</p><p></p><p>Mediante <b>F1</b> activamos el HUD. Con <b>F5</b> podremos conmutar entre dos vistas de tercera persona y vista en primera persona. Con <b>F7</b> la guía de ejes 3D y con F10 la guía de bloques de textura. </p><p><b>F8</b> conmuta entre el movimiento de vista rápido y la moderado.</p><p>En fin, un excelente apartado liberado bajo GPLv3 que hará las delicias de todo aquel que guste de los mundos voxel. <br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1082347280713529648.post-64049894459181158362023-07-03T15:39:00.001-03:002023-07-03T15:39:10.326-03:00¿Cómo juego a Pepper & Carrot Potion of Flight?<p></p><p></p><p></p><p style="text-align: center;"><i>En su </i>Los Vendepatria, las Pruebas de una Traición<i>, de 1958, Juan Perón expone la necesidad de una militancia enérgica como custodia de los valores del Movimiento, a la vez que enseña <b>cómo instalar el juego 3D en tercera persona Pepper & Carrot: Potion of Flight en Ubuntu</b>.</i></p><p>(...)<br /></p><p>Es necesario que los dirigentes y trabajadores se convenzan que <b>estamos
empeñados en una lucha decisiva para evitar la vuelta de la explotación </b>y
la esclavitud, y que en esas condiciones se impone una conducta
valiente y decidida. La revolución social impone esfuerzos y sacrificios que sólo se
superan con una voluntad enérgica y perseverante. </p><p>Es menester no dar
tregua a la tiranía y dar a la resistencia civil la mayor intensidad y
extensión. Sin esa preparación, la revolución social no podrá realizarse
a corto plazo. La canalla dictatorial sólo caerá por este medio, luego
hay que obrar incansablemente por la causa común, esa es la misión de cada
peronista en esta hora de prueba. </p><p><b>Cada casa debe ser una Unidad Básica
Secreta</b>, y cada peronista, jefe y vigía del Movimiento. Es necesario que las organizaciones clandestinas se perfeccionen en alto
grado para enfrentar los trabajos a los que estamos abocados en la lucha
que se avecina. En ella los trabajadores tendrán el peso de la acción
más importante. <br /></p><p>La clase trabajadora ha puesto en evidencia su decisión ya en los sucesos pasados
que posee una clara conciencia de su gravitación política. Sin mayor
experiencia en la acción demostró sorprendente unidad político-sindical,
forjada exclusivamente mediante la Doctrina Justicialista, demostrando
también que las masas de trabajadores han superado el ámbito de sus
problemas intrínsecos para intervenir enérgicamente en la realización de
sus propios destinos.</p><p>Luchamos por una causa y no por un candidato. La causa debe apasionarnos, los candidatos deben despreocuparnos. Nuestro candidato no puede ser sino un peronista, que será el único que puede servir a nuestros objetivos y misión.</p><p>Es imprescindible la reestructuración de los cuadros dirigentes sobre la base de una estrecha unión con el resto del Movimiento poniendo al frente hombres capaces y enérgicos. En este momento se necesitan dirigentes audaces y valientes que enfrenten a la tiranía con las verdades del Peronismo. </p><p></p><p>Siendo la finalidad básica la revolución social justicialista, los demás objetivos deben ajustarse a esta finalidad. La conducta de cada peronista y en especial de cada trabajador, estará fijada en lo que pueda hacer, en cada momento, para <b>derribar la tiranía e imponer el Justicialismo</b>.</p><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo6qyHADB9T47XCd5pjU0ubfXqrHv7oBMwNzjeHWq2eOmkHUplhCUXM9vfAl2Kaopdv68L3sYDZFB_TaGMAHJmxK_pfyQ6n9nuUM98xfQib1f-rs_PlsbqNIj_dDKVLNOEF_699Trtoaxqlh9JBEGrU-gDHJjTD1eGC4i_Q7rygNYntmAee4WnG4u8VhhQ/s437/peron.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="348" data-original-width="437" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo6qyHADB9T47XCd5pjU0ubfXqrHv7oBMwNzjeHWq2eOmkHUplhCUXM9vfAl2Kaopdv68L3sYDZFB_TaGMAHJmxK_pfyQ6n9nuUM98xfQib1f-rs_PlsbqNIj_dDKVLNOEF_699Trtoaxqlh9JBEGrU-gDHJjTD1eGC4i_Q7rygNYntmAee4WnG4u8VhhQ/s320/peron.jpg" width="320" /></a></div>En la acción política no debe existir ningún apuro, es menester mantener
firme a las organizaciones de cualquier tipo que existan, unidas en
informadas; siempre habrá tiempo para tomar decisiones. Podremos tomarlas incluso mientras jugamos cualquier juego. Por ejemplo, porqué no el favorito del brujo López Rega: <b>Pepper & Carrot: Potion of Flight</b>. <br /><p></p><p></p><p></p><p></p><p>Se trata de un juego inspirado en <a href="https://www.peppercarrot.com/es">el mundo de la bruja Pepper y su gato Carrot</a>, creación del ilustrador francés David Revoir, <b>compañero adepto a la cultura abierta y la libertad de licenciamiento de los derechos de autor que otorga Creative Commons.</b> <br /></p><p>Como resultado de su propuesta lúdica "Pepper&Carrot Jam" de desarrollo de juegos independientes, se han publicado toda una serie de juegos para varias plataformas, incluyendo Linux. En el caso de Pepper & Carrot Potion of Flight es un <b>minijuego de aventuras en 3D</b> desarrollado por el estudio Oneiric Worlds, que adapta las artes gráficas del webcomic y los libros de Pepper&Carrot, junto con el motor de juegos libres Godot.<br /></p><p>Podremos descargarlo - con donación o gratuitamente - a través de la <a href="https://oneiricworlds.itch.io/pepper-carrot-potion-of-flight">web del juego</a>.</p><p>Al presionar el <b>botón</b> <b>Download Now</b> podremos acceder al menú de donación, (o bien descargarlo gratuitamente si así lo deseamos, presionando el botón "<i>No thanks, just take me to the downloads</i>"). Encontraremos entonces la descarga de la versión que nos interesa, "<b class="name">Pepper & Carrot - Lastest Version for Linux 64</b> <span class="file_size"> (<span>158 MB</span>)</span>".</p><p>Tras descargar el juego, normalmente nos encontraremos con el programa en nuestra carpeta Descargas/. En tal caso, para descomprimirlo podríamos utilizar la Terminal, abriendo una con <b><i>Ctrl+Alt+t</i></b> e ingresando los siguientes comandos:</p><p><b>mkdir ~/.pepper/ ;<br />cd ~/.pepper/ ;<br />mv ~/Descargas/pepper-carrot-potion-of-flight-linux64.zip ~/.pepper/ ;<br />unzip ~/.pepper/pepper-carrot-potion-of-flight-linux64.zip </b></p><p>Para ejecutarlo, podremos usar el comando:<br /></p><p><b>./.pepper/pepperAndCarrot</b></p><p>...u opcionalmente podríamos crear un lanzador del juego. Para ello haciendo clic con el botón derecho del ratón sobre el menú de <i>Aplicaciones</i>, y eligiendo <b><i>Editar Menús</i></b>. A continuación en el panel izquierdo elegimos el menú <i>Juegos</i> y presionamos el botón "<b><i>+Nuevo ítem</i></b>". En la ventana <i>Crear lanzador </i>rellenamos el campo <i>Orden</i> con <b>/home/<span style="color: #bf9000;">usuario</span>/.pepper/pepperAndCarrot. </b>Asimismo le ponemos un <i>Nombre</i> y un <i>Comentario</i> e ícono opcional:<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX2GiM_sz8defV9jzLF9piP3Q0A6wrm3KtzsKnFyoo_eUkF-EuM7X_XG283-P02xuoepRgvTOd0bTFMJa4oebnM5ps1rf9I7lGr_S_8Qrw8gZc6VpCJwXmv0JVsBHTX052OcoZWas3rSCrATbhrTMafZd5_NUz4BWEoSv87Es1u2_aY2XJyPf3GvrIGluL/s702/lanzador%20pepper.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="562" data-original-width="702" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX2GiM_sz8defV9jzLF9piP3Q0A6wrm3KtzsKnFyoo_eUkF-EuM7X_XG283-P02xuoepRgvTOd0bTFMJa4oebnM5ps1rf9I7lGr_S_8Qrw8gZc6VpCJwXmv0JVsBHTX052OcoZWas3rSCrATbhrTMafZd5_NUz4BWEoSv87Es1u2_aY2XJyPf3GvrIGluL/s320/lanzador%20pepper.png" width="320" /></a></div><p>Ahora podremos lanzar el juego desde<b><i> Aplicaciones / Juegos / Pepper & Carrot Potion of Flight</i></b>.</p><p>El objetivo del juego es conducir a la caótica brujita Pepper en un mundo que comprende su casa a orillas de la laguna. Tendremos que encontrar los ingredientes para la poción de vuelo que la hace famosa.</p><p>Los controles son los consabidas teclas <b>WASD</b> para manejarla en tercera persona, a la vez que la barra espaciadora podremos hacerla correr. El despliegue gráfico tridimensional hace caso a la estética de la pintura de Revoy, lo que lo distingue.<br /></p><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcARuKYV-BQB5L9rny2_SSCnR8OrfTA8p6GilnAPcykDd6tDESYGmWVcxsY9kJyMkBnb8lIlg9vA4-rp_Y2xTCwuHF7905sZtrTPXQtlQKDlsdnSrXXy1YZg5MGM7KV2OO4E0oeQ5BqEegmDef46TvMqOKjUO1BEfBQF1sj9DWln5et6hrLTZTJyGiCRp1/s1920/Captura%20de%20pantalla%20-2023-07-02%2013-59-32.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcARuKYV-BQB5L9rny2_SSCnR8OrfTA8p6GilnAPcykDd6tDESYGmWVcxsY9kJyMkBnb8lIlg9vA4-rp_Y2xTCwuHF7905sZtrTPXQtlQKDlsdnSrXXy1YZg5MGM7KV2OO4E0oeQ5BqEegmDef46TvMqOKjUO1BEfBQF1sj9DWln5et6hrLTZTJyGiCRp1/s320/Captura%20de%20pantalla%20-2023-07-02%2013-59-32.png" width="320" /></a></div><p>El aspecto del sonido es estéreo y posicional, lo que da una muestra de la potencia del motor libre Godot. <br /></p><p>Una vez encontrado todo, podremos volar con la escoba mágica. La <b>tecla B</b> hace aparecer la escoba de un santiamén, mientras que la <b>barra espaciadora </b>produce el impulso mágico.<br /> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWwJk2wJTigOhDfEaW00pjp8YvQ0R7rCNjuOco6yF5cVdW7nxowf1IFK98YkxnY1j1t7ptXcJWScn542Gh6R5_9-eewrMRaJxCRW3KZ4GuZsPOvHZKec8vxK07gEXRR6ZTP8DLq1KFZM68iUbacfnUO9ZO0ty1DqWlKektQsCZG0lK5ba70O30OATHx4qM/s1920/Captura%20de%20pantalla%20-2023-07-02%2014-00-11.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWwJk2wJTigOhDfEaW00pjp8YvQ0R7rCNjuOco6yF5cVdW7nxowf1IFK98YkxnY1j1t7ptXcJWScn542Gh6R5_9-eewrMRaJxCRW3KZ4GuZsPOvHZKec8vxK07gEXRR6ZTP8DLq1KFZM68iUbacfnUO9ZO0ty1DqWlKektQsCZG0lK5ba70O30OATHx4qM/s320/Captura%20de%20pantalla%20-2023-07-02%2014-00-11.png" width="320" /></a></div>Naturalmente no conforma un simulador de vuelo, pero dispone de simulaciones de física más o menos acordes a lo que implica volar en una escoba. ¡Persigue al Fénix de Fuego y recoge las plumas flamígeras!<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7CtzjeCfMmflVSZl2OqP3awO_0_RQYbypM7e0Z92OcaRai_mNGTBxfbj9Y3WSVRTEO8brtfiZAMuX0W8_QgNyIb7zu-tPjx5i-gjL7ocRgBH2TWIqtkhr4JvkUA2m__6OnK6DkPRe1NCRpmor6aXBWv6dCapYTHchykQX3yxXh9UuNMCKU5kttmbCSM53/s1920/Captura%20de%20pantalla%20-2023-07-02%2013-58-40.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7CtzjeCfMmflVSZl2OqP3awO_0_RQYbypM7e0Z92OcaRai_mNGTBxfbj9Y3WSVRTEO8brtfiZAMuX0W8_QgNyIb7zu-tPjx5i-gjL7ocRgBH2TWIqtkhr4JvkUA2m__6OnK6DkPRe1NCRpmor6aXBWv6dCapYTHchykQX3yxXh9UuNMCKU5kttmbCSM53/s320/Captura%20de%20pantalla%20-2023-07-02%2013-58-40.png" width="320" /></a></div>En fin, un gran programita para los mas chicos, que permiten - porqué no - soñar con una propuesta completa según esta entrega.<br /><p></p><p><br /></p><p>
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/kDracfD1-Uo" title="YouTube video player" width="560"></iframe></p><p></p><br />Unknownnoreply@blogger.com1