Sep 8th, 2021

El comando head de #GNU

Echemos un vistazo al uso del comando head, una de las herramientas del sistema GNU

Las herramientas coreutils del sistema GNU, son las herramientas básicas de nuestro sistema GNU con kernel Linux a la hora de gestionarlo desde la línea de comandos.

En esta ocasión echaremos un vistazo al comando head, un comando sencillo y que nos puede ser muy útil cuando estamos trabajando en la terminal o para usarlo en algún script.

El comando head es un comando sencillo de utilizar y con pocas opciones que podremos aprender sin mucha dificultad. Básicamente lo que hace es mostrar las primeras 10 líneas (de manera predeterminada) de un archivo o de varios.

head archivo.txt

De esta manera, podremos ver una parte del archivo sin necesidad de abrirlo en un editor, si sólo queremos ver el contenido y no modificarlo.

De manera predeterminada muestra las primeras 10 líneas del archivo, pero podemos modificarlo para mostrar más líneas o menos. Podemos especificar los números de línea con la opción -n <num>

head -n 15 archivo.log

Esto hará que se muestren 15 líneas del archivo especificado. Podemos poner el número que queramos. Si especificamos el número precedido de un guion esto hará algo totalmente distinto. -n -<num>

head -n -15 artículo.md

Esto mostrará todo el contenido del archivo menos las 15 últimas líneas (las especificadas en el comando en este ejemplo) del archivo. Como veis es una diferencia de funcionamiento sustancial.

También podemos especificar no las líneas que queremos que muestre, si no los caracteres a mostrar (o bytes) con la opción -c (sí, los espacios en blanco y los saltos de línea también son caracteres)

head -c 20 artículo.md

Igual que en el caso anterior, si anteponemos un – antes del número, imprimirá todo el archivo menos los últimos caracteres especificados.

También podemos especificar un tamaño de información (bytes, kilos, megas, etc) si lo especificamos añadiendo al número un sufijo (b, K, M, etc)

Como he dicho al comienzo pueden pasarse al comando varios archivos y de todos mostrará la parte indicada. Cuando se especifican varios archivos, el comando muestra una cabecera con el nombre del archivo antes de cada texto del archivo correspondiente.

$ head -n 2 artículo.md Unamuno.md
==> archivo.md <==
lorem ipsum
dolor sit amet

==> Unamuno.md <==
Vencer no es convencer
ni conquistar es convertir

Pero si no queremos que se muestre esa línea que muestra el nombre del archivo, ya que tenemos un script en el que no necesitamos esa funcionalidad, podemos omitirla con la opción -q (quiet)

head -q archivo1.txt archivo2.txt archivo3.txt 

Lo que mostrará sin solución de continuidad los contenidos de los archivos especificados.

De igual manera, si al especificar solo un archivo, queremos forzar que el comando muestre el nombre del archivo antes del texto podemos hacerlo con la opción -v (verbose)

head -v archivo1.txt

Para concluir, si ejecutamos el comando sin especificar ningún archivo, mostrará el contenido de aquello que vayamos escribiendo en nuestra terminal. No sé qué sentido puede tener esto, pero oye, ahí está…

Quizás a la hora de tomar la entrada de head desde otro comando pueda ser útil.


Y eso sería básicamente todo lo relacionado con el comando head. Como siempre, puedes completar esta información con la ayuda del comando en tu terminal mediante cualquiera de estas opciones:

  • man head
  • info head
  • head –help

¿Te gustan esta serie de entradas sobre comandos GNU? ¿Ya conocías esta herramienta? ¿La usas en tu día a día o tus scripts? Comparte tu modo de uso en los comentarios.

Vocabulario en GCompris – A fondo @g_compris (14)

Sigo aprovechándome de una publicación de Valencia Tech en la que se realizaba un listado completo de juegos que ofrece GCompris he empezado una serie donde se describen con más detalles las actividades. Seguimos la serie con la subsección de «Vocabulario» en GCompris, la cual es la última de la sección de Lenguaje.

Vocabulario en GCompris – A fondo @g_compris (14)

Para poder tener claro lo que hacen las aplicaciones de GCompris he pensado hacer una revisión a su enorme colección de juegos y actividades, realizando una simple captura de pantalla y una breve descripción.

Ya hemos descrito la secciones de:

Y ya es hora de hablar de la actividades de la sección «Palabras» de GCompris donde nos encontramos con 5 miniaplicaciones pensadas para enriquecer el dominio del lenguaje.

Asociación de elementos: en la parte izquierda de la pantalla tenemos unas imágenes, en el centro de la pantalla unos elementos y, evidentemente, lo que debemos hacer es asociarlas aunque no sean exactas.

