Skype en Linux

Como soy un apasionado de la terminal (modo comando en Linux, donde todo es más rápido que en ventanitas muchas veces innecesarias), he encontrado utilísimo un manual en inglés para instalar Skype (la última versión disponible para plataformas de 64bits) sobre distribuciones basadas en debian (.deb)

Skype está disponible para linux en los repositorios oficiales de Microsoft. Lo que no deja de ser sorprendente, pues hace tiempo su batalla era tan enloquecida que pareciera que los linuxeros éramos pájaros a batir, siendo una comunidad ínfima y poco dañina.

Pongo los pasos en cajas de código, para poder copiarlos si alguna vez vuelvo a necesitarlos. Asumo que se conoce algo de la operativa en terminal de linux. En caso contrario, no perder el tiempo con esto.

Para descargar (en la carpeta que sea, aunque yo recomiendo ~/Descargas o /tmp) la última versión de Skype mediante un paquete .deb usando el comando wget:

wget https://go.skype.com/skypeforlinux-64.deb

A continuación, instalar el paquete así descargado con:

sudo dpkg -i skypeforlinux-64.deb

(Otra opción es con apt: sudo apt install ./skypeforlinux-64.deb)

Durante el proceso de instalación, se añadirá el repositorio oficial de Skype al sistema, con lo que las actualizaciones son tan sencillas como ejecutar los comandos habituales para actualizar cualquier pieza del mismo:

sudo apt update
sudo apt upgrade

Y eso es todo. Tendremos nuestro skype para linux completamente operativo. Sólo queda iniciar sesión y disfrutar de una conexión más o menos satisfactoria, dependiendo de otros factores, como las tarjetas de sonido que se manejen, auriculares o no, vídeo-cámaras, etc. Recomendable conocer y tener instalado PulseAudio para manejar la configuración del sonido.

Búsqueda de palabras en la RAE en línea de comandos

He fabricado un script (un lote de comandos) de bash shell en Linux para descargar y juguetear con búsquedas en la RAE, ya que resulta complicado pedir que tengan la deferencia de hacerla disponible para el público, como si la RAE fuese un organismo público pagado con dinero público.

Es el paso intermedio entre buscar una palabra y descargarme el diccionario completo palabra a palabra. Ahora toca hacer un pequeño programita que lo invoque para cada una de las palabras que tecleé para el proyecto de Isidoro Valcárcel Medina hace unos años y traiga sus definiciones.

Lo he llamado buscaenrae.sh.

Esta versión está modificada sobre la que publiqué hace unos días para subsanar errores relacionados con las palabras que contienen varias entradas/acepciones (no es lo mismo acepciones que entradas y soy consciente de ello, pero no es importante), así como para retirar las conjugaciones en los verbos.

#!/bin/bash

### FUNCIONES ÚTILES PARA EL PROGRAMA
# uso() Instrucciones del programa y salida en caso de error.
uso () {
  echo "Uso: $0 salida palabra"
  echo -e "\tsalida es un valor númerico que identifica:"
	echo -e "\t[0] para generar un archivo HTML con la respuesta"
	echo -e "\t[1] para generar un archivo TXT  con la respuesta"
	echo -e "\t[2] para generar una línea  TXT  con la respuesta"
  exit
}
f_verbos="00000_VERBOS.txt"
f_errores="00000_ERRORES.txt"

