Skip to main content

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.

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

La herramienta cURL cumple 25 años

CURL es un proyecto de software consistente en una biblioteca (libcurl) y un intérprete de comandos (curl) orientado a la transferencia de archivos

La herramienta admite protocolos de transferencia de archivos como: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE y LDAP, entre otros.

Aunque la primera versión se publicó en 1997 y se basó en una pequeña herramienta llamada httpget escrita por el brasileño Rafael Sagula, en 1998 Daniel Stenberg publicaba la versión 4.0 y se encargaría desde entonces de mantener la herramienta.

El desarrollador hace un repaso de sus 25 años al frente del mantenimiento de este software libre casi omnipresente en todos los equipos y que ha celebrado publicando la versión 8.0.0.

1998

El 20 de marzo de 1998, se publicó curl 4.0 y ya tenía 2200 líneas de código, porque se construyó sobre los proyectos anteriormente llamados httpget y urlget. Luego admitió tres protocolos: HTTP, GOPHER y FTP y presentó 24 magníficas opciones de línea de comandos.

El primer lanzamiento de curl no fue ese evento especial, ya que el desarrollador había estado enviando publicaciones de httpget y urlget durante más de un año, por lo que, si bien este era un nombre nuevo, también era «solo otro lanzamiento», como ya lo había hecho muchas veces anteriormente.

Se añadió compatibilidad con HTTPS y TELNET ya el primer año de curl, que también introdujo la primera página manual de curl. curl comenzó con licencia GPL pero la cambió a MPL ya dentro de ese primer año 1998.

El primer soporte SSL fue impulsado por SSLeay. El proyecto que a fines de 1998 se convertiría en OpenSSL.

En agosto de 1998, se añade curl en el sitio de directorio de código abierto: freshmeat.net.

La primera página web de curl se publicó en http://www.fts.frontec.se/~dast. (la versión más antigua archivada por wayback machine es de diciembre de 1998)

En noviembre de 1998, se añadió una nota al sitio web sobre el éxito sorprendente que tuvo, ¡ya que la última versión se había descargado 300 veces solo en ese mes! El éxito y la popularidad que ha tenido después estaba muy lejos de ser instantáneos.

Durante este primer año, se publicaron 20 versiones de curl. Nunca más se ha repetido esa hazaña.

1999

Se creó el primer script de configuración, y se añadió soporte para cookies y ya aparecía como un paquete en Debian Linux.

El sitio web de curl se trasladó a http://curl.haxx.nu.

Se añadió soporte para DICT, LDAP y FILE a lo largo del año. Ahora admite 8 protocolos.

En los últimos días de 1999, se importó el código curl al (por aquel entonces) nuevo y genial servicio llamado Sourceforge. Todos los recuentos de commits adicionales en curl comienzan con esta importación. 29 de diciembre de 1999.

2000

Su desarrollador y encargado de código cambió de trabajo a principios de 2000. Y además ese mismo año se casó.

Se cambió el sitio web de curl a curl.haxx.se

En agosto de 2000, se publicó curl 7.1 y las cosas cambiaron. Esta versión presentó la biblioteca que se llamó libcurl a falta de un nombre mejor. En este punto, el proyecto tenía 17.200 líneas de código.

La API de libcurl se inspiró en cómo funciona fopen() y devuelve solo un identificador opaco, y cómo se puede usar ioctl() para establecer opciones.

Crear una biblioteca fuera de curl fue una idea que tuvo el desarrollador casi desde el principio, ya que antes de ese momento me se dió cuenta del poder que una buena biblioteca puede aportar a las aplicaciones.

Los usuarios encontraron útil esa biblioteca y aumentaron las descargas de curl. Uno de los primeros en adoptar libcurl fue el lenguaje PHP, que decidió usar libcurl como su motor de transferencia HTTP/URL predeterminado.

2001

