Minus, la red social con límite
Minus es una red social en la que el números de contenido que puedes compartir está limitado

Las redes sociales han cambiado muchas cosas en la sociedad occidental actual. Es sencillo compartir y comunicarse con personas con mismos intereses, aprender cosas nuevas, etc.
También es el sitio ideal para que trolls y haters campen a sus anchas y que se fomenten bulos, noticias falsas, discursos de odio, etc.
Todo eso es parte de la naturaleza humana, de lo mejor y de lo peor… y otra cualidad es la temporalidad de todo. Y cuando digo todo, me refiero a todo…
Como cantaba la gran Mercedes Sosa, todo cambia. Y como decía (no sé quién) lo único inmutable es el cambio.
Vivimos en un mundo finito, en el que la expansión y crecimiento es la bandera de los neliberales y eso está haciendo que acabemos con preciados recursos de nuestro planeta. Es una incongruencia y una insensatez.
Por eso la red social minus, propone una idea novedosa, solo te permite compartir 100 posts y después tu cuenta se cerrará. Esto es lo que dicen sobre su red social:
Minus es una red social finita en la que obtienes 100 publicaciones, de por vida. Si bien puede responder a una publicación con la frecuencia que desee, cada vez que agrega al feed, se resta de su total de por vida. Cuando llegue a 0 publicaciones restantes, eso es todo. Sin excepciones.
La alimentación es cronológica inversa, no algorítmica. Las marcas de tiempo de las publicaciones son vagas. Nada se monetiza. No hay me gusta ni seguidores ni notificaciones ruidosas. La única métrica visible del sitio cuenta hacia atrás, que muestra cuántas publicaciones le quedan a cada usuario.
¿Qué tan desorientador será interactuar en una plataforma que no intenta inducir un compromiso interminable en cada segundo de tu vigilia? ¿Qué dirás, o harás, cuando te liberes de la demanda infinita?
Al igual que la vida, Minus tiene límites. Pruébelo hoy y vea cómo se siente la interacción en línea en una red social diseñada por menos.
Esto más que una red social, supongo que quiere ser un experimento o una manera de reflexionar que más pronto o más tarde todo se termina.
Los servidores de nuestras redes sociales no son infinitos, todo lo que enviamos (comentarios, vídeos, fotos, etc) se almacenan en discos duros de servidores.
Mantener esos datos requiere recursos. Recursos de medios para almacenar (servidores, discos duros), de materias primas (silicio, tierras raras) para crear esos medios y de energía que alimente esos medios (alimentación eléctrica de los equipos y alimentación eléctrica de los medios que refrigeran esos equipos).
Ahora mismo estamos en una vorágine en la que creemos que todo es para siempre y nada se acaba… pero será duro despertar de este espejismo.
La crisis mundial de semiconductores quizás es una alerta de que esto no puede continuar por estos derroteros. Obsolescencia programada, publicidad para inocular la “necesidad” de volver a cambiar de móvil o tirar ese equipo todavía funcional por otro más novedoso y mejor (por tiempo limitado), la imposibilidad de reparación de equipos y mucho más…
También la red social minus, la veo como una reflexión de compartir por la red aquello más importante dejando a un lado aquello que no aporta nada.
Son 100 posts los que podremos compartir, deberemos pensar bien qué queremos decir. Se acabó la producción rápida y el consumo rápido de contenido, que es la tendencia actual de las redes sociales más modernas.
Un dedo preparado haciendo “scroll” de manera infinita y consumiendo sin reflexionar contenidos breves e intrascendentales que se perderán en el maremagnum de vídeos de gatos, retos cada vez más tontos, bromas sin gracia y bailes únicos que repiten miles y miles de personas.
Bueno, con la excusa de esta curiosa red social os he soltado todo este “rollo” que quizás pocas personas leerán. Muchas buscarán rápidamente un enlace, un titular, una imagen sobre la que pinchar y satisfacer así el ansia consumista…
Si tú lector o lectora del blog has recorrido estas líneas hasta llegar aquí, muchas gracias…

