<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: piducancore:/#</title>
    <description>The latest articles on DEV Community by piducancore:/# (@piducancore).</description>
    <link>https://dev.to/piducancore</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F217738%2F79d60f21-5710-4ed4-a6da-84c0361c5098.png</url>
      <title>DEV Community: piducancore:/#</title>
      <link>https://dev.to/piducancore</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/piducancore"/>
    <language>en</language>
    <item>
      <title>"concretoons: poesía digital" para la internet después de Flash</title>
      <dc:creator>piducancore:/#</dc:creator>
      <pubDate>Thu, 01 Jul 2021 19:25:55 +0000</pubDate>
      <link>https://dev.to/piducancore/concretoons-poesia-digital-para-la-internet-despues-de-flash-4bnm</link>
      <guid>https://dev.to/piducancore/concretoons-poesia-digital-para-la-internet-despues-de-flash-4bnm</guid>
      <description>&lt;p&gt;Este es un trabajo de rescate de &lt;em&gt;&lt;strong&gt;concretoons: poesía digital&lt;/strong&gt;&lt;/em&gt; para la internet después de Flash.&lt;/p&gt;

&lt;p&gt;Puedes encontrar la &lt;a href="https://cyberpun.ga/concretoons/indice.html" rel="noopener noreferrer"&gt;&lt;strong&gt;demo aquí&lt;/strong&gt;&lt;/a&gt; y el &lt;a href="https://github.com/cyberpunga/concretoons" rel="noopener noreferrer"&gt;código aquí&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzo8k7mzchky42gh765kk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzo8k7mzchky42gh765kk.png" alt="_el laberinto_ de _concretooons_"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducción
&lt;/h2&gt;

&lt;p&gt;Antes que los &lt;em&gt;estándares abiertos&lt;/em&gt; como &lt;a href="https://es.wikipedia.org/wiki/HTML5" rel="noopener noreferrer"&gt;HTML5&lt;/a&gt; (2014), &lt;a href="https://es.wikipedia.org/wiki/WebGL" rel="noopener noreferrer"&gt;WebGL&lt;/a&gt; o &lt;a href="https://es.wikipedia.org/wiki/WebAssembly" rel="noopener noreferrer"&gt;WebAssembly&lt;/a&gt; (ambos lanzados en 2017) alcanzaran su popularidad actual o siquiera existieran, &lt;a href="https://es.wikipedia.org/wiki/Adobe_Flash_Player" rel="noopener noreferrer"&gt;Adobe Flash Player&lt;/a&gt; era la opción &lt;em&gt;por defecto&lt;/em&gt; de los creadores para la &lt;a href="https://www.latimes.com/entertainment-arts/story/2020-12-28/end-of-adobe-flash-animation-means-end-of-many-digital-art-projects-internet" rel="noopener noreferrer"&gt;experimentación artística en la web&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Un ejemplo de esto son los &lt;a href="http://concretoons.centroculturadigital.mx/" rel="noopener noreferrer"&gt;concretoons&lt;/a&gt; (2010) de Benjamín Moreno: &lt;em&gt;formado por 11 poemas digitales, concretoons rinde tributo a algunos de los trabajos más representativos de la poesía experimental iberoamericana&lt;/em&gt;.... [Utilizando] &lt;em&gt;los videojuegos como medio de creación poética&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Como parte de su trabajo de documentación, rescate y preservación de la literatura digital, el &lt;a href="https://www.centroculturadigital.mx/" rel="noopener noreferrer"&gt;Centro de Cultura Digital México&lt;/a&gt; mantiene &lt;em&gt;en línea&lt;/em&gt; esta pieza, donde se puede visitar hasta el día de hoy.&lt;/p&gt;

&lt;p&gt;Sin embargo, en 2021 los &lt;em&gt;concretoons&lt;/em&gt; y todo el contenido Flash producido durante dos décadas de vida útil del &lt;em&gt;plugin&lt;/em&gt; han sido reemplazados por el mensaje de error: &lt;em&gt;este complemento no es compatible&lt;/em&gt;, despues de que Adobe pusiera &lt;a href="https://www.adobe.com/es/products/flashplayer/end-of-life.html" rel="noopener noreferrer"&gt;fin al soporte para Flash Player&lt;/a&gt; el 31 de diciembre de 2020.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2Fv3F7Prk%2Ferror.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2Fv3F7Prk%2Ferror.png" alt="Este complemento no es compatible"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Al rescate del contenido Flash perdido
&lt;/h2&gt;

&lt;p&gt;Para comenzar nuestra operación de rescate necesitamos una copia del sitio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Descargando el sitio
&lt;/h3&gt;