Se cambió de nuevo la licencia y ahora curl se publicaba bajo la nueva licencia curl (efectivamente MIT) así como MPL. La idea de modificar ligeramente la licencia de curl era una locura, pero se el desarrollador ha olvidado el motivo.

Se añadió soporte para HTTP/1.1 e IPv6.

En junio, el archivo THANKS contó con 67 contribuyentes designados. Este es un esfuerzo de equipo. Superamos los 1100 commits totales en marzo y en julio curl ya tenía 20 000 líneas de código.

Apple comenzó a empaquetar curl con Mac OS X cuando curl 7.7.2 se envió en Mac OS X 10.1.

2002

El conjunto de pruebas contenía 79 casos de prueba.

Se eliminó la opción MPL. Nunca se volvería a realizar un cambio de licencia.

Se añadió soporte para compresión gzip sobre HTTP y el uso de proxies SOCKS.

2003

Se introdujo el sistema de «creación automática» de curl: los voluntarios ejecutan scripts en sus máquinas que descargan, crean y ejecutan las pruebas de curl con frecuencia y envían los resultados por correo electrónico al servidor central para informes y análisis. Mucho antes de que los modernos sistemas de CI hicieran estas cosas mucho más fáciles.

Se añadió soporte para autenticación Digest, NTLM y Negotiate para HTTP.

En agosto, se publicaron 40 páginas man individuales.

Se agregó soporte para FTPS, número de protocolo 9.

El desarrollador hizo un fork del proyecto ares y comencé el proyecto c-ares para proporcionar y mantener una biblioteca para hacer resoluciones de nombres asincrónicos, para curl y otros. Desde entonces, este proyecto también se ha vuelto bastante popular y ampliamente utilizado.

2004

A principios de 2004, curl tenía 32.700 líneas de código.

Se realizó que curl admitiera «archivos grandes», lo que en aquel entonces significaba admitir archivos de más de 2 y 4 gigabytes.

Se implementó soporte para IDN, Nombres de Dominio Internacionales.

2005

GnuTLS se convierte en la segunda biblioteca TLS admitida. Los usuarios ahora podían seleccionar qué biblioteca TLS querían que usara su compilación.

Gracias a una subvención del «Internetfonden» sueco, el desarrollador pudo dejar su trabajo y e implementar la primera versión de la API multi_socket() para permitir que las aplicaciones realicen más transferencias paralelas más rápido.

Se creó git y rápidamente adoptaron curl para sus transferencias HTTP(S).

TFTP se convirtió en el décimo soporte de curl de protocolo admitido.

2006

Se decidió eliminar el soporte para «transferencias FTP de terceros», lo que hizo cambiar el SONAME debido a la ABI modificada. El bache más reciente. Desencadenó algunas discusiones. El proyecto aprendió lo difícil que puede ser para los usuarios superar el SONAME.

El precursor de wolfSSL llamado cyassl se convirtió en la tercera biblioteca SSL compatible con curl.

Se añadió soporte para canalización HTTP/1.1 y en la segunda mitad del año el desarrollador aceptó un trabajo de desarrollo por contrato para Adobe y se añadió soporte para SCP y SFTP.

Como parte del trabajo de SCP y SFTP, se dio un paso bastante grande y luego el desarrollador se convertiría en el mantenedor del proyecto libssh2. Este proyecto también es bastante utilizado.

2007

Ahora, curl cuenta con 51.500 líneas de código, y se añadió soporte para una cuarta biblioteca SSL: NSS

Se añadió soporte para LDAPS y se fusionó el primer puerto a OS/400.

Para curl 7.16.1 se añadió soporte para –libcurl. Posiblemente la única opción de línea de comando curl favorita del desarrollador. Generó el código fuente usando libcurl repitiendo la transferencia de la línea de comando.

2008

A estas alturas, la herramienta de línea de comandos había crecido hasta presentar 126 opciones de línea de comandos. Un crecimiento de 5x durante los diez primeros años de curl.

En marzo superamos las 10.000 commits.

