Las 3 mejores aplicaciones web para optimizar tus actividades diarias

Las 3 mejores aplicaciones web para optimizar tus actividades diarias

Las 3 mejores aplicaciones web que uso diariamente como arquitecto de software para hacer mi trabajo de una manera mejor y más eficiente.

Las 3 mejores aplicaciones web para optimizar tus actividades diarias
Foto de Tom Conway en Unsplash

Las aplicaciones web son parte de nuestra vida y parte de nuestro proceso de creación y trabajo. Especialmente para aquellos que trabajan en la industria del software, prácticamente para cada tarea que necesitamos realizar, necesitamos usar una herramienta (si no más de una) como parte de este proceso, y hay herramientas que te ayudarán a hacer este proceso más fluido o fácil.

Tengo una preferencia por las aplicaciones nativas/de escritorio, probablemente porque soy lo suficientemente mayor para haber sufrido la primera era de las aplicaciones web que fueron una pesadilla, pero las cosas han cambiado mucho después de todos estos años y ahora tengo que admitir que hay algunas que uso bastante en mis actividades diarias:

1.- Lucidchart: Tu herramienta de diagramas

Esta es prácticamente la única herramienta que uso para cubrir todas mis necesidades de bocetos como arquitecto de software, que son muchas. Se compara con otras alternativas nativas como Microsoft Visio, pero me gusta su enfoque en la industria del software con muchas formas enfocadas en arquitecturas modernas, incluidas las formas para los principales proveedores de nube como Microsoft Azure, Amazon Web Services o Google Cloud.

Las 3 mejores aplicaciones web para optimizar tus actividades diarias
Lucidchart con las formas disponibles para Microsoft Azure y también otras listadas como AWS Architecture y Google Cloud

De una manera fácil, puedes crear diagramas de diseño, UML o diagramas de arquitectura con el aspecto y la sensación de un profesional. Tiene una licencia gratuita para uso personal, pero te animo a que te suscribas a uno de los planes profesionales, especialmente si eres una empresa de software. Esta es una empresa muy innovadora y no se detiene en el sector de diagramas, sino que también incluye cosas como Lucidspark para llevar el enfoque de pensamiento visual al mundo digital de una manera excelente. He usado otras alternativas como draw.io o Google Shapes, pero Lucidchart funciona mejor para mi proceso creativo.

2.- regex101.com: Tu maestro Jedi de RegExp en línea

No importa a qué te dediques, si eres un administrador de sistemas o un desarrollador de software, si eres un arquitecto de software trabajando en la definición de arquitecturas de alto nivel o simplemente un ingeniero de preventa, necesitarás proporcionar alguna expresión regular y seguro que no será fácil. Así que necesitas herramientas que te ayuden en este proceso y eso es lo que regexp101.com te proporcionará.

Las 3 mejores aplicaciones web para optimizar tus actividades diarias
Interfaz principal de regex101.com

Una interfaz limpia te proporcionará una manera fácil de probar tu ER o corregirla si es necesario, además de una forma de mejorar tu conocimiento teórico de las ER, proporcionándote la manera de expresar algunas de tus ER de la manera más eficiente. Sin duda, una herramienta imprescindible que necesitas tener en tus marcadores para optimizar el tiempo que necesitas para crear tus ER probadas y convertirte en un maestro de ER.

3.- fastthread.io: Tu sabio consejero de Java

Si necesitas lidiar con cualquier programa Java en tus actividades diarias, seguro que has estado en el proceso de analizar volcados de hilos para entender un comportamiento inesperado de un programa Java. Eso implica tener un seguimiento de pila para cada uno de los cientos de hilos que puedes obtener y extraer algunos conocimientos de esos datos. Para ayudar en ese proceso, tienes fastthread.io que proporciona un análisis inicial enfocado en los factores clave habituales, como el estado del hilo (bloqueado, en espera de tiempo, ejecutable…) dependiendo de la situación de bloqueo, seguimiento de pila similar, gestión de pool, consumos de CPU.

Las 3 mejores aplicaciones web para optimizar tus actividades diarias
Resultado del análisis de fastthread.io después de cargar un volcado de hilos a través de la página

Es claramente imprescindible si necesitas lidiar con cualquier aplicación basada en Java, al menos para tener el primer análisis que te ayude a enfocarte en cualquier cosa relevante y aplicar tu sabiduría al análisis preliminar ya realizado de manera automatizada y enriquecida con gráficos.

Pista adicional: ilovepdf

Como adición final a esta lista, no podría olvidar una aplicación. Esta no es una aplicación web geek, sino la aplicación que más uso, porque ilovepdf es un conjunto de aplicaciones web que cubren todas tus necesidades con respecto al uso de PDF y todo tan fácil de usar y directamente en tu navegador. ilovepdf proporciona una manera de transformar tu PDF a formatos más editables como Word o Excel, pero también para poder dividir o fusionar diferentes documentos PDF en uno, rotar PDF, agregar marca de agua, desbloquearlos… y la que más uso, comprimir PDF para poder reducir su tamaño sin perder calidad visible para enviarlo como un archivo adjunto por correo electrónico.

Las 3 mejores aplicaciones web para optimizar tus actividades diarias
Página principal de ilovepdf.com con todas las opciones a tu disposición

Resumen

Espero que estas herramientas te ayuden a mejorar tu proceso diario para ser más eficiente o al menos a abrir tus aplicaciones web conocidas para algunas de estas tareas si ya tienes otra y tal vez darle una oportunidad para ver si puede ser de algún beneficio para ti. Si también tienes otras aplicaciones web que usas mucho en tu proceso diario, por favor házmelo saber con tus respuestas a este artículo.

Maid: El organizador de archivos automatizado de código abierto definitivo para hackers

Maid: El organizador de archivos automatizado de código abierto definitivo para hackers

Maid ofrece lo mejor de ambos mundos: facilidad de uso y flexibilidad que viene con una interfaz basada en código.

Maid: El Organizador de Archivos Automatizado de Código Abierto Definitivo para Hackers
Foto de Kowon vn en Unsplash

Uno de los principales problemas que tengo debido a mis prácticas rutinarias usando computadoras es la falta de disciplina organizativa. Para mí es bastante complejo tener todos los diferentes archivos organizados en el lugar correcto todo el tiempo, y finalmente decidí dejar de luchar contra eso.

