Programa social de Akademy 2021 en línea
Hoy es lunes, han finalizado los dos días de charlas del gran evento de la Comunidad KDE, y mientras esperamos al resumen del Dot de ayer, es un buen momento para comentar el programa social de Akademy 2021 en línea: manualidades, retos, juegos sociales y videojuegos son las prepuestas que nos esperan.
Programa social de Akademy 2021 en línea
Evidentemente una Akademy es ante todo un punto de encuentro entre los desarrolladores y es por eso que no se debe descuidar la parte social del mismo, aunque sea más complicado que menos debido a su modalidad en línea.

De esta forma los organizadores del evento han pensado y propuesto varias actividades para que sea posible acercarse al máximo al principal propósito de una Akademy. Las propuestas son las siguientes:
-
Taller de Origami: Aprende a hacer figuras con papel.
- Miércoles 23 a las 7:00 y 21:00 UTC.
-
Pub Quiz: Concurso son reglas aleatorias y puntos inventados. El protagonista es nuestro escritorio.
- Jueves 24 a las 21:00 UTC.
-
Tiempo de juego: Únete a tus compañeros de Akademy en 3 juegos en los que competirás contra ellos, pero también tendrás la oportunidad de conoceros.
- Lunes 21: 7:00 y 21:00 UTC
- Martes 22 : 7:00 y 21:00 UTC
- Jueves 24: 7:00 UTC
- Viernes 25: 7:00 UTC
- SuperTuxKart: no podía faltar esta maravilla de la diversión y competición.
- Skribbl.io: dibuja y adivina lo que dibujan.
- Garticphone.com: más juegos de dibujo,
Evidentemente, os invito a visitar la página social para conocer los detalles de las propuestas.
¿Cómo participar en Akademy 2021 en línea?
Aprovecho para animaros a participar en las tres modalidades existentes:
Mira las ponencias y participa: Necesitarás una cuenta Matrix para ver las charlas y participar en el debate. Esto es diferente de tu cuenta de KDE Identity. Ten en cuenta que es posible que se te solicite que habilite la función Spaces en Matrix. Por favor, hazlo para disfrutar de la conferencia.
Sigue las salas como oyente en directo (Sala 1 y Sala 2): No necesitas nada, simplemente accedes a una página web con vídeo incorporado.
Sigue las ponencias por Youtube: Igual que el anterior pero con la posibilidad de verlo en diferido. Se trata de las emisiones en bruto por este canal, Seguramente en un futuro estarán en PeerTube.
Más información: Akademy 2021 | Social Events Akademy 2021
¿Qué es Akademy?
Para los que no lo sepan, Akademy es el evento de la Comunidad KDE que aúna en una gran conferencia todo tipo de simpatizantes de KDE como desarrolladores, diseñadores, usuarios, traductores, promotores, ideólogos, etc.
Allí se reunirán de forma virtual por segundo año consecutivo a lo largo de una semana para compartir charlas, ponencias, talleres, eventos sociales online y, en definitiva, para trabajar juntos.
Es una gran semana que sirve para unir más fuerte los lazos que unen nuestra Comunidad, así como para crear nuevos que se mantendrán gracias a las listas de correo, canales irc o Sprints.
Día 2 de Akademy 2021 en línea
Seguimos con el gran evento de la Comunidad KDE echando un vstazo al día 2 de Akademy 2021 en línea. No busquéis el día 1 porque al ser un día de introducción no se ha realizado resumen en el dot.
Día 2 de Akademy 2021 en línea
Ayer fue el primer día grande de Akademy 2021 en línea que se está celebrando del 18 al 25 de junio. Y digo que fue el primer gran día porque fue el primero en que tuvimos la oportunidad de ver una gran cantidad de charlas.
El resumen de esta jornada ya está publicado en la página de noticias de la Comunidad KDE, comúnmente conocida como el Dot y que se afana por ofrecernos noticias frescas, y más esta semana.
De esta forma os invito a leer toda la crónica que se ha publicado allí, donde quisiera destacar la intervención de Aleix Pol tanto como Presidente de KDE e.V. que hizo de presentador del ponente invitado Patricia Aas, co-fundadora de TurtleSec y desrrolladora de C++, y como ponente con su charla sobre el Objetivo Principal de la Comunidad «All about the apps»