Solaris incluye curl y libcurl. Adobe Flash Player en Linux usa libcurl.

En septiembre, el recuento total de colaboradores de curl llegó a 654.

2009

Se introdujo soporte para compilar curl con cmake. Una decisión que todavía se está discutiendo y cuestionando si realmente ayuda. Para completar el ciclo, cmake usa libcurl.

En julio se llevó a cabo la reunión IETF 75 en Estocolmo, la ciudad natal del desarrollador, y esta fue la primera vez que conoció físicamente a varios de sus héroes de protocolo personales que crearon y siguieron trabajando en el protocolo HTTP: Mark, Roy, Larry, Julian, etc.

En agosto, dejó su trabajo para trabajar en su propia empresa, Haxx, pero siguió haciendo desarrollo por contrato. Sobre todo haciendo Linux embebido.

Gracias a otro contrato, introdujo soporte para IMAP(S), SMTP(S) y POP3(S) para curl, elevando la cantidad de protocolos admitidos a 19.

Recibió el premio Nordic Free Software Award 2009. Por su trabajo en curl, c-ares y libssh2.

2010

Se añadió soporte para RTSP y RTMP(S). PolarSSL se convirtió en la sexta biblioteca SSL admitida.

Se cambió el sistema de control de versiones de CVS a git y, al mismo tiempo, cambiamos el alojamiento de Sourceforge a GitHub. A partir de este momento, se consigue hacer un seguimiento de la autoría de los commits de forma correcta y adecuada, algo que era mucho más difícil de hacer con CVS.

Se agregó soporte para la biblioteca AxTLS. el 7

2011

Más de 80.000 líneas de código.

Se añadió el script checksrc que verifica que el código fuente se adhiera al estilo del código curl. Comenzó simple, ha mejorado y se ha vuelto más estricto con el tiempo.

Se han superado los 100 colaboradores individuales que envían commits al código.

Superamos los 100 committers individuales.

2012

149 opciones de línea de comandos.

Se agregó soporte para Schannel y Secure Transport para TLS.

Una primera estimación de usuarios de curl, arroja de 550 millones. ¡Esto confirma que curl está en todas partes!

Durante todo el año 2012 hubo 67 autores de commits.

2013

Se agregó soporte para GSKit, una biblioteca TLS que se usa principalmente en OS/400. La décima biblioteca TLS admitida.

En abril, el número de colaboradores había superado los 1000 y se llegó a más de 800 casos de prueba. Se refactorizó el código en las partes internas.

Los intentos iniciales de compatibilidad con HTTP/2 se fusionaron (impulsados ​​por la gran biblioteca nghttp2), así como la compatibilidad para realizar conexiones mediante el enfoque Happy Eyeballs.

Creamos nuestros dos primeros trabajos de CI.

2014

El desarrollador empezó a trabajar para Mozilla en el equipo de redes de Firefox, de forma remota desde su casa en Suecia. Por primera vez en su carrera, en realidad trabajaría principalmente con redes y HTTP, etc. con una superposición significativa con lo que es y hace curl. Hasta ese momento, los dos lados de su vida habían estado extrañamente separados. Mozilla le permitió pasar algunas horas de trabajo en curl.

En 161 opciones de línea de comando y 20 CVE informados.

59 páginas de manual se convirtieron en 270 páginas de manual en julio cuando cada opción de libcurl obtuvo su propia página separada.

Se añadió compatibilidad con el fork OpenSSL de libressl y se eliminó la compatibilidad con QsoSSL. Todavía en 10 bibliotecas TLS compatibles.

En septiembre, había 105.000 líneas de código.

Se agregó soporte para SMB(S). 24 protocolos.

2015

Se agregó soporte para BoringSSL y mbedTLS.