Esto es algo que me ha pasado desde el comienzo de mi uso de computadoras, pero empeoró cuando comencé a trabajar en la industria hace más de diez años.

Tengo colegas con un proceso de organización sólido desde el correo recibido (usando las conocidas carpetas de Lotus o Outlook) hasta los documentos que reciben o producen para los diferentes temas y cuentas usando una organización de carpetas específica.

Para mí, todo se deja en alguna carpeta, como Descargas, Escritorio, o una carpeta similar, y espero encontrar todo por ahí. Para los correos electrónicos, he resuelto este problema porque las capacidades de búsqueda de Gmail son tan poderosas que pueden recuperar cualquier correo en segundos, pero encontrar y organizar mis archivos es mucho más complejo.

Debido a eso, he estado buscando una herramienta para hacer todo este trabajo por mí porque sé que no puedo hacerlo. Puedo intentarlo… puedo hacerlo un día o tal vez dos, pero este es un hábito que no puedo mantener por un largo período de tiempo.

Así que, en esta búsqueda de opciones, he probado muchas cosas porque, en este tiempo, también he cambiado mucho de sistemas operativos, así que logré probar Hazel, FileJuggle, Drop, y así sucesivamente. Pero ninguno de ellos proporcionó la flexibilidad y la simplicidad que necesitaba al mismo tiempo. Y una y otra vez vuelvo a mi viejo amigo maid.

Maid es un proyecto creado por Ben Oakes que él define en sus propias palabras como un Hazel para Hackers, y eso es cierto. Así que proporciona las mismas capacidades que Hazel pero de una manera que es mucho más flexible para personas que tienen un trasfondo en programación.

Maid: El organizador de archivos automatizado de código abierto definitivo para hackers
Regla de ejemplo de maid para mover archivos pdf de Descargas a la carpeta Libros

Basado en Ruby On Rails, al final, tu tarea es tan fácil como definir las reglas que deseas aplicar usando este lenguaje. Pero para hacerlo más fácil y porque no es necesario ser un experto en Ruby para poder usar las herramientas, Ben ya ha desarrollado muchas funciones de ayuda para simplificar la creación de estas reglas.

Funciones de ayuda como weeks.accessed, downloaded_from, image_px, y al mismo tiempo las acciones comunes como move, trash, o copy.

Así que, al final, es como si codificaras tus reglas usando un lenguaje de muy alto nivel, como cuando usas una GUI en otros programas como Hazel. Pero al mismo tiempo, como esto es código, también tienes toda la flexibilidad y poder a tu disposición para ser usado cuando lo necesites.

Instalar las herramientas es tan fácil como simplemente escribir los siguientes comandos:

gem install maid
maid sample 

Y después de eso, tendrás un archivo de reglas de ejemplo en tu carpeta .maid para ayudarte a crear el conjunto inicial de reglas. Y después de ese punto, solo estás limitado por tus necesidades y tu imaginación para finalmente manejar esta locura de archivos en la que, al menos yo, he estado durante mucho tiempo.

Descubre tu herramienta perfecta para gestionar Kubernetes

Descubre tu herramienta perfecta para gestionar Kubernetes

Maximizando la productividad al trabajar con el entorno de Kubernetes con una herramienta para cada persona

Descubre tu herramienta perfecta para gestionar Kubernetes
Foto de Christina @ wocintechchat.com en Unsplash
Todos sabemos que Kubernetes es el entorno predeterminado para todas nuestras nuevas aplicaciones que desarrollamos y construiremos. El sabor de esa plataforma de Kubernetes puede ser de diferentes maneras y formas, pero una cosa está clara, es complejo. Las razones detrás de esta complejidad son poder proporcionar toda la flexibilidad, pero también es cierto que el proyecto k8s nunca ha puesto mucho esfuerzo en proporcionar una forma sencilla de gestionar tus clústeres y kubectl es el punto de acceso para enviar comandos, dejando esta puerta abierta a la comunidad para proporcionar su propia solución y estas son las cosas que vamos a discutir hoy.

Tablero de Kubernetes: La Opción Predeterminada

[visual-link-preview encoded=»eyJ0eXBlIjoiZXh0ZXJuYWwiLCJwb3N0IjowLCJwb3N0X2xhYmVsIjoiIiwidXJsIjoiaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdGFza3MvYWNjZXNzLWFwcGxpY2F0aW9uLWNsdXN0ZXIvd2ViLXVpLWRhc2hib2FyZC8iLCJpbWFnZV9pZCI6MCwiaW1hZ2VfdXJsIjoiIiwidGl0bGUiOiIiLCJzdW1tYXJ5IjoiIiwidGVtcGxhdGUiOiJ1c2VfZGVmYXVsdF9mcm9tX3NldHRpbmdzIn0=»] El Tablero de Kubernetes es la opción predeterminada para la mayoría de las instalaciones. Es una interfaz basada en la web que es parte del proyecto K8s pero no se despliega por defecto cuando instalas el clúster.
Descubre tu herramienta perfecta para gestionar Kubernetes

K9S: La opción de CLI

[visual-link-preview encoded=»eyJ0eXBlIjoiZXh0ZXJuYWwiLCJwb3N0IjowLCJwb3N0X2xhYmVsIjoiIiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL2RlcmFpbGVkL2s5cyIsImltYWdlX2lkIjowLCJpbWFnZV91cmwiOiIiLCJ0aXRsZSI6IiIsInN1bW1hcnkiOiIiLCJ0ZW1wbGF0ZSI6InVzZV9kZWZhdWx0X2Zyb21fc2V0dGluZ3MifQ==»] K9S es una de las opciones más comunes para aquellos que aman una interfaz de línea de comandos muy poderosa con muchas opciones a su disposición.
Descubre tu herramienta perfecta para gestionar Kubernetes
Es una mezcla entre todo el poder de una interfaz de línea de comandos con todas las opciones de teclado a tu disposición con una vista gráfica muy elegante para tener una visión rápida del estado de tu clúster de un vistazo.

Lens — La Opción Gráfica

