cosas que hacen cosas

Hace tiempo me dio por Arduino. Hace ya cuatro o cinco años empecé a comprarme componentes y, de cuando en cuando, un kit. Pero no hacía nada con ello, más que mirarlo todo con cierto deseo. No sé programar, la única electrónica que hice fue de crío con un juego del que no recuerdo el nombre. Jo.

Hace dos o tres semanas fue el kit de un coche, y me lió. Lo monte en una tarde. Hice compilar algunos códigos que venían con el manual. Seguí con el kit de iniciación. Y luego encontré un libro que pensaba que era estupendo, pero a través de una traducción de fantasía. Y me puse a traducirlo. Y ahora he visto en la web que hay algunos añadidos en el lenguaje y ya no sé qué hacer. ¿Escribir uno nuevo? No hay mucha documentación en español.

De momento creo que simplemente lo terminaré de traducir añadiendo lo nuevo, pero me da mucho miedito pensar en compartirlo. Porque no comprendo lo suficiente como para no equivocarme del todo. Creo que me podrá servir de documentación de trabajo, de apuntes mientras aprendo. Haré seguramente un repositorio público en gitlab cuando termine la primera vuelta de la traducción y a ver qué va sucediendo. Si me sigue interesando, si a alguien más le interesa, si Arduino no desaparece de mi vida como tantas y tantas cosas.

Pero tengo esperanzas, ya que entró despacio esta vez. Eso es una novedad. Escribí un programa (no lo copié de ninguna parte, yo solito como un jaquer) para enseñar al arduino a hablar morse (primero tuve que aprender yo, claro; no memorizarlo, aprenderlo) y me sentí… bueno, como uno de estos tipos que hackean cosas y cambian el mundo y siempre se sienten satisfechos consigo mismos, aunque sea para generar más insatisfacción y seguir caminando. Y la pobre placa simplemente no hacía más que repetir, una y otra vez y en morse, “eh, ya se hablar” mediante el pin integrado en la placa.

He visto que el lenguaje de arduino tiene punteros (supongo que como todos), lo que me ha recordado mucho al último nivel de Human Resource Machine, que me hizo sudar dolor (y consultar a gente que ya lo había resuelto). Y me ha gustado hacerlo. Lo que quiero decir es que arduino me ha pegado fuerte porque… empiezo a entender cosas, mucho más que en los tutoriales de python que he terminado (que también empiezan a aclararse ahora, muy lentamente). Está conectando cosas ahí arriba. No sé si son las correctas, o si lo están haciendo del modo correcto, claro, pero sí que todo lo que saqué y sigo sacando de juegos como los de Zachtronics, los cursos, code academy, libros, hilos de reddit y un etcétera tan enorme que a mí me stendhaliza parece que va perdiendo la coletilla de ‘pa nah’. Veremos.

Y por el camino la segunda y la tercera parte de Huim, y el libro sobre herramientas para escritores, y la eterna Criaturas del pantano que siempre está en el último lugar (no quiero más novelas basadas en cosas que me han sucedido o que me hubiera gustado que me sucedieran, o que no lo hicieran, pero el libro se empeña en suceder), y el proyecto de poemas y dibujos… al menos congelados en Git están preparados y con todo lo necesario para volver retomarlos. En realidad no es tan drástico, los voy cogiendo de vez en cuando, flores de un día que ahora se organizan unas sobre otras en vez de aniquilarse brutalmente. Git es BIEN.

Y sin entrar a EVE desde hace meses. Me da penica. No del modo en el que podría volver a entrar, si no de otro curioso. Es como si todo aquello y lo que viví, las diferentes corps, las megaflotas de guiris, el podcast, las amistades, tuvieran lugar pero ya no tiempo. Todo lo que fueron y que siempre serán, pero ya nunca hoy sino entonces. Jo.

Me parece fascinante y terrible, me desquicia en el sentido literal, que enfrente mismo de nuestros ojos estén sucediendo millones de cosas, ahí mismo, delante de nuestros ojos incluso mientras las estamos mirando fijamente, cosas como todo esto de los cacharros, cosas que suceden sin que tengamos ni idea de cómo lo hacen. Y la tarea de pieles de cebolla que hay que acometer cuando decides intentar hacerlo. Esa labor de descubriento de una realidad exterior que es configurada y dirigida por otra interior, y otra, y otra, y otra… Lo que ves es la piel, y la piel nos protege y hace mil cosas pero no bombéa sangre, no respira, no hace mandangas con el ADN. Todo eso está pasando mientras estamos mirando, todo eso y quién sabe qué más, todo eso y no sabemos cuánto. Todo eso y para quién. Todo eso y para qué, de qué, hasta cuándo.

