Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Null Amusement

Null Amusement

Been old-school-pixel-pushin’ recently, for a project I’ll hopefully reveal soon. But because I’ve also been really keen on music recently, a little side diversion happened that I’d like to share.

It started with generating some samples using the good old SXFR. It’s a tiny sythesizer for generating cute oldschool chiptune/game sound effects. Sadly it doesn’t exist as an app, which is a shame.

SXFR

Then it was off to Polyend Tracker, even if in this case I was sitting in front of my computer so the benefit of having a physical machine to take anywhere was sort of diminished.

Polyend Tracker

In any case the included instrument editor with all its effects and filters came handy. I exported the full song as well as a single pattern to use on the Instagram loop. This time I did no mastering at all, just plain uploaded the track to soundcloud and called it done.

As for the visuals, I’ve used way many more tools than you’d expect. The icon assets were mainly done in Pixaki, a fairly polished pixel editor for iPad. I have numerous beef with it for it being premium priced, mainly in the way it does layered animation, but it absolutely delivers on the immediacy and contrasts with filesystem diving of Aseprite which otherwise beats it bar none. Usually I convert GIFs exported from Aseprite or Pixaki using ffmpeg, but this time I needed to sync the animation to the sound, so I loaded up the GIF and the exported pattern from Tracker into Blender and with the sound wave preview that somehow isn’t on by default, it was a quick job in the VSE.

Blender VSE

Previously, Previously, Previously, Previously, Previously, Previously.

a silhouette of a person's head and shoulders, used as a default avatar

Quinto episodio de KDE Express «Fin de Vacaciones»

Sigo con la promoción del nuevo podcast de la Asociación sin ánimo de lucro KDE España, así que bienvenidos al quinto episodio de KDE Express llamado «Fin de Vacaciones». Escuchemos lo que nos tienen que contar.

Quinto episodio de KDE Express «Fin de Vacaciones»

Comenté hace poco que había nacido KDE Express, un audio con noticias y la actualidad de la Comunidad KDE y del Software Libre con un formato breve (menos de 30 minutos) que complementa los que ya genera la Comunidad de KDE España de forma casi mensual con sus ya veteranos Vídeo-Podcast que podéis encontrar en Archive.org, Youtube, Ivoox y Spotify)

Quinto episodio de KDE Express "Fin de Vacaciones"

Seguimos pues con sus episodios cortitos y, en esta ocasión, cargado de noticias y novedades de la Comunidad KDE, llegando al número 5 de su primera temporada que, en palabras del equipo de KDE Express, se introduce de la siguiente forma:

«

«Han vuelto, José y Brais estaban de merecidas vacaciones pero ya los tenemos por aquí para retomar una ronda de noticias de 20 minutos para empezar el curso poniéndonos al día. Hablaremos de Krita, PeerTube, Steam Deck, Gear, Kasts, puestos de trabajo, entre otras tantas cosas.

A mi me sigue gustando mucho, es rápido, directo al grano y muy dinámico, con lo cual es ideal para aquellos que les guste tener su pincelada de Kdeera en su podcaster. Evidentemente, no se profundiza en temas aunque si se da una visión muy personal de los mismos.

Así que sigo dando mi más sincera enhorabuena a José Picon, Brais Arias y a David Marzal por el esfuerzo y dedicación… y aprovecho para comentar que si alguien está interesado en colaborar (bien sea para iniciarse o bien sea porque cree que puede aportar alguna cosa) no tiene más que ponerse en contacto con ellos enviando un mail a esta dirección kde_express@kde-espana.org.

Por cierto, también podéis encontrarlos en Telegram: https://t.me/KDEexpress

the avatar of Hollow Man's Blog

Alibaba Summer of Code 2020 – Arthas Final Report

Project information

Project name

Provide a separate tutorial for each Arthas command

Project task description

Issue

There are two parts in the old online tutorial: basic and advanced

Research about the online tutorial: #742

  • Each little tutorial is a little longer, and adding new content will cause the tutorial to get longer and longer.
  • Users tend to lose patience.
  • It’s hard to find what you need.
  • More users want to see the usage of a command directly

So consider:

  • Provide a separate tutorial for each command, such as a separate tutorial for the watch command, so that many tips can be written in.
  • One tutorial per case to make it easier for users to learn to use Arthas.

What we need to:

Implementation plan

  1. Move tutorial git Repository https://github.com/hengyunabc/katacoda-scenarios to Arthas itself:

After reading katacoda’s official documentation, I added the katacoda.yaml at root in Arthas repository where I specified the katacoda tutorial is located. Then all tutorials https://github.com/hengyunabc/katacoda-scenarios have been migrated to /tutorials/katacoda/ directory.

  1. Seperate the tutorial, provide a separate tutorial for each Arthas command

