373 - Tus notas en la nube y en la línea de comandos

PodcastPodcast

373 - Tus notas en la nube y en la línea de comandos

Te cuento como tener tus notas en la nube y en la línea de comandos a golpe de clic de forma sencilla, minimalista pero tremendamente potente

1:25
-3:15

Me he vuelto un perezoso o un minimalista, según como quieras vestir al santo. La cuestión es que antes, cuando salía de viaje, me llevaba siempre mi portátil. De esta manera, aprovechaba cualquier rato para escribir un artículo, o preparar el guión de un nuevo podcast o de un nuevo vídeo. Sin embargo, como digo, cada vez me resulta mas incómodo, llevarme el ordenador. ¿Para que quiero llevarme el ordenador? Normalmente, vaya donde vaya, siempre tengo un ordenador a mi disposición, con lo que me puedo olvidar de esto. Pero evidentemente, si que necesito mis notas. Necesito llevar mis notas, al menos, las notas en las que estoy trabajando allá donde voy, sea donde sea. Cierto, es que podría recurrir a un USB, pero sin lugar a dudas, esto sería uno de los errores mas graves que podría cometer. Así que lo mejor es tener tus notas en la nube y en la línea de comandos.

Ya lo comenté en el episodio 155 del podcast titulado adios memorias USB, y es que, en pleno siglo XXI seguir lidiando con memorias USB, me parece anacrónico no, lo siguiente. Entiendo, que en determinadas circunstancias no pueda ser, pero teniendo una Raspberry o un VPS, de verdad, para que necesitas una memoria USB.

Tus notas en la nube y en la línea de comandos

Esto desde luego es aplicable a quienes, como yo están todo el día en la terminal, o no les imparta recurrir a la terminal para tomar sus notas, porque habitualmente siempre la tienes abierta. Sin embargo, si no tocas la terminal, ni con un palo, desde luego, que esta herramienta no es para ti.

A mi, en particular, me parece una solución espectacular, porque esté donde esté en mi equipo, con una sola línea soy capaz de guardar mis pensamientos. Y no solo esto, sino que además me permite guardarlos de forma organizada.

Me he dado cuenta, que en ocasiones, pierdo información por no anotarla. Porque si, está muy bien, eso de tener una buena memoria, pero, como se dice mas vale un lápiz corto, que una memoria larga. Y sin lugar a dudas esto, en mi caso, es mas que cierto.

dnote

¿Que es dnote? Es un libreta para la línea de comandos. Una libreta donde llevar tus notas de forma sencilla aunque ordenada. Realmente, mas que una libreta, tendríamos que llamarlo libreta de libretas, porque te permite organizar las notas por libretas.

El objetivo principal de dnote es proporcionarte una forma de capturar y recuperar información sin salir del terminal. De forma sencilla, práctica y efectiva.

Esto es precisamente lo que andaba buscando, una forma de anotar y consultar de forma rápida todo aquello que se me va ocurriendo. Pero sobre todo, tener la opción de poder consultarlo igual de rápido.

Se trata de una aplicación, implementada en Go y que es realmente sencilla y potente.

¿Donde están mis notas?

Aquí te tengo que dar una buena y una mala noticia. Empezando por la mala, indicarte que las notas no se guardan en archivos independientes en texto plano. No una lástima. Pero la buena noticia es que se guardan en una base de datos SQLite. Esto quiere decir, que puedes extraerla de forma sencilla y exportarlas a markdown.

Esto lo puedes con un script en Python, por ejemplo, como el que te muestro a continuación,

import sqlite3

DB = '~/.local/share/dnote/dnote.db'

def main():
    sql = "SELECT * FROM notes"
    conn = sqlite3.connect(DB)
    cursor = conn.cursor()
    cursor.execute(sql)
    items = cursor.fetchall()
    for item in items:
        filename = f"{item[0]}.md"
        with open(filename, 'w') as file_writer:
            file_writer.write(item[2])


if __name__ == "__main__":
    main()

Aquí el único inconveniente es el nombre del archivo que es un poco extraño, pero tampoco es nada del otro mundo. Además podrías exportar cada uno de las notas a su correspondiente libreta. Creando para ello un directorio correspondiente a la libreta, y guardando en ese directorio cada una de las notas.

Una vez lo exportado a archivos con formato markdown, puedes utilizar una herramienta como Glow para verlos formateados directamente en la terminal.

Instalación

En el caso de Linux y MacOS la puedes instalar de forma realmente sencilla con tan solo ejecutar la siguiente instrucción en una terminal,

curl -s https://www.getdnote.com/install | sh

Una vez instalada tendrás que modificar el archivo de configuración para realizar las sincronizaciones según te comentaré a continuación. El archivo de configuración se encuentra en ~/.config/dnote/dnoterc.

Uso y funcionamiento

Como te decía antes, el uso es tremendamente sencillo, simplemente tienes que escribir dnote seguido de uno de los siguientes comandos,

  • add Añade una nueva nota
  • edit edita una nota o una libreta
  • find encuentra notas en base a palabras
  • help muestra la ayuda general o por comando
  • login se registra con un servidor
  • logout se desregistra de un servidor
  • remove elimina una nota o una libreta
  • sync sincroniza toda la información con el servidor
  • version muestra la versión
  • view lista libros, notas o el contenido de una nota