Actualización de Plasma Mobile de agosto de 2021
Parece ser que el desarrollo de Plasma Mobile, se va a convertir en una entrada recurrente en el blog. Desde que en abril realicé un artículo donde enumeraba la gran cantidad de aplicaciones básicas, las novedades de junio incorporando más aplicaciones y la actualización de julio, hoy sigo presentando la actualización de Plasma Mobile de agosto de 2021. Una buena noticia para todos los que soñamos con un móvil libre y funcional para nuestro día a día.
Actualización de Plasma Mobile de agosto de 2021
Para los que no lo conozcan Plasma Mobile es la alternativa libre a interfaz gráfica para smartphones de la Comunidad KDE, hablé de él hace un tiempo.
Su idea es muy simple, tras conquistar tu escritorio KDE también quiere conquistar tu teléfono móvil… aunque todavía lo tenga complicado.

No obstante, confiemos que de igual forma se han ido conquistando los ordenadores de sobremesa, portátiles y servidores, lleguemos un día que podamos tener libertad total en nuestros smartphones.
Y para cuando eso ocurra la Comunidad estará preparada para ello y por eso está confeccionando un catálogo más que decente de aplicaciones con tecnología adaptativa que se ajustarán a nuestras pantallas.
La actualización de agosto de Plasma Mobile viene cargado de novedades:, algunas de las cuales las resumo a continuación:
- Shell: la interfaz básica de funcionamiento ha recibido múltiples mejoras, Aleix Pol arregló muchos problemas en KWin que afectaban al teclado virtual, mejorando en gran medida la fiabilidad de que aparezca en apantalla y cerrarlo cuando no se necesita. También reescribió el código de los ajustes rápidos del panel superior, poniendo en marcha la infraestructura que facilitará la creación de botones de ajuste rápido personalizados.
- SpaceBar: la aplicación de Plasma Mobile para recibir y enviar SMS. Smitty van Bodegom ha arreglado el código de estado de los mensajes en Spacebar para que se muestre correctamente en todos los casos cuando el envío de un mensaje falla. Además, arregló un error común que era causado por el envío del número de teléfono a oFono en un formato que no entendía.
- KWeather: Nicolas Fella hizo una refactorización importante de la aplicación, así como de la biblioteca de backend de la que depende. Han Young y Devin Lin cambiaron el gráfico del tiempo para utilizar los gráficos Qt Quick, solucionando los problemas de líneas demasiado gruesas que se representaban en el Pinephone.
- KClock: Boris Petrov ha añadido una función que permite poner en bucle los temporizadores. Esto le permitirá establecer temporizadores en bucle indefinidamente para hacer tareas repetitivas, por ejemplo. Boris también ha añadido la opción de poder especificar comandos personalizados para que se ejecuten cuando un temporizador termine. Devin ha corregido los problemas de tamaño de las ventanas con alturas pequeñas, mejorando la experiencia en el modo horizontal en el Pinephone. También mejoró algunas de las animaciones en toda la aplicación.
- Kasts: el gestor de podcast de Plasma Mobile además de recibir algunas correcciones de errores menores, ahora permite cambiar la ubicación donde se guardan los episodios de podcast descargados y las imágenes en caché. Estos archivos pueden ocupar mucho espacio en el disco, por lo que es bueno poder almacenarlos en otro lugar en sistemas con espacio limitado en la carpeta de inicio. La configuración relacionada muestra ahora el espacio de disco utilizado por los episodios y las imágenes, y permite borrar la caché de imágenes
Más información: Plasma Mobile
Actualización de septiembre del 2021 de KDE Frameworks
Encaramos ya la recta final de año y siguen las entradas recurrentes de las actualizaciones mensuales de rigor que demuestra que los desarrolladores de KDE no dejan de trabajar en sus librerías. Así que se congratulan en anunciar la actualización de septiembre del 2021 de KDE Frameworks. Con esta se llega a la versión 5.86, un suma y sigue de compromiso y constancia que no parece que tenga un final cercano.
Actualización de septiembre del 2021 de KDE Frameworks
A pesar de que para los usuarios corrientes esta noticia sea algo confusa ya que no se trata de realzar una nueva aplicación ni de una nueva gran funcionalidad del escritorio, el desarrollo de KDE Frameworks tiene repercusiones directas en él a medio y largo plazo.
La razón de esta afirmación es que KDE Frameworks es básicamente la base de trabajo de los desarrolladores para realizar sus aplicaciones, es como el papel y las herramientas de dibujo para un artista: cuanto mejor sea el papel y mejores pinceles tenga, la creación de una artista será mejor.