&lt;p&gt;Para descargar los archivos del sitio utilizamos el comando &lt;code&gt;wget&lt;/code&gt;, así que abrimos una terminal y ejecutamos lo siguiente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;wget &lt;span class="nt"&gt;--recursive&lt;/span&gt; http://concretoons.centroculturadigital.mx/bbox.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La opción &lt;code&gt;--recursive&lt;/code&gt; es para decirle a &lt;code&gt;wget&lt;/code&gt; que descargue el documento &lt;code&gt;.html&lt;/code&gt; especificado junto con todos sus archivos enlazados, incluyendo otros documentos &lt;code&gt;.html&lt;/code&gt; junto con todos sus archivos enlazados también.&lt;/p&gt;

&lt;p&gt;Al finalizar la descarga tendremos una carpeta llamada &lt;code&gt;concretoons.centroculturadigital.mx&lt;/code&gt; con la siguiente estructura:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;concretoons.centroculturadigital.mx
├── complementos
│   ├── adelante.jpg
│   ├── atras.jpg
│   ├── casa.jpg
│   ├── concretoon21.swf
│   ├── concretoon22.swf
│   ├── concretoon23a.swf
│   ├── concretoon24.swf
│   ├── concretoon25.swf
│   ├── concretoon26.swf
│   ├── concretoon27.swf
│   ├── concretoon2.swf
│   ├── concretoon34.swf
│   ├── concretoon40.swf
│   ├── concretoon42.swf
│   ├── falso.jpg
│   ├── indice.swf
│   └── info.jpg
├── aqui.html
├── bbox.html
├── borges.html
├── brossa.html
├── carrion.html
├── colofon.html
├── indice.html
├── mallarme.html
├── noigandres.html
├── nokia.html
├── paz.html
└── valium.html

1 carpeta, 29 archivos
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En la carpeta principal están todos los archivos &lt;code&gt;.html&lt;/code&gt;, y en la subcarpeta &lt;code&gt;complementos&lt;/code&gt; están las imágenes de navegación, el &lt;code&gt;indice.swf&lt;/code&gt; y los 11 archivos &lt;code&gt;.swf&lt;/code&gt; que componen la colección de &lt;em&gt;concretoons&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2FBZj4MJf%2Fcomplementos.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2FBZj4MJf%2Fcomplementos.png" alt="Carpeta  raw `complementos` endraw "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Perfecto, ya tenemos una copia del sitio.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ruffle.rs" rel="noopener noreferrer"&gt;Ruffle&lt;/a&gt; y &lt;a href="https://github.com/jindrapetrik/jpexs-decompiler" rel="noopener noreferrer"&gt;JPEXS Free Flash Decompiler&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Una búsqueda en GitHub por posibles soluciones para visualizar y editar contenido Flash nos arroja un par de proyectos interesantes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://ruffle.rs" rel="noopener noreferrer"&gt;Ruffle&lt;/a&gt; es un emulador de Flash Player escrito en el lenguaje Rust, y uno de sus &lt;em&gt;sabores&lt;/em&gt; puede ejecutarse en el navegador.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/jindrapetrik/jpexs-decompiler" rel="noopener noreferrer"&gt;JPEXS Free Flash Decompiler&lt;/a&gt; es un &lt;em&gt;decompilador&lt;/em&gt; y editor de archivos &lt;code&gt;.swf&lt;/code&gt; escrito en Java y está disponible para Windows, Linux y MacOS.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cargando &lt;a href="https://ruffle.rs" rel="noopener noreferrer"&gt;Ruffle&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ruffle.rs" rel="noopener noreferrer"&gt;Ruffle&lt;/a&gt; existe en 3 &lt;em&gt;sabores&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aplicación de escritorio&lt;/li&gt;
&lt;li&gt;Extensión para el navegador&lt;/li&gt;
&lt;li&gt;Librería javascript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esta última (incluye una copia de &lt;a href="https://ruffle.rs" rel="noopener noreferrer"&gt;Ruffle&lt;/a&gt; como módulo &lt;code&gt;.wasm&lt;/code&gt;), tambien llamada &lt;em&gt;&lt;strong&gt;self hosted&lt;/strong&gt;&lt;/em&gt; (&lt;em&gt;auto-alojable&lt;/em&gt;), se puede incluir en un archivo &lt;code&gt;.html&lt;/code&gt; que contenga contenido Flash, y permite que los usuarios vean el contenido sin tener que instalar nada por su lado.&lt;/p&gt;

