Nueva web de la Comunidad KDE, kde.org evoluciona
Ya lo hizo en 2017 pero al parecer la idea de unificar páginas web está entre los objetivos del equipo de KDE promo. Hoy quiero compartir con vosotros que se ha presentado la nueva web de la Comunidad KDE, en otras palabras, que kde.org sigue evolucionando y se adapta a los nuevos tiempos. A mi personalmente me ha gustado, no sé a vosotros.
Nueva web de la Comunidad KDE, kde.org evoluciona
Con el objetivo de ir unificando aspectos y hacerla más accesible para dispositivos móviles, la web de la Comunidad KDE ha recibido una buena actualización visual, que no de contenidos (aunque si que hay una cosa que noto a faltar).
Con una estructura vertical se pueden observar las siguientes partes:
- Se empieza con la sección del escritorio Plasma, el cual muestra un portátil con el último escritorio Plasma y tres opciones básicas: las opciones para instalar en nuestro equipos, descubrir las funcionalidades y ver las opciones que tenemos para adquirir un dispositivo con Plasma por defecto.

- La siguiente sección está dedicada a las aplicaciones, mostrando en primer lugar a Krita, aparecen también el editor de vídeo Kdenlive, el gestor de información personal Kontact, la herramienta para desarrolladores Kdevelop y la suite educativa GCompris. Es evidente que Dolphin está tan intregrado en Plasma que no se destaca en esta sección.

- No podía faltar una sección dedicada exclusivamente al Hardware que lleva por defecto el Software de la Comunidad KDE, puerta de entrada para el gran público. Os recuerdo que ya hablé de esto hace un tiempo.
- Casi al final de la página nos encontramos con los anuncios de los lanzamiento de la Comunidad: Plasma, aplicaciones y KDE Frameworks.
- Se ha dejado una sección especial para la Comunidad, con un mosaico de fotografías de algunos eventos que se organizan. Ni de lejos están todos pero es una buena muestra.
- Para finalizar se ha dejado la información práctica: patrones, donaciones, la tienda de merchandising, enlaces a las redes sociales, etc. Esta sección es muy habitual en casi todas las webs modernas.
El comando :normal en el editor #Vim
Un video tutorial donde veremos el uso del comando :normal y refrescaremos el uso de algún otro comando