De esta forma, las mejoras en KDE Frameworks facilitan el desarrollo del Software de la Comunidad KDE, haciendo que su funcionamiento, su estabilidad y su integración sea la mejor posible.
El sábado 11 de septiembre de 2021 ha sido lanzado KDE Frameworks 5.86, la nueva revisión del entorno de programación sobre el que se asienta Plasma 5, el escritorio GNU/Linux de la Comunidad KDE, y las aplicaciones que se crean con para él.
Hay que recordar que los desarrolladores de KDE decidieron lanzar actualizaciones mensuales de este proyecto y lo están cumpliendo con puntualmente. La idea es ofrecer pocas pero consolidadas novedades, a la vez que se mantiene el proyecto evolucionando y siempre adaptándose al vertiginoso mundo del Software Libre.
Una gran noticia para la Comunidad KDE que demuestra la evolución continua del proyecto que continua ganando prestigio en el mundo de los entornos de trabajo Libres.
Más información: KDE
¿Qué es KDE Frameworks?
Para los que no lo sepan, KDE Frameworks añade más de 70 librerías a Qt que proporcionan una gran variedad de funcionalidades necesarias y comunes, precisadas por los desarrolladores, testeadas por aplicaciones específicas y publicadas bajo licencias flexibles. Como he comentado, este entorno de programación es la base para el desarrollo tanto de las nuevas aplicaciones KDE y del escritorio Plasma 5.

Aquí podéis encontrar un listado con todos estos frameworks y la serie de artículos que dedico a KDE Frameworks en el blog,
Recuerda que puedes ver una introducción a Frameworks 5.0 en su anuncio de lanzamiento.
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.

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.

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.