Refer to https://arthas.aliyun.com/doc/commands.html . At the same time, the command and user cases in the original tutorial are integrated and classified, and the new version of Arthas tutorial is made. The structure of each command and case tutorial is as follows:

Start demo ->Start arthas-boot ->…[details on how to use each command]…

At the same time, the user case related to the command is integrated into the command tutorial, and it is placed in a separate case tutorial for users to query.

In addition, I have integrated some related special usages. Referring to https://github.com/alibaba/arthas/issues?q=label%3Auser-case , some additional cases have been produced.

  1. Update the web page
    • The new online tutorials include “Arthas Basics” and “Arthas Advanced” from the old online tutorials, which are placed in the “Tutorials” menu bar.
    • Each related command tutorial is placed in the menu by it’s classification. I also place typical user cases online tutorials in the “User Cases” menu bar.

New version menu design:

  1. Add links to the online tutorials for the official documents
image
  1. Usages

Katacoda is an interactive learning and training platform for software engineers. It can use real-world environment to learn and test new technologies in the browser to help developers learn and master best practices.

Katacoda can quickly provide a temporary environment and recycle it after use. Users can operate a complete set of environment through the browser terminal interface according to the designed guidance steps, and learn and practice step by step.

The new Arthas online tutorials provide a very convenient way to learn. You just need to open the corresponding courses, and you can follow the course instructions and complete the learning step by step according to the designed steps.

  1. First visit the online tutorial: https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en , select the course you want to study from the menu:
  2. The course introduction page will indicate the difficulty of the course and the time required to help you understand the basic information of the course. click START SCENARIO to start learning.
  3. Enter the course, the left side is the description of this step, and the right side is a ready terminal, which can be used directly. Click the black blocks on the left to execute commands in the right:
  4. Click the tab on the right to switch between terminals. Then follow the step-by-step instructions to complete the learning step by step:

Milestone review

Half of the commands and user tutorials were merged into the upstream before July 31, and all commands and user tutorials were merged into the upstream on August 14, and then it was online for testing.

Due to the large scale of this project, the completion of each command online tutorial can be regarded as a milestone node.

During the project, more than 80 PRs were sent to Arthas project, with a total increase or decrease of more than 26k lines.

During the test, the number of visits to the tutorial increased dramatically, and was well received by all the users!

  • Well received by users:
image
  • Statistics of the visit and engagement duration of the tutorials. It can be seen that after the new version of the tutorial test was launched on August 14, users and engagement duration have increased significantly:

Project summary

Project deliverables

Move Current Tutorial

#1229