Por ejemplo en el último caso, con el comando view puedes ver todas las notas organizadas por libretas. Así por ejemplo,

  • dnote view muestra todos las libretas con el número de notas por libreta.
  • dnote view <nombre-de-libro> te permite ver todas las notas de esa libreta.
  • dnote view <nombre-de-libro> <numero-de-nota> te muestra esa nota en concreto

Como ves son unas pocas instrucciones pero las suficientes. Como te decía anteriormente. Aquí lo importante es centrarte en lo que estés haciendo y las notas son algo marginal.

¿Y el servidor?

Si, veo que ya te has dado cuenta. Aquí está precisamente la gracia de todo lo que te estaba diciendo al inicio del artículo. Necesito esto para utilizarlo donde vaya sin necesidad de recurrir a utilizar una memoria USB.

Esta herramienta te permite sincronizar todas tus notas, con un servidor remoto. Inicialmente existe un servidor que te permite guardar todas las notas que quieras. Esta solución tiene un coste de 5 dólares al mes.

Pero, por supuesto, existe una alternativa auto hospedad, para que levantes tu propio servicio de forma sencilla. Este servicio tiene las siguientes características,

  • te permite sincronizar tantos dispositivos como necesites
  • la interfaz web es adaptativa y está diseñada siguiendo el concepto mobile first
  • Puedes tener tantas notas como libretas quieras y necesites
  • Te permite compartir cada una de las notas con quien quieras con tan solo utilizar un enlace.
  • Puedes acceder vía rest api. Aunque te tengo que confesar que llevo varios intentos, buscando los diferentes endpoint y todavía no he dado con ellos. Aunque por el momento no me preocupa en absoluto.

Uso del servidor

De nuevo el uso de la parte del servidor es tan simple, sencilla y minimalista como el caso de la línea de comandos. Básicamente tienes las siguientes opciones,

  • New te permite crear una nueva nota asociándola a algunas de las libretas que hay disponibles. Para cada una de las notas tienes un editor en texto plano, pero plano, plano. No vas a encontrar ni una barra de herramientas ni atajos de teclado, ni absolutamente nada. Eso si, si escribes la nota en markdown puedes previsualizarla.
  • Books accedes a la parte de libretas, donde puedes crear tu propia libreta, buscar entre las distintas libretas o seleccionar una de las libretas para ver su contenido.

Si vas a la página principal encontrarás todas tus notas agrupadas y ordenadas por fecha. Allí, puedes realizar búsquedas en todas las notas, y buscando por palabras clave. O en lugar de buscar en todas las notas, puedes seleccionar aquellas libretas donde quieres buscar.

Cuando entras en una nota, tienes varias opciones. Así puedes o bien simplemente ver el contenido de la nota, o bien editar la nota, como te he indicado anteriormente o compartir la nota. Al compartir la nota, todo aquel que tenga el enlace de la nota podrá ver su contenido.

Configuración del servidor

De nuevo la configuración del servidor es tremendamente sencilla. Tienes básicamente dos apartados y un acerca de….

  • Account te permite configurar datos relativa a la cuenta, como tu correo electrónico, la ferificación del correo electrónico y una contraseña para proteger toda tu información.
  • Notifications te permite configurar algunas preferencias en lo que se refiere a las notificaciones. Por ejemplo, que te notifique cunando dejes de aprender nuevas cosas, o cuando haya nuevas características y actualizaciones.

Conclusiones

Durante estas últimas semanas, he estado buscando soluciones para lo que he comentado al inicio del podcast, es decir, para tener mis notas en la nube. Esta solución, de tener mis notas en la nube y además en la línea de comandos me parece soberbia. Poder editar mientras viajo, y tener todas mis notas sincronizadas de alguna forma. Actualmente en el servidor tendré mas de media docena de herramientas para notas, entre las que puedo citar,

  • hedgedoc
  • joplin
  • lanote
  • standardnotes
  • wiki
  • wikijs
  • dnote

Las hay mas complejas y mas sencillas. Con muchas características y con pocas características. Y finalmente me he decantado por dnote. En mi equipo me deja trabajar con NeoVim y cuando estoy de viaje, puedo hacerlo en texto plano utilizando la sintaxis de markdown.

Lo tengo todo sincronizado y me permite búsquedas de forma sencilla, tanto en la terminal como en la web. Creo que es la solución que mejor se adapta a mis necesidades.


Más información,

GitHub

2 comentarios en “Tus notas en la nube y en la línea de comandos

  1. rfog (from WinTablet) hace 6 meses

    Maremía, no toco yo eso ni con un palo (ejem). ¿Tomar notas en la línea de comandos? ¿Y cómo recuerdas las libretas y dónde está cada cosa? Hacéis unas cosas los linuxeros… 😛

    1. atareao hace 6 meses

      En contra de lo que podrías pensar, es una auténtica comodidad… Todo lo tienes en la línea de comandos. Tal y como explico en las notas,

      * ver las libretas: dnote view
      * ver el contenido de una libreta: dnote view
      * ver el contenido de una nota: dnote

      Y poder editar directamente en el navegador cuando estoy lejos de mi equipo es una comodidad…

Deja una respuesta

Tu dirección de correo electrónico no será publicada.