vorágine formateadora y Solus OS

Artículo coñazo, y el que avisa es un traidor igualmente, pero quiero pensar que menos.

Por diferentes motivos que no vienen al caso (porque no los hay, no es más que simple diversión), decidí formatear la única partición de mi portátil con !#++ e instalar unos cuantos sistemas operativos, para ver qué podía sacar de ellos. No es que sea un experto, más bien todo lo contrario, así que no iba a dejar de ser una aventura. Instalé Windows 10, por el tema de que mi tarjeta Realtek 8821ae me daba bastantes problemas con las distros de GNU-Linux que había probado anteriormente. Lo hice sólo por si acaso, por si en un momento concreto necesitaba algo y me corría más prisa que el tiempo de solucionarlo (es una putada que Windows sea el Mercadona de los sistemas operativos). Me instalé un Lubuntu a modo de navaja de herramientas, Manjaro, mi favorito !#++ y Solus, por que me parecía bonito.

No por ningún otro motivo, por mucho copyright bien gordo que tiene en la página inicial del proyecto. En un principio gestionaba el arranque con Grub2, después de instalar todo con EFI… eso no viene al caso. Y me dio un montón de problemas. Primero porque utiliza su propio gestor de arranque, para mí raro, y no conseguía hacerlo funcionar con GRUB. Como todo andaba en la fase inicial no quería cambiar de gestor de arranque, y si lo hubiera hecho me habría dado cuenta de que todo se solucionaría cuando instalara rEFInd. Es un coñazo entrar en la BIOS para cambiar de SO, y más en mi portátil que pide la punta de un clip para hacerlo… Pero eso es otra vez otra historia. EL TEMA ES QUE TERMINÓ ARRANCANDO sin problemas.

Pero un par de arranques después empezó a quedarse anclado en la página de inicio. Yo introducía mi contraseña, la pantalla se iba a negro y después me volvía a aparecer el mismo menú de autorización. Parecía un error de la base de datos, así que la reconstruí (ctrol+Alt+F1, o F2, o el que te deje):

sudo eopkg rebuild-db

Y todo solucionado, volvía a poder a entrar. Pero cuando intentaba abrir algunas aplicaciones relacionadas con GNOME como cambiar el fondo del escritorio, abrir el menú bluetooth… no pasaba nada. Pensé que quizá habría algún problema con los paquetes instalados, porque pese a enchufarle el cable de red y no confiar en la conexión wifi (amada Realtek) las actualizaciones me daban error. Lo inspeccioné:

sudo eopkg check

Y los que me dieron error (sobre todo uno que se llamaba gnome desktop algo) los reinstalé:

sudo eopkg install --reinstall <pon_aquí_el_nombre_del_paquete_roto>

Y justo después actualicé todo en el terminal:

sudo eopkg up

Y a partir de ahí todo empezó a ir bien. Empecé a instalar mis programas, atom, pandoc, hunspell, sigil, calibre, llevándome la sorpresa de que todos estaban en las aplicaciones disponibles. Incluso Ghostwriter, el que tengo que compilar en !#++.

Pero… mi portátil es malo, muy malo, es un Lenovo de los peorcitos. A mí me sirve porque lo utilizo simplemente para escribir, pero una de las cosas que tiene es que, seguramente debido a algún ingeniero no muy concentrado, o probablemente muy mal pagado, la tecla mayúsculas derecha está partida por la mitad y comparte espacio con la tecla de dirección arriba, así que el 90% de las veces que intento poner una mayúscula con ella termino subiendo a la línea de arriba y destrozándolo todo. Vi que Solus utilizaba xmodmap, lo cual fue un alivio. Ya había hecho esto con !#++ y podía convertir la tecla de arriba en una nueva mayus izq (la derecha, por algún motivo que no entiendo, no me funcionó) con:

xmodmap -e "keycode 111 = Shift_L"