Se añadió soporte para realizar transferencias multiplexadas adecuadas mediante HTTP/2. Un cambio de paradigma bastante drástico en la arquitectura cuando, de repente, múltiples transferencias compartirían una sola conexión. Muchas refactorizaciones y tomó un tiempo hasta que el soporte de HTTP/2 se estabilizó.

Le siguió el primer soporte para push de servidor HTTP/2.

Se cambió completamente al modelo de trabajo de GitHub, usando su rastreador de problemas y haciendo solicitudes de extracción.

Su trabajo de HTTP/2 este año fue patrocinado en parte por Netflix, mientras todavía trabajaba para Mozilla.

20.000 commits.

El desarrollador empezó a escribir el libro everything curl.

Se añadió soporte para libpsl, usando la lista de sufijos públicos para un mejor manejo de cookies.

2016

curl cambió a utilizar HTTP/2 de manera predeterminada con transferencias HTTPS.

En mayo, curl llega a las 185 opciones para la línea de comandos.

El proyecto adopta un nuevo logo diseñado por Adrian Burcea de Soft Dreams.

Se añadió soporte HTTPS para proxies y TLS 1.3.

curl fue auditado por Cure 53.

Un sitio sueco nombró al responsable de curl como segundo mejor desarrollador de Suecia, debido a su trabajo en curl.

A finales de año el código llega a las 115.500 líneas de código.

2017

curl obtuvo soporte para compilar y usar múltiples bibliotecas TLS y elegir cuál usar al inicio.

Fastly contactó al desarrollador para alojar el sitio web de curl, así como su sitio web personal. Esto ayudó a poner fin a las inestabilidades anteriores cuando las publicaciones del blog se volvieron demasiado populares para que mi sitio se mantuviera e hizo que el sitio curl fuera más ágil para más personas en todo el mundo. Desde entonces, se han mantenido fieles patrocinadores del proyecto.

En la primavera de 2017, se desarrolló la primera conferencia en persona de desarrolladores, curl up, ya que veinte fanáticos y desarrolladores de curl fueron a Nuremberg, Alemania, para pasar un fin de semana sin hacer nada más que cosas de curl.

En junio me negaron viajar a los Estados Unidos. Posteriormente, esto me llevaría a una aventura prolongada y dolorosa tratando de obtener una visa estadounidense.

Llegó el primer soporte SSLKEYLOGFILE, y se presentó la nueva API MIME y soporte para compresión brotli. El proyecto curl se adoptó en el proyecto OSS-Fuzz, que inmediatamente comenzó a señalar errores en nuestro código. Han seguido haciendo fuzzing curl sin parar desde entonces.

En octubre le concedieron al desarrollador el Premio Polhem. El premio de ingeniería más antiguo y probablemente el más prestigioso de Suecia. Este premio se estableció y se otorga desde 1876. Una medalla de oro genuina, que me entregó nada menos que su majestad el rey de Suecia.

2018

Se agregó soporte para DNS sobre HTTPS y se introdujo la nueva API de URL para permitir que las aplicaciones analicen las URL exactamente de la misma manera que lo hace curl.

Microsoft comenzó a incluir curl incluido con Windows. Pero el alias curl permanece. Se añadió soporte para una segunda biblioteca SSH, por lo que ahora SCP y SFTP podrían funcionar con libssh además de la biblioteca libssh2 ya compatible.

129.000 líneas de código. Alcanzó 10.000 estrellas en GitHub.

Para aceptar una donación se solicitó que el proyecto creara una cuenta con Open Collective, y así lo hicieron. Desde entonces ha sido un buen canal para que el proyecto reciba donaciones y patrocinios.

En noviembre de 2018, se decidió que el protocolo HTTP sobre QUIC debería convertirse oficialmente en HTTP/3.

En 27 trabajos de CI al final del año. Ejecutando más de 1200 casos de prueba.

2019

El desarrollador empezó a trabajar para wolfSSL, creando código para curl a tiempo completo. Solo le llevó 21 años al desarrollador, hacer que curl fuera su trabajo.