Previously, Previously, Previously, Previously, Previously, Previously.
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)

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.
- José nos hace un buen resumen sobre las posibilidades de Krita
- KDE ahora está en PeerTube, en esta instancia en concreto
- Plasma Mobile Gear 21.08 : plasma-mobile.org – linuxadictos
- Actualización de Plasma 5.22.5: kdeblog – kde.org
- Patak por Aron, ganador de» Plasma 25th Anniversary Edition Wallpaper Contest»
- KDE Gear 21.08.1 : kdeblog – kde.org
- KDE e.V. is looking for a developer to help further hardware integration projects
- Steam Deck sigue generando noticias e ilusión en la comunidad
- YA puedes presentar tu charla para el Akademy-ES 2021!!
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
Alibaba Summer of Code 2020 – Arthas Final Report
Project information
Project name
Provide a separate tutorial for each Arthas command
Project task description
There are two parts in the old online tutorial: basic and advanced
- https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=arthas-basics
- https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=arthas-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
watchcommand, 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:
- Move tutorial git Repository https://github.com/hengyunabc/katacoda-scenarios to Arthas itself.
- Seperate the tutorial, then send the PR merge to https://github.com/alibaba/arthas/tree/master/tutorials/katacoda
- Update the web page: https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/_include_html/arthas-tutorials.html
- Add links to the online tutorials for the official documents: https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/*.md
Implementation plan
- 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.
- 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.
- 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:

- Add links to the online tutorials for the official documents

- 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.
- 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:
- 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 SCENARIOto start learning.
- 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:
- 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:

- 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
Adding Tutorial
User Cases
- [X] Web Console
- [X] Chinese
- [X] English
- [X] PR #1332
- [X] HTTP API
- [X] Chinese
- [X] English
- [X] PR #1423
- [X] Arthas boot supported options
- [X] Chinese
- [X] English
- [X] PR #1344
- [X] Troubleshooting method invoke exception
- [X] Chinese
- [X] English
- [X] PR #1335
- [X] Hotswap code
- [X] Chinese
- [X] English
- [X] PR #1339
- [X] Change Logger Level
- [X] Chinese
- [X] English
- [X] PR #1337
- [X] Troubleshoot logger conflicts
- [X] Chinese
- [X] English
- [X] PR #1338
- [X] Get Spring Context
- [X] Chinese
- [X] English
- [X] PR #1342
- [X] Troubleshooting HTTP request returns 401
- [X] Chinese
- [X] English
- [X] PR #1341
- [X] Troubleshooting HTTP request returns 404
- [X] Chinese
- [X] English
- [X] PR #1340
- [X] The ClassLoaders in Spring Boot application
- [X] Chinese
- [X] English
- [X] PR #1343
- [X] Find CPU usage Top N threads
- [X] Chinese
- [X] English
- [X] PR #1336
- [X] Log the output
- [X] Chinese
- [X] English
- [X] PR #1334
- [X] Async in Background
- [X] Chinese
- [X] English
- [X] PR #1354
Command
- [X] cls
- [X] Chinese
- [X] English
- [X] PR #1312
- [X] session
- [X] Chinese
- [X] English
- [X] PR #1313
- [X] reset
- [X] Chinese
- [X] English
- [X] PR #1314
- [X] version
- [X] Chinese
- [X] English
- [X] PR #1315
- [X] history
- [X] Chinese
- [X] English
- [X] PR #1316
- [X] quit-stop
- [X] Chinese
- [X] English
- [X] PR #1317
- [X] keymap
- [X] Chinese
- [X] English
- [X] PR #1318
- [X] cat
- [X] Chinese
- [X] English
- [X] PR #1319
- [X] echo
- [X] Chinese
- [X] English
- [X] PR #1320
- [X] grep
- [X] Chinese
- [X] English
- [X] PR #1321
- [X] tee
- [X] Chinese
- [X] English
- [X] PR #1322
- [X] pwd
- [X] Chinese
- [X] English
- [X] PR #1323
- [X] wc
- [X] Chinese
- [X] English
- [X] PR #1384
- [X] plaintext
- [X] Chinese
- [X] English
- [X] PR #1383
- [x] dashboard
- [x] Chinese
- [x] English
- [X] PR #1326
- [x] thread
- [x] Chinese
- [x] English
- [X] PR #1328
- [x] jvm
- [x] Chinese
- [x] English
- [X] PR #1329
- [X] sysprop
- [X] Chinese
- [X] English
- [X] PR #1331
- [X] sysenv
- [X] Chinese
- [X] English
- [X] PR #1330
- [X] vmoption
- [X] Chinese
- [X] English
- [X] PR #1347
- [X] perfcounter
- [X] Chinese
- [X] English
- [X] PR #1352
- [X] logger
- [X] Chinese
- [X] English
- [X] PR #1365
- [X] mbean
- [X] Chinese
- [X] English
- [X] PR #1357
- [X] getstatic
- [X] Chinese
- [X] English
- [X] PR #1368
- [X] ognl
- [X] Chinese
- [X] English
- [X] PR #1327
- [X] sc
- [X] Chinese
- [X] English
- [X] PR #1370
- [X] sm
- [X] Chinese
- [X] English
- [X] PR #1371
- [X] dump
- [X] Chinese
- [X] English
- [X] PR #1372
- [X] heapdump
- [X] Chinese
- [X] English
- [X] PR #1373
- [X] jad
- [X] Chinese
- [X] English
- [X] PR #1374
- [X] classloader
- [X] Chinese
- [X] English
- [X] PR #1375
- [X] mc-redefine
- [X] Chinese
- [X] English
- [X] PR #1376
- [X] monitor
- [X] Chinese
- [X] English
- [X] PR #1377
- [X] watch
- [X] Chinese
- [X] English
- [X] PR #1378
- [X] trace
- [X] Chinese
- [X] English
- [X] PR #1379
- [X] stack
- [X] Chinese
- [X] English
- [X] PR #1380
- [X] tt
- [X] Chinese
- [X] English
- [X] PR #1381
- [X] options
- [X] Chinese
- [X] English
- [X] PR #1382
- [X] profiler
- [X] Chinese
- [X] English
- [X] PR #1421
Web Page Updating
Add Links
This part is included in the Adding Tutorial part’s PR.
Add Guides
Add guides for using and contributing (#1455)
Bug Fix
Delete all the arthas-boot.md ‘–target-ip 0.0.0.0’ boot parameter (#1359)
Fix classloaderhash Problems (#1417)
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)
Project highlights
- Straightforward and convenient menu design. Commands and user cases are classified to facilitate users to retrieve certain problems or specific usage methods.
- Introduce the online tutorial in the official documents, which is convenient for users to click the link directly.
- Online tutorial can use real environment to learn and test new technology in browser, and help developers learn and master best practices.
- 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.
- 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.
- 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.
- 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!
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!! 

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

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.

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».

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.
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.
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.

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.
