Leí esta publicación en LinkedIn hace poco y me gustó compartirla. Quizás no esté 100% de acuerdo en todos los puntos, pero la idea general se entiende:
Nunca saludés de mano a nadie sin ponerte de pie.
En una negociación, nunca hagas la primera oferta.
Si te confían un secreto, guardalo.
Devolvé con tanque lleno el auto que te prestaron.
Hacé las cosas con pasión o mejor no las hagas.
Cuando saludés de mano, hacelo firme y mirando a los ojos.
Viví la experiencia de hacer un viaje solo.
Nunca rechaces una pastilla de menta, las razones son obvias.
Aceptá consejos si querés llegar a viejo.
Acercate a comer con la persona nueva de la oficina.
Cuando le escribas a alguien enojado, terminá y volvé a leerlo, después borralo y hacelo de vuelta.
En la mesa no hablés de trabajo, política o religión.
Sé justo, defendé a los que son abusados sin abusar.
Escribí tus metas y después trabajá por ellas.
Defendé tu punto de vista sin ofender ni insultar, sé tolerante y respetuoso ante el ajeno.
Llamá y visitá a tus padres, hijos, familiares y amigos, no pierdas el tiempo esperando que ellos lo hagan primero.
Nunca te arrepientas de nada, aprendé de todo.
En momentos o días de soledad, relajate, disfrutá y aprendé.
El honor y la lealtad son básicos en tu personalidad.
No le prestés dinero a quien sabés que no te va a pagar.
Creé en algo.
Tendé tu cama al levantarte.
Cantá en la ducha.
Cuidá una planta o un jardín.
Observá el cielo cada vez que puedas.
Descubrí tus habilidades y explotalas.
Amá tu trabajo o dejalo.
Pedí ayuda cuando la necesités.
Enseñale un valor a alguien, de preferencia a un niño.
Valorá y agradecé a quien te tienda la mano.
Sé amable con tus vecinos.
Hacele el día más alegre a alguien.
Competí con vos mismo.
Regalate algo mínimo una vez al año.
Cuidá tu salud.
Saluda con una sonrisa siempre.
Pensá rápido, pero hablá despacio.
No hablés con la boca llena.
Lustrá tus zapatos y cortá tus uñas.
No opinés sobre temas que desonozcas.
Nunca maltratés a un animal.
Alzá la voz ante las injusticias.
Nunca pierdas la maravillosa oportunidad de quedarte callado.
Reconocé a alguien su esfuerzo.
Sé humilde ante todo.
Nunca te olvidés de dónde venís.
Viajá cada vez que te sea posible.
Cedé el paso.
Bailá bajo la lluvia.
Buscá tu éxito sin desistir.
De paso les cuento que al copiar este texto tenía incluidos los número al principio de cada renglón y, para sacarlos utilicé un procesador de texto plano con soporte para expresiones regulares (Gedit). Para eliminar los número de todas las líneas solo tuve que hacer una búsqueda & reemplazo con la siguiente reg-ex [0-9]+\.
Por si no encuentran fácilmente o no quieren perder el mismo tiempo que pierdo yo cada vez que quiero actualizar/agregar listas de bloqueo a mi amado pi-hole, les dejo unas cuentas.
En primer lugar les comento que en estos sitios se pueden ver listas separadas por categoría y agregar las que queramos según nuestras preferencias:
https://www.github.developerdan.com/hosts/
https://firebog.net/
https://oisd.nl/?p=dl
La última URL tiene una lista completa con muchísimos hosts (¡más de 20 Mb!) lo que va a hacer que demore un poco en actualizarse. Ténganlo en cuenta para no sobrecargar su pi-hole.
Hace unos días instalé, según lo indica la documentación, la herramienta para Docker llamada Portainer. Se trata de un entorno web para gestionar Docker de una forma más “vistosa”, diría yo. El amigo Portainer viene, casualmente, en una imagen de Docker que podemos correr para facilitarnos la instalación.
Hasta ahí todo bien, pero hoy cuando lo abrí me encontré que había una actualización disponible y ahí fue cuando me di cuenta que no sabía cómo actualizarlo.
Siguiendo los consejos de Marcel Zuidwijk, un blogger holandés, pude hacerlo de forma sencilla y quise compartirlo con ustedes.
El procedimiento es bien sencillo, tenemos que:
Descargar la última versión de la imagen de Portainer CE
Parar y eliminar el contenedor de Portainer que teníamos funcionando
Volver a correr el contenedor con las mismas opciones, incluyendo el volumen que habíamos montado al “instalarlo” la primera vez.
Todos seguramente conocen la herramienta de monitoreo top, la cual es una gran ayuda cuando tenemos que depurar un problema con algún proceso que consume demasiados recurso en gnu/linux y su hermano mayor htop, el cual mejora bastante la interfaz del primero, haciéndolo más configurable y entendible, sobre todo para los administradores de sistemas que recién comienzan.
Pero encontré un monitor muchísimo más sencillo, configurable y además lindo de ver: bpytop. Su interfaz sencilla es lo que más me impresionó, pero además cuenta con varias configuraciones que ayudan a ver los procesos y uso de recursos “a primera vista” sin tener que estar recordando mucha cantidad de acrónimos como con top.
Lo malo de esta herramienta es que no se encuentra en el gestor de paquetes del asesinado por RedHat CentOS 7. De todas forma su instalación es muy sencilla, solo hay que ejecutar los siguientes comandos:
En un anuncio oficial de manjaro linux hace unos días, se hizo saber a todos los indeseables que utilizamos una tarjeta de video nVidia vieja como la mía, que nos íbamos a joder porque manjaro no solo no iba a proporcionar los controladores para los kernels mayores al 5.7 ¡sino que los iba a retirar de los repositorios!
Estaba posponiendo la solución para esto lo más posible, no actualizando el kernel (estaba usando el 5.7) pero también, por alguna razón que desconozco, ya éste no estaba soportado y el último habilitado con drivers para mi vieja placa era el 5.4… pero bueno, esto es otro tema. La cosa es que tuve que realizar la instalación manual, cuando para probar, desinstalé los controladores para los kernels anteriores.
Si bien la solución está clara en el anuncio del foro de manjaro, uno siempre busca una forma más sencilla para resolverlo que estar descargando las fuentes directo de los repositorios e instalando todo de forma manual. Pero lamentablemente, no le encontré otra vuelta. La cosa es sencilla y paso a transcribir la solución de manjaro:
Hago un par de puntualizaciones a los comandos anteriores, para aquellos que como yo, se quedaron sin escritorio y solo tienen un gran monitor negro con letras grandes y pixeladas:
El paquete base-devel lo vas a tener instalado, seguramente, porque lo has usado al descargar desde AUR con yay.
La segunda línea lo que hace es extraer el nombre de los headers del kernel, por ejemplo linux510-headers, si ya sabés para qué versión del kernel vas a instalar el driver, no te gastes en copiar a mano la línea y solo hacé sudo pacman -S linux510-headers
El resto de las líneas no te las puedo resumir. Lamento.
Después de esto, hacemos un hermoso <reboot y tendremos manjaro nuevamente con entorno gráfico.
Hoy necesitaba conectarme a un servidor remoto al cual necesitaba acceder mediante una VPN usando L2TP con IPSec. De forma predeterminada Network Manager no tiene esta opción disponible cuando queremos agregar una conexión de red, por lo menos en Manjaro Cinnamon.
Luego de googlear bastante encontré la solución completa para hacer que esta conexión funcionara. Espero que esto le ahorre este tiempo a alguien más.
Es necesario instalar un par de paquetes:
yay -S networkmanager-strongswan networkmanager-l2tp
Después de tener estos paquetes instalados, ya podemos configurar la VPN desde la interfaz gráfica de Network Manager, que seguramente se encuentra en la bandeja del sistema (cerca del reloj) con un ícono similar a un enchufe y seleccionamos Network Settings (o Ajustes de red):
Luego vamos al signo de + y elegimos la opción Layer 2 Tunneling Protocol (L2TP).
A continuación ingresamos las información de la conexión: le damos un nombre identificatorio a la VPN, colocamos la dirección o gateway, las credenciales (nombre de usuario y la contraseña) y por último, para configurar IPSec presionamos el botón IPSec Settings (o Ajustes IPSec):
Habilitamos la casilla de verificación Enable IPsec tunnel to L2TP host (habilitar tunel IPsec al anfitrión L2TP) e ingresamos la preshared key (o clave previamente compartida).
Listo. Luego, cuando activemos la conexión, se modificará el ícono del Network Manager que pasará a tener un candadito y un tooltip que dirá Connected to the VPN (o Conectado a la VPN).
Quienes usan el excelente framework para la shell zsh Oh-my-zsh, saben que éste se actualiza automáticamente en el período determinado en su archivo de configuración. En mi caso, cada 7 días export UPDATE_ZSH_DAYS=7.
Oh my zsh con el tema powerlevel10k
El problema es que el tema que utilizo –Powerlevel10K– no se actualiza automáticamente. Para solucionar este inconveniente, agregué un pequeño código que puede servirles también a ustedes. Al final del archivo de configuración ~/.zshrc inserté el siguiente snippet:
# Updates p10k automatically
n=$(date '+%j');
if [ expr $n % $UPDATE_ZSH_DAYS -eq 0 ]
then
git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull
fi
Voy a describir brevemente y sin demasiada explicación los pasos que se deben seguir para crear un tema hijo de WordPress. ¿Para qué lo hago de forma esquemática? Porque en general me como algún paso al hacerlo y quería crear un ayuda-memoria para tenerlo a mano.
Abrir el directorio de los temas de WordPress, que se encuentra en una ruta similar a la siguiente: /public_html/wp-content/themes/
Crear un nuevo directorio con el nombre que se nos antoje, por ejemplo: awesome-tree-child
Dentro de este directorio crear los archivos index.php y style.css.
Copiar los comentarios del encabezado del archivo style.cssdel tema padre al mismo archivo del tema hijo.
En dichos comentarios hay que agregar la opción Template: con el nombre del directorio del tema padre y luego de los comentarios también la importación de la URL del tema padre. Un ejemplo de este archivo podría ser el siguiente:
/*
Theme Name: awesome-tree-child
Theme URI: http://themes.mauriciolopez.ml
Description: Tema hijo personalizado del tema de WordPress Awesome Tree WordPress
Author: Mauricio López Coria
Author URI: https://mauriciolopez.ml/
Version: 1.0
Template: awesome-tree
Text Domain: awesome-tree
Domain Path: /languages
License: GNU General Public License
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
Tags: two-columns, custom-background, threaded-comments, translation-ready, custom-menu
*/
@import url('../awesome-tree/style.css');
Copiar el archivo index.phpdel tema padre en el mismo archivo del tema hijo.
Opcionalmente, se puede crear también el archivo functions.php para agregar funcionalidad personalizada al tema hijo, pero esto no es imprescindible para que el tema hijo funcione.
Aunque es una tarea sencilla y hay múltiples métodos que se pueden usar, siempre que necesito renombrar de una gran cantidad de archivos tengo que recurrir a San Google para hacerlo. Por esto prefiero dejar este artículo como recordatorio para mi y para algún otro despistado como yo.
En general me pasa con archivos de imagen, como jpg. Las cámaras, celulares y otros generadores de imágenes se empeñan en utilizar mayúsculas para las extensiones de los archivos de fotos y, aunque debe ser un TOC ¡me molesta! Por eso, para hacer cambiar recursivamente todas las extensiones de .JPG a .jpg podemos usar:
for file in *.JPG; do mv "${file}" "${file/.JPG/.jpg}"; done
Del mismo modo, podemos cambiar una parte del nombre que queramos, por ejemplo si hubiésemos hecho una conversión de extensión bmp a jpg con la utilidad convertde ImageMagick con el comando:
nos habrán quedado archivos con nombres que incluyen ambas extensiones, algo como imagen.bmp.jpg. Para eliminar la cadena .bmp del nombre de todos los archivos afectados podemos ejecutar:
for file in *; do mv "${file}" "${file/.bmp/}"; done
Una opción que puede ayudar a visualizar errores o advertencias en el código de WordPress es la del registro de depuración o debug log que le indica a la aplicación generar un log que puede mostrado en las páginas o guardado en un archivo. Para habilitar este registro es necesario incluir en el archivo de configuración de WordPress wp-config.php el siguiente código:
La primera línea habilita el registro de depuración, la siguiente activa la creación del archivo de registro debug.log que se situará dentro del directorio wp-content, mientras que la tercera opción especifica que estas advertencias no sean mostrados en las páginas del sitio.
El problema es que, de manera predeterminada, este archivo es visible públicamente. Lo que implica que cualquiera podría escribir la dirección http://midominio.com/wp-content/debug.log y visualizar el contenido del archivo exponiendo información sensible de nuestro sitio web, lo que supone un problema de seguridad.
Para evitar este acceso existe una manera muy sencilla: para el caso de que usés Apache como servidor web solo tenés que crear un archivo .htaccess, o agregar al existente, lo siguiente:
# Bloquear acceso a debug.log
<Files "debug.log">
Order Allow,Deny
Deny from all
</Files>