VIM + Markdown = Sorprendente

¿Qué es?

En artículos anteriores ya habíamos hablado acerca de Markdown. VNote es una aplicación para tomar notas, diseñado especialmente para Markdown. Pero no es otro editor más. No posee doble panel como ReText o Haroopad. Tampoco es WYSIWYG como Typora o Mark Text. El problema con el primer enfoque es que contar con dos paneles no favorece a la concentración. La segunda táctica contradice en cierta manera el espíritu de markdown que es la capacidad de tener control sobre lo que se está escribiendo.

El intento de VNote por acortar la distancia entre escritura y lectura que ofrece Markdown es muy ingenioso. Recuerda al WYSIWYM del editor LyX. Claro, la diferencia es que markdown es por lejos, mucho más amigable que LaTeX.

VNote usa libretas, carpetas y notas para la jerarquía de las notas para administrar las notas. Este principio de una 1 nota, 1 archivo favorece la gestión por parte del usuario. Algo que no ocurre con otros intentos como MindForger, por citar un ejemplo.

Ficha

VNote
Author: Le Tan
Licencia: MIT
Sitio Web: tamlok.github.io/vnote

¿Para qué sirve?

  • Para escribir notas y organizarlas
  • Los siguientes usos no fueron parte principal del propósito que tuvo en mente el desarrollador, no obstante, se puede adaptar bastante bien para:*
    • Para escribir artículos técnicos
    • Para escribir posts para un blog
    • Para escribir documentación

Funcionalidades

  • Facilita el ingreso de textos frecuente (Snippets)
  • Expansión de palabras permite el ingreso de la fecha actual, nombres y otros textos de manera rápida (Word Magic). Viene con una lista predeterminada, pero se pueden agregar más a la misma
  • Plantillas
  • Temas y estilos
  • Guarda sesiones, es decir permite seguir trabajando con los mismos archivos que teníamos abierto en la sesión anterior
  • Exportación: Markdown con sus imágenes y adjuntos en una carpeta para distribuir, motor interno para convertir a pdf. También soporta la conversión usando wkhtmltopdf u otro comando personalizado.
  • Potente motor de búsqueda, que permite buscar entre una o más notas e incluso por tags de las mismas.
  • MathJax para interpretar ecuaciones matemáticas $$ a^2 + b^2 = c^2 $$
  • Diagramas mediante Mermaid o Flowchart
graph TD
A(VNote)-->B[Qué es];
     A-->C[Para qué se usa];
     A-->D[Funcionalidades];
     A-->E[Como instalarlo];
     A-->F(Conclusión);

  • Soporte para emojis

    Por favor no vote a un :cat:

emojis

  • Pestañas
  • Modo vim

Conclusiones

Me gusta que tenga un modo lectura y un modo edición, en lugar de código puro y panel para previsualizar, el modo Vim es sorprendente y para mis preferencias y necesidades lo convierte en un claro ganador frente a otras alternativas. Asimismo, la impresión que genera VNote es la de un proyecto que se ha interesado en detalles que a veces se pasan por alto en proyectos Open Source.

¿Buscando Más?

VNote = Markdown + VIM

¿Qué es?

En artículos anteriores ya habíamos hablado acerca de Markdown. VNote es una aplicación para tomar notas, diseñado especialmente para Markdown. Pero no es otro editor más. No posee doble panel como ReText o Haroopad. Tampoco es WYSIWYG como Typora o Mark Text. El problema con el primer enfoque es que contar con dos paneles no favorece a la concentración. La segunda táctica contradice en cierta manera el espíritu de markdown que es la capacidad de tener control sobre lo que se está escribiendo.

El intento de VNote por acortar la distancia entre escritura y lectura que ofrece Markdown es muy ingenioso. Recuerda a su WYSIWYM del editor LyX. Claro, la diferencia es que markdown es por lejos, mucho más amigable que LaTeX.

VNote usa libretas, carpetas y notas para la jerarquía de las notas para administrar las notas. Este principio de una 1 nota, 1 archivo favorece la gestión por parte del usuario. Algo que no ocurre con otros intentos como MindForger, por citar un ejemplo.

Ficha

VNote
Author: Le Tan
Licencia: MIT
Sitio Web: https://tamlok.github.io/vnote/

¿Para qué sirve?

  • Para escribir notas y organizarlas Los siguientes usos no fueron parte principal del propósito que tuvo en mente el desarrollador, no obstante, se puede adaptar bastante bien para:
  • Para escribir artículos técnicos
  • Para escribir posts para un blog
  • Para escribir documentación

Ventana de Vnote