[visual-link-preview encoded=»eyJ0eXBlIjoiZXh0ZXJuYWwiLCJwb3N0IjowLCJwb3N0X2xhYmVsIjoiIiwidXJsIjoiaHR0cHM6Ly9rOHNsZW5zLmRldiIsImltYWdlX2lkIjowLCJpbWFnZV91cmwiOiIiLCJ0aXRsZSI6IiIsInN1bW1hcnkiOiIiLCJ0ZW1wbGF0ZSI6InVzZV9kZWZhdWx0X2Zyb21fc2V0dGluZ3MifQ==»] Lens es una opción de GUI muy vitaminada que va más allá de solo mostrar el estado del clúster de K8S o permitir modificaciones en los componentes. Con integración con otros proyectos como Helm o soporte para el CRD. Proporciona una experiencia muy agradable de gestión de clústeres con soporte para múltiples clústeres también. Para saber más sobre Lens puedes echar un vistazo a este artículo donde cubrimos sus principales características: [visual-link-preview encoded=»eyJ0eXBlIjoiaW50ZXJuYWwiLCJwb3N0Ijo4MSwicG9zdF9sYWJlbCI6IlBvc3QgODEgLSBMZW5zIENvdWxkIEJlIHRoZSBUb29sIFRoYXQgWW91IFdlcmUgTWlzc2luZyB0byBNYXN0ZXIgS3ViZXJuZXRlcy1CYXNlZCBEZXZlbG9wbWVudCBhbmQgTWFuYWdlbWVudCIsInVybCI6IiIsImltYWdlX2lkIjoyNDk1LCJpbWFnZV91cmwiOiJodHRwOi8vYWxleGFuZHJlLXZhenF1ZXouY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzAxL2ltZ182MWVkMTNjNTllZjQ5LmpwZyIsInRpdGxlIjoiTGVucyBDb3VsZCBCZSB0aGUgVG9vbCBUaGF0IFlvdSBXZXJlIE1pc3NpbmcgdG8gTWFzdGVyIEt1YmVybmV0ZXMtQmFzZWQgRGV2ZWxvcG1lbnQgYW5kIE1hbmFnZW1lbnQiLCJzdW1tYXJ5IjoiRmluZCB0aGUgZ3JlYXRlc3Qgd2F5IHRvIG1hbmFnZSB5b3VyIEt1YmVybmV0ZXMgZGV2ZWxvcG1lbnQgY2x1c3RlciBQaG90byBieSBBZ2VuY2UgT2xsb3dlYiBvbiBVbnNwbGFzaC4gSSBuZWVkIHRvIHN0YXJ0IHRoaXMgYXJ0aWNsZSBieSBhZG1pdHRpbmcgdGhhdCBJIGFtIGFuIGFkdm9jYXRlIG9mIEdyYXBoaWNhbCBVc2VyIEludGVyZmFjZXMgYW5kIGV2ZXJ5dGhpbmcgdGhhdCBwcm92aWRlcyBhIHdheSB0byBzcGVlZCB1cCB0aGUgd2F5IHdlIGRvIHRoaW5ncyBhbmQgYmUgbW9yZSBwcm9kdWN0aXZlLiBTbyB3aGVuIHdlIHRhbGsgWyZoZWxsaXA7XSIsInRlbXBsYXRlIjoidXNlX2RlZmF1bHRfZnJvbV9zZXR0aW5ncyJ9″]

Octant — La Opción Web

[visual-link-preview encoded=»eyJ0eXBlIjoiZXh0ZXJuYWwiLCJwb3N0IjowLCJwb3N0X2xhYmVsIjoiIiwidXJsIjoiaHR0cHM6Ly9vY3RhbnQuZGV2IiwiaW1hZ2VfaWQiOjAsImltYWdlX3VybCI6IiIsInRpdGxlIjoiIiwic3VtbWFyeSI6IiIsInRlbXBsYXRlIjoidXNlX2RlZmF1bHRfZnJvbV9zZXR0aW5ncyJ9″] Octant proporciona una experiencia mejorada en comparación con la opción web predeterminada discutida en este artículo usando el tablero de Kubernetes. Construido para la extensión con un sistema de complementos que te permite extender o personalizar el comportamiento de octant para maximizar tu productividad gestionando clústeres de K8S. Incluyendo soporte para CRD y visualización gráfica de dependencias, proporciona una experiencia increíble.
Descubre tu herramienta perfecta para gestionar Kubernetes

Resumen

Hemos proporcionado en este artículo diferentes herramientas que te ayudarán durante la importante tarea de gestionar o inspeccionar tu clúster de Kubernetes. Cada una de ellas con sus propias características y cada una de ellas se enfoca en diferentes formas de proporcionar la información (CLI, GUI y Web) para que siempre puedas encontrar una que funcione mejor para tu situación y preferencias.

📚 Want to dive deeper into Kubernetes? This article is part of our comprehensive Kubernetes Architecture Patterns guide, where you’ll find all fundamental and advanced concepts explained step by step.

Mejorando la Seguridad del Desarrollo con Estas Herramientas de Código Abierto

Mejorando la Seguridad del Desarrollo con Estas Herramientas de Código Abierto

Descubre cómo Anchore puede ayudarte a mantener tu software seguro y protegido sin perder agilidad.

Mejorando la Seguridad en el Desarrollo con Estas Herramientas de Código Abierto
Foto de Franck en Unsplash

La Seguridad en el Desarrollo es uno de los grandes temas de la práctica de desarrollo actual. Todas las mejoras que obtuvimos siguiendo las prácticas de DevOps han generado muchos problemas y preocupaciones desde la perspectiva de la seguridad.

La explosión de componentes con los que los equipos de seguridad necesitan lidiar, los enfoques de contenedores y los entornos poliglotas nos han dado muchos beneficios desde la perspectiva del desarrollo y la operativa. Sin embargo, ha hecho que el lado de la seguridad sea más complejo.

Es por eso que ha habido muchos movimientos respecto al enfoque de «Shift left» e incluir la seguridad como parte del proceso de DevOps, creando el nuevo término DevSecOps que se está convirtiendo en la nueva normalidad.

Entonces, hoy lo que me gustaría traerte es un conjunto de herramientas que acabo de descubrir que están creadas con el enfoque de hacer tu vida más fácil desde la perspectiva de la seguridad en el desarrollo porque los desarrolladores también necesitan ser parte de esto y no dejar toda la responsabilidad a un equipo diferente.