Vocabulario en GCompris – A fondo @g_compris (14)

Colores: aprende los colores básicos.

La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_03.jpg

Categorización: selecciona una categoría y clasifica las palabras según su naturaleza.

La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_04.jpg

Enriquece tu vocabulario: selecciona una categoría y aprende nuevas palabras.

Vocabulario en GCompris – A fondo @g_compris (14)
La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_05.jpg

Colores avanzados: aprende los colores más complejos, pon a prueba tu agudeza distinguiendo matices.

Para poder tener claro lo que hacen las aplicaciones de GCompris he pensado hacer una revisión a su enorme colección de juegos y actividades, realizando una simple captura de pantalla y una breve descripción.

Ya hemos descrito la secciones de:

Y ya es hora de hablar de la actividades de la sección «Palabras» de GCompris donde nos encontramos con 5 miniaplicaciones pensadas para enriquecer el dominio del lenguaje.

Asociación de elementos: en la parte izquierda de la pantalla tenemos unas imágenes, en el centro de la pantalla unos elementos y, evidentemente, lo que debemos hacer es asociarlas aunque no sean exactas.

Vocabulario en GCompris – A fondo @g_compris (14)

Colores: aprende los colores básicos.

La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_03.jpg

Categorización: selecciona una categoría y clasifica las palabras según su naturaleza.

La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_04.jpg

Enriquece tu vocabulario: selecciona una categoría y aprende nuevas palabras.

Vocabulario en GCompris – A fondo @g_compris (14)
La imagen tiene un atributo ALT vacío; su nombre de archivo es Vocabulario-en-GCompris-–-A-fondo-@g_compris-14_05.jpg

Colores avanzados: aprende los colores más complejos, pon a prueba tu agudeza distinguiendo matices.

Vocabulario en GCompris – A fondo @g_compris (14)

GSoC report: syslog-ng MacOS support

For the past couple of months, Yash Mathne has been working on testing syslog-ng on MacOS as a GSoC (Google Summer of Code) student. He worked both on x86 and on the freshly released ARM hardware. And we have some good news here to share: while there is still room for improvement, most of syslog-ng works perfectly well on MacOS.

Read my blog for some historical background and the GSoC report: https://www.syslog-ng.com/community/b/blog/posts/gsoc-report-syslog-ng-macos-support

What is coming in sudo 1.9.8?

Sudo development is at version 1.9.8 beta 3. There are two major new features: sudo can intercept sub-commands and log sub-commands. In this quick teaser I introduce you to log_subcmds. I hope it is interesting enough for you to test it out and provide feedback.

So, what is log_subcmds good for? There are many UNIX tools that can spawn external applications. You only see vi in the logs, but can you be sure without session recording that your admin only edits what he is supposed to? With log_subcmds you can see all the commands started from an application run through sudo. Or you can see all the commands started from a shell, even without session recording.

You can read the rest of my blog at https://blog.sudo.ws/posts/2021/08/what-is-coming-in-sudo-1.9.8/

Απενεργοποίηση ήχου κάμερας κατά την λήψη screenshot

Camera

ΠΡΟΒΛΗΜΑ

Σε συνέχεια του άρθρου Ένωση πολλών εικόνων σε ένα .pdf, θα δουμε πως μπορούμε να απενεργοποιήσουμε τον ήχο κάμερας που κάνει ο υπολογιστής με το πάτημα του πλήκτρου PrtScr. Αν δεν βγάζετε πολλά στιγμιότυπα οθόνης, δεν θα σας πειράζει, αλλά αν τυχόν βγάζετε συχνά, θα δείτε ότι είναι ενοχλητικό.

ΛΥΣΗ

Όσο και να έψαξα κάποια ρύθμιση, δεν βρήκα κάτι. Η λύση δόθηκε με την «διαγραφή» του ήχου και αντικατάστασή του με ένα κενό ήχο. Πως γίνεται αυτό;

Για αρχή μετονομάστε τον ήχο για να το έχετε σε περίπτωση που θέλετε να τον επαναφέρετε. Αυτό γίνεται με την εντολή (μία γραμμή):
sudo mv /usr/share/sounds/freedesktop/stereo/camera-shutter.oga /usr/share/sounds/freedesktop/stereo/camera-shutter-backup.oga

Αντικαταστήστε το με ένα κενό ήχο (μία γραμμή).
sudo ffmpeg -f lavfi -i anullsrc -t 0.5 -c:a libvorbis /usr/share/sounds/freedesktop/stereo/camera-shutter.oga

