Gótico por los 4 costados

La imagen ha sido descargada del banco de imágenes libres de derechos
pixabay.com:
https://pixabay.com/es/roset%C3%B3n-catedral-de-estrasburgo-536376/

La fuente está descargada del banco de fuentes libres:
www.urbanfonts.com
https://www.urbanfonts.com/fonts/Dearest.font

Proyecto inspirado por Laura Cueva Arias a raíz de su Post en Facebook:
https://www.facebook.com/laura.cuevaarias/posts/2238204799774621

Realizado con Inkscape 0.91 r13725 sobre Linux Mint 18.1 Serena

Carmen de la Rosa en España Directo

Este martes Carmen de la Rosa fue grabada en una clase de Tango Argentino que imparte junto con Miguel Moya para el programa de televisión nacional (RTVE) España Directo.

Ha sido un honor y un lujo hacer este pequeño vídeo con un fragmento del programa capturado de mi pantalla (no hay manera de descargarlo de rtve.es).

La captura fue realizada utilizando el programa Kazam sobre un Linux Mint 18.3 y editado con Openshot (un editor de vídeo muy básico que tiene disponible gratuitamente Linux en sus repositorios.

7 Tumbas Amarillas

Este poemario (7 Tumbas Amarillas) surge como ejercicio inspirado en un verso de Hans Bender, realizado por las personas asistentes al Taller de Poesía y Escritura Creativa de la Asociación Cultural Clave 53. Taller de Poesía Contemporánea II. Martes 16 de octubre de 2018.

Todo el proceso de maquetación ha sido realizado utilizando exclusivamente software libre (scribus para el contenido del libro, inkscape para la portada, sobre sistema operativo Linux Mint 18.1 Serena)

Prefiero NFS a SAMBA

Cuando utilizas Linux es mucho más sencillo configurar las comparticiones de carpetas entre dispositivos utilizando NFS que el protocolo típico del mundo windows.

Es tan sencillo como instalar NFS server en el equipo del que se desean compartir carpetas

(En derivados de Debian):
sudo apt install nfs-common nfs-server

A continuación, editar (por supuesto con un editor de texto plano, por ejemplo VI) /etc/exports y añadir las carpetas que se deseen compartir y las reglas de compartición propias
(Yo solo dejo acceso a 192.168.1.4, para dejar a toda la red local suele ser por defecto en la mayoría de las configuraciones típicas de router: 192.168.1.0/24)
/RUTA_ABSOLUTA/CARPETA_a_COMPARTIR 192.168.1.4(rw,async,no_subtree_check)

Si no queremos reiniciar, podemos sencillamente ejecutar esta secuencia de comandos para que el NFS server se entere de los cambios:

sudo exportfs -ra
sudo update-rc.d rpcbind enable && sudo update-rc.d nfs-common enable
sudo systemctl restart rpcbind
sudo systemctl restart nfs-kernel-server

En el lado cliente es preciso instalar al menos el nfs-common
sudo apt install nfs-common

Read morePrefiero NFS a SAMBA

Prompt de bash en colores

Hoy estaba haciendo una preciosa conexión con un cable cruzado entre mi PC principal y el portátil que tengo en la oficina para realizar uno de mis obsesivos backups.

Me encanta configurar una red ethernet manualmente, como se hacía antiguamente, casi con línea de comando, poner una red de 2 equipos, con una máscara de 255.255.255.252 (/30) para conectar ambos equipos, el PC con 192.168.2.2/30 y el portátil con 192.168.2.1/30 para que puedan conectarse entre ellos y nadie más. Es el colmo de la monogamia tecnológica.

Luego, realizo una sincronización vía rsync y compruebo por ssh que todo está bien, que no hay problemas de espacio en el destino, etc. Y ahí he estado perdiendo un ratito porque el prompt del equipo de destino también estaba en verde y me era difícil distinguir entre cuál es la ventana de quién.

Así que he buscado la manera de especificar el color del prompt (no recordaba cómo se hacía) hasta que he conseguido ponerlo en rojo en lugar del verde habitual por defecto.

Queda tan mono…

Portada y contraportada del libro colectivo

De cara al libro colectivo que cada curso publicamos en los Talleres de Poesía y Escritura Creativa de la Asociación Cultural Clave 53, este año vamos a realizarlo mediante una imprenta «profesional» para editoriales, lo que me ha obligado a tener que aprender a manejar herramientas más sofisticadas de edición y maquetación, cuya rentabilidad supongo que apreciaré en un futuro intermedio.

De momento, dejo constancia de la portada realizada utilizando Inkscape sobre Linux, como me gusta hacer, políticamente libertario, con software libre cueste lo que cueste, pues no cuesta dinero, pero sí algún que otro disgusto y una curva de aprendizaje cuando menos escarpada.

No obstante, la satisfacción de su uso acaba por compensarme. Y, supongo, me permite vivir una vida alejado de equipos de muchos más recursos que serían más caros, lógicamente, lo que me libera, a la larga de ciertas «obligaciones» contractuales muy extendidas entre la población. No deja de ser una forma empecinada de «vivir a la contra», algo adolescente, quizá, pero rebelde más que revolucionario.

Instalar LAMP con WordPress para backup de Blog en Raspberry PI 3

Aprovechando que esta semana pasada era algo así como vacacional aunque en mi caso ha resultado convaleciente, he dedicado mi tiempo a temas técnicos que me hacen olvidar la inmediatez, lo cual a veces resulta tranquilizante y otras perturbador, como por ejemplo aprender a manejar herramientas de diseño gráfico como Inkscape (para gráficos vectoriales) que necesito para crear portadas profesionales de los libros que próximamente iré maquetando con Scribus (otra necesidad imperiosa para lo mismo).

Entre las diversas tareítas que tenía pendientes, una de ellas era cada día más «acuciante» para la persona más obsesa de las copias de seguridad que conozco: Hacer BackUp de mi blog.

¡Y por fin lo he logrado!

Lo he restaurado repetidas veces en una Raspberry PI 3 que tengo desde hace unos meses y a la que le dedico unas cuantas horas a la semana. De momento, había instalado diversos sistemas operativos pensando que podía servir para sustituir a un PC viejuno, pero ha resultado ser mucho más útil como servidor de lo que sea, desposeída de pantalla y de la necesidad de un entorno gráfico que consume su escasa memoria RAM.

El proceso que he seguido (después de mucha «prueba y error») ha sido más o menos el siguiente:

_______________________________________________________________
Preparando LAMP para restauración de BLOG de giusseppe.net
Linux Apache Mysql Php
_______________________________________________________________

Para Instalar PHP 5 es preciso añadir al final de /etc/apt/sources.list
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi

sudo apt-get update
sudo apt-get install -y apache2 mysql-server php5 php5-curl php5-cli php5-mysql php5-gd phpmyadmin ntfs-3g

(NO HACER) sudo apt-get install php7.0

Habilitar el módulo de reescritura en Apache
Opción 1.- sudo a2enmod rewrite
Opción 2.-
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/rewrite.load

Y para que se use php5 en lugar de php7:
>>> sudo update-alternatives –set php /usr/bin/php5

Deshabilitar (php7.0) y habilitar (php5) en Apache:
sudo a2dismod php7.0
sudo a2enmod php5
sudo service apache2 restart

_______________________________________________________________
Preparar BASE DE DATOS para RESTAURAR el BLOG:

Crear una base de datos como la del blog con el usuario y contraseña del blog (ver datos en wp-config.config de Backup)
sudo mysql -u root -p

MariaDB [(none)]> create database carmend1_wrdp2;
MariaDB [(none)]> create user carmend1_wrdp2;
MariaDB [(none)]> set password for carmend1_wrdp2 = password("LADELARCHIVOCONFIGPHP");
MariaDB [(none)]> grant all PRIVILEGES on carmend1_wrdp2.* to carmend1_wrdp2@localhost identified by 'LADELARCHIVOCONFIGPHP';
/// PARA ASEGURARSE de QUE ESTÁ CREADO:
select User from mysql.user;
MariaDB [(none)]> exit;

_______________________________________________________________
Instalar WordPress (en /blog)
https://www.atareao.es/tutorial/raspberry-pi-primeros-pasos/wordpress-en-la-raspberry/
_______________________________________________________________

cd /var/www/html
sudo wget http://wordpress.org/latest.tar.gz
sudo tar xfz latest.tar.gz
sudo mv wordpress blog
sudo rm -f latest.tar.gz
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -print -exec chmod 775 {} \;
sudo find /var/www/html -type f -print -exec chmod 664 {} \;

_______________________________________________________________
Copiar toda la estructura de archivos de
wp-content/upload /themes /others /plugins
Organizarla para que tenga estructura de carpetas

Opción 1.- Utilizar acceso NFS

Opción 2.- Instalar soporte NTFS para leer y montar pendrives:
(NO HACER si ya está hecho) sudo apt-get install ntfs-3g
sudo mkdir /media/mikomono
sudo chown pi:pi /media/mikomono
sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/mikomono

Copiar el contenido del wp-content al blog (Según proceda modificar esto)
sudo cp -rf /media/mikomono/20180320/wp-content/. /var/www/html/blog/wp-content/.
Copiar wp-config.config en wp-config.php
sudo cp /media/mikomono/20180320/site-data/wp-config.config /var/www/html/blog/wp-config.php
cd
cp /media/mikomono/20180320/site-data/giusseppe.net-blog_wp.db .

_________________________
Restoring the WordPress Database Using MySQL Commands
Copiarlo previamente en ~/giusseppe.net-blog_wp.db
Modificar el número de prefijo de la base en el archivo.db de datos por wp_
_________________________

mysql -u carmend1_wrdp2 -p
CONTRASEÑA la de wp-config.config

mysql > use carmend1_wrdp2;
mysql > source giusseppe.net-blog_wp.db

Cambiar datos del dominio anterior (giusseppe.net) si procede a localhost o lo que sea
(en phpmyadmin)
UPDATE wp_posts SET guid = REPLACE ( guid, 'giusseppe.net/blog', 'raspi.net/blog' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, 'giusseppe.net/blog', 'raspi.net/blog' );
UPDATE wp_postmeta SET meta_value = REPLACE ( meta_value, 'giusseppe.net/blog', 'raspi.net/blog' );

ALTERNATIVA:
Usar /media/GSPDISK/almacen/BackUps/BLOG/searchreplacedb2.php
(Copiar en /blog y acceder a ello)

Necesario también cambiar el fichero de configuración de Apache para el SITE:
/etc/apache2/apache2.conf
o añadir datos en sites-enabled/000-default.conf


..otras directivas aqui
AllowOverride All (Asegurarse que no es NONE)

Crear archivo /var/www/html/blog/.htaccess
_________________________________
# BEGIN WordPress

RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

# END WordPress
_________________________________

_______________________________________________________________
Cómo devolver acceso completo a root, si lo pierde, en MariaDB
(Versión por defecto de mysql-server)
_________________________
sudo mysql -u root

mysql>
use mysql;
update user set plugin='' where User='root';
flush privileges;
\q

sudo service mysql restart
_______________________________________________________________

_______________________________________________________________

REPONER PERMISOS en /var/www/html:

sudo chown -R pi:pi /var/www/html
sudo find /var/www/html -type d -print -exec chmod 775 {} \;
sudo find /var/www/html -type f -print -exec chmod 664 {} \;

REPONER PERMISOS en . (Si se es propietario de ese directorio)

find . -type d -print -exec chmod 775 {} \;
find . -type f -print -exec chmod 664 {} \;

Aprendiendo a maquetar a marchas forzadas con Scribus

Vivir en Linux es un poco como vivir a la contra. Nos obliga a estar siempre aprendiendo herramientas que el resto de personas no utiliza y no tenemos mucho soporte, además de que el desarrollo de las mismas depende de la buena voluntad de los programadores que tienen a bien dedicar parte de su tiempo o de su vida a crear aplicaciones de código abierto, intentando en un intento algo desesperado subvertir las reglas del mercado.

Hoy me veo en la tesitura de aprender a maquetar con Scribus, un programa que sirve para eso pero que dista mucho de ser intuitivo. Por no decir que ya ha tenido un cuelgue por no ser capaz de «importar texto» de un ODT de menos de 100 páginas.

No pienso tirar la toalla porque lo de ir a la contra va un poco conmigo, con mi carácter y con mi forma de pensar. Pero es tan cansado que apenas tengo tiempo para publicar en este diario una entrada digna de hoy.

Mientras tanto, sigo aprendiendo.

Spectre y Meltdown

Aparentemente, hay confirmada una enorme vulnerabilidad (enorme en cuanto a la cantidad de equipos afectados y a la profundidad de control que puede lograr un ataque exitoso) de seguridad en procesadores informáticos.

El ataque es a nivel hardware, prácticamente, lo que hace que dé igual el sistema operativo que lo gestione. Así que tanto Linux, Windows como MacOS, así como incluso Android e iPhones son víctimas potenciales de este tipo de ataques.

Un artículo bastante completo sobre el tipo de vulnerabilidad pero al mismo tiempo lo suficientemente claro para que legos en la materia pueden leerlo es el de CNET, web especializada de bastante prestigio en el ámbito de la seguridad informática.

El 2018 ha comenzado con un serio problema para los usuarios, pues esta vulnerabilidad aparentemente no tiene solución a nivel firmware (El firmware o soporte lógico inalterable es un programa informático que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. Está fuertemente integrado con la electrónica del dispositivo, es el software que tiene directa interacción con el hardware, siendo así el encargado de controlarlo para ejecutar correctamente las instrucciones externas) sino que habría que modificar el diseño o funcionamiento intrínseco del hardware, lo que no es viable sino hasta dentro de varios meses (o cambiando a procesadores no afectados, lo que significa, más o menos, comprar un ordenador o dispositivo nuevo).

Por otro lado, teniendo en cuenta que la seguridad se mide por el eslabón más débil de una cadena, habría que cambiar todos los dispositivos de una misma red, por ejemplo, para sentirse mínimamente seguro ante esta posible amenaza, pero es algo casi inviable, pues incluye hasta el mismo router que tendrá, en muchos casos un procesador ARM vulnerable. (El LiveBox de Orange que tengo en casa tiene un MIPS que no consta en la lista de procesadores afectados).

Dicen en la web del artículo de CNET que la buena noticia es que los hackers necesitan instalar un software malicioso en su computadora para aprovechar estos defectos. Eso significa que necesitan seleccionar sus objetivos y piratear cada uno de ellos antes de ejecutar un ataque sofisticado para robar la información sensible de una computadora.

Pero un párrafo anterior han alertado sobre el hecho de que no sólo afecta localmente sino también a todo servidor del planeta, así que… poco que hacer al respecto.

¿Qué más da que mi equipo esté muy protegido si el de mi banco no puede estarlo? Por no decir el de mi servidor de correo, mi servidor web, mi nube, mi … Todo equipo es prácticamente vulnerable.

De momento, los primeros ataques serán poco sofisticados y afectarán a equipos domésticos casi con total certeza, especialmente a aquellos usuarios descuidados en su política de seguridad que ejecutan software en sus equipos sin ningún control (léase, usuarios de Windows) acostumbrados a pinchar botones de «Aceptar» casi sin mirar, descargando software de plataformas de dudosa reputación.

No se puede vivir con miedo, pero esta vulnerabilidad tan sólo pone sobre la mesa la imposibilidad de vivir tranquilo si se quiere estar pendiente de la seguridad. Eso no implica no ser responsable de la utilización que se hace de los dispositivos que, cada día más, tenemos omnipresentes en nuestras vidas.

Vamos a sufrir un ataque (varios ataques), hay que mentalizarse. Hay que relajarse y disfrutar. Estimar los daños. Valorar lo que se tiene. Pensar que casi todo lo que hay que proteger es cuestión de dinero. Y la vida es mucho más.

Mi recomendación particular, una y otra vez, es pasarse a Linux, no porque sean invulnerables sino porque los ataques irán principalmente destinados (al menos al principio) a Windows/Android/MacOS que son los sistemas operativos más extendidos. Posteriormente, los ataques serán desde los servidores y la defensa ante estos tipos de ataque es mucho más difícil de llevar a cabo. No usar servidores es desconectarse de Internet y es una de esas cosas que, en los tiempos que corren, resulta inconcebible y, en la mayoría de los casos, contraproducente incluso a riesgo de altas pérdidas.

URLarga: Feliz 2018

Este año, trabajando con las URLs, he decidido realizar 27 felicitaciones navideñas con este motivo, derivando a quien le dé por buscar si esas urls tienen algún sentido otro que el azaroso, al menos a esta entrada del diario que dedicaré a semejantes especímenes.

Programé un pedacito de código C (con VI, por supuesto, y «from scratch», como a mí me gusta) que ha generado 27 URLs únicas. Las he acomodado con GIMP/Linux sobre papel fotográfico que me regalaron con la impresora y al que no sabía qué uso dar.

Me gusta la unicidad del (pseudo)azar programable, que dota de cierto engañoso aura a cada una de las pequeñas piezas que, por momentos, pensé en personalizar, pero intervenía en el azaroso gestar de las mismas… Ya es suficiente con que las URLs comiencen con mi SLD (Second Level Domain), en lugar de un dominio generado al azar.


/*****************************************
urlarga.c

Programa crear URLs que no tengan ningún sentido
más que el azaroso.

Añado la dirección del servidor para que si alguien
quiere ir, al menos aparezca una mínima explicación
de en qué consiste el proyecto.

Derivo a una URL que contiene una búsqueda en mi blog
incluyendo la palabra "urlarga" que remitirá
a una entrada específica creada para tal fin.

*****************************************/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <wchar.h>
#include <locale.h>

// Longitud de la URL formada, incluyendo el protocolo y el servidor
#define LONGITUD_MAX 729
// Para realizar 27 URLs arbitrarias
#define NUM_URLS 27

int main()
{
  setlocale(LC_CTYPE, ""); // Necesario para que funcionen las ñ
  
  int  i, j, letra, l_alfa, l_prot, l_serv, l_base;
  // Un alfabeto incluyendo algunos signos de puntuación
  wchar_t alfabeto[] = L"0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz!!$%&/()=?¿¡,;:-_+ç";
  wchar_t URL[LONGITUD_MAX];
  wchar_t protocolo[] = L"http://";
  wchar_t servidor[] = L"giusseppe.net/blog/?s=feliz&2018&urlarga&";

  l_alfa = wcslen(alfabeto);
  l_prot = wcslen(protocolo);
  l_serv = wcslen(servidor);
  l_base = l_prot + l_serv;

  srand (time(NULL));

  for (j = 0; j < NUM_URLS; j++)
  {
    wmemset(URL, L'\0', LONGITUD_MAX);
    wcscpy(URL, protocolo); 
    wcscat(URL, servidor); 
    for (i = l_base; i < (LONGITUD_MAX-1); i++)
    {
      letra = rand() % l_alfa; // Obtenemos una letra (índice) al azar del alfabeto
      // Aleatoriamente, si el anterior no era un punto ni una /, ni estamos al final de la URL, ponemos un punto.
      if ((!(rand()%5)) && (URL[i-1] != L'.') && (URL[i-1]!=L'/') && (i != (LONGITUD_MAX-1))) URL[i]=L'.';
      else URL[i]=alfabeto[letra];
    };
    wprintf(L"|%ls|\n", URL);
  };
} // main()
Esto no es una broma