Pero esa es una solución temporal que se pierde cada vez que reinicias. En Openbox lo solucione añadiéndolo al archivo autostart, pero en Solus no me funcionó. Puse el código en ~/.config/autostart pero no me hizo ni caso, modifiqué el ~/.xinitrc pero no hubo manera.

Así que, finalmente, me cree un bash en el escritorio:

#!/bin/bash
xmodmap -e "keycode 111 = Shift_L"

Instalé alacarte (en los repositorios de Solus OS), lo convertí en una aplicación y desde gnome-tweak lo añadí a las aplicaciones que se cargan al inicio. Solucionado.

Instalé dropbox con el repo nautilus-dropbox, me peleé un rato con mega y lo dejé para más adelante.

Y el caso es que ahora mismo estoy escribiendo esto desde Atom en Solus OS. No va a ninguna parte, no me voy a morir más tarde y con más gloria por ello, pero estoy contento.

¿Está bien Solus? No tengo ni idea. Yo soy un usuario medio con una gran curiosidad, pero entiendo que mucha gente se habría rendido antes y formateado la partición y hasta mañana. Como parte positiva, muy positiva, parece que traga con la tarjeta Realtek y tanto el bluetooth como la wifi funcionan de manera correcta. Es la primera vez que puedo utilizar unos cascos bluetooth con este pc (excepto en Windows 10, claro).

¿Es suficiente? Y yo qué sé. Pero mola. Yo instalo un nuevo SO y veo que git y python están instalados (que es lo normal) y ya soy más que feliz, así que no soy un referente de nada.

Y eso que, aunque Git lo uso intensivamente, Python simplemente lo sueño. Lo imagino.

(Pero ese fuego tiene mucho más sentido, lo tiene practicamente todo).

Lo sé, lo sé. Sé que, si aún queda alguien viendo esto, me esfuerzo con fuerza para que deje de hacerlo.

Así queda mi tabla de particiones, hoy por hoy. La segunda swap y la BIOS boot son vergüenzas de las que no voy a hablar ahora mismo.

Y yo qué sé. Todos los programas que utilizo funcionan bien en Solus. El problema de la tecla ya no es problema. Estoy escuchando

en Spotify desde mis cascos bluetooth. Escribiendo desde Atom. Dejando un rastro en GIT. Y eso es suficiente, de momento. No puedo decir más. Ni quiero.

crear un epub con pandoc y sigil

Pasos previos.

Parto de archivos formateados en markdown. Si aún no lo usas para escribir empieza ya, es un lenguaje de marcado en un archivo de texto plano que podrás abrir con cualquier programa, no serás dependiente de uno solo. Lo básico es aburridamente sencillo:

# título principal (nombre del libro)
## título secundario (nombre del capítulo)
### título terciario (partes dentro de un capítulo)

*cursiva*
**negrita**

Más tarde pandoc traducirá a xhtml en el epub toda esa información y el índice de tu documento será resultón. Tú sólo escribes unas almohadillas y un par de asteriscos, y la magia la hace quien la tiene que hacer: el pc, dejándote a ti centrado simplemente en escribir.

Hay más, por supuesto, notas, definiciones… si quieres saber más pulsa en el enlace de la primera línea de la entrada.

Si te empeñas en utilizar un editor de texto tipo Word o Libreoffice, Pandoc convierte sin problema de .doc o .odf a .epub, así que no te rindas todavía.

Aunque el uso que tendremos que hacer del terminal con Pandoc tiene una complicación mínima, si vas a utilizarlo directamente tendrás que saberte mover por los archivos de tu pc con él. Si no, te recomiendo que utilices Ghostwriter para escribir en markdown y exportar tu archivo a .epub, aunque tendrás que instalar igualmente Pandoc (de eso no te libras, pero una vez instalado no volverás a tocarlo).

Exportando a epub.

Pandoc es un conversor sin interfaz gráfica, así tendremos que utilizarlo en un terminal, pero que nadie pierda fuelle porque para lo que necesitamos con un par de comandos nos bastará.

Si queremos usar pandoc directamente vamos en el terminal al directorio donde tenemos el archivo y escribimos

pandoc -s nombredemiarchivo.md -o nombredemiarchivo.epub

Si tu archivo es un .docx, pues eso

pandoc -s nombredemiarchivo.docx -o nombredemiarchivo.epub