Se añadió compatibilidad con Alt-Svc y se eliminó la compatibilidad con la canalización HTTP/1.1 siempre tan problemática.

Se presentó el primer programa de recompensas por encontrar errores de curl y, desde entonces, existe una recompensa por errores en ejecución. En asociación con hackerone. Han llegado a pagar casi 50.000 USD en recompensas por 45 vulnerabilidades (hasta febrero de 2023).

Se agregó soporte para AmiSSL y BearSSL: en 14 bibliotecas.

Comenzaron a ofrecer curl como una imagen docker oficial

2020

La herramienta curl obtuvo poderes de transferencia paralelos, la capacidad de generar datos en formato JSON con -w y la aterradora salida de ayuda se limpió y organizó mejor en subcategorías.

En marzo, para curl 7.69.0, el desarrollador comenzó a realizar presentaciones de video de lanzamiento, transmitidas en vivo.

El sitio web curl se trasladó a curl.se y everything curl se trasladó al dominio curl.dev. MQTT se convierte en el protocolo compatible número 25.

Se agregó el primer soporte para HSTS, así como soporte para compresión zstd.

wolfSSH se convirtió en la tercera biblioteca SSH admitida. Se eliminó la compatibilidad con PolarSSL.

Compatibilidad inicial con hiper como backend alternativo para HTTP/1 y HTTP/2.

2021

Se eliminó el soporte para MesaLink pero se agregó soporte para rustls. En 13 bibliotecas TLS.

El Ingenuity aterrizó en Marte y curl ayudó a que sucediera.

El desarrollador recibió una amenaza de muerte muy desagradable por correo electrónico de alguien profundamente confundido, culpándole por todo tipo de cosas malas que le sucedieron.

Curl alcanzó 20.000 estrellas en GitHub.

Soporta GOFRES. 26 protocolos. 187 personas crearon commits que se fusionaron durante el año.

2022