Funcionalidades

  • Facilita el ingreso de textos frecuente (Snippets)
  • Expansión de palabras permite el ingreso de la fecha actual, nombres y otros textos de manera rápida (Word Magic). Viene con una lista predeterminada, pero se pueden agregar más a la misma
  • Plantillas
  • Temas y estilos
  • Guarda sesiones, es decir permite seguir trabajando con los mismos archivos que teníamos abierto en la sesión anterior
  • Exportación: Markdown con sus imágenes y adjuntos en una carpeta para distribuir, motor interno para convertir a pdf. También soporta la conversión usando wkhtmltopdf u otro comando personalizado.
  • Potente motor de búsqueda, que permite buscar entre una o más notas e incluso por tags de las mismas.
  • MathJax para interpretar ecuaciones matemáticas
    a2+b2=c2
  • Diagramas mediante Mermaid o Flowchart
VNote
Qué es
Para qué se usa
Funcionalidades
Como instalarlo
Conclusión
 ![](_v_images/1539005194_597894539.png)
  • Soporte para emojis

**Por favor no vote a un 🐱 **

  • Pestañas
  • Modo vim

Conclusiones

Me gusta que tenga un modo lectura y un modo edición, en lugar de código puro y panel para previsualizar, el modo Vim es sorprendente y para mis preferencias y necesidades lo convierte en un claro ganador frente a otras alternativas. Asimismo, la impresión que genera VNote es la de un proyecto que se ha interesado en detalles que a veces se pasan por alto en proyectos Open Source.

¿Buscando Más?

Mark Text: Markdown en tiempo real

Hace algún tiempo había escrito sobre Typora un editor de markdown excelente, pero que lamentablemente no es software libre. Pero hace unos días descubrí a Mark Text que hasta donde se es el primer editor de texto libre que interpreta automáticamente markdown. ¿Qué quiero decir con esto? Que si tipeamos lo siguiente:

**importante**

Lo transformará inmediatamente en:

importante

Otras funcionalidades que posee Mark Text son:

  • Autocompleta tags
  • Abre y cierra automáticamente:
  • Comillas ''
  • Corchetes []
  • Paréntesis ()
  • Llaves {}
  • Emojis
  • Resalta código fuente de acuerdo al lenguaje
  • De ser necesario además, propociona una vista en código fuente.
  • Formatea fórmulas matemáticas, por ejemplo, aquí debajo vemos el Teorema de Bayes:

$$P(A_i|B) = \frac{P(B|A_i) P(A_i)}{P(B)}$$

😢 Mark Text llamativamente no interpreta HTML Mark Text interpreta html en bloque, por ejemplo:

<H1>
  Encabezado 1
</H1>

Pero no html crudo:

<H1>Encabezado 1</H1>

Más allá de este y otros glitches no invalidan esta aplicación, y teniendo en cuenta la gran comunidad que tiene seguramente se convertirá en una gran alternativa para Typora.

Fuente de los "Hola Mundo": Anexo:Ejemplos de implementación del «Hola mundo» - Wikipedia, la enciclopedia libre

Como medir la memoria compartida

    Etiquetas : 

Medir la memoria RAM es una tarea complicada. Podemos ejecutar el comando ps y somar los valores de una determinada columna, pero no nos va a dar el resultado correcto. Los sistemas operativos actuales como Linux usan memoria virtual, esta les permite utilizar parte de la memoria RAM que necesita cada aplicación y sobreasignar la cantidad de memoria RAM, simulando que poseen mucha más memoria. Además, la mayoría de los programas usan librerías compartidas. Entonces al abrir otra aplicación que usa la misma librería que otro programa en ejecución ahorra cierta cantidad de memoria RAM. Por ejemplo, supongamos que queremos ver la cantidad de memoria que consume Firefox, si lo intentamos con ps:

ps -Cfirefox -o vsz --no-headers | awk '{ sum += $1 } END { print sum/1024/1024 }'

Eso da como resultado (en este caso particular) 3.75465 GB ¿Parece mucho, no?

En realidad ese resultado es poco significativo. El campo vsz es el tamaño de la memoria virtual que usa un proceso. Esto es: la memoria física realmente utilizada más memoria que el proceso puede llegar a necesitar en algún momento, más la memoria swap empleada.

Podríamos medirlo con un parámetro un poco más exacto tal como ls RSS. RSS (Resident Set Size) es la cantidad de memoria asignada a ese proceso y está en RAM. No incluye swap. Incluye la memoria de librerías compartidas siempre que las páginas de esas librerías estén en memoria.

Estos serían los resultados

pgrep -f /usr/lib64/firefox | xargs ps -o rss --no-headers | awk '{ sumrss += $1 }  END { print sumrss/1024/1024  }   '
2.92811

Pero existe una herramienta llamada smem que mide valores más útiles, estos son PSS y USS. PSS divide los bloques de memoria virtual compartida por la cantidad de procesos que en ese momento tienen una entrada en la tabla que traduce direcciones virtuales a físicas para la página. Dicho de otro modo la memoria compartida se divide por la cantidad de procesos que la usan.