Un nuevo tutorial sobre el editor de texto Vim en el que aprenderemos a utilizar el comando normal y cómo nos puede ayudar a realizar tareas en nuestro texto.
Este tutorial se suma a la lista de tutoriales (sobrepaso la cifra de 40) que desde hace meses publico en mi blog y que puedes encontrar recopilados en este enlace:
Si consultamos la ayuda de Vim para el comando normal (ya sabes :help normal) podemos leer que el comando:
Ejecuta los comandos del modo Normal. Esto hace posible ejecutar diferentes comandos a como lo haríamos en la línea de comandos de Vim en el modo normal. Los comandos son ejecutados como son escritos. Para deshacer todos los comandos, la acción se realiza a la vez. La ejecución de los comandos para cuando encuentra un error.
Con lo que podremos ejecutar comandos estando incluso en el modo de visualización o podremos ejecutar varias acciones seguidas, lo que podría asemejarse el uso de normal a correr pequeñas macros puntuales para acciones concretas que necesitemos.
El comando normal ejecuta los comandos en la línea en la que se encuentra el cursor. Si ejecutamos el comando normal en modo visualización, después de haber seleccionado varias líneas, el comando actuará sobre las líneas seleccionadas.
Si añadimos un signo % al inicio del comando y ejecutamos :%normal <comandos> los comandos escritos se aplicarán a todo el documento.
Podremos añadir texto al inicio o al final de las líneas seleccionadas o del documento completo de una manera sencilla. Podremos borrar texto entre comillas de varias líneas a la vez y que esa misma acción se realice en otras líneas o en todo el documento, etc.
Las opciones son variadas, dependiendo de las necesidades que tengamos en nuestro caso en concreto.
A continuación te dejo con un vídeo tutorial en formato .webm alojado en archive.org donde veremos las posibilidades del comando normal y alguna cosa más.
También está disponible en YouTube para quien prefiera esta plataforma en el enlace:
https://www.youtube.com/watch?v=--koDJKAa4w
Mengecek dan Memperbaiki Performa Web Menggunakan GTMetrix dan Google Pagespeed Insights
Sejak beberapa waktu yang lalu Excellent membuat sebuah project kecil. Setelah projectnya jadi, secara bertahap diujicoba dan disimulasikan. Sudah cukup baik tapi saya merasa kok tampilannya tidak smooth.
Saat diakses, loadingnya agak lambat dan tampilannya seperti tersendat. Padahal itu hanya satu halaman web saja. Saya coba menggunakan browser mobile juga sama saja. Padahal saya membayangkan, saat diketik alamat URL kemudian tekan ENTER, blitz… langsung tampil. Kan saya tekan ENTER, bukan ENTAR. Kalau ENTAR kemudian tampilannya lama sih ya maklum 
Saya bilang pada team, saya nggak puas kalau performanya seperti itu. Apakah bisa dicheck nyangkutnya dimana. Apakah bisa diperbaiki? Mereka bilang, “Bisa dong, kan itu memang belum rilis. Masih fase ujicoba jadi memang belum dapat improvement apa-apa karena fokusnya baru ke fungsinya”
Salah seorang team, mas Arif Rahman mereferensikan halaman GTMetrix.
Saat dicoba validasi disana, hasilnya adalah screenshot pertama.
Nilainya F. FARAH. 
Performanya 0%. Loading time 11.3 s dan total page size 6.41 MB. Di bagian bawahnya ada detail apa saja yang menyebabkan score seperti itu termasuk solusi perbaikannya.

Beberapa yang mencolok misalnya tidak pakai cache. Kemudian penggunaan image yang tidak efisien dan ukurannya terlalu besar dibandingkan dengan format yang ditampilkan. Misalnya ingin menampilkan icon tapi ukuran gambar yang diupload malah ukuran gambar yang besar.
Secara bertahap hal tersebut diperbaiki, sampai kemudian waktu loading jauh lebih singkat. Memang score-nya masih belum mencapai nilai A dan nilai YSlow score masih parah, tapi minimal sudah dapat insights mengenai sumber masalah dan tindakan perbaikan yang bisa dilakukan.
Dari awalnya loading sekitar 11.3 s turun menjadi dibawah 5 s. Page size juga drop dari 6.41 MB menjadi 1.16 MB. Cukup lumayan meski masih banyak ruang untuk diimprove lagi.