Σε περίπτωση που θέλετε να επαναφέρετε τον ήχο της κάμερας, απλά δώστε την εντολή (μία γραμμή):
sudo mv /usr/share/sounds/freedesktop/stereo/camera-shutter-backup.oga /usr/share/sounds/freedesktop/stereo/camera-shutter.oga

Αν έχετε βρει κάποιον άλλο τρόπο, αφήστε τον στα σχόλια.

Sep 7th, 2021

El comando yes de #GNU

Veamos qué puede hacer y cómo podemos utilizar el comando yes de las herramientas coreutils del sistema GNU

Las herramientas coreutils del sistema GNU, son las herramientas básicas de nuestro sistema a la hora de gestionarlo desde la línea de comandos.

En esta ocasión echaremos al comando yes, que puede parecer “una frikada” un poco inútil, pero ¿podremos utilizarlo para algo útil? Seguro que sí…

Este artículo es una adaptación de este artículo en inglés escrito por Anoop.

El comando yes por sí solo, al ejecutarlo sin más en una consola, imprime una serie interminable de letras y. Y eso es todo lo que hace… Ejecuta en tu terminal:

yes

Para detener esa imparable secuencia de “y” utiliza la combinación de teclas Ctrl+c ¿Y eso qué sentido tiene?

Esta herramienta fue diseñada en principio para responder afirmativamente (“y” o “yes”) de manera automática a scripts o programas interactivos que pidieran una respuesta del usuario para confirmar una acción.

Pero desde hace tiempo esa funcionalidad quedó anticuada, ya que se han incorporado opciones que fuerzan (-f o –force) que se haga una acción sin necesidad de pedir una confirmación por parte del usuario.

Podemos hacer que el comando rm pregunte una confirmación antes de borrar unos archivos con la opción -i:

rm -i *.txt

Pero también podemos hacer que el comando yes conteste a todo que sí por nosotros:

yes | rm -i *.txt

Vale, este es un caso tonto sin mucho sentido, pero ¿ves cómo lo podríamos utilizar en otros casos?

Pero el comando yes hace algo más. Puede imprimir en la pantalla una secuencia interminable de la frase que le pases como comando. Ejecuta ahora:

yes hola mundo!!!

El comando imprime sin fin la cadena pasada y un salto de línea. De nuevo para detener esa secuencia interminable deberemos hacerlo con Ctrl+c

Casos de uso del comando yes

¿Y para qué podemos utilizar este comando? En principio no parece que tenga mucha utilidad, pero puede servirnos como herramienta en algunos casos.

Podemos generar archivos de texto grandes para utilizarlos en otras tareas. Por ejemplo:

yes 1234 qwer asdf zxcv > archivo.txt

Puede crearnos en pocos segundos un archivo llamado archivo.txt de varios Megas o Gigas, hasta que pulsemos Ctrl-c para detener el proceso.

Pero quizás queremos generar un archivo de un número determinado de líneas, por ejemplo 1000:

yes 1234 qwert asdf zxcv | head -1000 > archivo.txt

También podemos utilizar el comando yes para poner a prueba la CPU de nuestro equipo creando una tarea que haga que el sistema “se estrese” para comprobar que los ventiladores funcionan y todo el sistema responde a esta carga de trabajo.

Abre tu monitor del sistema (htop por ejemplo) y ejecuta:

yes > /dev/null

Verás que la carga de las CPU’s de tu equipo se ponen a trabajar al 100%.

También podemos utilizar el comando yes para comprobar si ciertos comando funcionan correctamente con una entrada tan extensa de comandos.


Como ves el comando es muy sencillo y seguro que respondió a una necesidad de los desarrolladores en aquellos primeros días de la creación del sistema GNU o Unix…

¿Utilizas en alguna ocasión el comando yes? ¿Lo utilizas de una forma distinta a las presentadas aquí? Comparte tus experiencias en los comentarios.

Kubic with Kubernetes 1.22.1 released

Announcement

The Kubic Project is proud to announce that snapshot 20210901 has been released containing Kubernetes 1.22.1.

Release Notes are avaialble HERE.

Upgrade Steps

All newly deployed Kubic clusters will automatically be Kubernetes 1.22.1 from this point.

For existing clusters, please follow our new documentation our wiki HERE

Thanks and have a lot of fun!

The Kubic Team

Sep 6th, 2021

Akademy 2022 busca sede ¡anímate y presenta una candidatura!