Se fusionó el soporte WebSocket inicial (WS:// y WSS:// URL) y una nueva API para manejarlo. Se llegó a los 28 protocolos.

Se añadió la opción de línea de comando –json y libcurl obtuvo una nueva API de encabezado, que luego también hizo que la herramienta de línea de comando obtuviera una nueva capacidad de «selección de encabezado» agregada a -w.

También se añadió –rate y –url-query. El HTTP/3 RFC se publicó en junio. msh3 se convierte en la tercera biblioteca HTTP/3 admitida.

Trail of Bits realizó una auditoría de seguridad curl, patrocinada por OpenSSF. El lanzamiento de curl 212 se realizó en diciembre.

El incidente número 10.000 se creó en GitHub.

2023

A principios de año: el código tiene 155.100 líneas de código. 486 páginas man. 1560 casos de prueba. 2.771 colaboradores. 1.105 autores de commits. 132 CVE. 122 trabajos de optimización CI. 29.733 commits. 48 580 USD donados en recompensas por errores. 249 opciones de línea de comandos. 28 protocolos. 13 bibliotecas TLS. 3 bibliotecas SSH. 3 bibliotecas HTTP/3.

Se añade soporte para HTTP/3 con respaldo a versiones anteriores, lo que hace que su uso sea menos propenso a errores.

El 13 de marzo superamos los 30.000 commits.

El 20 de marzo se publicó curl 8.0.0. Exactamente 25 años desde el primer lanzamiento de curl.


Un proyecto que empezó de una manera muy casual y pequeña y que se ha ido ampliando para dar demanda a multitud de casos de uso.

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

Recordatorio: presenta tu charla a Akademy-es 2023 de Málaga Opensouthcode edition #akademyes

Siguiendo la estela de Akademy-es 2022, el próximo encuentro de la Comunidad española de KDE se celebrará de forma presencial en Málaga el 9 y 10 de junio junto con Opensouthcode. Estamos todavia a unos meses y es el momento de comentar que se acaba de abrir el Call for Papers, es decir, el momento de participar activamente en el evento. Así que ya sabes: presenta tu charla a Akademy-es 2023 y muestra al mundo tu proyecto.

Recordatorio: presenta tu charla a Akademy-es 2023 de Málaga Opensouthcode edition #akademyes

Hace unos días compartí con vosotros que este año Akademy-es 2023 se va a realizar en Málaga el 9 y 10 de junio, en otra edición muy especial ya que se va a celebrar de forma paralela con la Opensouthcode en La Térmica.

Siguiendo el esquema habitual cuando coincide con una Akademy, las charlas se celebrarán el jueves y el viernes, para dejar libre el fin de semana para las ponencias el evento Internacional.

Dado la realización de esta Akademy-es con la Opensouthcode, las charlas se celebrarán el viernes y el sábado, dejando el domingo para alguna actividad social, si es posible.

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.

Recordatorio: presenta tu charla a Akademy-es 2023 de Málaga Opensouthcode edition #akademyes
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 2 de abril 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.

¿Qué es Akademy-es?

Akademy-es (#akademyes, que es la etiqueta para las redes sociales) es evento más importante para los desarrolladores y simpatizantes de KDE, que se ha ido celebrando desde el 2006 con éxito creciente.

En general, las Akademy-es son el lugar adecuado para conocer a los desarrolladores, diseñadores, traductores, usuarios y empresas  que mueven este gran proyecto.

En ellas se realizan ponencias, se presentan programas, se hace un poco de caja para los proyectos libres (camisetas, chapas, etc) pero sobre todo se conoce a gente muy interesante y se cargan baterías para el futuro.

Podéis repasar las anteriores ediciones en estas entradas del blog:

La entrada Recordatorio: presenta tu charla a Akademy-es 2023 de Málaga Opensouthcode edition #akademyes se publicó primero en KDE Blog.

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

Punteros transparentes para tu PC: Empty cursor

Hoy me apetece volver con una entrada de diseño, me apetece hablar de los cursores con los que interaccionamos con nuestro entorno de trabajo. Y para hacerlo he seleccionado un conjunto de punteros transparentes para tu PC llamado Empty Cursor que no solo ofrece un moderno y elegante cursor sino que además nos ofrece la posibilidad de personalizar su color principal.

Punteros transparentes para tu PC: Empty cursor

Nacidos de la mano y de la mente de moyash,os traigo una serie de cursores transparentes para nuestro PC, eso si, aunque sean transparentes su borde inusualmente ancho hacen que sean perfectamente visibles en casi todos los entornos en los que su color no sea el predominante.

Y para evitar justamente eso su creador ha pensado ofrecerlos en un abanico de modelos, como son:

Estos cursores, han sido probados en portátiles y pantallas «sin escalado», donde funcionan a la perfección.

Punteros transparentes para tu PC: Empty cursor

Y como siempre digo, si os gusta este conjunto de cursores Empty Cursor podéis «pagarlo» de muchas formas en la 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

Cómo cambiar el tema de los cursores en Plasma

Al igual que con los iconos hay varias formas de cambiar el tema de cursores en Plasma, pero la más fácil es:

  • Abrir las Preferencias del Sistema
  • Ir a la sección Tema de Cursor
  • En esta ventana pinchar en «Obtener nuevos temas»
  • Buscar Empty, seleccionar el estilo y dar a instalar.
  • Seleccionar el tema y aplicar.

Si tenéis dificultad, simplemente se debe descargar a tu disco duro y extraer el tema en «/usr/share/icons» o «~/.icons».

Rápido, sencillo y efectivo, como la mayoría de cosas en en el escritorio Plasma de la Comunidad KDE.

La entrada Punteros transparentes para tu PC: Empty cursor se publicó primero en KDE Blog.

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

Lanzado digiKam 7.10, actualizando instaladores

El mejor gestor de imágenes de la Comunidad KDE (y una de las mejores del mercado tanto libre como privado) sigue su desarrollo. De esta forma ha sido lanzado digiKam 7.10, una nueva versión de la séptima rama principal que se ha dedicado a mejorar los instaladores para todos los sistemas en los que está disponible.

Lanzado digiKam 7.10, actualizando instaladores

Lanzado digiKam 7.10, actualizando instaladores

El pasado 13 de marzo fue lanzado digiKam 7.10 la nueva versión de uno de los gestores de imágenes más completo que puedes encontrar en el mundo GNU/Linux, e incluso en el mundo privativo.

En palabras de sus desarrolladores:

Estimados fans y usuarios de digiKam,

Después de tres meses de mantenimiento activo y otros errores de triaje, el equipo digiKam se enorgullece en presentar la versión 7.10.0 de su gestor de fotos digitales de código abierto.

De esta forma esta nueva versión se ha centrado en:

  • Actualizar los componentes internos de los Bundles. Microsoft Windows Installer, Apple macOS Package y binarios de Linux AppImage
  • Nuevas cámara de fotografía soportadas:
    • Phase One/Leaf IIQ-S v2 format
    • Canon CR3 filmrolls/RawBurst format
    • Canon CRM movie format
    • Canon EOS R3, R7 and R10 devices
    • Fujifilm X-H2S, X-T30 II devices
    • OM System OM-1 camera
    • Leica M11 camera
    • Sony A7-IV camera.
  • Actualizadas las traducciones de la aplicación. digiKam y Show foto se proponen con 57 idiomas diferentes para la interfaz gráfica.

Por último destacar que digiKam 7.10.0 será la última versión de mantenimiento para esta serie. Ahora se van a centrar en la próxima versión 8.0.0 con el objetivo de ser lanzada en abril de 2023. Ya se han publicado versiones preliminares de 8.0.0 a través de un mecanismo de publicación semanal y se han recibido buenos comentarios de los probadores.

Según los desarrolladores, digiKam 8.0.0 llegará también con una nueva y enorme documentación en línea totalmente reescrita y mejorada.

Más información: digikam 7.10

Las novedades de digiKam 7

Aunque gran parte del trabajo para esta nueva versión, como he dicho, se lo ha llevado el reconocimiento facial con interesantes mejoras, digiKam también nos ofrece jugosas novedades. Hagamos un repaso:

  • Mejoras reconocimiento facial como:
    • Porcentaje de acierto de un 97%.
    • Mejoras en rapidez y eficiencia en el uso de recursos.
    • Posibilidad de detectar caras no-humanas. También podremos tener registradas a nuestras mascotas!
    • Posibilidad de detectar caras borrosas, cubiertas, pintadas, parciales, etc.
Las novedades de digiKam 7
  • Nuevo soporte para ficheros RAW files para nuevas cámaras como Canon CR3 o Sony A7R4.
  • Mejorado el soporte para las imágenes con formato HEIF.
  • Mejoras en el paquete binario con soporte para FlatPak.
  • Nueva herramienta, ImageMosaicWall, para crear una imagen basada en otra colección de fotos.
  • Nuevas opciones para escribir información de geolocalización en los metadatos del archivo.
  • El plugin HTMLGallery introduce un nuevo tema llamado Html5Responsive.
Lanzado digiKam 7.7, mejorando los paquetes multisistemas

Y, por supuesto, muchos errores solucionados, con lo que parece que tendremos la mejor versión de digiKam que puede tener vuestro ordenador.

¿Qué es digiKam?

La mejor forma de definir digiKam es buscar como se describe esta aplicación de userbase.kde.org y realizar una pequeña síntesis:

DigiKam es una aplicación que te permite la importación de fotografías desde cámaras, creación de Álbumes, etiquetado con fechas, temas y otras propiedades, utilidades de búsqueda excelentes y modificación de imágenes en masa.

La entrada Lanzado digiKam 7.10, actualizando instaladores se publicó primero en KDE Blog.