Selain GTMetrix, ada juga Google Pagespeed Insights : https://developers.google.com/speed/pagespeed/insights/
Ini juga bisa dijadikan sebagai acuan untuk mengetahui sumber masalah dan solusi perbaikannya.
Ada solusi lain yang bisa ditempuh, misalnya menggunakan CDN untuk tambahan lapisan keamanan dan peningkatan kecepatan, namun 2 website diatas bisa dijadikan sebagai titik awal karena layanannya gratis dan saat kita baru memulai hal baru tanpa pendapatan, kita bisa cukup puas dengan yang free namun memberikan nilai manfaat yang besar.
Saat saya ujicoba ke website lain baik website personal maupun website Excellent, hasilnya banyak yang parah, hehehe… Jadi ada tambahan kegiatan nih selama WFH.
Cómo hacer una captura de pantalla de una terminal #Linux sin servidor gráfico
Veamos cómo podemos hacer una captura de pantalla de una terminal sin servidor gráfico o TTY
A los Linuxeros y Linuxeras nos gusta mucho mostrar nuestros escritorios. Somo muy dados a compartir capturas de pantalla de nuestros sistemas GNU/Linux, con nuestro mejor fondo de pantalla, combinación de iconos, tema de escritorio y demás personalizaciones.
Para muestra un botón de las capturas de pantalla que compartimos en Mastodon bajo la etiqueta #unixporn:
Y para realizar dichas capturas de pantalla tenemos aplicaciones muy completas como Spectacle, Flameshot, scrot por nombrar algunas opciones…
Pero ¿cómo hacer una captura de pantalla de una terminal (no un emulador de terminal) TTY sin entorno gráfico? Hace poco me encontré en esa situación y ninguna de esas opciones me sirvió. Todas necesitan un servidor gráfico corriendo para poder ejecutarse.
Al final di con una solución que lo que hace es “convertir” el framebuffer en una imagen .png. La aplicación se llama Fbcat que tiene una aplicación llamada fbcat y fbgrab, que es la que realmente me interesa.
Buscando, la primera opción que me dieron fue fbgrab, pero no estaba empaquetada para openSUSE en su versión más reciente, así que después de 2 días conseguí empaquetarla en la versión 1.3.3 disponible en mi repositorio local.
Después de haberme pasado 2 días intentando empaquetarla, hasta que lo conseguí, cuando la instalo y la pruebo veo que no funciona, ya que sí guarda la imagen, pero queda distorsionada y no se ve nada y no sé el motivo…
Sigo buscando opciones y me encuentro con fbcat, que contiene tanto fbcat como fbgrab y está disponible para Debian y derivadas y para openSUSE.
La instalo desde los repositorios y eureka! esta sí funciona correctamente. Con esta herramienta puedo estar trabajando en una TTY o una terminal sin servidor gráfico funcionando y poder hacer una captura de pantalla de la terminal en una imagen .png (tal como se ve en la imagen que abre el artículo)
Además desde tu sesión gráfica (normalmente la 7) puedes capturar cualquier TTY que tengas, sin necesidad de ir a esa sesión, y correr el comando desde allí. Pero veamos en detalle los parámetros.
Nos dirigimos a una TTY (normalmente puedes ir a una mediante la combinación de teclas Ctrl+Alt+F1 y regresar a tu sesión gráfica con Ctrl+Alt+F7) y nos logueamos.
En esa TTY, no tenemos un servidor gráfico, eso no es un emulador de terminal, es una terminal pura y dura, donde correr comandos y ejecutar aplicaciones que no requieran un servidor gráfico, como por ejemplo: moc para escuchar música, neomutt para el correo, podboat para leer canales RSS, etc…
Si por algún motivo queremos hacer una captura de esa terminal, es ahora cuando fbgrab nos viene a solucionar el problema. Ejecutamos:
sudo fbgrab captura.png
No podemos ver la captura en esa sesión, pero regresando a nuestra sesión gráfica (Ctrl+Alt+F7 ¿recuerdas?) podremos abrirla con nuestro visor de imágenes preferido y ver la captura.
Podemos desde esta sesión gráfica hacer una captura de la TTY, para ello ejecutamos uno de estos dos comandos:
sudo fbgrab -c 1 captura.png sudo fbgrab -C 1 captura.png
Ambos son similares, pero el de la C mayúscula tarda un poco más para poder hacer una captura buena en framebuffers más lentos. Y 1 si queremos la TTY 1, si queremos otra, pondremos el número que queramos…
También tenemos la opción de poder retrasar la captura unos segundos mediante la opción -s
Así que pude solucionar mi inquietud y pude hacer una captura de pantalla de una terminal de Linux sin servidor gráfico corriendo.
Esto también puede ser útil si estamos “cacharreando” en una Raspberry Pi en la que no tenemos servidor gráfico y queremos hacer una captura por algún motivo.
Como siempre digo, espero que quizás esta sea la respuesta que estabas buscando si también a ti te ha surgido esta inquietud o este “problema”. Utiliza los comentarios del blog para dejar información…