Ha aparecido la noticia del dot (blog de anuncios de KDE) y es que la reunión internacional de desarrolladores y simpatizantes de KDE, Akademy 2022 busca sede y creo que si tienes un buen equipo de trabajo y ganas de reunir a lo mejor de la Comunidad KDE y del Software Libre en general esta es tu oportunidad.

Akademy 2020 busca sede ¡anímate y presenta una candidatura!

El pasado miércoles 1 de septiembre fue anunciado que Akademy 2022 busca sede europea para celebrar su evento anual, pensando que para el año que viene ya no tengamos restricciones pandémicas (o al menos que sean compatibles con un evento presencial).

Akademy 2022 busca sede ¡anímate y presenta una candidatura!

Los requisitos se pueden encontrar en el siguiente dossier.

A modo de resumen:

  • El evento se celebrará en verano del hemisferio norte
  • Se necesita un recinto para unas 300 personas con salas auxiliares para las conferencias en paralelo (para unas 150 personas)
  • Las salas deben estar dotadas con proyectores, micrófonos, multitud de tomas de corriente y wifi o conexión de red (esto es deseable aunque no imprescindible).
  • La sede debe contar buena comunicación con un aeropuerto, con un buen servicio de transporte público, alojamiento económico (tipo albergues o hostels) y comida también económica (aunque no necesariamente rápida).
  • Además, para las sesiones de hacking se necesitan varias salas (de 6 a 10)para pequeños grupos de trabajo y una mayor para reuniones (para unas 300 personas)

Parece mucho, pero en realidad cualquier universidad que se precie debería poder ofrecer todas estas condiciones.

¿Qué es Akademy?

Para los que no lo sepan, Akademy es el evento de la Comunidad KDE que aúna en una gran conferencia todo tipo de simpatizantes de KDE como desarrolladores, diseñadores, usuarios, traductores, promotores. Allí se reunirán a lo largo de una semana para compartir charlas, cenas, ponencias, talleres y, en definitiva, para trabajar juntos.
Es una gran semana que sirve para unir más fuerte los lazos que unen nuestra Comunidad, así como para crear nuevos

openSUSE Results from Google Summer of Code

The openSUSE Project participated in this year’s Google Summer of Code along with several mentoring organizations.

Six of the seven accepted projects were successfully completed and mentors of the participating projects helped students improve their programming skills and knowledge of open source over the 10-week program.

Let’s review the contributions!

The first contribution we will cover involves the Uyuni Project. The purpose of the project was converting the JSP code of virtual systems pages to ReactJS. Improving the User Interface of freshly created virtual systems page resulted in a Pull Request 4152 that is listed as work in progress and is nearing completion.

Another contribution focused on improving the IBus themes to make it separate from the current GNOME-Shell theme and GTK theme. This will allow users to customize it with other GNOME-Shell themes and GTK themes. Three community members helped mentor. The student, Songlin Jiang, listed the entire GSoC experience on the Hollow Man’s Blog.

Another student blogging about their experience was Quinn Okabayashi from Swarthmore College. Quinn listed several Pull Requests on his blog while working on the identity management platform written in Rust called Kanidm. Quinn lists the code and details on the My project: integrating Tokio tracing into Kanidm blog.

More Rust code contributions were served up in this year’s GSoC as PRoot was looking to implement a prototype version of PRoot with the Rust language. The project was looking at the most basic features. Daily reports were published and a comprehensive overview can be found on GitHub Gist.

This year Rancher participated in GSoC with openSUSE as the mentoring organization. The mentor and student were focused on building complex logging pipelines by writing Kubernetes custom resource configurations. The goal was to create a tool that would capture a log stream from a running pod and let the users replay it as they desire while correlating those logs with Flow resource specs and highlighting the applied filters. Users could easily understand how the Logging Operator interacts with their application and fine-tune it to their liking. The month of August is filled with excellent contributions from Isala Piyarisi.

Kanidm had another project in this year’s GSoC and the final month of August was several commits from student victorcwai. There were two deliverables for the identity management platform by victorcwai. The first proposed using a Backup code to restore single-device accounts. Authenticated users could generate the Backup code and use it later. When they want to login, they can replace the TOTP/WebAuthn challenge with Backup code. For example, TOTP + password auth will be Backup code + password instead. The second deliverable was integrating the async-std library on OpenSSL and the Rust web framework tide to have an async library of openssl and tide ssl listener with the async-std runtime. A list of the pull requests and an overview of the project were published on victorcwai’s blog.

The openSUSE Project has participated in several GSoC events since 2006 and the project’s mentors have helped more than 60 students become free software developers. The project is always looking for community members who are interested in mentoring for GSoc and can email ddemaio@opensuse.org if they want to help mentor.