Aprovecho para animaros a participar en las tres modalidades existentes:
Mira las ponencias y participa: Necesitarás una cuenta Matrix para ver las charlas y participar en el debate. Esto es diferente de tu cuenta de KDE Identity. Ten en cuenta que es posible que se te solicite que habilite la función Spaces en Matrix. Por favor, hazlo para disfrutar de la conferencia.
Sigue las salas como oyente en directo (Sala 1 y Sala 2): No necesitas nada, simplemente accedes a una página web con vídeo incorporado.
Sigue las ponencias por Youtube: Igual que el anterior pero con la posibilidad de verlo en diferido. Se trata de las emisiones en bruto por este canal, Seguramente en un futuro estarán en PeerTube.
Más información: Akademy 2021 | Akademy 2021 Día 2
¿Qué es Akademy?
Para los que no lo sepan, Akademy es el evento de la Comunidad KDE que aúna en una gran conferencia todo tipo de simpatizantes de KDE como desarrolladores, diseñadores, usuarios, traductores, promotores, ideólogos, etc.
Allí se reunirán de forma virtual por segundo año consecutivo a lo largo de una semana para compartir charlas, ponencias, talleres, eventos sociales online y, en definitiva, para trabajar juntos.
Es una gran semana que sirve para unir más fuerte los lazos que unen nuestra Comunidad, así como para crear nuevos que se mantendrán gracias a las listas de correo, canales irc o Sprints.
Understanding io.Reader in Go
Recently, I was trying to learn how the io.Reader interface works in Go and implement my own custom reader. Before implementing a custom Reader let’s understand what they are.
Readers: What are they?
Readers are interfaces or classes that are implemented in various programming languages. Usually, readers take in an input interface that can usually be represented as an array and a length. The reader returns another stream that is usually a cut to the length of the original input. Readers are implemented in various programming languages as following:
- Java: readers are implemented by the interface java.io.Reader that implements read(char[], int, int) and close().
- C++: readers are implemented by the istream where the read function is depicted as follows istream& read (char* s, streamsize n);
- Go: readers are implemented by the io.Reader interface which has Read(p []byte) error.
In the above examples, readers in various programming language do the same thing; they read from the input stream and make a copy of the same into the char / byte array that is provided to the Read function.
Implementing custom Reader in Go
In this example, we will implement a reader that will add the capitalize the characters in the resulting byte array to which we want to copy the result into.
Note: This may or may not be suitable for production but is an example. I have also not seen examples of modifying the string.
Readers in Go need to implement the following language
type Reader interface {
Read(p []byte) (n int, err error)
}
We will use 2 ways to implement the reader:
- By natively implementing the Read function.
- Using an already existing reader (strings.Reader)
Native implementation of the Read function
package main
import (
"bytes"
"fmt"
"io"
"log"
"time"
)
// CapitalizeReader is a reader that implements io.Reader
// It read the bytes from a particular position and returns the number
// of bytes that are read. If an error is thrown, all the errors are thrown
// as it is.
type CapitalizeReader struct {
b []byte
i int
}
// Read implements the function for CapitalizeReader.
// p is the []byte where the data is copied to.
// n is the number of bytes that are read and if there is an error it is
// returned along with the bytes that are read.
func (cr *CapitalizeReader) Read(p []byte) (n int, err error) {
// By default, the size of the
// if the number of bytes are less than the bytes to be read, then we assign it.
var l int = len(p)
if len(cr.b)-cr.i < len(p) {
l = len(cr.b) - cr.i
}
var t []byte = cr.b[cr.i : cr.i+l]
n = copy(t, cr.b[cr.i:])
cr.i += n
t = bytes.ToUpper(t)
n = copy(p, t)
// If the bytes read is less than the length of input byte slice, return the number of bytes
// and io.EOF; it is different from Go's byte reader implementation where it will copy everything
// and always return 0, io.EOF in the next implementation.
// Ref: https://golang.org/src/bytes/reader.go?s=1154:1204#L30
if l < len(p) {
return n, io.EOF
}
return n, nil
}
// NewCapitalizeReader takes in a string and returns a reader.
// Store string as a slice of bytes so that we can read bytes
// and uppercase it on read.
func NewCapitalizeReader(s string) *CapitalizeReader {
return &CapitalizeReader{b: []byte(s), i: 0}
}
func main() {
str := "hello world"
cr := NewCapitalizeReader(str)
fmt.Println("length of the string: ", str, " is ", len(str))
var b = make([]byte, 2)
for {
time.Sleep(200 * time.Millisecond)
n, err := cr.Read(b)
fmt.Println(n, "\t", n, "\t", string(b[:n]))
if err != nil {
if err == io.EOF {
break
}
log.Fatal(err)
}
}
bytes.NewReader()
}
Using an already existing reader (strings.Reader)
The below example explains how to use an underlying Reader. Go does this quite often. For example, we have the LimitReader (https://golang.org/pkg/io/#LimitedReader). The LimitReader accepts a Reader and assigns this reader as the underlying reader. Once a set number of bytes are reached, it will return an EOF even if the underlying reader has not reached an EOF. This example uses strings.Reader as the underlying Reader.
package main
import (
"bufio"
"bytes"
"fmt"
"io"
"log"
"strings"
"unicode"
)
// CapitalizeReader is a reader that implements io.Reader
// The underlying reader is a strings.Reader that is used to
// read the bytes from a particular position and returns the number
// of bytes that are read. All the errors are thrown
// as it is.
type CapitalizeReader struct {
// sr is the underlying reader to use the reading operations for.
sr *strings.Reader
// offset is the index from where the string is read into the given []byte slice
offset int64
}
// Read implements the function for CapitalizeReader
// p is the []byte where the data is copied to.
// n is the number of bytes that are read and if there is an error it is
// returned along with the bytes that are read.
func (cr *CapitalizeReader) Read(p []byte) (n int, err error) {
// create a new array where modifications will be made
var t = make([]byte, len(p))
n, err = cr.sr.ReadAt(t, cr.offset)
// track the offset by number of bytes that were read
cr.offset = cr.offset + int64(n)
t = bytes.ToUpper(t)
// copy to the provided array only when all the operations are done.
// io.Reader interface explicitly specifies that p should not be held by Read.
copy(p, t)
return
}
// NewCapitalizedReader takes in a string and returns a reader.
// offset is set to 0 as that is we want to read from.
func NewCapitalizeReader(s string) *CapitalizeReader {
return &CapitalizeReader{sr: strings.NewReader(s), offset: 0}
}
func main() {
str := "hello world"
cr := NewCapitalizeReader(str)
fmt.Println("length of the string: ", str, " is ", len(str))
var b = make([]byte, 2)
for {
n, err := cr.Read(b)
// Notice that we read by slice b[:n] even in the case of error
// This is because io.EOF can happen we can still have a byte that is read and
// it is easy to miss it out.
fmt.Println(n, "\t", n, "\t", string(b[:n]))
if err != nil {
if err == io.EOF {
// exit gracefully with in case of io.EOF
break
}
// For all other errors exit with a non-zero exit code.
log.Fatal(err)
}
}
}
Summary
- Readers have a similar interface in various programming languages.
- Readers in Go can be implemented natively by implementing the Read(p []byte) (int, eror) method for any struct.
- Readers in Go can also have a backing or an underlying reader that can be used to implement a new reader. This new reader can be limit or enhance the capability of the underlying reader. An example of this is the LimitReader in Go
#openSUSE Tumbleweed revisión de las semanas 23 y 24 de 2021
Tumbleweed es una distribución “Rolling Release” de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.

openSUSE Tumbleweed es la versión “rolling release” o de actualización continua de la distribución de GNU/Linux openSUSE.
Hagamos un repaso a las novedades que han llegado hasta los repositorios estas semanas.
El anuncio original lo puedes leer en el blog de Dominique Leuenberger, publicado bajo licencia CC-by-sa, en este enlace:
- http://dominique.leuenberger.net/blog/2021/06/opensuse-tumbleweed-review-of-the-week-2021-23/
- http://dominique.leuenberger.net/blog/2021/06/opensuse-tumbleweed-review-of-the-week-2021-24/
Hagamos un repaso de lo ocurrido en estas dos semanas.
Semana 23
Se publicaron 6 snapshots (0603, 0604, 0605, 0606, 0609 y 0610) en esa semana pasada:
Los cambios más importantes que trajeron fueron:
- Linux kernel 5.12.9
- Mesa 21.1.2
- KDE Plasma 5.22.0
- libxml 2.9.12
- Apache 2.4.48
- PHP 7.4.20
- Chrony 4.1
- cURL 7.77.0
- Mozilla Thunderbird 78.11.0
- OpenSSH
Y los cambios para próximas snapshots:
- Linux kernel 5.12.10
- GNOME 40.2
- systemd 248
- KDE Gear 21.04.2
- Cinnamon 5.0
Semana 24
De nuevo esta semana se han vuelto a publicar 6 nuevas snapshots: (0611, 0612, 01613, 0614, 0615 y 0616).
Los cambios más importantes son:
- Mozilla Firefox 89.0
- Linux kernel 5.12.10
- KDE Gear 21.04.2
- KDE Frameworks 5.83.0
- GNOME 40.2
Y para próximas snpashots, podremos encontrar
- Linux kernel 5.12.12
- KDE Plasma 5.22.1
- Cinnamon 5.0
- systemd 248
Si quieres estar a la última con software actualizado y probado utiliza openSUSE Tumbleweed la opción rolling release de la distribución de GNU/Linux openSUSE.
Mantente actualizado y ya sabes: Have a lot of fun!!
Enlaces de interés
-
-
- ¿Por qué deberías utilizar openSUSE Tumbleweed?
- zypper dup en Tumbleweed hace todo el trabajo al actualizar
- ¿Cual es el mejor comando para actualizar Tumbleweed?
- Comprueba la valoración de las “snapshots” de Tumbleweed
- ¿Qué es el test openQA?
- http://download.opensuse.org/tumbleweed/iso/
- https://es.opensuse.org/Portal:Tumbleweed
-

——————————–
openSUSE Tumbleweed – Review of the week 2021/24
Dear Tumbleweed users and hackers,
This week we have seen a steady stream of snapshots being published. A full 6 snapshots made it out onto the mirrors (0611, 0612, 01613, 0614, 0615, and 0616).
The main changes in those snapshot included:
- Mozilla Firefox 89.0
- Linux kernel 5.12.10
- python3x packages no longer provided ‘python’ as a symbol to not confuse the python2 stacks
- KDE Gear 21.04.2
- KDE Frameworks 5.83.0
- GNOME 40.2
This matches pretty much what was promised to come during last week’s review. A few things still take a bit more time, and more things have shown up in the staging areas:
- Linux kernel 5.12.12
- KDE Plasma 5.22.1
- Cinnamon 5.0
- systemd 248
Cómo seguir Akademy 2021 en línea
Ya ha empezado y creo que es de recibo dedicar una entrada de cómo seguir Akademy 2021 en línea, ya que las opciones son variadas e interesantes. Sigue leyendo y conócelas.
Cómo seguir Akademy 2021 en línea
Como creo que todo el mundo que sigue el blog sabrá Akademy 2021 en línea se está celebrando de 18 a 25 de junio, y seguirlo es sencillo y tiene algunas opciones par hacerlo.

Mira las ponencias y participa: Necesitarás una cuenta Matrix para ver las charlas y participar en el debate. Esto es diferente de tu cuenta de KDE Identity. Ten en cuenta que es posible que se te solicite que habilite la función Spaces en Matrix. Por favor, hazlo para disfrutar de la conferencia.
Sigue las salas como oyente en directo (Sala 1 y Sala 2): No necesitas nada, simplemente accedes a una página web con vídeo incorporado.
Sigue las ponencias por Youtube: Igual que el anterior pero con la posibilidad de verlo en diferido. Se trata de las emisiones en bruto por este canal, Seguramente en un futuro estarán en PeerTube.
Aprovecho para animaros a participar en las sesiones de trabajo, talleres, reuniones o eventos sociales que podéis ver en la página oficial de Akademy 2021.
Más información: Akademy 2021 | Participa en Akademy 2021
¿Qué es Akademy?
Para los que no lo sepan, Akademy es el evento de la Comunidad KDE que aúna en una gran conferencia todo tipo de simpatizantes de KDE como desarrolladores, diseñadores, usuarios, traductores, promotores, ideólogos, etc.
Allí se reunirán de forma virtual por segundo año consecutivo a lo largo de una semana para compartir charlas, ponencias, talleres, eventos sociales online y, en definitiva, para trabajar juntos.
Es una gran semana que sirve para unir más fuerte los lazos que unen nuestra Comunidad, así como para crear nuevos que se mantendrán gracias a las listas de correo, canales irc o Sprints.
Beauty, un precioso tema de iconos para tu Plasma
Sigo con los temas de iconos en el blog, y es que debo reconocer que me fascina la variedad que tenemos a nuestra disposición, tanto de forma , estilo o colores. Hoy tengo el gusto de presentaros un tema de iconos llamado Beauty que, como su propio nombre indica, es una verdadera belleza en forma de conjunto de píxeles.
Beauty, un precioso tema de iconos para tu Plasma
Para el escritorio Plasma de la Comunidad KDE hay cientos de temas de todo tipo disponibles para los usuarios: iconos, cursores, emoticonos, etc, Y como me gusta cambiar de vez en cuando, en el blog le he dedicado muchos artículos a cada uno de los packs.
No obstante, como suelo decir, cambiar el tema de iconos de un escritorio es una de las formas de adaptación más personal que puedes realizar sobre tu PC, ya que modifica totalmente el aspecto del mismo a la hora de interaccionar con tus aplicaciones, documentos y servicios.

Hoy os presento Beauty, un precioso tema que huye del minimalismo tanto en formas y colores y nos ofrece detallados objetos con volumen, redondeados y muy coloridos, como podéis ver en las imágenes superior e inferior.

Y como siempre digo, si os gusta el pack de iconos podéis “pagarlo” de muchas formas en la nueva página de KDE Store, que estoy seguro que el desarrollador mayurzambare 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
openSUSE Leap 15.3 cool packages disponível!

Instalou o openSUSE Leap 15.3? E agora o que instalar? E os codecs proprietários ? E os codecs multimídia? Demorou mas foi concluído! O Cool Package é um processo que instala alguns software necessários para a dia a dia de um SUSEIRO e resolver todas as questões de dependências. O Cool Package disponibiliza:
- Thunderbird
- Codecs
- VLC
- KDEnlive
- DVDAuthor
- MPV
- ffmpeg
- Lame
- E outros…
A seguir o botão 1-click Install. que resolver estes questionamentos, pois este botão instala os primeiros softwares principais para a tarefa do dia a dia como: o cliente de email Thunderbird, VLC, MPV, Codecs proprietários e editores de vídeos. Qualquer dúvida, críticas e sugestões em cabelo@opensuse.org

How to test things with openQA without running your own instance
Wait what?
Yes, there are couple of ways for you, the user, the contributor, the amazing human being who wants to improve the software that is used by millions, to write automated tests and have bots doing all the work for you, once you’ve signed a binding contract with the blood of an unicorn, and have obtained api keys for our public https://openqa.opensuse.org instance.
For now I will leave out the details on how to get those, but will rather point you to the #factory irc channel (or dischord), where you can get in touch with current admins, whom will be able to guide you better in the process.
I have the keys
You should get operator keys and they would look like this (more or less):
[openqa.opensuse.org]
key = 45ABCEB4562ACB04
secret = 4BA0003086C4CB95

Now let’s do this
I will assume that you’re using openSUSE Tumbleweed, instructions are similar for Leap, but if you’re looking for something more esoteric, check the bootstraping guide
Bring up a terminal or your favorite package manager, and install openQA-client, it will pull almost everything you will need
zypper in openQA-client
Once we’re here, we’ve gotta clone the git repo from the tests being ran in openqa.opensuse.org, to do that let’s go to a directory; let’s call it
Skynet and create it in our user’s home. My user’s home is /home/foursixnine \o/ and use git to clone the test repository:
https://github.com/os-autoinst/os-autoinst-distri-opensuse/.
cd $HOME
mkdir Skynet
cd Skynet
git clone https://github.com/os-autoinst/os-autoinst-distri-opensuse/
Now since we already cloned the test distribution, and also got the openQA client installed, all there is to do is:
1 - Hacking & Commiting 2 - Scheduling a test run
At this point we can do #1 fairly easy, but #2 needs a bit of a push (no pun intended), this is where we will need the API keys that we requested, in the beginning.
We will rely for now, on openqa-clone-custom-git-refspec which reads configuration parameters from “$OPENQA_CONFIG/client.conf”, “~/.config/openqa/client.conf”
and “/etc/openqa/client.conf” (you can run openqa-cli –help to get more detailed info on this), for now open up your favorite editor and let’s create the directories
and files we’ll need
mkdir ~/.config/openqa
$EDITOR ~/.config/openqa/client.conf
And paste the API keys you already have, you you will be able to post and create jobs on the public instance!
Let’s get hacking

This part is pretty straightforward once you’ve looked at $HOME/Skynet/os-autoinst-distri-opensuse.
For this round, let’s say we want to also test chrome, in incognito mode. By looking at chrome’s help we know that the --incognito is a thing
So let’s go to where all the tests are, edit, commit and push our changes
Remember to set up your fork, however if you want to make your life easier use hub you can find it in the repos too!
cd $HOME/Skynet/os-autoinst-distri-opensuse
vim tests/x11/chrome.pm
git commit -m "Message goes here" tests/x11/chrome.pm
git push $REMOTE
openqa-clone-custom-git-refspec \
https://github.com/foursixnine/os-autoinst-distri-opensuse/tree/test_incognito_in_chrome \
https://openqa.opensuse.org/tests/1792294 \
SCHEDULE=tests/installation/bootloader_start,tests/boot/boot_to_desktop,tests/console/consoletest_setup,tests/x11/chrome \
BUILD=0 \
TEST=openQA-WORKSHOP-ALL-CAPS
In the end you will end up with an URL https://openqa.opensuse.org/t1793764, and you will get emails from travis if something is going wrong
Podcast 07×07 Akademy 2021 en línea
Bienvenidos al Podcast 07×07 Akademy 2021 en línea donde hablamos del evento que se inicia mañana mismo. No os lo perdáis ya que tenemos más de hora y media de charla con Aleix Pol, presidente de KDE e.V.
Podcast 07×07 Akademy 2021 en línea
Este año Akademy 2021 en línea que se celebrarán del 18 al 25 de junio, un evento dura una semana con 2 días de charlas el fin de semana y una extra el viernes.

A lo largo del podcast presentado por Rubén Gómez (miembro de KDE España, del colectivo Hacklab Almería y de la The Document Foundation), un servidor (Baltasar Ortega) y José Picón, vocal de KDE España y miembro GNU/Linux Valencia, charlamos largo y tendido con Aleix Pol, presidente de KDE e.V.
En esta ocasión será solo en forma de audio, que por problemas técnicos, de momento, no os puedo ofrecer el vídeo pero que en cuanto esté actualizaré la entrada.
Como siempre, esperamos vuestros comentarios que os aseguro que son muy valiosos para los desarrolladores, aunque sean críticas constructivas (las otras nunca son buenas para nadie). Así mismo, también nos gustaría saber los temas sobre los que gustaría que hablásemos en los próximos podcast.
¿Qué es Akademy?
Para los que no lo sepan, Akademy es el evento de la Comunidad KDE que aúna en una gran conferencia todo tipo de simpatizantes de KDE como desarrolladores, diseñadores, usuarios, traductores, promotores, ideólogos, etc.
Allí se reunirán de forma virtual por segundo año consecutivo a lo largo de una semana para compartir charlas, ponencias, talleres, eventos sociales online y, en definitiva, para trabajar juntos.
Es una gran semana que sirve para unir más fuerte los lazos que unen nuestra Comunidad, así como para crear nuevos que se mantendrán gracias a las listas de correo, canales irc o Sprints.