OPEN BUILD SERVICE IN SYSTEMD CONTAINER
First we will need to populate the conainer
with an openSUSE base system.
TARGETDIR=$HOME/OBS_CONTAINER/OBSCONTAINER/
SOURCEREPODIR=/etc/zypp/repos.d/
#lazily copy existing *.repos
for f in *.repo
do
sudo cp $SOURCEREPODIR$f $TARGETDIR/$SOURCEREPODIR
done
cd $TARGETDIR
sudo mkdir -p sys proc dev
sudo mount -t proc proc proc/
sudo mount -o bind /sys sys/
sudo mount -o bind /dev dev/
sudo zypper --no-gpg-checks --non-interactive --cache-dir /var/cache/zypp --root $TARGETDIR in --allow-unsigned-rpm --auto-agree-with-licenses filesystem bash permissions coreutils bash-completion cpio coreutils glibc permissions systemd systemd-rpm-macros systemd-presets-branding-openSUSE rpm zypper nano system-group-wheel system-group-hardware system-user-bin system-user-root system-user-nobody sudo systemd-network yast2-network NetworkManager nmcli-dmenu mariadb systemd-container obs-service-obs_scm obs-service-tar_scm
Okay so far so good. The base system is already bootable via nspawn.
We need some set-up of the system before we do it though:
sudo chroot $TARGETDIR /usr/bin/bash -c "systemd-machine-id-setup"
sudo chroot $TARGETDIR /usr/bin/bash -c "ln -sf /etc/machine-id /var/lib/dbus/machine-id"
Now it's time to install OBS itselfsudo zypper --cache-dir /var/cache/zypp --root $TARGETDIR ar https://download.opensuse.org/repositories/OBS:/Server:/Unstable/openSUSE_Factory/OBS:Server:Unstable.reposudo zypper --no-gpg-checks --non-interactive --cache-dir /var/cache/zypp --root $TARGETDIR in --allow-unsigned-rpm --replacefiles --auto-agree-with-licenses -t pattern OBS_Serversudo zypper --no-gpg-checks --non-interactive --cache-dir /var/cache/zypp --root $TARGETDIR in --allow-unsigned-rpm --replacefiles --auto-agree-with-licenses obs-service-set_version obs-service-recompress
We are now able to boot the systemd container and set-up OBS.
With the same commands you will be able to boot it in the future too.
RUNDIR=$HOME/OBS_CONTAINER/run
sudo systemd-nspawn -D $TARGETDIR -b --resolv-conf=bind-host --capability=all --property="DeviceAllow=/dev/loop-control rwm" --property="DeviceAllow=/dev/loop-* rwm" --property="DeviceAllow=block-loop rwm" --property="DeviceAllow=block-* rwm" --bind="$RUNDIR/obs/:/run/obs" --bind="$RUNDIR/passenger/:/run/passenger/" --bind="$RUNDIR/mysql/:/run/mysql/" --property="DeviceAllow=/dev/port rwm" --property="DeviceAllow=block-blkext rwm" --property="DeviceAllow=char-pts rwm" --property="DeviceAllow=/dev/null rwm" --property="DeviceAllow=/dev/zero rwm" --property="DeviceAllow=/dev/random rwm" --property="DeviceAllow=/dev/urandom rwm"
And since we have not set a root password, but one is expected,
we connect from a different console and start the setup.
Unless you want to customize ports/ip etc. you can leave
everything at the default from setup-appliance.sh
sudo machinectl --machine OBSCONTAINER shell
/usr/lib/obs/server/setup-appliance.sh --force #inside the machine
Now you can point your browser to 127.0.0.1 and start using your local OBS
Be careful if you intend to move the directory (use rsync instead of cp/mv) because of special files which may get lost using cp/mv.
Podcast de abril de GNU/Linux València
Hoy os invito a escuchar el podcast de abril de GNU/Linux València, otro audio más dentro del universo de de audios dedicado al mundo GNU/Linux como KDE España, Podcast Linux, Compilando Linux, Salmorejo Geek, SystemInside Podcast, Birras y Bits, Mancomun o el de NeoSiteLinux.
Podcast de abril de GNU/Linux València
En estos días de confinamiento el número de podcast de todo tipo de temática abundan, los relacionados con el Software Libre no es una excepción.
Hoy me complace compartir con vosotros el podcast de abril de GNU/Linux València dedicado a :
-
Al próximo Ubuntu 20.04 que sale en apenas 3 días.
-
Como puede cambiar nuestra privacidad como consecuencia de la pandemia del Covid-19.
-
Como es la colaboración Google y Apple.
-
Y una visión del estado de Asociación GNU/Linux València.
Como siempre, os intento dejar aquí mismo el audio para que los podáis escuchar.
¿Qué es la Asociación GNU/Linux València?
En palabras de ellos mismos GNU/Linux Valencia, era un grupo que pretendía:
«…la difusión de GNU/Linux, para lo cual se pretende realizar reuniones mensuales, para realizar desde instalaciones de distribuciones GNU/Linux en equipos portátiles o de sobremesa, resolver problemas en el uso diario, y dar a conocer la facilidad de uso y funcionamiento de esta distribución de GNU/Linux.
Esta idea ha evolucionado hasta convertir el grupo en la Asociación GNU/Linux València, que sigue teniendo los mismos objetivos pero gana libertad de acción para organizar eventos, pedir locales e incluso ofrecer servidores libres para reuniones virtuales.
Su cuota de inscripción anual es de 20€ para personas físicas, y 40€ para empresas o personas jurídicas. Ambas cuotas tienen carácter anual y servirán para promocionar de forma más eficiente el Software Libre y mantener los gastos económicos que tiene constituirse como asociación (sí, aún siendo sin ánimo de lucro las asociaciones tienen gastos).
Para hacerte socio/a solo tienes que acceder a la pestaña ASOCIARSE, que puedes encontrar en el menú principal de su página web.
Más información: GNU/Linux València
Its awesome to have Microsoft Teams on Linux during the Corona crisis!
The Corona (Corvid-19) virus has forced a lot of us to work from home. My preferred way of working, is by using openSUSE. Because my company has decided a while ago that Office365 and Microsoft Teams would be the default applications for collaboration, I am able to do so.
Installing Microsoft Teams Preview
The first thing to do is to go to the Microsoft Teams website to download the Teams software package.