Además, smem informa acerca de USS que es la memoria que no está compartida con otros procesos.

smem -tk -P/usr/lib64/firefox

Como se puede apreciar una diferencia de 17% respecto a la RSS

Además, smem puede mostrar la información de manera gráfica:

Fuentes y recursos adicionales

ranger

ranger es un gestor de archivos de consola con atajos de teclado de VI. Proporciona una interfaz minimalista y bonita basada en curses con una vista en la jerarquía de directorios. Viene con rifle, un lanzador de archivos bueno para encontrar cual programa usar para cada tipo de archivo.

Tenemos entonces un administrador de archivos fácilmente mantenible en un lenguaje de alto nivel. Una manera rápida de cambiar de directorios y navegar el sistema de archivos. Es pequeño pero útil, hace una cosa y la hace bien. Al estar basado en la consola, con una fácil integración en la shell de unix.

Desde ranger podemos ir a una shell (S mayúscula mediante) y volver a ranger (con exit). Además, posee atajos similares al viejo Midnight Commander con las teclas de función. Mediante w3m-img podemos previsualizar imágenes. Además, buscar archivos, cambiar archivos, crear directorios, renombrar archivos, etc.

No reemplaza a herramientas gráficas como Dolphin, pero sin duda es bueno tenerlo a mano cuando necesitamos la rapidez y la eficacia de la consola de texto.

Enlaces

Latte Dock

De acuerdo a su descripción:

Latte Dock es una barra de tareas basada en los frameworks de plasma que proporciona un elegante e intuitiva experiencia para las tareas y plasmoides. Anima sus contenidos por medio de efectos de zoom parábolico e intenta aparecer solamente cuando se la necesita.

Latte Dock fue creado por Michail Vourlakos. Creo que es un buen candidato a ser el panel predeterminado en KDE Plasma. Si bien faltan pulir algunas cosas, es muy configurable, relativamente fácil de usar y muy elegante. Tiene al menos 3 esquemas de configuración (además de uno personalizado): Unity - que recuerda al fallido entorno creado por Ubuntu - , Plasma y Extended.

Aquí algunas imágenes del mismo:

Enlaces:

5 ejemplos con journalctl

Las siguientes son ejemplos de consultas que podemos hacer con journaltcl:
  • ¿Cómo busco un comando o aplicación?
    journalctl \_COMM=master
  • ¿Cómo busco un usuario?
  • journalctl _UID=1000”
  • ¿Cómo veo los logs en un intervalo de tiempo?
    journalctl -S 2017-12-11 -U “2017-12-13 12:15”
  • ¿Cómo busco una determinada unidad?
    journalctl -u httpd
  • ¿Cómo veo los (posibles) problemas?
    journalctl -p notice

journalctl

Lo viejo, lo bueno y lo nuevo en Neovim

Características

El editor Neovim se presenta como el sucesor del editor Vim.

  • El conector entre componentes de software, MessagePack de manera eficiente intercambia datos en binario y sirve para intercambiarlos en lenguajes tales como JSON.
  • Los plugins remotos son coprocesos que tienen un canal de comunicación por medio de RPC con el proceso de neovim. Estos plugins además se ejecutan de manera asíncrona, mejorando así el rendimiento.
  • Una configuración predeterminada más potente y amigable.

La configuración predeterminada incluye las siguientes funcionalidades:

  • Cuando se detecta que un archivo ha sido cambiado dentro de Vim, automáticamente lo lee de vuelta.
  • Permite borrar una autoindentación,  saltos de línea y al comienzo de inserción.
  • Ahora los directorios de backup están en ~/.local/share/nvim/backup siguiendo las directrices xdg [^1]
  • Resalta los resultados coincidentes de búsquedas
  • Realiza búsquedas incrementales
  • Muestra siempre la línea de estado
  • Ahora se pueden ver mejor las tabulaciones y espacios al final de cada línea
  • Muestr el comando que se está ejecutando
  • Manejo más inteligente de tabulaciones
  • Asume una terminal de conexión rápida
  • La campanilla está deshabilitada para todos los eventos
  • El directorio para temporales está en ~/.local/share/nvim/swap [^1].
  • El comando display muestra la última línea de los registros.
  • Justifica automáticamente usando el ancho del texto, inserción y borrado inteligente de caracteres de comentarios.

Configuración

  • En $HOME creamos un enlace:

lrwxrwxrwx 1 sergio sergio 19 nov 5 23:30 init.vim -> /home/sergio/.vimrc

  • Y también en $HOME/.config:

lrwxrwxrwx 1 sergio sergio 17 nov 5 23:30 nvim -> /home/sergio/.vim

  • En $HOME/.vimrc