# CONTROL DE ENTRADA DE VARIABLES y ASIGNACIÓN
if [ $# -lt 2 ]
then
  # Reportar uso inapropiado
  uso
else
  salida=$1
  if [ $# -eq 2 ]; then
    palabra="$2"
  elif [ $# -eq 3 ]; then 
    palabra="$2 $3"
  elif [ $# -eq 4 ]; then 
    palabra="$2 $3 $4"
  elif [ $# -eq 5 ]; then 
    palabra="$2 $3 $4 $5"
  fi
  # echo "Palabra es #$palabra#"
fi

# CONSULTA DEL SERVIDOR de la RAE simulando ser uno de los diversos navegadores posibles
navegador=(
  "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1"
  "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:77.0) Gecko/20100101 Firefox/77.0"
  "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:77.0) Gecko/20190101 Firefox/77.0"
  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A"
)
rnd=`echo $(($RANDOM%${#navegador[@]}))` # Elegimos un navegador al azar
# Hacemos la petición a la web de la RAE
curl -s --user-agent "${navegador[$rnd]}" https://dle.rae.es/"$palabra" > ./"$palabra.html"

# PROCESAMOS EL ARCHIVO OBTENIDO (Cortamos, retiramos lo innecesario, etc)
# Si se trata de un verbo, quitar las conjugaciones
id_conjugacion="
" esunverbo=`grep -c "$id_conjugacion" ./"$palabra.html"` if [ $esunverbo -gt 0 ] then echo "$palabra es un verbo" >> $f_verbos # ELIMINAMOS la(s) CONJUGACIÓN(ES) sed -i "/${id_conjugacion}/d" ./"$palabra.html" fi # Si tiene más de una acepción (Calcular cuántas después de saber si es un verbo) id_acepcion="
" num_acepciones=`grep -c "$id_acepcion" ./"$palabra.html"` # Si no tiene acepciones, la palabra no existe. No continuamos. if [ $num_acepciones -eq 0 ] then echo "$palabra no se ha encontrado en la RAE" >> $f_errores rm "./$palabra.html" exit fi # PARTIR en $num_acepciones EL FICHERO $palabra.html" # acepciones y acepciones_fin son 2 arrays de líneas PRECISO CONVERTIRLOS a cortes[] acepciones=`grep -n "$id_acepcion" ./"$palabra.html"|awk -F":" '{print $1}'|sed ':a;N;$!ba;s/\n/ /g'` c=0 for i in $acepciones do let cortes[$c]=$(($i)) let c=$(($c+1)) done acepciones_fin=`grep -n "$id_acepcion_fin" ./"$palabra.html"|awk -F":" '{print $1}'|sed ':a;N;$!ba;s/\n/ /g'` c=0 for i in $acepciones_fin do let cortes_fin[$c]=$(($i)) let c=$(($c+1)) done # GENERA FICHEROS palabra.X.html por cada ACEPCIÓN for (( i=0; i<$num_acepciones; i++ )) do # echo "El comienzo del corte está en ${cortes[$((i))]}" # echo "El fin del corte está en ${cortes_fin[$((i))]}" sed "${cortes[$((i))]},${cortes_fin[$((i))]} !d" "./$palabra.html" > "./$palabra.$i.html" # Distintas salidas del programa, en función de la variable "salida" if [ $salida -gt 0 ] # Salida a modo TXT then w3m "./$palabra.$i.html" > "./$palabra.$i.txt" if [ $salida -gt 1 ] # En una sóla línea then sed ':a;N;$!ba;s/\n/ /g' "./$palabra.$i.txt"|sed 's/ / /g' > "./$palabra.$i.1linea" fi fi done # BORRAR indica si dejar o no los archivos que no se deseen como salida BORRAR=1 if [[ $BORRAR -eq 1 ]] && [[ $salida -gt 0 ]] then rm "./$palabra."*html if [ $salida -eq 2 ] then rm "./$palabra."*txt fi fi # SALIDA FORZADA exit

Las primeras pruebas las he realizado con la palabra palabra, como debe ser.

buscaenrae.sh 2 palabra

Potencias

Adoro las potencias del 3. Seguro que ya lo sabes si has leído algo de mi trabajo… sin ir más lejos el que está dedicado completamente a juegos con ello, como es el proyecto !ç~ñ¿.#.

Pero estaba jugueteando con darle una respuesta automática a un amigo sobre cuáles eran las potencias de 3 y no tenía ningún programita que las calculase. ¡¿Habrase visto?!

Así que tenía que hacerlo. Decidí hacerlo a partir de una modificación del 17 amores, que le regalé a Carmen en nuestro decimoséptimo aniversario. Aunque me precipité y lo escribí mal un par de veces (siendo algo trivial) por exceso de confianza. Aquí está la versión definitiva (muy muy mejorable), que me dan ganas de escribir también en Python o en BASIC.

#!/bin/bash
# Escribe todas las potencias de un número dado (3, por ejemplo)
# hasta una cantidad dada (17, por ejemplo)

razon=3;
producto=3;
cantidad=17;

for ((i=1; i<=$cantidad; i++)); do
  producto=$(($producto*$razon));
  echo -e $(($producto/$razon)) " x " $razon " = " $producto
done

Por supuesto, el resultado de esta ejecución es sencillo y casi diría tonto:

3 x 3 = 9
9 x 3 = 27
27 x 3 = 81
81 x 3 = 243
243 x 3 = 729
729 x 3 = 2187
2187 x 3 = 6561
6561 x 3 = 19683
19683 x 3 = 59049
59049 x 3 = 177147
177147 x 3 = 531441
531441 x 3 = 1594323
1594323 x 3 = 4782969
4782969 x 3 = 14348907
14348907 x 3 = 43046721
43046721 x 3 = 129140163
129140163 x 3 = 387420489

Intrusismos diseñando…

Aunque en realidad ni siquiera son actividades intrusistas, pues me he dedicado a copiar una plantilla que Carmen había utilizado para hacer sus carteles promocionales de las temáticas diferenciadoras de sus Clases de Tango Argentino, que luego he incluido en su página web www.carmendelarosa.com

Ella utiliza unas cuantas apps del móvil y suele quedar «resultón», pero si quieres tenerlas juntas las imágenes o usarlas en una web… acaba siendo más fácil hacerlas con herramientas, digamos, serias, como las que utilizo para diseñar las cubiertas de los libros (Inkscape sobre Linux, en resumen).

Inkscape es un programa que tiene todo lo que yo pueda necesitar en los próximos años. Se le supone capacidad (o pretensión) de emular al poderoso Ilustrator, aunque no tiene ese «flow» que tienen los productos Adobe. Es parco, algo simplón y algo inestable… pero cumple sobradamente su función. De momento, no echo nada en falta, pero quizá es que sé demasiado poco.

De momento, me sirvió para hacer en un par de horas los siguientes cartelitos para Carmen de la Rosa y su web, amén de promociones en Instagram, etc…

Haiku Generator

Hoy una amiga (que durante años ha sido una de las más dadaístas asistentes a los talleres de poesía que coordino) ha publicado en una red social, riéndose de ello como corresponde, que hay en internet un generador de haikus.

Es una cosa tan graciosa o tan patética (y no en un buen sentido) como el generador de ideas para blog del que hablé hace no mucho en este mismo blog.

Algo tremendo está pasando cuando alguien quiere recurrir a una máquina para realizar lo más humano posible, que es expresarse.

¿Son las máquinas las que están tratando de decirnos algo? ¿Está la amenaza de Skynet más cerca de cumplirse de lo que nos creemos?

Unos cuantos haikus generados casi aleatoriamente por esta vía:

Evil october.
A tropical, large sun flip
above the dollar

Nippy summertime
A domestic, grand pig soars
before the giraffe

Tearless christmastide
A gray, grand squirrel frightens
because of the net

Cabe preguntarse si a la palabra poesía, a la palabra arte, a la palabra creación, no habría que añadirles (implícitamente) la palabra sujeto humano, pues no es sólo una cuestión de forma, ni de contenido, sino de riesgo, de intención, de fracaso… las máquinas (y quienes deciden usarlas para generar ideas para un blog, para escribir «haikus» o similar) lo que buscan es el éxito, carente de riesgo y con una intención que no es la de explorar sino la de fabricar.

La escritura creativa (creación como actitud ante la vida, no como eslogan), la poesía, es una fábrica de errores, de insensateces, de locura, de interrogantes en última instancia, y no una máquina de exclamaciones, afirmaciones, verdades, corduras ni, nunca, éxito asegurado.

Towi, alias Frankenstein

Parece mentira, pero la obsolescencia programada no parece ser tan certera como afirman quienes dicen que los PC duran 5 años o las impresoras 2.

Towi es el nombre en clave (hostname) de nuestro querido ordenador de torre que usa Carmen todos los días como equipo de trabajo, completamente funcional.

Este fin de semana pasado hemos empezado a dar por perdidos algunos equipos que no dejan de funcionar, a pesar de que las necesidades de este «mundo moderno», de redes sociales, teléfonos inteligentes y esas cosas, nos hagan sentir que las velocidades de los mismos no son admisibles o son indicio de fallo, cuando sencillamente no queremos quedarnos en la fila de los «pobretones» que navegan despacio.

Esta placa de hace ya más de 10 años sigue funcionando sin problemas. Es un Pentium (de antes de la época de la serie i-3,5,7), con un sólo núcleo, con 4Gb de RAM ocupando las dos ranuritas como se ve en la imagen, en sendas tarjetas de 2Gb.

El disco duro que traía montado tenía 640Gb (sigue teniéndolos) y poco a poco se le fueron añadiendo amigos dentro, como un SSD de 120Gb en el que instalar el sistema operativo Linux (UbuntuStudio) que ha permitido seguir funcionando con mayor rapidez de la que sería posible con el Windows 7 preinstalado en el HD convencional. Por si eso fuera poco, un disco duro muy muy viejo (IDE, de hecho PATA) que no tiene las conexiones apropiadas fue adaptado (adoptado), mediante un «chismito» que permite conectar 2 discos IDE y/o uno SATA a una conexión USB. Por supuesto, los discos necesitan alimentación directa, pues el aparatejo tan sólo se limita a transferencia de datos, que no es poco. (También había probado previamente una adaptación mediante otro dispositivo de IDE a SATA, pero no funcionó bien).

Ese disco duro IDE de 3,5″, que se ve «colgando» en la fotografía anterior, estaba en una carcasa interna que dejó de funcionar, tiene 300Gb y le denominamos LACIE que era el nombre de fábrica de ese primer disco externo que compramos, hará más de 15 años.

Para poder usar la conexión USB del adaptador, adquirí por un módico precio una tarjeta PCI que proporcionaba 4 enchufes USB fuera de la caja y uno hacia el interior de la misma, que es el que se ve en la imagen siguiente:

Esta es la caja de la tarjeta en cuesión:

Algo después, adquirimos un par de nuevas tarjetas PCI-E para aumentar el número de puertos USB (en este caso 3.0) tanto por la parte trasera de la torre como por la parte frontal, a medida que Carmen necesitaba más espacio de almacenamiento, pero la verdad es que ha llegado el momento de pasar a otro equipo, pues este pequeño Frankenstein que ha llegado a tener (internamente) su Intel NH-8280-1GB, 4Gb RAM, SSD 120Gb, HDD 640Gb SATA, HDD 300Gb IDE/USB, 4+5 USB 2.0 traseros, 2 USB 2.0 delanteros, 6 USB 3.0 vía PCI-e.

A punto estuve de conectarle un cuarto disco SATA de 500 Gb de un HP Pavillion que me salió muy malo y que ha terminado por romperse a los 12 años de su compra… (quizá no tan malo, después de todo), pero era bastante engorroso seguir haciendo ampliaciones mediocres para un PC saturado.

Ha llegado el momento de comprar un nuevo equipo, que empezará siendo directamente de segunda mano, para poder sumarle el SSD de 120Gb, quizá también el HDD 640Gb SATA y, por supuesto, las tarjetas PCI-e para extender el número de puertos USB 3.0, desnudando a un santo para vestir a otro, pero es que a veces hay que dejar morir a los santos ancianos.

Y no creo que lo haga del todo pues usaré cualquier cosita para poder arrancar el equipo y que siga sirviendo con sus 4Gb de RAM como un veterano de guerra.

¿Obsolescencia programada o consumismo irresponsable?

Aunque parezca mentira, los virus cometen faltas de ortografía

Una forma sencilla de detectar si un correo electrónico es sospechoso de ser un virus es mediante el análisis de la ortografía del mismo, especialmente si procede (al menos aparentemente) de una fuente como un banco, una operadora telefónica, la administración pública, etc.

Quizá por ello soy minucioso a la hora de redactar correos electrónicos, aunque finalmente no acabe teniendo demasiada incidencia si utilizas, como en nuestro caso, un hosting compartido por motivos de ahorro económico, lo que conlleva que no pueda controlar lo que hacen otras de las instancias instaladas junto al espacio (IP) donde tenemos alojado nuestro servidor de correo electrónico, derivando, nuestro correo, con altísima frecuencia a la carpeta de SPAM.

El lunes recibí este mensaje y pude ignorarlo tan sólo por eso VINCIÓ EL PRAZO sin necesidad de continuar leyendo, ni siquiera atender a que la dirección de origen no corresponde a la de VODAFONE y sin saber que la página al que llevan los enlaces en el correo no corresponden a esa empresa con la que, además, no tengo ninguna relación contractual.

He aquí la cabecera del mensaje, sin adulterar, mostrando mucha más información de la que debería mostrar, pero sabiendo que, en realidad, los problemas derivados de conocerla no son tan graves:

From – Mon Aug 24 10:58:15 2020
X-Account-Key: account4
X-UIDL: UID56194-1266393476
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys: $label1
Return-Path:
Delivered-To: clave53@clave53.org
Received: from just2048.justhost.com
by just2048.justhost.com with LMTP
id 6KrJB082Q1+VjwQAXwh+vw
(envelope-from )
for ; Sun, 23 Aug 2020 21:38:55 -0600
Return-path:
Envelope-to: borrarme@clave53.org
Delivery-date: Sun, 23 Aug 2020 21:38:55 -0600
Received: from qwe4.oaberh.com ([45.79.239.176]:40920 helo=localhost.members.linode.com)
by just2048.justhost.com with esmtp (Exim 4.93)
(envelope-from )
id 1kA3Ju-001Hyz-DT
for borrarme@clave53.org; Sun, 23 Aug 2020 21:38:55 -0600
Received: by localhost.members.linode.com (Postfix, from userid 0)
id DD11152605; Mon, 24 Aug 2020 02:52:13 +0000 (UTC)
MIME-Version: 1.0
Content-type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64
Subject: Fwd: factura pendiente
From: Notificacion
To: borrarme@clave53.org
Message-Id: <20200824031407.DD11152605@localhost.members.linode.com>
Date: Mon, 24 Aug 2020 02:52:13 +0000 (UTC)
X-Spam-Status: No, score=3.8
X-Spam-Score: 38
X-Spam-Bar: +++
X-Spam-Flag: NO

Aquí está el contenido del mensaje en el que deparé en esa ortografía tan deficiente que es sinónimo de correo sospechoso:

«ver en el navegador» (enlazado a http://XXXXXXhttp.extrajudicialmbajadas.comXXXXX/judicial, pero sin las XXXX)
Cordial Saludo,

Le recordamos que se vinció el prazo de pagos de su factura con
nosotros, la factura 05105AS8054RAJZ

Lamentamos informarle que si el pago no si realiza hasta 25 de agosto
del 2020 suspenderemos los servicios y pasaremos su cuenta a nuestros
abogados.

Descargar la factura

© 2020 Vodafone España S.A.U.Avda. América 115, 28042 Madrid

upgrade a linuxmint 19

¿Qué necesidad tengo de actualizar a LinuxMint 19.3 si todo me va bien con LinuxMint 18.1?

La realidad es que no tengo ninguna necesidad ahora de hacerlo, pero puede que no me venga mejor cuando el LM 18 pierda su soporte:

18.1 Serena Ubuntu Xenial Long term support release (LTS), supported until April 2021.

Es decir, que si ahora no hago nada, me veré en la tesitura de que me convenga hacer esa actualización allá por abril o mayo de este prometedor 2021, prometedor de incertidumbres y crisis sanitario-económico-sociales varias. Así que quizá es mejor planificar y anticiparme a ese año con una actualización que me dejará con la «conciencia tranquila» hasta abril del 2023.

Estoy siguiendo las instrucciones de la Comunidad de Linux Mint con todo el cuidado posible, pero sabiendo que muy probablemente algo irá mal. Así que estoy mentalizado para, en un momento dado, tener que llevar a cabo una instalación completa, borrando todo lo que tengo, reinstalando fuentes (lo que puede ser un lío), así como aplicaciones que uso y que ya ni recuerdo. A pesar de todo, hice copias de seguridad pertinentes, backups de mi trabajo en más de 5 dispositivos… y lo peor que puede pasar es que acabe perdiendo 3 días… en este periodo prevacacional en el que estoy.

Ahora mismo se está descargando todos los paquetes en local para proceder a la instalación. Cruzo los dedos y pulso Enter.

Mi web es una y es trina

A modo de taburete, la web en la que he estado trabajando desde primeros de marzo hasta ahora es una y es trina, sí, se trata de 3 patas que sustentan una especie de triunvirato que espero que no acabe tan mal como el famoso juliano.

La web Base

El esqueleto o lo que la aglutina es lo que llamo la base que está hecha casi «from scratch» en lo que se refiere al estilo, al aspecto, al comportamiento en diferentes dispositivos…

web base

El diario en WordPress.org

Sobre ella (o bajo ella, no sé) hay instalada una base de datos que gestiona, desde el 2011, mi diario, en el que escribo, como su nombre indica, casi diariamente, excepto en temporadas estivales o fiestas de guardar (el 1 de mayo o el 6 de diciembre).

De hecho, elegir el estilo del wordpress que la muestra me llevó gran parte del mes de marzo, hasta que di con una combinación de dos «themes» que me gustaban y de los que personalicé el definitivo, que pasó también a influir para unificar el estilo que usaría en las otras 2 patas de esta web trifásica.

web blog

La galería en Piwigo

Pero lo más sofisticado fue cuando decidí que no quería utilizar ninguna de las herramientas más habituales de gestión de álbumes de fotos o imágenes para almacenar el material visual que tenía (que había tenido previamente en picassa, luego en google-photos, o para el que había desarrollado o implementado «sliders» de javascript más o menos engorrosos).

Así que «inventé la rueda» instalando en mi hosting una aplicación llamada Piwigo (open source para más datos) que maneja y almacena las imágenes: la galería.

web galeria

Subirlas a ese espacio requerían, para no ser demasiado pesadas en término de tamaño de archivo, su procesamiento, reducción de resolución, renombrado para evitar caracteres especiales, minúsculas para homogeneizar, etc… que hice gracias a la programación, pues hablamos de más de 3000 imágenes.

Unificar estas tres componentes y que parezcan una sola web y no múltiples ha sido complejo, pero lo más difícil todavía fue revisar reordenar y modificar todo el trabajo que tenía más o menos mal documentado desde el 2008 (fecha de la última actualización importante de la web) hasta hoy.

12 años de trabajo que han sido fructíferos en términos de obra, de producción casi industrial, de proyectos complejos y largos… muchos de los cuales no habían visto la luz hasta hoy.

Ahora siento un alivio considerable y una extraña sensación de vacío, sigo teniendo material en curso, en lo que estoy trabajando que aún no está en esta web, pero ya sé dónde ponerlo cuando acabe.

En resumen:

  1. Marzo: Pruebas de personalización de temas de blog (con instalaciones en desarrollo sobre una raspberry, para no «romper» nada importante), así como elección de tipo de letra, colores…
  2. Abril: Ordenación de material visual, de documentación de acciones, revisión de trabajos pendientes de un final…
  3. Mayo: Creación de la base de datos Piwigo para almacenamiento de las imágenes. Elección y personalización del tema elegido. Por momentos, parece algo superfluo que se podría haber hecho agrupando esto con el Diario en WordPress.org, pero me resulta más fácil compartimentar.
  4. Junio: Creación de la web base. Generación de una plantilla dinámica, pero que no haga uso de javascript salvo en lo imprescindible sino que sea responsive y con animaciones pero exclusivamente basándome en estándares CSS3 y HTML5 (me encantan las etiquetas «semánticas»).

Han sido meses de confinamiento y agradezco (a mí mismo, supongo) haber tenido el tiempo para poder afrontar algo como esto que muchas de las veces, mientras lo estaba haciendo dudaba que tuviese el más mínimo sentido en esta época de red social y publicación en plantilla.

Espero que me dure el trabajo principal, si no una docena de años como la anterior web, por lo menos más de 5 años.

Plantilla HTML de mi web

Modificando mi página web, me encuentro con que, finalmente, acabo generando una especie de plantilla (hecha a mano, como debe ser todo molde) que hace que casi toda la web sea relativamente homogénea, lo que me simplifica la vida, obviamente, pero también aburre un poco porque tienes la sensación de que todas las páginas que estás visitando son un poco más de lo mismo… Pero qué le voy a hacer. Es mi forma de ser.

Aquí dejo la plantilla HTML y en breve publicaré también los documentos CSS y el javascript necesario para hacer una página responsive manejando una estructura de archivos HTML con más de 100 páginas individuales.

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="Description" content="Página Personal de Giusseppe Domínguez">
  <meta name="Keywords" content="Arte, Taller, Curso, Clase, Poesía, Escritura, Creatividad, Giusseppe Domínguez, Clave 53, Experimentación">
  <meta name="author" content="Giusseppe Domínguez">
  <title>Giusseppe Dom&iacute;nguez</title>
  <link rel="stylesheet" href="../estilos/gsp2020.css">
  <link rel="shortcut icon" href="../img/gsp.ico">
  <script src="../js/jquery.min.js"></script>
  <script src="../js/gsp.js"></script>
</head>

<body>
   <!-- Menú superior -->	
   <script type="text/javascript">
     creaheader('../'); // Crea menú - top (logo-header y nav)
   </script>
  <main>
  <section>
<a name=ACCIONES></a>
    <article>
            <hgroup>
                <h1>Acciones</h1>
                <h3>Performances, Acciones, Poesía Escénica...</h3>
            </hgroup>
    	<div class="content">

    <p>AQUÍ VA EL CONTENIDO</p>

            </div> <!-- /content -->
        </article> <!-- /article -->
    </section> <!-- / #main-content -->
  </main>
  <!-- Footer -->	
  <script type="text/javascript">
    creafooter(); // Crea footer (copyright y ref: giusseppe.net)
  </script>
</body>
</html>

 

Esto no es una broma