Permutaciones

He decidido ir publicando en una red social de cuando en cuando una frase con dos palabras formadas por las mismas letras en distintas posiciones y una palabra a modo de conjunción entre ambas.

Las palabras que use deben tener todas las letras distintas, es decir, permutaciones sin repetición. Es fácil (factorial) saber cuántas podrían haberse obtenido si bien es más complejo de lo esperable el obtener una de ellas que sea significativa. Más aún que el par formado sea interesante.

De momento, he publicado:

mapeo un poema
cunetas sin cuentas

Sobre un bonito fondo rojo.

Conexiones en la Pelubrería: Sábado a las 20:00

Este sábado en Espacio Paco Martin – La Pelubrería, estaré presentando por última vez un libro de hace 18 años y por primera vez un libro de hace unos días.

Los tiempos han cambiado. Han pasado sobre mí como una apisonadora… y he quedado muy lisito, suave, sencillo.

Compartiré el evento con el artista Víctor Royás y sus inquietantes esculturas de vidrio/casi cerámica/, sus heridas y su preocupación social.

Mientras tanto, yo hablaré del 3 y sus potencias. De la triada. De mis obsesiones. Yo, yo, yo…

Después realizaré una acción pensada para sugerente espacio en el que va a tener lugar: una peluquería en la que se lee poesía, o una librería en la que se corta el pelo.

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.

Cambiar direcciones de DNS por las de Cloudfare

Un interesante artículo al que no recuerdo cómo llegué cuenta cómo usar las direcciones de los servidores DNS que ofrece Cloudfare

Para agilizar algunas conexiones que se ralentizan por la búsqueda constante de nombres… (No mejoran tanto si la lentitud de la conexión no se debe al tiempo de respuesta del DNS)
Amén de dar un poco más de control sobre a quién autorizamos que nos controle. 🙁

Es posible llevar a cabo una modificación en la configuración de red (dependiendo del sistema puede ser de una manera u otra) no demasiado avanzada y permite utilizar servidores DNS de una empresa que dice ser más fiable desde el punto de vista de la privacidad que Google y las habituales direcciones IP provistas por los ISP (Internet Service Providers).

Hoy estoy algo descreído con respecto a que alguna otra opción sea mejor… pero es verdad que difícilmente puede ser peor, así que no está de más darle una pensada y probarlos, al menos en cuanto a lo de la velocidad. Hubo un tiempo en el que yo tenía apuntadas a mano o me sabía de memoria algunas direcciones IP de DNS para configurarlos en la conexión de red correspondiente saltándome los que solían funcionar muy mal de JazzTel o de la desaparecida (absorbida) Wanadoo.

Estas direcciones, a imitación de las de los servidores de Google (el gran monopolista de INet), son tan sencillas de recordar que no las apuntaré, ni siquiera en la memoria… olvidándolas antes de haberlas usado.

Por si acaso:

Google (8.8.8.8 y 8.8.4.4)

Cloudfare:

IPv4: 1.1.1.1 y 1.0.0.1
IPv6: 2606:4700:4700::1111 y 2606:4700:4700::1001

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 {} \;

Pequeño problema de impotencia

En este caso, el problema de impotencia era de unos 500 wattios, los que no aportaba la fuente de alimentación del PC que tengo en casa.

De repente, ayer, después de estar funcionando el ordenador sin dar ni el más mínimo de los problemas, decidió no arrancar, pero no arrancar ni la BIOS ni nada de nada. Justo tras encender se apagaba sin proporcionar corriente a ninguno de los dispositivos internos.

O sea, que estaba completamente fuera de mis posibilidades el arreglarlo sin ayuda. Tendría que comprar una fuente de alimentación y, por lo menos, probar que esa era la única avería, pues cuando falla algo tan determinante suele haber fallos colaterales debido al pico de corriente… se «queman» los circuitos de placas delicadas. Total, que podría costarnos una pasta gansa, tener que comprar un PC, una semana de ajustes e instalación…

Y eso afortunadamente sin tener que pensar en pérdida de datos, que tengo «bacapeados» en múltiples dispositivos amén de la indefinida nube de Mega.

La verdad es que hay ocasiones en las que dudo que la tecnología esté aportando mucho a nuestra vida.

Y luego lo escribo en un blog, con un teclado y un ratón inalámbrico, mientras que gracias a la conexión de fibra óptica de casa me conecto a la red de redes donde se aloja en un servidor con wordpress instalado del que acabo de hacer una copia de seguridad por si acaso.

Es una locura… una especie de pérdida de tiempo y de dinero… pero yo siempre he sido tecnológico, casi tecnoilógico, diría.

Así que no me quedaba más remedio que intentar reparar este cacharro.

Por suerte, el dependiente de la tienda donde en su día lo adquirí ha sido de lo más diligente y me ha hecho la comprobación pertinente para determinar que efectivamente la causa única aparente del problema de arranque era la fuente de alimentación. La ha cambiado mientras yo tomaba un café descafeinado en la cafetería colindante y en una hora (un par de horas en total) ya tenía de vuelta el equipo.

Por errores de percepción o por precipitación compré el ordenador del estudio por Amazon y estoy lamentándolo casi desde el primer minuto. Fue una pésima decisión en la que ni siquiera ahorré una cantidad digna de la compra online. Tan sólo gané el envío, que, por otro lado, podría haber hecho como hoy, con un Taxi pagando con una APP del móvil por unos 12€ ida y vuelta.

Tengo que recordarlo para futuras adquisiciones. La tienda en cuestión, Main Shop, está situada en un viejo centro comercial de la calle Barquillo y apenas tiene clientes. Sin embargo, su calidad y su atención es con diferencia mucho mejor que la de las grandes superficies y, por supuesto, muchísimo mejor que una compra por Internet. Sólo espero que siga abierta pasados un par de años…

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()

Proyecto Puntuación

Sólo por ver en el navegador la pestaña de la publicación de uno de los engendros generados por el programa puntuación.c ha merecido la pena hacerlo.

La idea es realizar un libro cuyas páginas tan sólo contengan puntuación, incluidas también la ñ y la ç. Además, hay otros signos como los paréntesis, corchetes, llaves, las arrobas, almohadillas, dólares y ampersand.

No he querido emular a e.e.cummings, sino ir más allá de lo posible con una lectura imposible. Quizá más en la línea de los Cuatro Sonetos del Apocalipsis de Nicanor Parra.

Esto no es una broma