Y si lo has escrito en Libreoffice, pues lo mismo

pandoc -s nombredemiarchivo.odf -o nombredemiarchivo.epub

-s sirve para generar un archivo autónomo, no una parte de otro (y creo que en el caso del epub no es necesario) y -o marca el destino, ya que podemos mezclar varios archivos de origen para generar el final. Si lo tenemos también podemos añadir una hoja de estilo para darle formato al epub, añadiéndolo en el comando (si quieres olvídate de esto, pandoc genera un .css por defecto que podremos modificar en sigil)

pandoc --css miestilo.css -s nombredemiarchivo1.md nombredemiarchivo2.md -o nombredemiarchivo.epub

Y con eso ya tendremos nuestro libro en formato epub. Pandoc tiene muchas más opciones y se puede mezclar con YAML para los metatags y un montón de cosas más, pero creo que será más sencillo hacerlo con Sigil.

Si queremos convertirlo desde Atom tendremos que instalar pandoc-convert

pandoc-convert

y una vez hecho abrir la paleta (ctrol mayus p) y escribir pandoc convert: epub

pconvert

Desde Ghostwriter simplemente pulsaremos ctrol E para exportar y seleccionaremos como formato de destino .epub. Ghostwriter mola, sobre todo si no quieres complicarte. Escribes utilizando las almohadillas y los asteriscos y cuando terminas directamente exportas, y te olvidas del terminal.

Completando con Sigil.

Instalamos Sigil, lo abrimos y archivo / abrir y seleccionamos el archivo que acabamos de crear del modo que sea.

En herramientas / índice de contenido creamos un índice automático (esas almohadillas salvadoras que pusimos para marcar el título del libro y los capítulos, aunque ya estará hecho por defecto gracias a esas mismas almohadillas, soy un neurótico).
En herramientas / portada subimos la imagen de portada desde el pc.
En herramientas / editor de metadatos introducimos los que queramos (autor, título, colección, idioma, etc).

Si vamos a usar un archivo css, antes del paso siguiente nos aseguramos que está bien enlazado. En vista / vista de código buscamos una linea parecida a:

<link rel="stylesheet" type="text/css" href="../Styles/stylesheet.css"/>

entre las etiquetas del encabezado. Si no está, la incluimos (estará, vuelve el neurótico).

Tampoco hace falta tener mucha idea de css para un libro de texto sencillo, yo suelo usar

h1, h2, h3 {
color: #333;
padding-top: 25%;
}

#copyleft {
font-size: x-small;
text-align: center;
padding-top: 25%;
}

El primer párrafo para que el título de la novela, del capítulo y de los subcapítulos no aparezcan arriba del todo de la página y para diferenciarlos en un gris oscuro, y el segundo para que el texto del copyleft aparezca más pequeño, centrado y tampoco arriba del todo.

Las etiquetas que hemos generado en markdown con #, ## y ### se convierten en h1, h2 y h3 al convertir el documento.

Entramos en las carpetas de la izquierda, Styles, stylesheet.css y lo modificamos como queramos (o lo dejamos como pandoc lo crea por defecto, al gusto).

s-css

Toda tu novela, antes de cortar, está en ese archivo ch001.xhtml

Terminamos con la herramienta edición / dividir en el cursor, para que nos cree un archivo nuevo para cada capítulo. Ponemos el cursor en el final del primer capítulo y cortamos, y nos genera un archivo nuevo con el resto. Nos vamos al nuevo y repetimos, y así hasta tenerlo todo dividido por capítulos. Las páginas introducen (claro) un salto de página automático, así que será útil sólo para cuando queramos que el texto termine en un punto y empiece en la página siguiente de nuestro lector.

Archivo / guardar y hemos terminado.

Notas finales.

He intentado hacer una especie de manual para alguien que no tenga ni idea de dónde se está metiendo, y siguiendo estos pasos se crea un .epub más que decente. Por supuesto, se está infrautilizando tanto markdown como pandoc y sigil, pero con esto basta y más adelante cada uno aprenderá lo que necesite de cada uno de ellos.

Aún así, releyendo me sigue pareciendo complicado. Os aseguro que al hacerlo el proceso para crear un .epub dura cinco minutos como mucho. Lo más sencillo con diferencia es escribir con ghostwriter, utilizar su herramienta de exportación y completar con Sigil.