Save the RPM file to your computer.

Now open the Dolphin file browser and either press F4 or click on: Control –> Panels –> Terminal.

Now install Teams by using the command:
sudo zypper install teams-versionnumber.x86_64.rpm
First enter your root password. When asked to confirm the installation, type ‘y’ and then press Enter.

After installation, type ‘Teams’ in your launcher to start the Microsoft Teams – Preview application.

You can login by entering your (work) e-mail address and your password and if needed the Two Factor Authentication approval.

My experience
Teams on Linux works very well. Video conferencing also works like a charm. It also works great with SharePoint (for accessing your Teams files), Outlook (for knowing when your next meeting starts), Word, Excel and PowerPoint. Everything works as you would expect.

The Word, Excel, PowerPoint versions are comparable with the browser versions of Office365. So the desktop apps still work a bit better. For instance when creating rich formatted Word documents or when creating visually impressive PowerPoint presentations. But I am able to do minor edits without a problem.
Conclusion
Microsoft Teams on Linux works just as well as the Windows version. And that is one of the biggest compliments that you can give to a Microsoft Office application. The only difference is that you cannot open files in the desktop versions of Word, Excel or PowerPoint. So now we wait for those to come to Linux as well!
Published on: 20 April 2020
Installation of Jupyter on external hard disk/ USB
We have to use Jupyter notebooks for Machine Learning at our university. Jupyter needs a lot of space on the hard disk and I was able to remember (from vocational school) that we were able to install PHPMyAdmin on a USB stick. You have a transportable web application on this way. I had this goal for Jupyter and the Python environment on Linux. 
So I want to give you the installation guide for Jupyter on openSUSE Leap 15.1 (incl. Python) in a virtual environment.
Install the following packages as a foundation:
sudo zypper install python3-pip python3-devel
After that install the virtual environment with pip3:
sudo pip3 install --upgrade pip sudo pip3 install virtualenv
Create a project directory for Jupyter in your home directory and mount the external disk/ USB stick there:
sudo mkdir ~/Jupyter sudo mount /dev/sda1 ~/Jupyter
You have to umount /dev/sda1, if the disk has been mounted automatically in /run/media/ (in my case):
sudo umount /run/media/user/TOSHIBA\ EXT/ sudo mount /dev/sda1 ~/Jupyter
If the external disk is mounted, you can create the virtual environment for Python and Jupyter in the special project directory:
virtualenv ~/Jupyter
Inside, it will install a local version of Python and a local version of pip. We can use this to install and configure an isolated Python environment for Jupyter.
Before we install Jupyter, we need to activate the virtual environment:
source ~/Jupyter/bin/activate
You are ready to install Jupyter into this virtual environment.
You can install Jupyter on the external disk with the following command:
pip install jupyterlab
Call Jupyter via command line inside of the project directory then:
jupyter notebook
That will open your web browser with http://localhost:8888/tree.
Do you need additional packages or Python libraries? You can install them in this project directory, too.
Change to this directory and install them with pip3 (in my case these ML packages):
pip3 install scipy numpy matplotlib sklearn pandas pip3 install keras tensorflow
Enjoy Jupyter on an external disk.
The post Installation of Jupyter on external hard disk/ USB first appeared on Sarah Julia Kriesch.
Expande las funcionalidades de #git con esta colección de scripts
Git es una gran herramienta para la gestión de control de versiones de software. Ahora con esta colección de scripts para Bash puedes expandir sus funcionalidades