&lt;p&gt;Descargamos una copia desde su &lt;a href="https://ruffle.rs" rel="noopener noreferrer"&gt;sitio web&lt;/a&gt; y descomprimimos su contenido en una subcarpeta llamada &lt;code&gt;lib&lt;/code&gt; que debemos crear en la carpeta principal de nuestro proyecto.&lt;/p&gt;

&lt;p&gt;Por último debemos agregar la siguiente línea dentro del elemento &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; de nuestros archivos &lt;code&gt;.html&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"lib/ruffle.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Podemos agregar manualmente esta línea, archivo por archivo, o podemos ejecutar el siguiente script para agregarla a todos los archivos &lt;code&gt;.html&lt;/code&gt; del proyecto.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.html&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;do &lt;/span&gt;&lt;span class="nb"&gt;sed&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s1"&gt;'s/&amp;lt;head&amp;gt;/&amp;lt;head&amp;gt;\n&amp;lt;script src=\"lib\/ruffle.js\"&amp;gt;&amp;lt;\/script&amp;gt;/'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Listo, eso es todo... bueno, casi.&lt;/p&gt;

&lt;h3&gt;
  
  
  Editando con &lt;a href="https://github.com/jindrapetrik/jpexs-decompiler" rel="noopener noreferrer"&gt;JPEXS Free Flash Decompiler&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Al visualizar localmente nuestra copia de los &lt;em&gt;concretoons&lt;/em&gt; podemos notar que el &lt;code&gt;indice.swf&lt;/code&gt; sigue enlazando hacia las piezas alojadas en el sitio original (ej: &lt;code&gt;http://concretoons.centroculturadigital.mx/nokia.html&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Para editar nuestro &lt;code&gt;indice.swf&lt;/code&gt; y hacer que los enlaces lleven hacia nuestras piezas recién rescatadas utilizamos &lt;a href="https://github.com/jindrapetrik/jpexs-decompiler" rel="noopener noreferrer"&gt;JPEXS Free Flash Decompiler&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;En la primera ventana podemos ver el contenido de nuestro &lt;code&gt;indice.swf&lt;/code&gt;. Una vez aquí desplegamos &lt;code&gt;scripts&lt;/code&gt;, donde se encuentran definidos todos los botones.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2Fp0tVdZN%2Fjpex.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2Fp0tVdZN%2Fjpex.png" alt="editar rutas con jpex"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Al desplegar los botones seleccionamos la opción &lt;code&gt;BUTTONCONDACTION on(release)&lt;/code&gt;, y en la ventana de la derecha encontramos algo como esto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GetUrl "http://concretoons.centroculturadigital.mx/nokia.html" "_self"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ya que en nuestro proyecto todos los archivos &lt;code&gt;.html&lt;/code&gt; están en la misma carpeta podemos reemplazarlo por algo como esto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GetUrl "nokia.html" "_self"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Debemos realizar esto con todas opciones definidas en el &lt;code&gt;indice.swf&lt;/code&gt; y ahora sí, eso es todo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Visualizar localmente
&lt;/h2&gt;

&lt;p&gt;Si intentamos abrir los archivos &lt;code&gt;.html&lt;/code&gt; dándoles doble click desde la carpeta local, estaremos utilizando el protocolo &lt;code&gt;file://&lt;/code&gt;. Esto no funciona porque que los navegadores, &lt;em&gt;por defecto&lt;/em&gt;, bloquean algunas características al usar este protocolo por motivos de seguridad.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2FsCGqPY2%2Ffile.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ibb.co%2FsCGqPY2%2Ffile.png" alt="ruffle file:// protocol error"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para ver nuestros archivos &lt;code&gt;.html&lt;/code&gt; utilizando el protocolo &lt;code&gt;http://&lt;/code&gt; debemos servir nuestros archivos a través de un servidor web.&lt;/p&gt;

&lt;p&gt;Si tenemos instalado NodeJS, una solución rápida es instalar el paquete &lt;code&gt;nws&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Con npm&lt;/span&gt;
npm &lt;span class="nt"&gt;--global&lt;/span&gt; &lt;span class="nb"&gt;install &lt;/span&gt;nws

&lt;span class="c"&gt;# O si utilizamos yarn&lt;/span&gt;
yarn global add nws
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Una vez instalado, en una terminal nos dirigimos a la carpeta de nuestros &lt;em&gt;concretoons&lt;/em&gt; y ejecutamos lo siguiente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nws &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para ver nuestros &lt;em&gt;concretoons&lt;/em&gt; en nuestro servidor local podemos dirigirnos a &lt;code&gt;https://localhost:3030/indice.html&lt;/code&gt; en nuestro navegador.&lt;/p&gt;

</description>
      <category>flash</category>
      <category>poesia</category>
      <category>rescate</category>
    </item>
  </channel>
</rss>
