Skip to main content

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

openSUSE Tumbleweed – Review of the week 2023/12

Dear Tumbleweed users and hackers,

This week we released only 5 snapshots, but one was hefty in size and we needed the extra time for the mirrors to settle again and get the bandwidth back under control. The large snapshot was due to the change in the default compiler: Tumbleweed has been rebuilt entirely using GCC 13. The released snapshots were numbered 0316, 0317, 0318, 0319, and 0321.

The most relevant changes in these snapshots were:

  • Linux kernel 6.2.6
  • transmission 4.0.2
  • KDE Plasma 5.27.3
  • systemd 253.1
  • GCC 13 is now used as the default compiler

As we needed to slow down check-ins, naturally the staging projects are well filled up now. You can expect these changes to reach you soon:

  • GNOME 44
  • Linux kernel 6.2.8
  • cmake 3.26.0
  • cURL 8.0.1
  • LibreOffice 7.5.2
  • Samba 4.18.0
  • LLVM 16
  • openSSL 3.1.0

One extra reminder for i586 users now: next week marks the end of i586 packages in the regular openSUSE Tumbleweed repositories. Should you still run Tumbleweed on such an old machine, you can keep on doing so using the separate port (repositories at http://download.opensuse.org/ports/i586/tumbleweed/repo/).

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

Teaching an odd dog new tricks

We – that is to say the storage team at SUSE – have a tool we’ve been using for the past few years to help with development and testing of Ceph on SUSE Linux. It’s called sesdev because it was created largely for SES (SUSE Enterprise Storage) development. It’s essentially a wrapper around vagrant and libvirt that will spin up clusters of VMs running openSUSE or SLES, then deploy Ceph on them. You would never use such clusters in production, but it’s really nice to be able to easily spin up a cluster for testing purposes that behaves something like a real cluster would, then throw it away when you’re done.

I’ve recently been trying to spend more time playing with Kubernetes, which means I wanted to be able to spin up clusters of VMs running openSUSE or SLES, then deploy Kubernetes on them, then throw the clusters away when I was done, or when I broke something horribly and wanted to start over. Yes, I know there’s a bunch of other tools for doing toy Kubernetes deployments (minikube comes to mind), but given I already had sesdev and was pretty familiar with it, I thought it’d be worthwhile seeing if I could teach it to deploy k3s, a particularly lightweight version of Kubernetes. Turns out that wasn’t too difficult, so now I can do this:

> sesdev create k3s
=== Creating deployment "k3s" with the following configuration === 
Deployment-wide parameters (applicable to all VMs in deployment):
deployment ID:    k3s
number of VMs:    5
version:          k3s
OS:               tumbleweed
public network:   10.20.190.0/24 
Proceed with deployment (y=yes, n=no, d=show details) ? [y]: y
=== Running shell command ===
vagrant up --no-destroy-on-error --provision
Bringing machine 'master' up with 'libvirt' provider...
Bringing machine 'node1' up with 'libvirt' provider...
Bringing machine 'node2' up with 'libvirt' provider...
Bringing machine 'node3' up with 'libvirt' provider...
Bringing machine 'node4' up with 'libvirt' provider...

[...
  wait a few minutes
  (there's lots more log information output here in real life)
...]

=== Deployment Finished ===
 You can login into the cluster with:
 $ sesdev ssh k3s

…and then I can do this:

> sesdev ssh k3s
Last login: Fri Mar 24 11:50:15 CET 2023 from 10.20.190.204 on ssh
Have a lot of fun…

master:~ # kubectl get nodes
NAME     STATUS   ROLES                  AGE     VERSION
master   Ready    control-plane,master   5m16s   v1.25.7+k3s1
node2    Ready                     2m17s   v1.25.7+k3s1
node1    Ready                     2m15s   v1.25.7+k3s1
node3    Ready                     2m16s   v1.25.7+k3s1
node4    Ready                     2m16s   v1.25.7+k3s1 

master:~ # kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
kube-system   local-path-provisioner-79f67d76f8-rpj4d   1/1     Running     0          5m9s
kube-system   metrics-server-5f9f776df5-rsqhb           1/1     Running     0          5m9s
kube-system   coredns-597584b69b-xh4p7                  1/1     Running     0          5m9s
kube-system   helm-install-traefik-crd-zz2ld            0/1     Completed   0          5m10s
kube-system   helm-install-traefik-ckdsr                0/1     Completed   1          5m10s
kube-system   svclb-traefik-952808e4-5txd7              2/2     Running     0          3m55s
kube-system   traefik-66c46d954f-pgnv8                  1/1     Running     0          3m55s
kube-system   svclb-traefik-952808e4-dkkp6              2/2     Running     0          2m25s
kube-system   svclb-traefik-952808e4-7wk6l              2/2     Running     0          2m13s
kube-system   svclb-traefik-952808e4-chmbx              2/2     Running     0          2m14s
kube-system   svclb-traefik-952808e4-k7hrw              2/2     Running     0          2m14s

…and then I can make a mess with kubectl apply, helm, etc.

One thing that sesdev knows how to do is deploy VMs with extra virtual disks. This functionality is there for Ceph deployments, but there’s no reason we can’t turn it on when deploying k3s:

> sesdev create k3s --num-disks=2
> sesdev ssh k3s
master:~ # for node in \
    $(kubectl get nodes -o 'jsonpath={.items[*].metadata.name}') ;
    do echo $node ; ssh $node cat /proc/partitions ; done
master
major minor  #blocks  name
 253        0   44040192 vda
 253        1       2048 vda1
 253        2      20480 vda2
 253        3   44016623 vda3
node3
major minor  #blocks  name
 253        0   44040192 vda
 253        1       2048 vda1
 253        2      20480 vda2
 253        3   44016623 vda3
 253       16    8388608 vdb
 253       32    8388608 vdc
node2
 major minor  #blocks  name
 253        0   44040192 vda
 253        1       2048 vda1
 253        2      20480 vda2
 253        3   44016623 vda3
 253       16    8388608 vdb
 253       32    8388608 vdc
node4
 major minor  #blocks  name
 253        0   44040192 vda
 253        1       2048 vda1
 253        2      20480 vda2
 253        3   44016623 vda3
 253       16    8388608 vdb
 253       32    8388608 vdc
node1
 major minor  #blocks  name
 253        0   44040192 vda
 253        1       2048 vda1
 253        2      20480 vda2
 253        3   44016623 vda3
 253       16    8388608 vdb
 253       32    8388608 vdc

As you can see this gives all the worker nodes an extra two 8GB virtual disks. I suspect this may make sesdev an interesting tool for testing other Kubernetes based storage systems such as Longhorn, but I haven’t tried that yet.

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

KDE Blog cumple 15 años

Por razones que no vienen al caso el año pasado no realicé esta entrada así que no podía fallar dos años seguidos. Y es que hoy 24 de marzo de 2023 KDE Blog cumple 15 años de publicación constante (la promesa de un artículo al día no se ha incumplido nunca) y sigue siendo mi forma de pagar a la Comunidad todo lo que me ha dado.

KDE Blog cumple 15 años

KDE Blog cumple 15 años

Aunque me repita como el ajo-aceite seguro que algún nuevo lector no sabrá la breve historia de esta bitácora. Todo se remonta a hace más de 10 años cuando decidí que una parte de mi vida la iba a dedicar a ayudar a los demás en su migración hacía el Software Libre y a reportar cómo solucionaba los problemas del día a día.

¿Y cómo pensé hacerlo? Dado que no sabía programar y que me venía muy grande el diseño o la traducción, decidí que haría lo mejor que sabía hacer: enseñar. Además, esta tarea permitiría tener localizada información de interés para mi yo futuro al tiempo que aprendía más sobre este maravilloso mundo.

Y como en aquella época estaban de moda las bitácoras personales, decidí escribir un blog donde explicaría mis vicisitudes en este nuevo sistema de sistemas operativos GNU/Linux que llevaba un escritorio libre conocido por aquel entonces como KDE.

Lo he dicho muchas veces, cuando empecé no sabía casi nada, de hecho pienso que fui muy atrevido ya que en mi cabeza no existían conceptos bien formados de Comunidad, kernel, beta, Release Candidate, escritorio vs distribución, etc, de tal forma los errores que cometí fueron apoteósicos, … pero nadie murió por ello y me sirvió para ir creciendo y aprendiendo.

Como todos lo años, y este año especialmente, quiero agradecer el capote que me ofreció maslinux (aka Pedro) cuando cometí un desliz sin mala intenciones y se me echó encima toda una comunidad de usuarios de una web potente de la época. Muchas gracias Pedro, allá donde estés.

Y, como es habitual, me gusta recordar la declaración de intenciones de KDE Blog:

[24 de marzo de 2008]
«Hola a todos y todas: Hoy se inaugura KDE Blog un nuevo blog en el inmenso e infinito mundo de los blogs. El objetivo de este blog es múltiple: ayudar a los principiantes en el mundo Linux, informar sobre el mundo KDE, (el entorno de escritorio bajo Linux) y fomentar el uso del Software Libre.»

Aspecto en los primeros días del blog.

A pesar de la doce años pasados, la idea principal sigue válida aunque los artículos van cambiando de temática porque cada vez es más difícil hacer entradas explicando cómo hacer las cosas o solucionar problemas, lo cual es positivo, y cada vez más voy dedicando el blog a eventos y podcast.

Y es que cada vez más gente utiliza GNU/Linux y el Software Libre cada vez tiene una alta calidad (está a la altura y supera al privativo en muchos aspectos) aunque sigo opinando que el gran salto solo se dará cuando los dispositivos que compre la gente ofrezcan GNU/Linux por defecto.

Mientras tanto, el KDE Blog blog seguirá siendo mi granito de arena en la promoción del Software Libre y de la Comunidad KDE.

Los años siguen siendo complicados pero se mantienen las entradas diarias

KDE Blog cumple 13 años

Aunque cuando eres adulto y parte de una familia con críos la cosa se complica y el tiempo para los hobbies se reduce, mi vida laboral se ha simplificado mucho y me ha dado más oportunidades para estar delante del ordenador. No obstante, aún estoy en periodo de formación académica y tengo exámenes, trabajos y clases a las que asistir (sí, a casi mis cinco décadas de vida) con lo que no dispongo de todo el tiempo que quisiera para dedicar al Software Libre.

De esta forma, sigo publicando de forma diaria sin demasiadas dificultades ya que el entorno no deja de ofrecerme decenas de eventos, colaboraciones, podcast y servicios, los cuales debo admitir que parece que han aumentado después de estos tiempos pandémicos.

En cuento a mis actividades fuera del blog quisiera destacar que:

A lo largo de estos 15 años he ido publicando entradas conmemorativas que podéis seguir en la siguiente etiqueta, en las cuales se resumen muy bien los sentimientos y la historia del blog, y como este año no tengo tiempo y apenas han cambiado os invito a leer para no repetirlo.

Renovación de votos

Los votos no cambian, al parecer he llegado a un momento de estabilidad, y mi compromisos con la Comunidad KDE se mantienen:

  • KDE Blog sigue teniendo cuerda para muchos años,
  • Sigo estando ilusionado con el proyecto KDE y en su difusión.
  • Sigo abierto a todo tipo de colaboraciones (¿quieres ayudar a publicar en el blog? ¿Encargarte de la parte social? ¿Mejorar las entradas? Mándame un correo [bortega@kde_espana.org] y hablamos)
  • Y para finalizar decir que me siento orgulloso de pertenecer a un movimiento cuyo objetivo es compartir su conocimiento en pro de una evolución más rápida de la humanidad, que se concreta en pertenecer a una Asociación de Software Libre como KDE España.

Así que:

¡Muchísimas gracias a todos por seguirme!

La entrada KDE Blog cumple 15 años se publicó primero en KDE Blog.

the avatar of Nathan Wolf
the avatar of openSUSE News

GCC, EFI Boot Manager Update in Tumbleweed

Rolling-release distribution openSUSE Tumbleweed had a large number of security patches, bug fixes, and new features in snapshots released this week.

Users who did a zypper dup had a full distribution rebuild with GNU Compiler Collection 13, which is the distro’s new default compiler.

This rebuild 20230319 snapshot provided a GCC 13.0.1+git update that rebased a patch and enables a mutual exclusion (mutex) link. An update of flatpak 1.14.4 updated translations and eliminated two Common Vulnerabilities and Exposures; CVE-2023-28101 and CVE-2023-28100, which was specific to virtual consoles and users were recommended to use a graphical user interface like GNOME Software rather than graphical terminal emulator such as xterm , gnome-terminal or Konsole. The C++ library for Single Instruction, Multiple Data highway 1.0.4 provides faster KV128 sorting. The package also updated RISC-V Vector Extension Intrinsics for the 1.0-draft. Other packages to update was libstorage-ng 4.5.86 along with several libqt5 packages.

The 20230318 snapshot updated just two packages. The fcitx5-gtk package updated to version 5.0.22. This gtk-im-module and glib-based dbus client library implements notify-focus-out signal and changes GtkIMContext.reset to always commit the preedit state. The other package to update was a Library for creating MusicBrainz DiscIDs, which is a fantastic open music encyclopedia that collects music metadata and makes it available to the public. The libdiscid 0.6.4 package fixes compiler errors and requires CMake 2.8.12 as a minimum version.

Snapshot 20230317 updates DNS protocol bind 9.18.13. The update provides several new features like increasing the responsiveness of named Response Policy Zone (RPZ) updates that are applied after an RPZ zone is successfully transferred. KDE enthusiasts can be happy with the bug fixes released in the Plasma 5.27.3 update. A few of the highlighted fixes were the addition of emoji picker to mappings, the remove of duplicate items when loading from history and PowerDevil sought to make some changes in order to not waste precious energy. An update of gtk4 4.10.1 brought a plethora of changes. Besides dropping a patch that was fixed upstream, the new version fixed a memory leak, some scrolling problems and improved search performance for the cross-platform widget toolkit. An update of systemd to version 253.1 added a few patches, which one is a [temporary workaround until LVM boot failure is fixed in dracut. Several other packages were update in the snapshot including pipewire 0.3.67, icewm 3.3.2, and many qt6 packages.

The Extensible Firmware Interface (EFI) Boot Manager had a major version update in snapshot 20230316, but it wasn’t the only one. There were two other major versions in the snapshot. The efibootmgr 18 restored an activation error message and fixed help messages. The package also added an option for insertion location of new entries and fixed the simple run example. Another major version update was for EFE variables in the efivar 38 update. This package fiedx parsing for nvme-subsystem devices, added some new tooling and properly checks mmap return errors. And yet there was one more major version update with the free BitTorrent client transmission updating for version 4.0.2. The new version takes care of some potential crashes and fixes the display of IPv6 tracker URLs. The Web client was rewritten and now supports mobile use. The Linux Kernel was the only update in the snapshot that wasn’t a major version update. The 6.2.6 kernel-source update partial reverted some wifi configurations and removed some Realtek wireless drivers.

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

Analiza el tiempo de arranque de #Linux con systemd-analyze

systemd-analyze se utiliza para determinar las estadísticas de rendimiento de arranque de tu sistema GNU/Linux sistema y recuperar otra información de estado y seguimiento del sistema y el administrador de servicios

Imagen: Óscar Sánchez Requena

Si alguna vez sientes que tu sistema GNU/Linux tarda mucho en arrancar desde que enciendes el equipo hasta que dispones de tu escritorio listo para usarse, puedes usar systemd-analyze con algunas de sus opciones para intentar ver dónde poder mejorar ese arranque.

Esta herramienta nos ofrece datos del tiempo que ha tardado cada tarea del proceso de arranque en diferentes formatos, diferentes opciones e incluso nos puede crear un gráfico con todos esos detalles.

systemd-analyze time

Este es el comando predeterminado, incluso si no especificamos ninguna opción y lo que hace es mostrarnos el tiempo pasado en el núcleo antes de que se alcance el espacio de usuario, el tiempo pasado en el initrd antes de que se alcance el espacio de usuario normal del sistema y el tiempo que tardó el espacio de usuario normal del sistema en inicializarse.

systemd-analyze

Startup finished in 1.932s (kernel) + 6.276s (initrd) + 43.100s (userspace) = 51.309s 
graphical.target reached after 43.064s in userspace.

systemd-analyze blame

Este comando muestra una lista de todas las unidades en ejecución, ordenadas por el tiempo que tardaron en inicializarse. Esta información se puede utilizar para optimizar los tiempos de arranque.

Hay que tener en cuenta que el resultado puede ser engañoso ya que la inicialización de un servicio puede ser lenta simplemente porque espera a que se complete la inicialización de otro servicio.

20.709s dev-sda1.device
20.709s dev-disk-by\x2did-scsi\x2d0ATA_Hitachi_HTS54505_TEA51A3RCXXH8R\x2dpart1.device
20.709s dev-disk-by\x2dpartuuid-0001c146\x2d01.device
20.709s dev-disk-by\x2dpath-pci\x2d0000:00:1f.2\x2data\x2d1.0\x2dpart1.device
20.709s dev-disk-by\x2duuid-37c201e9\x2d93c3\x2d45cb\x2d9289\x2dc336180dd8ca.device
20.708s dev-disk-by\x2did-scsi\x2d1ATA_Hitachi_HTS545050A7E380_TEA51A3RCXXH8R\x2dpart1.device
20.708s dev-disk-by\x2did-scsi\x2d35000cca6f9cd2559\x2dpart1.device
20.708s dev-disk-by\x2dpath-pci\x2d0000:00:1f.2\x2data\x2d1\x2dpart1.device
20.708s dev-disk-by\x2did-wwn\x2d0x5000cca6f9cd2559\x2dpart1.device
20.708s dev-disk-by\x2did-scsi\x2dSATA_Hitachi_HTS54505_TEA51A3RCXXH8R\x2dpart1.device
20.708s dev-disk-by\x2did-ata\x2dHitachi_HTS545050A7E380_TEA51A3RCXXH8R\x2dpart1.device
20.708s sys-devices-pci0000:00-0000:00:1f.2-ata1-host0-target0:0:0-0:0:0:0-block-sda-sda1.device
20.708s dev-disk-by\x2ddiskseq-1\x2dpart1.device
...

systemd-analyze critical-chain

Este comando muestra un gráfico en forma de «árbol» de la cadena de unidades de tiempo crítico (para cada una de las UNIDADES especificadas o, de lo contrario, para el objetivo predeterminado).

El tiempo después de que la unidad esté activa o iniciada se imprime después del carácter «@». El tiempo que tarda la unidad en arrancar se imprime después del carácter «+».

Hay que tener en cuenta que el resultado puede ser engañoso ya que la inicialización de los servicios puede depender de la activación del socket y debido a la ejecución paralela de las unidades.

The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

graphical.target @43.064s
└─display-manager.service @36.112s +6.951s
  └─systemd-user-sessions.service @36.043s +50ms
    └─remote-fs.target @36.040s
      └─iscsi.service @35.450s +588ms
        └─network-online.target @35.447s
          └─NetworkManager-wait-online.service @35.384s +59ms
            └─NetworkManager.service @34.192s +1.111s
              └─network-pre.target @34.172s
                └─wpa_supplicant.service @40.956s +238ms
                  └─dbus.service @19.584s +5.206s
...

systemd-analyze plot

Este comando muestra la información en un gráfico SVG, que detalla qué servicios del sistema se iniciaron y en qué momento, resaltando el tiempo que dedicaron a la inicialización o los datos de tiempo sin procesar en formato JSON o de tabla.

systemd-analyze plot > ~/arranque.svg

Podemos posteriormente abrir el gráfico al que hemos exportado los datos (arranque.svg en el ejemplo) con un editor de gráficos vectoriales como es Inkscape.


Estas son solo algunas de las opciones disponibles del comando systemd-analyze que tiene muchas otras opciones. Quizás es interesante guardar unos de estos datos cuando el sistema va bien y compararlo si vemos que el sistema se ralentiza al arrancar para comparar.

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

Hardware Raspberry Pi Pico en Podcast Linux #176

Bienvenidos a un nuevo audio de Podcast Linux, concretamente el episodio 176 titulado «Hardware Raspberry Pi Pico» donde Juan Febles nos habla de otro microcontrolador libre que promete ser la vuelta a los inicios de este tipo de microordenadores.

Hardware Raspberry Pi Pico en Podcast Linux #176

Hardware Raspberry Pi Pico en Podcast Linux #176

Cada cierto tiempo me gusta promocionar los audios de Podcast Linux, un programa de Juan Febles que hace con mucho cariño y que siempre tienen cosas interesantes que descubrir.

De esta forma, desde el pasado verano he promocionado su especial 6º aniversario, su Linux Connexión con Jorge Lama, la Academia Automatización del Hogar con Luis del Valle y Germán Martín, la reciente charla con Eduardo Moreno y su Adam Image , su proyecto «PC Reciclado de la Audiencia» o «Linux Connexion Distros no Debianitas».

En esta ocasión Juan Febles toca un tema relacionado con el hardware y nos presenta un pequeño cacharrito ideal para experimentar.

En palabras de Juan:

¡¡¡Muy buenas amante del Software Libre!!!
Bienvenido a otra entrega, la número 176, de Podcast Linux. Un saludo muy fuerte de quien te habla, Juan Febles. Hoy vamos a echarle un vistazo a otro microcontrolador la Raspberry Pi Pico. Ya estés en trayecto, haciendo deporte o tareas del hogar, paseando o en tu casa, te doy la bienvenida al episodio Hardware Pi Pico.

Enlaces:

Así que os invito a escuchar este mesa redonda donde se muestran la variedad del Software Libre.

Más información: Podcast Linux

Sigue a Podcast Linux

Aprovecho para animaros a seguir Podcast Linux en algunos de los canales de comunicación que tiene:

La entrada Hardware Raspberry Pi Pico en Podcast Linux #176 se publicó primero en KDE Blog.

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

Krita en Linux Center de València

En esta ocasión no quiero ir tan justo de tiempo como en el anterior evento de Linux Center. De esta forma me complace compartir una nueva charla-taller que se celebrará en sus instalaciones que realizará un taller de Krita a cargo de Miguel Menéndez

Krita en Linux Center de València

Hemos hablado mucho este verano de la compañía valenciana de ensamblaje de dispositivos compatibles 100% con el Software Libre conocida como Slimbook, pero hemos hablado de sus ultrabooks y no tanto de sus actividades, y es hora compaginar ambas cosas ya que hace poco han decidido volver al mundo de los eventos con la reapertura de su Linux Center.

Krita en Linux Center de València

De esta forma, para seguir estas el próximo sábado 25 de marzo vamos a poder disfrutar de una nueva charla-taller a cargo de Miguel Menéndez:

En palabras de los organizadores:

Miguel Menéndez, trabaja en el mundo real con Java y Netbeans Platform. Tiene varios proyectos relacionados con la programación con Qt tanto en ordenador como en Ubuntu Touch. Es el autor del Curso de programación de Ubuntu Touch y ha participado en eventos como la Ubuntu Conference 2018 en Gijón. Además de llevar a sus espaldas varios años de contribuciones en foros y comunidades, es el creador y mantenedor de Innerzaurus.

Krita es una aplicación de dibujo de código abierto. Permite dibujar usando diferentes estilos: lápiz , rotuladores, acuarelas, etc. Se puede ver un ejemplo de lo que se puede lograr con Krita en la Web de David Revoy (https://www.davidrevoy.com/). En el taller se verá la forma de instalar Krita así como los pasos para configurar una tableta de dibujo. Con el uso de la tableta de dibujo, se puede dibujar con «presión». El trazo variará dependiendo de si apretamos más o menos el lápiz óptico.

La información adicional que necesitas es esta:

Plazas Total: 6

¿Curso Gratuito o de Pago?: GRATUITO gracias a SLIMBOOK y Miguel

Requisitos: Portátil y tableta de dibujo / ratón.

¿Podemos retransmitirlo via streaming?: No

Localización: Linux Center (Grupo Odín). Ronda de la Química s/n Edificio ABM L’Andana, 7ª planta Frente a Parque Técnológico 46980 Paterna, Valencia

Más información: Linux Center

La entrada Krita en Linux Center de València se publicó primero en KDE Blog.

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

Más iconos 3D para tu PC: Umicons

El tema de los iconos del sistema es tan personal como la ropa que nos ponemos. Así que lo mejor es tener algo de variedad en la Comunidad para que cada cual utilice el que más le gusta. En los últimos tiempos se puso de moda los iconos minimalistas, plano, neon o coloridos, es gratificante encontrar otras colecciones de iconos que rompen esa tendencia, como fue el caso de Flat no more 2, Hoy os traigo más iconos 3D para tu PC: Umicons, una actualización del tema de Paul «mattahan» Davey.

Más iconos 3D para tu PC: Umicons

Cambiar el tema de iconos de un escritorio es una de las formas de personalización casi más completa que puedes realizar sobre tu PC, ya que cambia totalmente el aspecto del mismo a la hora de interaccionar con tus aplicaciones, documentos y servicios.

Para el escritorio Plasma de la Comunidad KDE hay cientos de temas disponibles, y en el blog le hemos dedicado muchos artículos a ir presentando algunos de ellos, pero siempre aparece alguno nuevo o remozado que hace que siempre le volvamos a dedicar una nueva entrada.

De esta forma me complace presentar el tema de iconos Umicons, una excelente colección de iconos detallados actualizado por robson66 para Plasma (y otros escritorios) que  destaca por su aspecto 3D, sus colores, su contraste y su textura nada habitual. Seguro que no deja indiferente a nadie.

Más iconos 3D para tu PC:

En palabras de su creador:

Decidí refrescar el tema de iconos Umicons de Paul «mattahan» Davey. Una gran cantidad de iconos se han añadido, en algunos casos he utilizado icono GANT pero hay muy pocos de ellos. El tema de iconos Umicons es compatible con Xfce4, GNOME y KDE.

Más iconos 3D para tu PC:

Y como siempre digo, si os gusta el pack de iconos Umicons podéis “pagarlo” de muchas formas en la nueva página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente, hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day 2017 de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.

Más información: KDE Store

La entrada Más iconos 3D para tu PC: Umicons se publicó primero en KDE Blog.

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

Git jump un script para saltar a partes interesantes del proyecto

En este artículo veremos cómo utilizar el script git jump que nos permite abrir en Vim una serie de archivos de nuestro proyecto para acceder rápidamente a ellos

Este pequeño tutorial puede enmarcarse dentro de la categoría de tutoriales de git o de vim dentro del blog, así pues, espero que sea de ayuda a quienes busquen relativo a estas dos grandérrimas herramientas.

Según la documentación del propio proyecto, git jump es:

Un script para ayudarte a saltar a partes «interesantes» de tu proyecto en su editor. Funciona emitiendo un conjunto de interesantes puntos en el formato de «corrección rápida» (quickfix), que los editores como Vim pueden usar como cola de lugares para visitar (esta característica generalmente se usa para saltar a errores producido por un compilador).

Resumiendo y traduciendo, al utilizar git jump, nos abrirá el editor Vim (y creo que también hay soporte para ese otro editor… Emacs) usando quickfix y nos mostrará las partes que busquemos. O también podremos mostrar la salida por pantalla sin necesidad de abrir el editor Vim.

Lo primero es descargar el archivo wget https://raw.githubusercontent.com/git/git/master/contrib/git-jump/git-jump

Y ubicarlo en un directorio de nuestro $PATH (en mi caso): mv git-jump /usr/local/bin

Y darle permisos de ejecución chmod +x git-jump

Echo esto, ya lo tendremos disponible para utilizar. Ahora entremos en un proyecto git de nuestro equipo. Una carpeta donde tengamos archivos bajo control de versiones git (por ejemplo: ~/git/prueba/ donde hay varios archivos) y podremos ejecutar:

git jump grep variable

Se abrirá el editor Vim con todos los archivos del directorio en el que estamos que contengan la palabra (en nuestro ejemplo) «variable». Si queremos que no tenga en cuenta mayúsculas y minúsculas, deberemos añadir la opción -i

Para recorrer las distintas coincidencias que hemos encontrado, tanto si están en un único archivo, como si están en diferentes archivos (que se irán abriendo) lo haremos con el comando :cn y con :cN iremos a la ocurrencia anterior.

También podemos saltar rápidamente a cualquier archivo que contenga cambios y que no se hayan incluido en un commit. Para ello ejecutaremos:

git jump diff

O saltar a partes que contengan cambios ya incluidos en el commit, pero no subidos

git jump diff --cached

Y a la hora de solucionar conflictos al fundir ramas o archivos, podemos saltar a las partes señaladas con las marcas de conflicto mediante:

git jump merge

Si queremos que excluya cierto directorios (por ejemplo el directorio de Documentación) y no nos abra los conflictos en ese directorio, ejecutaremos:

git jump merge :^Documentación

Si en vez de mostrar esas salidas abriendo el editor Vim, queremos que lo haga mostrándolas por pantalla añadiremos la opción --stdout Por ejemplo:

git jump --stdout grep variable

Creo que git jump puede ser una herramienta interesante a la hora de ahorrarnos tiempo, cuando estamos trabajando con git y sacándole mucho partido a Vim.

¿Conocías la herramienta? ¿Ya la utilizabas? ¿Qué otros usos le dabas o se te ocurre que pueden ser interesantes? Aporta tus ideas en los comentarios del blog.