Este conjunto de herramientas se llama Anchore Toolbox, y son de código abierto y de uso gratuito, como puedes ver en la página web oficial (https://anchore.com/opensource/)

Entonces, ¿qué puede proporcionarnos Anchore? Por el momento, estamos hablando de dos aplicaciones diferentes: Syft y Grype.

Syft

Syft es una herramienta CLI y biblioteca go para generar una Lista de Materiales de Software (SBOM) a partir de imágenes de contenedores y sistemas de archivos. La instalación es tan fácil como ejecutar el siguiente comando:

curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin

Y después de hacer eso, necesitamos escribir syft para ver todas las opciones a nuestra disposición:

Mejorando la Seguridad del Desarrollo con Estas Herramientas de Código Abierto
Menú de ayuda de Syft con todas las opciones disponibles

Entonces, en nuestro caso, lo usaré para generar una lista de materiales a partir de una imagen Docker existente de bitnami/kafka para mostrar cómo funciona esto. Necesito escribir el siguiente comando:

syft bitnami/kafka

Y después de unos segundos para cargar y analizar la imagen, obtengo como salida la lista de todos y cada uno de los paquetes que esta imagen tiene instalados y la versión de cada uno de ellos como se muestra en la imagen a continuación. Una gran cosa es que muestra no solo los paquetes del sistema operativo como lo que hemos instalado usando apk o apt, sino también otros componentes como bibliotecas java, por lo que podemos tener una lista completa de materiales para esta imagen de contenedor.

 ✔ Imagen cargada
 ✔ Imagen analizada
 ✔ Imagen catalogada [204 paquetes]
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0-javadoc.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0-javadoc.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/scala-java8-compat_2.12–0.9.1.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/scala-java8-compat_2.12–0.9.1.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0-test-sources.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0-test-sources.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/jackson-module-scala_2.12–2.10.5.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/jackson-module-scala_2.12–2.10.5.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka-streams-scala_2.12–2.7.0.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka-streams-scala_2.12–2.7.0.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0-test.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0-test.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/scala-collection-compat_2.12–2.2.0.jar’
[0019] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/scala-collection-compat_2.12–2.2.0.jar’
[0020] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0.jar’
[0020] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0.jar’
[0020] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0-sources.jar’
[0020] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/kafka_2.12–2.7.0-sources.jar’
[0020] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/scala-logging_2.12–3.9.2.jar’
[0020] WARN coincidencias inesperadamente vacías para el archivo ‘/opt/bitnami/kafka/libs/scala-logging_2.12–3.9.2.jar’
NOMBRE VERSIÓN TIPO
 java-archive
acl 2.2.53–4 deb
activation 1.1.1 java-archive
adduser 3.118 deb
aopalliance-repackaged 2.6.1 java-archive
apt 1.8.2.2 deb
argparse4j 0.7.0 java-archive
audience-annotations 0.5.0 java-archive
base-files 10.3+deb10u8 deb
base-passwd 3.5.46 deb
bash 5.0–4 deb
bsdutils 1:2.33.1–0.1 deb
ca-certificates 20200601~deb10u2 deb
com.fasterxml.jackson.module.jackson.module.scala java-archive
commons-cli 1.4 java-archive
commons-lang3 3.8.1 java-archive
...

Grype

Grype es un escáner de vulnerabilidades para imágenes de contenedores y sistemas de archivos. Es el siguiente paso porque verifica los componentes de la imagen y comprueba si hay alguna vulnerabilidad conocida.

Para instalar este componente nuevamente es tan fácil como escribir el siguiente comando:

curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin

Después de hacer eso, necesitamos escribir grype para tener el menú de ayuda con todas las opciones a nuestra disposición:

Mejorando la Seguridad del Desarrollo con Estas Herramientas de Código Abierto
Menú de ayuda de Grype con todas las opciones disponibles

Grype funciona de la siguiente manera. Lo primero que hace es cargar la base de datos de vulnerabilidades para verificar los diferentes paquetes contra esta base de datos en busca de cualquier vulnerabilidad conocida. Después de hacer eso, sigue el mismo patrón que syft y genera la lista de materiales y verifica cada uno de los componentes en la base de datos de vulnerabilidades, y si hay una coincidencia. Simplemente proporciona el ID de la vulnerabilidad, la gravedad y, si esto se soluciona en una versión superior, proporciona la versión donde se ha solucionado esta vulnerabilidad.

Aquí puedes ver la salida respecto a la misma imagen de bitnami/kafka con todas las vulnerabilidades detectadas

grype bitnami/kafka
 ✔ Base de datos de vulnerabilidades [actualizada]
 ✔ Imagen cargada
 ✔ Imagen analizada
 ✔ Imagen catalogada [204 paquetes]
 ✔ Imagen escaneada [149 vulnerabilidades]
[0018] ERROR el emparejador falló para pkg=Pkg(type=java-archive, name=, version=): el emparejador falló al buscar por CPE pkg=’’: se requiere el nombre del producto
[0018] ERROR el emparejador falló para pkg=Pkg(type=java-archive, name=, version=): el emparejador falló al buscar por CPE pkg=’’: se requiere el nombre del producto
[0018] ERROR el emparejador falló para pkg=Pkg(type=java-archive, name=, version=): el emparejador falló al buscar por CPE pkg=’’: se requiere el nombre del producto
[0018] ERROR el emparejador falló para pkg=Pkg(type=java-archive, name=, version=): el emparejador falló al buscar por CPE pkg=’’: se requiere el nombre del producto
[0018] ERROR el emparejador falló para pkg=Pkg(type=java-archive, name=, version=): el emparejador falló al buscar por CPE pkg=’’: se requiere el nombre del producto
[0018] ERROR el emparejador falló para pkg=Pkg(type=java-archive, name=, version=): el emparejador falló al buscar por CPE pkg=’’: se requiere el nombre del producto
NOMBRE INSTALADO CORREGIDO-EN VULNERABILIDAD GRAVEDAD
apt 1.8.2.2 CVE-2011–3374 Insignificante
bash 5.0–4 CVE-2019–18276 Insignificante
commons-lang3 3.8.1 CVE-2013–1907 Media
commons-lang3 3.8.1 CVE-2013–1908 Media
coreutils 8.30–3 CVE-2016–2781 Baja
coreutils 8.30–3 CVE-2017–18018 Insignificante
curl 7.64.0–4+deb10u1 CVE-2020–8169 Media
..

Resumen

Estas simples herramientas CLI nos ayudan mucho en el necesario camino para mantener nuestro software actualizado y libre de vulnerabilidades conocidas y mejorar nuestra seguridad en el desarrollo. Además, como estas son aplicaciones CLI y también pueden ejecutarse en contenedores, es muy fácil incluirlas como parte de tu pipeline CICD para que las vulnerabilidades se puedan verificar de manera automatizada.

También proporcionaron un complemento para ser incluido en los sistemas CI/CD más utilizados, como Jenkins, Cloudbees, CircleCI, GitHub Actions, Bitbucket, Azure DevOps, y así sucesivamente.

Métricas y herramientas de Sysstat: ¿Cómo obtener un análisis gráfico impresionante?

Métricas y herramientas de Sysstat: ¿Cómo obtener un análisis gráfico impresionante?

Descubre SARChart y kSAR como utilidades críticas para ser parte de tu cinturón de herramientas para administración o resolución de problemas

Métricas y Herramientas de Sysstat: Cómo Obtener un Análisis Gráfico Impresionante
Foto de Luke Chesser en Unsplash

Hubo un tiempo en que no teníamos proveedores de nube pública que nos proporcionaran una variedad de tipos de servicios y toda una plataforma y experiencia unificada, cubriendo todos los aspectos de nuestras necesidades técnicas cuando hablábamos de un entorno de TI y las métricas de sysstat eran clave allí.

Hubo un tiempo en que AWS Cloud Watch, Azure Monitor, Prometheus no existían, y necesitábamos lidiar con servidores Linux sin un portal completo que proporcionara todas las métricas que podríamos necesitar.

Hubo un tiempo… que todavía es el presente para muchos clientes y organizaciones en todo el mundo y aún necesitan lidiar con esta situación, y probablemente te enfrentes a esta situación ahora o incluso en el futuro. Así que, veamos qué podemos hacer al respecto.

Presentando sysstat

Durante varias décadas, la forma estándar de extraer las métricas de uso de un servidor Linux fue sysstat. Basado en las palabras de su página web oficial, esto es lo que es sysstat:

Las utilidades sysstat son una colección de herramientas de monitoreo de rendimiento para Linux. Estas incluyen sar, sadf, mpstat, iostat, tapestat, pidstat, cifsiostat y herramientas sa 

Métricas y herramientas de Sysstat: ¿Cómo obtener un análisis gráfico impresionante?
Sysstat es un software antiguo pero confiable que su propietario continúa actualizando incluso hoy… pero manteniendo la misma página web desde el principio 🙂

Sysstat es antiguo pero poderoso, y tiene tantas opciones que me han salvado la vida con muchos clientes y proporcionado mucha información útil que necesitaba en ese momento. Pero hoy, voy a hablar sobre una utilidad específica de todo el conjunto, que es sar.

sar es el comando para poder consultar las métricas de rendimiento de una máquina existente. Simplemente escribiendo el comando sar es suficiente para comenzar a ver cosas impresionantes. Eso te dará las métricas de CPU para todo el día para cada una de las CPUs que tiene tu máquina y también se dividirá dependiendo del tipo de uso (usuario, sistema, inactivo, todo).

Métricas y herramientas de Sysstat: ¿Cómo obtener un análisis gráfico impresionante?
Ejecución del comando sar en una máquina local 

Pero estas métricas no son lo único que puedes obtener. Otras opciones disponibles

  • sar -r: Proporciona métricas de memoria
  • sar -q: Proporciona las métricas de carga.
  • sar -n: Proporciona las métricas de red.
  • sar -A: Proporciona TODAS las métricas.
  • sar -f /var/log/sysstat/sa[día-del-mes]: Proporcionará métricas para el día del mes en lugar del día actual.

Hay muchas más opciones que puedes usar en tu día a día, así que si necesitas algo concreto, echa un vistazo a la página del manual para el comando sar:

Pero todos somos personas visuales, ¿verdad? Es cierto que ver tendencias y evoluciones es más complejo en modo texto y también ver solo datos diarios a la vez. Así que echa un vistazo a las opciones para manejar ese desafío:

kSAR

Métricas y herramientas de Sysstat: ¿Cómo obtener un análisis gráfico impresionante?
Logo de la aplicación kSAR (https://sourceforge.net/projects/ksar/)

Frontend desarrollado en Java usando la biblioteca Swing para representar visualmente los datos de sar. Es portátil, por lo que necesitas el archivo JAR para ejecutarlo. Y puedes invocarlo de varias maneras:

  • Proporcionando el archivo que obtuviste de una máquina en la que ejecutaste el comando sar.
  • Conectando mediante SSH a una máquina remota y ejecutando el comando que necesitas.
Métricas y herramientas de Sysstat: ¿Cómo obtener un análisis gráfico impresionante?
Visualización gráfica de las métricas de sar usando kSAR

SARChart

¿Qué pasa cuando estás en una máquina en la que no tienes los derechos para instalar ninguna aplicación, incluso una portátil como kSAR, o tal vez solo tienes tu tableta disponible? En ese caso, tenemos SARChart.

Métricas y herramientas de Sysstat: ¿Cómo obtener un análisis gráfico impresionante?
Página de inicio de la aplicación SARChart (https://sarchart.dotsuresh.com/)

SARChart es una aplicación web que proporciona un análisis gráfico de los archivos sar. Así que solo necesitas subir el archivo para obtener un análisis gráfico completo y bien presentado de tus datos cubriendo todos sus aspectos. Además, todo el trabajo se realiza a nivel del cliente sin enviar ninguno de tus datos a ningún servidor.

Métricas y herramientas de Sysstat: ¿Cómo obtener un análisis gráfico impresionante?
Análisis de uso de CPU proporcionado por SARChart

Resumen

Espero que encuentres estas herramientas interesantes si no las conocías, y también espero que puedan ayudarte con tu trabajo diario o al menos ser parte de tu conjunto de herramientas para estar a tu disposición cuando las necesites.

Las 3 mejores aplicaciones de SetApp para aumentar tu productividad como desarrollador de software

Las 3 mejores aplicaciones de SetApp para aumentar tu productividad como desarrollador de software

SetApp proporciona un conjunto fantástico de herramientas que pueden aumentar tu productividad como Desarrollador de Software.

Las 3 mejores aplicaciones de SetApp para aumentar tu productividad como Desarrollador de Software
Foto de Tianyi Ma en Unsplash

Acabo de cambiar la laptop PC que usé extensamente durante los últimos años por una nueva Macbook Pro la semana pasada, y he entrado en un nuevo mundo. He usado entornos OS X en el pasado. Tuve mi primer Macbook en 2008 y mi segundo en 2016, así que no soy nuevo en el ecosistema OS X, pero incluso con eso, las cosas cambian rápidamente en la industria de las aplicaciones, especialmente en los últimos cuatro años.

Así que, cuando me enfrento a la pantalla de inicio de sesión de Big Sur frente a mí, me pregunté cómo puedo equiparme, y recordé SetApp. Descubrí SetApp hace mucho tiempo porque uno de los principales podcasters que escucho, Emilio Cano, es un fan muy entusiasta de SetApp y utiliza cualquier oportunidad que tiene para hablar sobre sus beneficios.

Así que decidí darle una oportunidad, y no podría estar más feliz de haberlo hecho. Pero antes de empezar a hablar sobre las aplicaciones, me gustaría dar un resumen de lo que es SetApp, y usaré sus propias palabras de su sitio web oficial:

Setapp es un conjunto de aplicaciones multiplataforma, resolviendo tus tareas diarias. Mantente en tu flujo, en cualquier lugar.

Así que, es como un Netflix para aplicaciones, pagas una suscripción mensual, y tienes acceso a aplicaciones de pago automáticamente, y siguen agregando nuevas a su repositorio para que puedas usarlas.

Como Desarrollador de Software, trato de enfocar esta publicación en las aplicaciones que me ayudan en mi trabajo diario, y aquí están las tres (3) que más me ayudan:

1.- Shimo — Un Cliente VPN Asombroso

En estos días de trabajo remoto, necesitaremos conectarnos a varias VPN cada día para acceder al entorno de tu empresa o incluso al entorno del cliente. Si eres como yo, que trabajas diariamente para varios clientes, cambiar de una VPN de cliente a otra es tu tarea diaria, y si puedes hacerlo rápido, optimizas tu tiempo.

Shimo es un cliente VPN que soporta todos los principales protocolos que las empresas utilizan: Cisco, Juniper, OpenVPN… todo lo que puedas necesitar.

Las 3 mejores aplicaciones de SetApp para aumentar tu productividad como desarrollador de software
Opciones de VPN que Shimo te proporciona (captura de pantalla por el autor)

Puedes conectarte a más de una VPN si no se superponen, y también puedes acceder a una forma rápida de conectar o desconectar cualquier VPN desde la barra de menú.

2.- Paste — El Portapapeles Definitivo

Esta es una aplicación que es clave para cualquier desarrollador y para cualquier persona que use una computadora. Paste es simplemente como debería ser el portapapeles. Es un portapapeles mejorado con un historial, para que puedas retroceder y seleccionar algo que copiaste ayer y necesitas recuperar.

Y seamos honestos, como Desarrollador de Software, uno de nuestros principales trucos es el CTRL+C, CTRL+V. Puede ser necesario para todo: un fragmento de código que un colega compartió contigo o el comando UNIX que siempre olvidas o recuperar el nombre de usuario que alguien compartió contigo usando un correo electrónico o Slack.

Las 3 mejores aplicaciones de SetApp para aumentar tu productividad como desarrollador de software
Captura de pantalla de Paste tomada por el autor

3.- DevUtils

Esta es una elección clara. Una herramienta que se llama DevUtils debería estar en esta lista. Pero, ¿qué es DevUtils? Es una colección de todas esas herramientas que siempre buscas en internet para hacer tareas simples pero habituales.

Tareas como codificar o decodificar desde base64, un probador de expresiones regulares, convertidor de tiempo UNIX, formateador de JSON, depurador de JWT, y mucho más… ¿Cuántas veces buscas en Google para hacer una de estas tareas? ¿Cuánto tiempo puedes ahorrar simplemente teniendo eso en tu dock todo el tiempo? La respuesta es simple: ¡mucho!

Las 3 mejores aplicaciones de SetApp para aumentar tu productividad como desarrollador de software
Captura de pantalla de DevUtils tomada por el Autor

Resumen

Hay muchas más aplicaciones en el catálogo de SetApp. Al escribir este artículo, el número asciende a 210 aplicaciones que cubren todos los aspectos de tu vida, incluyendo una de las aplicaciones más vendidas en la App Store. Pero me gustaría centrarme en las que más uso en mi vida como Desarrollador de Software, y si eres como yo, ¡te parecerán increíbles!

3 herramientas inusuales para aumentar tu productividad como desarrollador

3 herramientas inusuales para aumentar tu productividad como desarrollador

Una lista no-VS Code para ingenieros de software

Tienda en el desierto
Foto de Clarisse Meyer en Unsplash.

Este no va a ser uno de esos artículos sobre herramientas que pueden ayudarte a desarrollar código más rápido. Si estás interesado en eso, puedes revisar mis artículos anteriores sobre extensiones de VS Code, linters y otras herramientas que hacen tu vida como desarrollador más fácil.

Mi trabajo no solo trata sobre desarrollo de software, sino también sobre resolver problemas que tienen mis clientes. Aunque sus problemas pueden estar relacionados con el código, pueden ser un error de operación o incluso un problema de diseño.

Usualmente tiendo a definir mi rol como un llanero solitario. Salgo sin saber a qué me enfrentaré, y necesito estar listo para adaptarme, resolver el problema y hacer felices a los clientes. Esta experiencia me ha ayudado a desarrollar una cadena de herramientas que es importante para hacer ese trabajo.

¡Vamos a sumergirnos!


1. MobaXterm

Esta es la mejor herramienta para gestionar diferentes conexiones a diferentes servidores (acceso SSH para un servidor Linux, RDP para un servidor Windows, etc.). Aquí están algunas de sus características clave:

  • Reenvío de puertos SSH gráfico para esos casos en los que necesitas conectarte a un servidor al que no tienes acceso directo.
  • Gestión de identidades fácil para guardar las contraseñas de los diferentes servidores. Puedes organizarlas jerárquicamente para facilitar el acceso, especialmente cuando necesitas acceder a tantos servidores para diferentes entornos e incluso diferentes clientes.
  • Conexión automática SFTP cuando te conectas a un servidor SSH. Te permite descargar y subir archivos tan fácilmente como arrastrar archivos allí.
  • Reenvío X11 automático para que puedas lanzar aplicaciones gráficas desde tus servidores Linux sin necesidad de configurar nada o usar otros servidores X como XMing.
MobaXterm en acción
MobaXterm en acción

2. Beyond Compare

Hay tantas herramientas para comparar archivos, y creo que he usado todas ellas — desde aplicaciones independientes como WinMerge, Meld, Araxis, KDiff, y otras hasta extensiones para editores de texto como VS Code y Notepad++.

Sin embargo, ninguna de ellas puede compararse con la única e inigualable Beyond Compare.

Conocí Beyond Compare cuando comencé a trabajar en ingeniería de software en 2010, y es una herramienta que me acompaña en cada proyecto que tengo. La uso todos los días. Entonces, ¿qué hace que esta herramienta sea diferente del resto?

Es simplemente la mejor herramienta para hacer cualquier comparación porque no solo compara texto y carpetas. Lo hace perfectamente, pero al mismo tiempo, también compara archivos ZIP mientras navega por el contenido, archivos JAR, y así sucesivamente. Esto es muy importante cuando queremos verificar si dos archivos JAR que se suben en DEV y PROD son la misma versión de la herramienta o saber si un archivo ZIP tiene el contenido correcto cuando se sube.

Beyond Compare en acción
Beyond Compare 4

3. Editor Vi

Este es el más importante — el mejor editor de texto de todos los tiempos — y está disponible prácticamente en cada servidor.

Es un editor de texto de línea de comandos con una gran cantidad de atajos que te permiten ser muy productivo cuando estás dentro de un servidor revisando registros y archivos de configuración para ver dónde está el problema.

Durante mucho tiempo, he tenido una hoja de trucos de Vi impresa para asegurarme de poder dominar los atajos más importantes y así aumentar mi productividad mientras lucho dentro de las líneas enemigas (los servidores del cliente).

Editor de texto Vi
VIM — Vi mejorado, el editor de texto definitivo.

Lens podría ser la herramienta que te faltaba para dominar el desarrollo y la gestión basados en Kubernetes

Lens podría ser la herramienta que te faltaba para dominar el desarrollo y la gestión basados en Kubernetes

Encuentra la mejor manera de gestionar tu clúster de desarrollo de Kubernetes

Lente de cámara
Foto de Agence Olloweb en Unsplash.
Necesito comenzar este artículo admitiendo que soy un defensor de las Interfaces Gráficas de Usuario y de todo lo que proporciona una forma de acelerar la manera en que hacemos las cosas y ser más productivos. Así que cuando hablamos de cómo gestionar nuestro clúster de Kubernetes principalmente con fines de desarrollo, puedes imaginar que soy una de esas personas que prueba cualquier herramienta disponible para hacer ese viaje más fácil. Aquellos que han comenzado a usar Portainer para gestionar su motor Docker local o son fanáticos del nuevo panel en Docker para Windows/Mac. Pero eso está lejos de la realidad. En términos de gestión de Kubernetes, me acostumbré a escribir todos los comandos para verificar los pods, los registros, el estado del clúster para hacer los reenvíos de puertos, etc. Cualquier tarea que realizaba era con una terminal, y sentía que era lo correcto. Ni siquiera usaba un panel de Kubernetes para tener una página web para mi entorno de Kubernetes. Todo eso cambió la semana pasada cuando me encontré con un colega que me mostró lo que Lens podía hacer. Lens es una historia totalmente diferente. No lo estoy alabando porque me paguen por hacerlo. Este es un proyecto de código abierto que puedes encontrar en GitHub. ¡Pero la forma en que hace el trabajo es simplemente increíble!
Imagen de Lens mostrando el estado de un clúster de Kubernetes
Imagen de Lens mostrando el estado de un clúster de Kubernetes — Captura de pantalla por el autor.
Lo primero que me gustaría mencionar sobre Lens es que tiene soporte multi-contexto, por lo que puedes tener todos los diferentes contextos de Kubernetes disponibles para cambiar siguiendo un enfoque similar al de Slack cuando cambiamos de diferentes espacios de trabajo. Simplemente lee tu archivo .kube/config y hace que todos esos contextos estén disponibles para que te conectes al que desees.
Selección de contexto de Kubernetes en Lens
Selección de contexto de Kubernetes en Lens
Una vez que nos hemos conectado a uno de estos clústeres, tenemos diferentes opciones para ver su estado, pero la primera es verificar las Cargas de Trabajo usando la opción de Vista General:
Vista General de Cargas de Trabajo en Lens
Vista General de Cargas de Trabajo en Lens
Luego, puedes profundizar en cualquier pod u objeto diferente dentro de Kubernetes para verificar su estado y al mismo tiempo realizar las acciones principales que usualmente haces cuando tratas con un pod, como verificar los registros, ejecutar una terminal en uno de los contenedores que pertenecen a ese pod, o incluso editar el YAML para ese pod.
Opciones de pod dentro de Lens
Opciones de pod dentro de Lens
Pero Lens va más allá de las tareas habituales de Kubernetes porque también tiene una integración con Helm, por lo que puedes verificar las versiones que tienes allí, la versión del estado, y así sucesivamente:
Opción de integración de Helm en Lens
Opción de integración de Helm en Lens
La experiencia de gestionar todo se siente perfecta. También eres más productivo. Incluso aquellos que aman la CLI y las terminales deben admitir que para realizar tareas regulares, el enfoque Gráfico y el ratón son más rápidos que el teclado — incluso para los defensores del teclado mecánico como yo. Así que te animo a descargar Lens y comenzar a usarlo ahora mismo. Para hacerlo, ve a su página web principal y descárgalo: [visual-link-preview encoded=»eyJ0eXBlIjoiZXh0ZXJuYWwiLCJwb3N0IjowLCJwb3N0X2xhYmVsIjoiIiwidXJsIjoiaHR0cHM6Ly9rOHNsZW5zLmRldi8iLCJpbWFnZV9pZCI6MCwiaW1hZ2VfdXJsIjoiIiwidGl0bGUiOiIiLCJzdW1tYXJ5IjoiIiwidGVtcGxhdGUiOiJ1c2VfZGVmYXVsdF9mcm9tX3NldHRpbmdzIn0=»] ¡Gracias por leer!

📚 Want to dive deeper into Kubernetes? This article is part of our comprehensive Kubernetes Architecture Patterns guide, where you’ll find all fundamental and advanced concepts explained step by step.

Procesamiento de XML con Shell: Cómo actualizar un valor en un archivo XML en 5 minutos

Procesamiento de XML con Shell: Cómo actualizar un valor en un archivo XML en 5 minutos

Aprende a usar xmlstarlet para actualizar valores en archivos XML y manejar cargas XML complejas de manera eficiente en tus scripts de shell

Procesamiento de XML en Shell: Cómo actualizar valores en archivos XML
Foto de Shahadat Rahman en Unsplash

Si trabajas en TI o incluso si consideras TI como uno de tus principales pasatiempos, has escrito un script de shell en algún momento. Si también trabajas en el lado operativo del negocio, esta puede ser tu tarea diaria. Crear, mantener o actualizar el proceso existente.

Hoy en día, es más común interactuar con sistemas externos que utilizan cargas en archivos XML o incluso archivos de configuración escritos en este formato.

El script de shell nativo no proporciona una manera fácil de hacer eso ni bibliotecas de soporte para manejarlo como podemos en lenguajes de programación modernos como Python, Java o Go. Así que, probablemente te has encontrado escribiendo código para analizar este tipo de carga. Pero esta no es la única manera de hacerlo, y podemos (¡y debemos!) aprovechar las utilidades existentes para hacer este trabajo por nosotros.

xmlstarlet

No pude encontrar una mejor manera de explicar lo que hace xmlstarlet que la definición que los propietarios hacen en su repositorio de código fuente:

XMLStarlet es un conjunto de herramientas XML de línea de comandos que se puede usar para transformar,
consultar, validar y editar documentos y archivos XML usando un conjunto simple de comandos de shell
de manera similar a como se hace para archivos de texto plano usando grep/sed/awk/
tr/diff/patch.

Así que, xmlstarlet proporciona todo el poder para hacer cualquier cosa que puedas imaginar al tratar con XML de manera similar a como si fueran archivos de texto plano.

Instalación

El proceso de instalación de esta utilidad es bastante fácil y depende del sistema operativo que estés usando. Asumiré que la mayoría de los scripts de shell están dirigidos a una máquina Unix. Instalar esto es bastante fácil ya que la mayoría de los repositorios de paquetes tienen una versión de esta herramienta.

Así que, si estás usando un sistema basado en apt, necesitas ejecutar el comando:

sudo apt-get install xmlstarlet

Si estás usando otra plataforma, no te preocupes porque tienen versiones disponibles para todos los sistemas operativos y plataformas más utilizados, como puedes ver en el enlace a continuación:

Uso

Tan pronto como tengamos este software instalado, lo primero que haremos es lanzarlo para ver las opciones disponibles.

XMLStarlet Toolkit: Utilidades de línea de comandos para XML
Uso: D:DataDownloadsxmlstarlet-1.6.1-win32xmlstarlet-1.6.1xmlstarlet.exe [<opciones>] <comando> [<opciones-cmd>]
donde <comando> es uno de:
  ed    (o edit)      - Editar/Actualizar documento(s) XML
  sel   (o select)    - Seleccionar datos o consultar documento(s) XML (XPATH, etc)
  tr    (o transform) - Transformar documento(s) XML usando XSLT
  val   (o validate)  - Validar documento(s) XML (bien formado/DTD/XSD/RelaxNG)
  fo    (o format)    - Formatear documento(s) XML
  el    (o elements)  - Mostrar estructura de elementos del documento XML
  c14n  (o canonic)   - Canonicalización XML
  ls    (o list)      - Listar directorio como XML
  esc   (o escape)    - Escapar caracteres especiales XML
  unesc (o unescape)  - Desescapar caracteres especiales XML
  pyx   (o xmln)      - Convertir XML en formato PYX (basado en ESIS - ISO 8879)
  p2x   (o depyx)     - Convertir PYX en XML
<opciones> son:
  -q o --quiet        - sin salida de error
  --doc-namespace     - extraer enlaces de espacio de nombres del documento de entrada (por defecto)
  --no-doc-namespace  - no extraer enlaces de espacio de nombres del documento de entrada
  --version           - mostrar versión
  --help              - mostrar ayuda
Dondequiera que se mencione el nombre del archivo en la ayuda del comando, se asume
que se puede usar una URL en su lugar también.

Escribe: xmlstarlet <comando> --help <ENTER> para ayuda del comando

Así que lo primero que necesitamos decidir es qué comando necesitamos usar, y estos comandos están relacionados uno a uno con la acción que queremos realizar. Me centraré en los comandos principales en este post, pero como puedes ver, esto cubre desde seleccionar valores en un XML, actualizarlo o incluso validarlo.

Caso de uso 1: Seleccionar un valor.

Vamos a comenzar con el caso de uso más simple, intentar seleccionar un valor de un XML (file.xml) como este:

<root>
<object1 name="attribute_name">valor en XML</object1>
</root>

Así que, vamos a comenzar con el comando más simple:

./xmlstarlet  sel  -t -v "/root/object1"  ./file.xml

valor en XML

Esto proporciona el valor dentro del elemento object1, usando -t para definir una nueva plantilla y -v para especificar la sentencia value-of. Si ahora, quisiéramos obtener el valor del atributo, podemos hacerlo de manera muy similar al comando anterior:

./xmlstarlet  sel  -t -v "/root/object1/@name"  ./file.xml

attribute_name

Caso de uso 2: Actualizar valor.

Ahora, seguiremos el otro enfoque basado en el mismo archivo. Actualizaremos el valor del elemento object1 para establecer el texto «texto actualizado».

Para hacer eso, ejecutamos el siguiente comando:

./xmlstarlet ed -u "/root/object1" -v "texto actualizado" ./file.xml

<?xml version="1.0"?>
<root>
  <object1 name="attribute_name">texto actualizado</object1>
</root>

Resumen

xmlstarlet nos proporcionará todas las opciones para manejar algo tan complicado como lo es XML y realizar todas las tareas que puedas imaginar de manera simple sin necesidad de codificar tú mismo toda la lógica de análisis. Espero que seas un desarrollador más feliz desde ahora cuando necesites manejar un XML dentro de un script de shell.