Git es una herramienta creada por Linus Torvalds para el control de versiones del kernel Linux que libero para que cualquiera la pudiera utilizar.
Despues de 15 años, es una herramienta necesaria en cualquier proyecto de software. Pero que puede que en alguna situación necesites alguna utilidad extra para hacer esa herramienta mas potente y adaptarla a tus necesidades ahorrándote trabajo.
Para eso están una colección de scripts en Bash llamada git-extras y que esta disponible en un repositorio de GitHub.
Puedes consultar la forma de instalar la coleccion de scripts en tu sistema, ya que esta disponible para muchos sistemas GNU/Linux. Entre ellos openSUSE.
O si no quieres todos, puedes echar un vistazo a aquella funcionalidad que quieras y copiar el script en cuestión en tu equipo en una carpeta de tu $PATH y utilizarlo cuando lo prefieras.
Hay scripts, para crear automáticamente un archivo .gitignore, para ofrecer información de un repositorio, para ver el estado en el que se encuentra, para crear o renombrar ramas de desarrollo, borrar, mover, copiar…
Lo mejor es instalar el conjunto completo de scripts, pero en el siguiente ejemplo, veremos como copiar el script git-summary y ejecutarlo para ver la información que nos muestra de nuestro repositorio.
En el ejemplo descargo en script en una carpeta de Scripts, pero lo mejor es copiarlo a una carpeta de nuestro $PATH.
Si tienes alguna idea para otro script o quieres mejorar alguno existente, ya sabes que puedes contribuir con el código.

Qactus v2.0.0 is out!

Here it is! Qactus v2.0.0 has been released 
The main focus of this version has been on improving the browser.
New features:
- Improved UI: revamped toolbar, new action toolbars for projects, packages, files and build results, new side bar icons
- Bookmarks: first version for the watchlist
- New package actions: submit, copy, link and properties
- New project action: properties
- MetaConfigEditor (beta): now it is possible to edit a project/package properties such as general info, repository, repository flags, users and groups
- New search widget (Ctrl+F) for BuildLogViewer
- Showing outgoing and declined requests
Miscellaneous bugfixes and «hidden features» 
