Paz y Propósito

En la materia de la Tierra había pensado Aulë, a quien Ilúvatar había concedido una capacidad y un conocimiento apenas menores que los de Melkor; aunque lo que deleita y enorgullece a Aulë es la tarea de hacer y las cosas hechas, y no la posesión ni su propia maestría; por tanto da y nos atesora, y está libre de cuidados, emprendiendo siempre nuevas tareas.

El Silmarillion, JRR Tolkien

En las organizaciones de todo tipo podemos encontrar al menos estos tres tipos de disfuncionalidades:

Autoestima deficiente

Si una persona no tiene una autoestima sana, buscará algunos de estos métodos para disfrazar o aliviar ese padecimiento:

  • Involucrarse en tareas que no coinciden con sus mejores habilidades
  • Buscar la propia valía a través de tareas que termina superando y agotando sus recursos
  • Desplazar a quienes se interpongan en su camino
  • Forzar acontecimientos
  • Decir lo que otros quieren, pero no formar y hablar con voz propia
  • Culpar a otros por fracasos propios
  • No reconocer el mérito por los logros propios
  • La ausencia de protagonismo
  • Insatisfacción
  • Bronca y en casos extremos, odio
  • Obsesión por las metas y poca satisfacción en el recorrido a la misma
  • Es muy común la búsqueda de poder "sobre" en lugar de poder "para".
  • Ver la vida como un juego de suma cero: "Para ganar, otro tiene que perder"

El mensaje del emisor se percibe distinto de acuerdo al receptor

Este es un fenómeno prácticamente universal, ya que todos tenemos tendencias y hábitos de comportamiento e historia personal única. Cada vez que comunicamos algo es interpretado por el otro de manera distinta al contenido e intención de mensaje original. Cuanta más diferencia halla en esa interpretación mayor es la probabilidad de conflicto.

Comunicación inoportuna

Si bien sería absurdo buscar un momento ideal o perfecto para comunicar algo, a veces un mensaje antes o después de algún momento puede también generar malentendidos, conflictos, retrasar o frustrar la resolución de un problema.

Podemos hablar horas, asistir a cursos y conferencias sobre Project Management, ITIL, metodologías ágiles, DevOps y muchos conceptos más, algunos más de moda que otros, pero si ignoramos estas disfuncionalidades solamente estaremos cambiando de problemas, no resolviéndolos.

Algunas propuestas para eliminar esas disfuncionalidades podrían ser:

  • Conocernos mejor
  • Hablar con nuestra propia voz
  • Desarrollar el sentido de la oportunidad
  • Entender que hay una vida más allá del "poder sobre". Que también existe el goce y el disfrute por aprender y por hacer
  • Entender que no somos omnipotentes, pero aun así somos protagonistas

En definitiva, que podamos hallar 'paz y propósito'. Que es en realidad algo bastante más concreto de lo que podríamos pensar.

Eligiendo Hostname

¿No les pasó muchas veces crear un host y no saber qué nombre ponerle? A mi me pasó. Hace un tiempo había encontrado un script que realizaba esa función. No me acuerdo cuál ni donde. De todas maneras , tenemos la manera de crear de fácilmente un nombre de host de manera aleatoria. Por ejemplo, el archivo /usr/share/dict/wordstiene una buena cantidad de palabras en inglés. Este archivo pertence al paquete words y la lista de palabras proviene del Moby Project. Bien, ya tenemos una lista de palabras. Ahora necesitamos alguna herramienta que elija al azar líneas de un archivo. A tal fin podemos usar shuf:

Si estamos intrigados sobre el significado de la palabra encontrada podemos buscarlo en wikipedia por medio de la herramienta wikit:

Otra manera sería usar los archivos de hunspell. Hunspell es el corrector ortográfico de LibreOffice, Firefox y Thunderbird, entre otros proyectos.

Si queremos tener un adjetivo y un sustantivo:

paste -d'-' <(tr ' ' '\n' < /usr/share/wordnet-3.0/dict/adj.exc|shuf -n1) <(tr ' ' '\n' < /usr/share/wordnet-3.0/dict/noun.exc|shuf -n1)

Y podemos hasta obtener el hostname con diseño:

Más información

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?

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.