if has(‘nvim’) 
  Plug ‘Shougo/deoplete.nvim’, { ‘do’: ‘:UpdateRemotePlugins’ } 
  Plug ‘vim-airline/vim-airline’ 
else 
  Plug ‘Shougo/deoplete.nvim’ 
  Plug ‘roxma/nvim-yarp’ 
  Plug ‘roxma/vim-hug-neovim-rpc’ 
  python3 from powerline.vim import setup as powerline_setup 
  python3 powerline_setup() 
  python3 del powerline_setup 
  set laststatus=2 
  set t_Co=256 
endif 
 
let g:deoplete#enable_at_startup = 1 
 
neoterm 
Plug ‘kassio/neoterm’ 
 
“call vundle#end()            “ required 
call plug#end() 

Nuevas funcionalidades provenientes de plugins

Algunos de estos plugins son:

  • far.vim: Buscar y remplazar, abre un panel de vista previa.
  • deoplete.nvim: Autocompletar.
  • floobits: Etherpad usando neovim.
  • neoterm: Terminal embebida.
    neoterm
  • vim-pandoc: Integración con el conversor de lenguajes de marcas ligeros pandoc.

Conclusión

El editor VIM es una extraordinaria herramienta, no obstante adolece de disparidad en sus configuraciones predeterminadas, algunos inconvenientes de rendimiento e integración con otros componentes de software. Neovim viene a responder a estos inconvenientes y por ahora lo está haciendo muy bien. De hecho, VIM en su versión 8, incorporó muchas mejoras provenientes de Neovim. El tiempo dirá si los proyectos se terminan fusionando. Lo importante es que tenemos una alternativa moderna al casi treintañero VIM.

Notas

[ ^1 ]: Freedesktop.org

Buku: Reduciendo el ruido de la web

El navegador Mosaic ya en 1993 contaba con la posibilidad de guardar los documentos favoritos de la web. En la actualidad, con conexiones de banda de ancha grande el uso de marcadores parece haber declinado. Muchas veces, nos da igual guardarlo como favorito, como buscarlo en el historial del navegador o buscarlo nuevamente en Google, DuckDuckGo, Gigablast, etc. No obstante, si queremos mantenernos enfocados en nuestro trabajo y/o estudio, es muy conveniente tener nuestra propia selección de sitios web de interés.

Buku es un poderoso gestor de marcadores/favoritos escrito en python, utiliza el analizador de HTML/XML para extraer datos. Estos últimos se guardan en una base datos sqlite3.buku

Además, permite exportar e importar hacia y desde diferentes lugares. Opcionalmente la base se puede cifrar con AES256,  un algoritmo de criptografía asimétrica, el cual usa rondas de substitución y permutación.

Además, con herramientas como xclip o xsel se puede escribir un pequeño script para guardar rápidamente un marcador con buku desde un navegador con interfaz gráfica.

Typora, el mejor editor markdown

Soy un fan de los LML’s (Lightweight Markup Language) ya que permiten crear documentos sin necesidad de recurrir a un procesador de textos. Obviamente no son perfectos. Pero, ¿existe algún software que lo sea? ¿Por otro lado, cuántas funcionalidades usamos de un procesador de textos? Si utilizás:

  • Formatos básicos de tipografías (negrita, cursiva, subrayado, tachado)
  • Inserción básica de imágenes

  • Niveles de encabezados o títulos
  • Tablas sencillas
  • Numeración y viñetas
  • Hipervínculos
  • Notas al pié

probablemente podrías reemplazar el uso de un paquidérmico procesador de textos por un editor de textos más un LML como markdown.

Si esto te parece poco, markdown permite:

  • Resaltar código fuente
  • Formato especial para fórmulas matemáticas:
  • Citas:

    No todo oro reluce, ni toda la gente errante anda perdida

    J. R. R. Tolkien

Por otro lado, aplicando un poco de HTML y CSS podés ampliar notablemente la variedad de formatos.

Hasta ahora había dos maneras de usar markdown:

  • Escribiendo el código LML y posteriormente un compilador de markdown que convierte el archivo a un formato como HTML, PDF, etc.
  • Un editor específico de markdown, es decir, que incluye la capacidad de conversión a otro formato.

Pero Typora introduce una nueva manera, tan útil que uno se pregunta cómo no se le ocurrió a nadie hasta ahora:

  • Con Typora se escribe en markdown y automáticamente se muestra en la misma ventana el código interpretado. Es decir es WYSIWYG.

Esto permite focalizarnos en el texto que escribimos. Digámoslo de una vez: qué es más importante: ¿el contenido, o las decenas de botones y herramientas de un procesador textos?

Typora utiliza electron y está disponible para distintos sistemas operativos:

Typora — a minimal markdown editor, markdown reader.