fix link issues (#1235)

Adding Tutorial

User Cases
  • [X] Web Console
    • [X] Chinese
    • [X] English
  • [X] HTTP API
    • [X] Chinese
    • [X] English
  • [X] Arthas boot supported options
    • [X] Chinese
    • [X] English
  • [X] Troubleshooting method invoke exception
    • [X] Chinese
    • [X] English
  • [X] Hotswap code
    • [X] Chinese
    • [X] English
  • [X] Change Logger Level
    • [X] Chinese
    • [X] English
  • [X] Troubleshoot logger conflicts
    • [X] Chinese
    • [X] English
  • [X] Get Spring Context
    • [X] Chinese
    • [X] English
  • [X] Troubleshooting HTTP request returns 401
    • [X] Chinese
    • [X] English
  • [X] Troubleshooting HTTP request returns 404
    • [X] Chinese
    • [X] English
  • [X] The ClassLoaders in Spring Boot application
    • [X] Chinese
    • [X] English
  • [X] Find CPU usage Top N threads
    • [X] Chinese
    • [X] English
  • [X] Log the output
    • [X] Chinese
    • [X] English
  • [X] Async in Background
    • [X] Chinese
    • [X] English
Command
  • [X] cls
    • [X] Chinese
    • [X] English
  • [X] session
    • [X] Chinese
    • [X] English
  • [X] reset
    • [X] Chinese
    • [X] English
  • [X] version
    • [X] Chinese
    • [X] English
  • [X] history
    • [X] Chinese
    • [X] English
  • [X] quit-stop
    • [X] Chinese
    • [X] English
  • [X] keymap
    • [X] Chinese
    • [X] English
  • [X] cat
    • [X] Chinese
    • [X] English
  • [X] echo
    • [X] Chinese
    • [X] English
  • [X] grep
    • [X] Chinese
    • [X] English
  • [X] tee
    • [X] Chinese
    • [X] English
  • [X] pwd
    • [X] Chinese
    • [X] English
  • [X] wc
    • [X] Chinese
    • [X] English
  • [X] plaintext
    • [X] Chinese
    • [X] English
  • [x] dashboard
    • [x] Chinese
    • [x] English
  • [x] thread
    • [x] Chinese
    • [x] English
  • [x] jvm
    • [x] Chinese
    • [x] English
  • [X] sysprop
    • [X] Chinese
    • [X] English
  • [X] sysenv
    • [X] Chinese
    • [X] English
  • [X] vmoption
    • [X] Chinese
    • [X] English
  • [X] perfcounter
    • [X] Chinese
    • [X] English
  • [X] logger
    • [X] Chinese
    • [X] English
  • [X] mbean
    • [X] Chinese
    • [X] English
  • [X] getstatic
    • [X] Chinese
    • [X] English
  • [X] ognl
    • [X] Chinese
    • [X] English
  • [X] sc
    • [X] Chinese
    • [X] English
  • [X] sm
    • [X] Chinese
    • [X] English
  • [X] dump
    • [X] Chinese
    • [X] English
  • [X] heapdump
    • [X] Chinese
    • [X] English
  • [X] jad
    • [X] Chinese
    • [X] English
  • [X] classloader
    • [X] Chinese
    • [X] English
  • [X] mc-redefine
    • [X] Chinese
    • [X] English
  • [X] monitor
    • [X] Chinese
    • [X] English
  • [X] watch
    • [X] Chinese
    • [X] English
  • [X] trace
    • [X] Chinese
    • [X] English
  • [X] stack
    • [X] Chinese
    • [X] English
  • [X] tt
    • [X] Chinese
    • [X] English
  • [X] options
    • [X] Chinese
    • [X] English
  • [X] profiler
    • [X] Chinese
    • [X] English

Web Page Updating

  • [X] Part1 PR #1364
  • [X] Part2 PR #1385
  • [X] Split command menu bar PR #1414

Add Links

This part is included in the Adding Tutorial part’s PR.

Add Guides

Add guides for using and contributing (#1455)

Bug Fix

Fix intro.md Problems (#1367)

Delete all the arthas-boot.md ‘–target-ip 0.0.0.0’ boot parameter (#1359)

Fix classloaderhash Problems (#1417)

Fix typos (#1418)

Fix typos (#1419)

Fix typos (#1434)

Fix Website (#1435)

Fix displaying (#1436)

Update sc/sm Online Tutorial for classLoaderClass (#1443)

Fix ID doesn’t exist in T4 (#1451)

Fix links, typos, ‘intro.md’, ‘finish.md’ for Online Tutorials (#1453)

Add Press Q or Ctrl+C to abort for enhanced commands (#1454)

Classloader using –classLoaderClass in Advanced tutorial (#1456)

Fix typos and accessibility #847 (#1460)

Add –classLoaderClass Param PRs

Classloader support matching classloader by class name (#1428)

Optimize –classLoaderClass #1428 (#1431)

Add –classLoaderClass for sc/sm (#1433)

Add –classLoaderClass for logger (#1445)

Add –classLoaderClass for dump/getstatic/jad/mc/redifine (#1447)

Other Unmerged PRs

Split arthas-advanced to arthas-command (#2)

Arthas Online course arrangement and compilation supplement (#5)

Arthas Online course arrangement and compilation supplement (#1239)

Arthas Online course arrangement and compilation supplement —— Update web pages (#1241)

Arthas Basic Command Tutorial (#1303)

Fix typos in #1292 (#1446)

Project highlights

  1. Straightforward and convenient menu design. Commands and user cases are classified to facilitate users to retrieve certain problems or specific usage methods.
  2. Introduce the online tutorial in the official documents, which is convenient for users to click the link directly.
  3. Online tutorial can use real environment to learn and test new technology in browser, and help developers learn and master best practices.
  4. Online tutorial can quickly provide a complete set of temporary environment and recycle it after use. Users can operate the environment through the browser terminal interface according to the designed guidance steps, and learn and practice step by step.
  5. Solve the user’s trouble of too troublesome to set up own environment, not having supported environment to try Arthas and the poor operability of the documents and the difficulty of hands-on practice.
  6. The git repository of the tutorial is placed in Arthas itself so that Arthas contributors can easily find the source code location of the online tutorial and continue to contribute to it.
  7. Actively Add –classloaderclas parameter for classloader/sc/sm/logger/dump/getstatic/jad/mc/redifine, through which you can directly specify a classloader which has no duplicate name, and do not need to use c parameter to specify dynamically changing hash value of classloader, which is convenient for online tutorial writing.

Experience

Alibaba Summer of Code 2020 has greatly trained my team cooperation and communication skills, broadened my vision, and I gained a lot.

The two mentors also gave me a lot of guiding opinions during ASoC 2020, and I would like to thank them for their hard guidance 😀

Therefore, students, if you have enough enthusiasm for open source, you are recommended to participate in the future Alibaba Summer of Code activities!

a silhouette of a person's head and shoulders, used as a default avatar

El comando find de #GNU

El comando find del sistema GNU nos servirá para buscar archivos o directorios en nuestros sistemas GNU/Linux

Aunque seamos personas organizadas (no es mi caso) a veces simplemente no encontramos en nuestros sistemas un archivo que recordamos que debería estar en alguna carpeta de nuestro disco duro.

En nuestro entorno de escritorio, quizás existan indexadores de archivos que de manera gráfica nos ayudarán a encontrarlos rápidamente.

Pero si nuestro entorno es la terminal y la línea de comandos, también tendremos herramientas para encontrar un archivo (o carpeta) del que recordamos su nombre, parte de su nombre, que está en una carpeta y lo hemos modificado hace poco, etc.

Esa herramientas en sistemas GNU con kernel Linux son las formadas por findutils de GNU que las componen varias herramientas: find, locate, updatedb, xargs

En este artículo vamos a ver algunas de las opciones que nos ofrece el comando find. Que realiza una búsqueda en un árbol de directorios para encontrar un archivo o grupo de archivos.

Recorre ese árbol de directorios y muestra todas las ocurrencias encontradas de acuerdo a las especificaciones que le haya pasado el usuario. El comando find tiene unas funcionalidades muy potentes de búsqueda.

Este artículo es una adaptación del artículo escrito por Seth Kenlon para la web opensource.com publicado bajo licencia CC-by-sa.

Para este artículo vamos a suponer que tenemos en nuestro /home un directorio llamado Documentos y que dentro, entre otros muchos archivos y carpetas hay 4 archivos llamados: Archivo, archivo, archivoaux.txt y archivo.xml

Encontrar un archivo por el nombre

Puedes localizar un archivo por su nombre de archivo buscando por el nombre completo sin nos acordamos o por una parte del nombre utilizando expresiones regulares.

El comando find necesita la ruta del directorio en el que quieres buscar, las opciones de por qué atributo lo estás buscando (por ejemplo -name buscará por el nombre teniendo en cuenta mayúsculas y minúsculas) y la cadena de búsqueda.

De manera predeterminada, el comando find buscará un nombre de archivo que es exactamente la cadena especificada entre comillas a menos que utilices expresiones regulares.

Vamos a realizar una búsqueda básica de un archivo llamado “archivo” y queremos que busque en nuestro /home/Documentos que también se puede referirse a él como ~/Documentos. Es decir ~ sería similar a /home/tu_usuario/Documentos

Al especificar un $ delante del comando, esto significa que el comando es ejecutado por un usuario sin privilegios de root.

$ find ~/Documentos -name "archivo"
/home/victorhck/Documentos/archivo

Como véis solo encuentra el archivo que coincide con el nombre teniendo en cuenta las mayúsculas y las minúsculas. Es decir encuentra “archivo” pero no “Archivo”.

Para no tener en cuenta las mayúsculas y minúsculas en el nombre utilizaremos la opción -iname (insensitive name)

$ find ~/Documentos -iname "archivo"
/home/victorhck/Documentos/archivo
/home/victorhck/Documentos/Archivo

Usando comodines

Pero quizás nos acordamos sólo de parte del nombre, para eso se utilizan los comodines, para que sea reemplazado esa parte del nombre por cualquier letra.

El asterisco * reemplaza cualquier número de caracteres. Un signo de cierre de interrogación reemplaza a un único caracter.

$ find ~/Documentos -iname "archivo*"
/home/victorhck/Documentos/archivo
/home/victorhck/Documentos/Archivo
/home/victorhck/Documentos/archivo.xml
/home/victorhck/Documentos/archivoaux.txt
$ find ~/Documentos -iname "archivo*.???"
/home/victorhck/Documentos/archivo.xml
/home/victorhck/Documentos/archivoaux.txt

Encontrar un archivo modificado en la última semana

Los archivos en los sistemas GNU y Unix almacenan tres “fechas” importantes:

  • La fecha de acceso. Cuando se leyó el archivo por última vez (atime)
  • La fecha de cambio. Cuando se cambió algún atributo (ctime)
  • La fecha de modificación. Cuando se modificó el contenido del archivo (mtime)

Para buscar un archivo que fue modificado en la semana pasada, utiliza la opción -mtime junto con un número (negativo) de días del pasado:

$ find ~/Documentos mtime -7
/home/victorhck/Documentos/archivo
/home/victorhck/Documentos/Archivo
/home/victorhck/Documentos/archivo.xml
/home/victorhck/Documentos/archivoaux.txt

O también podemos combinar ciertas opciones de -mtime para encontrar un archivo modificado dentro de un rango de días.

Podemos buscar un archivo modificado hace un día (indicado con un signo positivo) pero no más de siete días atrás (con un símbolo negativo). Este sería un ejemplo:

$ find ~ -mtime +1 -mtime -7

Buscando por tipo de archivo

Es común optimizar y restringir los resultados de la búsqueda especificando el tipo de archivo que estás buscando. No deberías utilizar esta opción si no estás muy seguro de qué estás buscando.

Pero si sabes que es un archivo, o un directorio, puedes especificar el tipo y así restringir los resultados con la opción –type. Los tipos de búsqueda más comunes son (aunque hay más):

  • d → para directorios
  • f → para archivos
  • l → para enlaces simbólicos

Aquí tienes un ejemplo para buscar dentro de nuestro /home las carpetas que se comience su nombre con Doc:

$ find ~ -type d -name "Doc*"  

Y si queremos que no distinga entre mayúsculas y minúsculas utilizaríamos la opción -iname en vez de -name como hemos visto anteriormente.

Ajustando el alcance del comando

El comando find de manera predeterminada busca de manera recursiva, esto significa que realiza la búsqueda dentro de la ruta especificada, y dentro de los directorios de esa ruta, y dentro de los directorios de los directorios de esa ruta, etc.

Esto puede convertirse en contraproducente según las rutas donde busquemos. Podemos utilizar la opción –maxdepth para decirle al comando en cuantos niveles de sub carpetas queremos queremos que entre.

Por ejemplo vamos a buscar todos los archivos .pdf que tengo en mi equipo y contaremos las ocurrencias pasándole lo encontrado por find al comando wc -l que contará las líneas que haya encontrado find

$ find ~ -name "*pdf" | wc -l 
298

Esto ha buscado todos los archivos PDF en todo mi /home. Ahora ejecutaremos lo mismo, pero diciéndole que solo entre a buscar en dos niveles de subcarpetas. Lo que reduce el número de archivos encontrados.

$ find ~ -maxdepth 2 -name "*pdf" | wc -l
42

También existe la opción de indicar el número mínimo de niveles de subcarpetas en los que debe buscar el comando find con la opción –mindepth

Más opciones de búsqueda del comando find

Pero además de todo lo visto, este comando tiene muchas más opciones a la hora de realizar búsquedas, veremos algunas:

  • -perm → realizará una búsqueda de archivos que coincidan con unos permisos determinados
  • -empty → una opción muy interesante es buscar archivo o carpetas que estén vacías
  • -user → podremos buscar archivos que pertenezcan a un usuario determinado del sistema.
  • -size → otra opción interesante es buscar archivos o carpetas que sean de un tamaño especificado.
  • -exec <comando> → añadiendo esta opción podremos ejecutar el <comando> que queramos a los resultados de la búsqueda efectuada (podremos buscar con grep, cambiarles permisos con chmod, borrarlos con rm, etc)

Y esto sería un uso básico explicado del comando find. Además de las fuentes habituales de información sobre un comando con las páginas man o info te recomiendo un artículo del gran David aka “ochobitshacenunbyte”:

Un verdadero hacker de GNU/Linux que en su artículo muestran muchos ejemplos prácticos. No como yo, que soy un simple aprendiz!! 🙂

a silhouette of a person's head and shoulders, used as a default avatar

Nueva charla y taller «Install Party» en Los Anguijes (Albacete) organizada por Asociació Emanciació Comunitaria

Me congratula promocionar una nueva charla y taller «Install Party» en en Los Anguijes (Albacete) organizada por Asociació Emanciació Comunitaria, con la colaboración de la Asociación GNU/Linux València. Se trata de una nueva edición de la que ya realizaron el pasado 21 de agosto y realizarán el domingo 19 de septiembre. Más información, sigue leyendo.

Nueva charla y taller «Install Party» en Los Anguijes (Albacete) organizada por Asociació Emanciació Comunitaria

Nueva charla y taller «Install Party» en Los Anguijes (Albacete) organizada por Asociació Emanciació Comunitaria
Logo Emanciació Comunitaria

Parece ser que poco a poco vuelve la normalidad en cuanto a actividades presenciales de la comunidad GNU/Linux. Eso si, con todas las medidas de seguridad que sean necesarias.

Es por ello que me complace compartir con vosotros un nuevo evento del grupo de personas que en València está impulsado el Software Libre y temas relacionados con el empoderamiento de la sociedad que lleva por nombre Asociació Emanciació Comunitaria, que podéis encontrar en su Grupo y Canal de Telegram.

Charla y taller «Install Party» en Bolbait (València) organizado por Asociación GNU/Linux València
Logo GNU/Linux València

Es por ello que os invito a la nueva charla y taller «Install Party» en Los Anguijes (Albacete) que se va a realizar el próximo sábado 2 de octubre que vuelve a tener como lema «Para una sociedad libre necesitamos una tecnología que no esté controlada por el poder».

Nueva charla y taller «Install Party» en Bolbait (València) organizada por Asociació Emanciació Comunitaria

De esta forma se han organizado varias actividades:

  • 10:00 h: Charla sobre el Software Libre, donde se explicará la importancia del software libre en una comunidad con democracia real
  • Comida comunitaria, preferiblemente vegana.
  • 17:00 h: Taller Install Party, al que podréis LLEVAR VUESTRO EQUIPO y os ayudaremos a instalar un Sistema Operativo COMPLETAMENTE LIBRE!! · ◡ · además de otras herramientas. que nos permiten independencia de aquellas controladas por instituciones, empresas y estados.

Resumiendo, la información básica es:

  • Fecha: sábado, 19 de agosto de 2021
  • Horario: A partir de las 10:00
  • Lugar: Los Anguijes (Albacete)
  • ¿Registro necesario? Si, plazas limitadas. Reserva en el siguiente teléfono 616214149.

Si podéis asistir no os lo perdáis, seguro que no quedáis decepcionados.

the avatar of openSUSE News

KDE Gear, Plasma, systemd Update in Tumbleweed

There was one openSUSE Tumbleweed snapshot this week out of five that brought an enormous amount of package updates for those using the rolling release.

Snapshot 20210904 brought updates for systemd, GTK4, Mesa, KDE’s Plasma and Gear and many other packages.

The most recent snapshot to be released was 20210908; it updated fuse3 3.10.5 and made various improvements to unit tests more robust for the Filesystem in Userspace package. The mpg123 1.29.0 update added an--enable-runtime-tables. An update of yast2 4.4.17 provided some maintenance for the systemd package that arrived earlier in the week. A few other packages like glslang 11.6.0, libstorage-ng 4.4.36 and pinentry 1.2.0 were also updated in the snapshot.

Snapshot 20210907 updated seven packages. The package manager zypper 1.14.49 made a change to avoid calling su as it can be too restrictive for sudo user umask. The package manager library libzypp also had an update to version 17.28.3, which had a policy modification for avoid the breaking of a single rpm transaction. The AV1 decoder package dav1d 0.9.2 had some Streaming SIMD Extensions 3 and SSE4 optimizations for x86_64. Other packages updated in the snapshot were geoclue2 2.5.7, mozilla-nss 3.69.1, supermin 5.2.1 and an update to plymouth.

The 20210906 snapshot had two package updates. The --nodst option for Docker’s local network driver MacVLAN was added in the iproute2 5.14 update. The package also added support for wireless wide area network devices. There were about four months worth of updates in the 20210901.1550 permissions update, which cleaned up some paths and updated the kdesud and ksgrd_network_helper paths.

The GTK4 4.4.0 update in snapshot 20210904 added support for the gnome-shell title bar gesture protocol and made a change to use harfbuzz for color-font information. An update to systemd 249.4 arrived in the snapshot; the new systemd version was extensively tested and and the dependencies needed for the update were added. Mesa 21.2.1 was the first bug-fix release in the mesa 21.2 series, which focused on fixes for fossilize_db. Both Mozilla Firefox 91.0.2 and Mozilla Thunderbird 91.0.3 were updated in the snapshot. The browser no longer clears authentication data when purging trackers; this was done to avoid repeatedly prompting for a password. The email client fixed some user experience setup issues and also pushed a fix that sometimes sent an unnecessary “SMTPUTF8”, which caused some servers to reject the email. KDE’s Plasma 5.22.5 fixed the handling of IPV6 addresses for ksystemstats, and it had multiple fixes for the Plasma Desktop that included a fix for the emoji picker and a fix for some inconsistent behavior involving hovering over the tooltip. KDE Gear 21.08.1 fixed a brightness-effect corruption in Kdenlive that was related to the GNU Compiler Collection. Gear also had a Konsole fix involving the closing of the split view. The Ethernet station-activity-monitor package arpwatch had a major version update to 3.1, which provided a notable upstream change of adding Python 2 compatibility to massagevendor. The Linux Kernel update to version 5.14.0, which updated and enabled configurations for ARMv6 and ARMv7. Other packages to update in the snapshot were Flatpak 1.11.3, hwdata 0.351, libvirt 7.7.0, php7 7.4.23, qemu 6.1.0 and several more.

The snapshot that began the week was 20210902. The Linux Bluetooth protocol bluez 5.61 provided a couple Advanced Audio Distribution Profile fixes and fixed an issue with storing discoverable settings. The disk encryption package cryptsetup updated to version 2.4.0 and provided backend support for OpenSSL3. Support for new distributions was added in the hplip 3.21.6 printing package and transactional-update 3.5.2 fixed overlay syncing errors with SELinux.

a silhouette of a person's head and shoulders, used as a default avatar

Fiesta 25 aniversario KDE de Barcelona

Se nos viene gran celebración. De momento, os invito a la fiesta 25 aniversario KDE de Barcelona que se va a celebrar el sábado 16 de octubre, por eso de que sea en fin de semana y facilitar la asistencia.

Fiesta 25 aniversario KDE de Barcelona

El tiempo pasa rápido y veloz y ya tenemos entre nosotros otro gran aniversario de la Comunidad KDE. Parece que fue ayer cuando celebramos el 20 aniversario del proyecto y realizamos todo tipo de eventos.

En esta ocasión vamos a celebrar el 25 aniversario del proyecto KDE, el cual llega a este nada despreciable número el próximo 24 de octubre.

Para ello ya se están organizando diversos eventos entre los que se encuentra la Fiesta 25 Aniversario KDE de Barcelona, un encuentro informal que están organizando en la Ciudad Condal diversos miembros de KDE España para el próximo 16 de octubre en un lugar todavía por determinar.

Esta fiesta en realidad es una más de las que se están organizando en el mundo. Os invito tanto a organizar una en vuestra ciudad como en participar en las que os pille cerca.

Más información: KDE Community Wiki

Nacimiento del proyecto KDE

En la mesa que podemos ver en la imagen inferior Matthias Ettrich y Martin Konold hablaron sobre la creación de un proyecto que iba a ser parte fundamental del Software Libre y de la vida de cientos de desarrolladores.

Fiesta 25 aniversario KDE de Barcelona

Un poco más tarde, Mattias redactó y envió un 14 de octubre de 1996 el correo electrónico que a anunciaba el nacimiento de KDE y pidiendo desarrolladores que se involucraran en él. Seguidamente, creó la primera lista de correo del Proyecto KDE, que fue la principal vía de comunicación de los desarrolladores durante un tiempo.

Desde entonces ha llovido mucho. Y KDE ha pasado ser «The Kool Desktop Environment (KDE)» a ser una Comunidad donde tienen cabida todo tipo de personas con todo tipo de talentos, y no todos necesariamente ligados con la programación.

a silhouette of a person's head and shoulders, used as a default avatar

El comando tail de #GNU

Veamos las funciones y opciones del comando tail, una de las herramientas del sistema GNU

El comando tail es otra de las herramientas coreutils del sistema GNU. Las herramientas básicas para la gestión de archivos, manejo del sistema y utilidades de manipulación de texto, disponibles en sistemas GNU/Linux.

El comando tail es un comando “complementario” y muy similar al comando head (que ya vimos en un artículo anterior) y que nos mostrará el contenido de la última parte de un archivo.

El comando tail muestra de manera predeterminada las 10 últimas líneas (aunque esto se puede modificar) de un archivo de texto o de varios. Útil para consultar (por ejemplo) un archivo de registros del sistema al que se van añadiendo nuevas entradas modificando el archivo.

tail archivo.txt

El comando anterior mostrará las 10 últimas líneas del archivo sin necesidad de abrir un editor para consultarlo. También podremos pasar esa salida a otro comando para gestionarla con un script, etc…

Si queremos modificar que muestre más o menos de las 10 últimas líneas de un archivo que hace de manera predeterminada, podremos especificar el número de líneas que queremos que muestre con la opción -n <num>. Esto mostrará las 15 últimas líneas del archivo especificado.

tail -n 15 archivo.txt

Si anteponemos un símbolo + antes del número cambia totalmente su comportamiento. Al hacer eso el comando tail mostrará todo el archivo menos las líneas especificadas en el comando. Este ejemplo mostrará todo el archivo, menos las primeras 20 líneas del archivo especificado.

tail -n +20 archivo.txt

Al igual que con head, podremos especificar el contenido a mostrar, no por líneas, si no por caracteres con la opción -c. Esto mostrará los últimos 10 caracteres del archivo.

tail -c 10 archivo.txt

También podremos mostrar todo el archivo, menos los primero 10 caracteres del archivo, anteponiendo un + antes del número:

tail -c +10 archivo.txt

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)

Un comportamiento interesante del comando tail que head no tiene, es que tail puede mostrar un archivo “en directo” es decir, puede mostrar el archivo y el nuevo contenido si este archivo ha sido modificado, con la opción -f

tail -f archivo.txt

Con esto, el comando no se cierra al mostrar el archivo, si no que si el archivo es modificado, esas modificaciones se verán reflejadas en el comando.

De manera predeterminada, el comando tail seguirá y mostrará el contenido del archivo especificado, pero ¿qué pasa si el archivo es renombrado? que el seguimiento de ese archivo se perderá.

Para eso el comando tail tiene la opción de seguir, no el nombre, si no el descriptor (un número único para cada archivo abierto en el sistema), así si el archivo es renombrado, tail seguirá mostrando el contenido del archivo especificado si este sigue siendo modificado.

tail --follow=descriptor archivo.txt

También podemos especificar junto con la opción -f al comando tail que termine cuando el identificador de un proceso de nuestro sistema (PID) termine. Útil para seguir las modificaciones que realice cierta tarea del sistema y que se cierre.

tail --pid=9390 -f archivo.txt

En el caso anterior el PID 9390 corresponde a un editor de texto que tiene abierto ese archivo. Al guardar las modificaciones del archivo estas se reflejarán en la salida del comando tail. Y al cerrar el editor, terminará el comando tail de mostrar el contenido del archivo.

También podemos hacer que tail no muestre inmediatamente los resultados si lo hemos ejecutado con la opción -f si no que espere un número de segundos, antes de mostrar los nuevos cambios.

Esa opción se realiza con la opción -s (sleep) pero no me parecía funcionar, debido a que con inotify se hace un seguimiento de los archivos por parte del sistema.

Si queremos que funcione, deberíamos especificar una opción no documentada en la ayuda que es —disable-inotify (sí tiene tres — al comienzo del comando). Es este ejemplo mostrará los cambios del archivo cada 10 segundos:

tail -f -s 10 ---disable-inotify archivo.txt

tail también puede mostrar el contenido de no solo un archivo, si no de varios y antes de cada archivo añadirá una cabecera con el nombre del archivo, para poder diferenciarlos.

tail archivo1.txt archivo2.txt

Podemos hacer que tail no muestre el nombre de cada archivo añadiendo la opción -q (quiet). O forzar a tail a que lo muestre incluso con un archivo con la opción -v (verbose).


Y esto es básicamente lo más importante de este comando, simple, pero que quizás nos puede resultar muy útil a la hora de gestionar nuestros sistemas GNU/Linux u otros derivados de Unix.

¿Te ha resultado interesante? ¿Ya lo conocías y lo usabas? ¿Has descubierto algo nuevo con este comando? Utiliza los comentarios del blog para compartir tu opinión y así saber si te resultan interesantes estos artículos.

a silhouette of a person's head and shoulders, used as a default avatar

Presenta tu charla a Akademy-es 2021

Este año, como el anterior, Akademy-es 2021 se celebrará en línea del 19 al 21 de Noviembre. Realmente falta poco tiempo, así que en el mismo anuncio se ha abierto el Call for Papers, es decir, el momento de participar activamente en el evento. Así que ya sabes: presenta tu charla a Akademy-es 2021 y muestra al mundo tu proyecto.

Presenta tu charla a Akademy-es 2021

A pesar de todas las restricciones para vernos que tenemos debido a la pandemia, los eventos comunitarios parece que no se detienen.

Hace unos días compartí con con vosotros que este año Akademy-es 2021 se vuelve a realizar en línea del 19 al 21 de noviembre, en una edición muy especial utilizando tecnologías de telecomunicación libres.

Siguiendo el esquema habitual, las charlas se realizarán en línea el viernes 19 por la tarde, sábado 20 durante todo el día y la mañana del domingo 21, con lo que tendremos un buen maratón de novedades de la Comunidad KDE.

Como se ha comentado en anteriores ocasiones, uno de los objetivos de Akademy es aprender y enseñar nuevos conocimientos y compartir entre nosotros la pasión de lo que se hace en KDE.

Si crees que tienes algo importante que presentar, por favor házselo saber a la organización. Y si crees que alguien debería presentar su ponencia, no dejes de animarlo para que lo haga. Todas las contribuciones son útiles.

Presenta tu charla a Akademy-es 2021
Adrián Chaves y Albert Astals en la Akademy-es 2018 de València

Para más detalles, mira las líneas generales del Call for Papers. Tienes de plazo para enviar tu propuesta hasta el domingo 24 de Octubre 23:59:59 CEST al correo akademy-es-org@kde-espana.org.

Es importante tener en cuenta las siguientes consideraciones:

  • Se puede elegir entre dos formatos de charlas:
    • Charlas de 45 minutos.
    • Charlas relámpago (Lightning talk) de 10 minutos.
  • Si la duración de las charlas propuestas no se ajusta a ninguno de estos dos esquemas (por ejemplo, si se necesita más tiempo), esto debe indicarse claramente en la comunicación.
  • Se permitirá a KDE España la distribución bajo una licencia libre de todo el material utilizado para la realización de la actividad, así como de la grabación de la misma.
  • La charla puede ser tanto a nivel de usuario como de nivel técnico.
a silhouette of a person's head and shoulders, used as a default avatar

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.