Welcome to Planet openSUSE

This is a feed aggregator that collects what openSUSE contributors are writing in their respective blogs.

To have your blog added to this aggregator, please read the instructions.


Sunday
17 November, 2019


face

En este frío domingo de Noviembre en la penínula no está de más hacer un pequeño receso y hablar de algo más ligero. Así que hoy toca hablar de la personalización de los cursores dentro la categoría de diseño del blog. Así que bienvenidos a la entrada dedicada a los cursores PearWhiteCursors, unos cursores alternativos para Plasma y otra forma de dar un toque diferente a su escritorio.

PearWhiteCursors, cursores alternativos para Plasma

Nacidos de la mano y de la mente de Adhe, os presento PearWhiteCursors, un tema de cursores para Plasma 5 simlpe, colorido y claro  que le otorga un toque diferente a nuestro escritorio Plasma de la Comunidad KDE.

PearWhiteCursors

 

Y como siempre digo, si os gusta este conjunto de cursores PearWhiteCursors 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 secilla 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 Temas para el espacio de trabajo
  • Ir a la subsección Tema de Cursor.
  • En esta ventana pinchar en “Obtener nuevos temas”
  • Buscar PearWhiteCursors y dar a instalar.
  • Seleccionar el tema y aplicar.

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

 


Saturday
16 November, 2019


face

Cuando te inicias en el mundo del Software Libre crees que es un proyecto homogéneo y legalmente desatendido. Al poco de excavar un poco en él te percatas que no podías estar más equivocado. Es por ello que creo que es de obligado cumplimiento escuchar la serie de audios de Podcast Linux dedicados a las licencias Creative Commons y a una de sus miembros de la Comunidad de México, Irene Soria, la cual no solo nos habla de ellas sino que nos da su visión sobre otras aspectos relacionados con la libertad como es el feminismo. Unos podcast 100% recomendados y de obligada escucha.

Creative Commons, Irene Soria y Podcast Linux

Creative Commons, Irene Soria y Podcast Linux #88 y #89Aunque lista de podcast sin escuchar sigue siendo elevada al llegar el tiempo de realizar tareas de campo ésta se reduce drásticamente y me permite escuchar algunos audios que tenía muchas ganas.

Es el caso de los episodios 88 y 89 de Podcast Linux, el primero dedicado a las licencias Creative Commons y el segundo a Irene Soria, diseñadora gráfica, activista de la Cultura Libre y el Software Libre y miembro de Creative Commons México.

El primero es fabuloso porque Juan Febles, el creador de Podcast, nos introduce en el interesante mundo de las licencias libres y todas sus variantes, lo cual nos ayudará a conocer mucho mejor sus entresijos, e incluso a elegir la que más te guste o se ajuste a tus necesidades.

 

El segundo ha sido muy enriquecedor ya que me va entender y a «combatir» la poca presencia femenina en el mundo del Software Libre a la par que me ha proporcionado otro punto de vista sobre la llegada de nuevos usuarios y sus motivaciones al mundo del Conocimiento Compartido. Ha sido un verdadero placer escuchar a Irene Soria hablar sobre feminismo, Richard Stallman, diseño, el Conocimiento Libre y muchas más temas en la hora y poco que dura su entrevista. Un audio que todo el mundo debería escuchar para entender mejor el estado actual del Software Libre.

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

Podcast Linnux forma parte de la red  de podcasting Avpodcast y esta alojado en Neodigit.net , su  proveedor de confianza con instalaciones en España.


face

openSUSE Tumbleweed es una distribución “Rolling Release” de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.

Tumbleweed

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:

La semana pasada ha sido intensa, ya que se han publicado 5 nuevas “snapshots” (1107, 1109, 1110, 1111 y 1112). Los cambios más notables que han traído hasta los repositorios son:

  • git 2.24.0
  • Mesa 19.2.3
  • gimp 2.10.14
  • Linux kernel 5.3.9
  • libvirt 5.9.0
  • KDE Applications 19.08.3
  • KDE Frameworks 5.64.0

Y entre la lista de próximos paquetes actualizados en próximas “snapshots” podemos encontrar:

  • rpm 4.15.0
  • Python 3.8
  • openssl 1.1.1d
  • Linux kernel 5.3.11+
  • KDE Plasma 5.17.3
  • Rust 1.39.0: de momento esta versión tiene incompatibilidades con Firefox y Thunderbird

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

Geeko_ascii

——————————–


Friday
15 November, 2019


face

Dear Tumbleweed users and hackers,

This has been a busy week, with 5 successfully tested snapshots delivered to you, the users (1107, 1109, 1110, 1111 and 1112). The main updates/changes there include:

  • git 2.24.0
  • Mesa 19.2.3
  • gimp 2.10.14
  • Linux kernel 5.3.9
  • libvirt 5.9.0
  • KDE Applications 19.08.3
  • KDE FRameworks 5.64.0

The list of things on the todo is in big parts unchanged and the stagings contain these major updates:

  • rpm 4.15.0: the new python dependency generator is nasty, as it adds much more deps that were the before (probablu a good thing), exposing new build cycles
  • Python 3.8
  • openssl 1.1.1d
  • Linux kernel 5.3.11+
  • KDE Plasma 5.17.3
  • Rust 1.39.0: break Firefox and Thunderbird so far


face
三大雲平台工具容器升級小記 with openSUSE Leap 15.1 container

OS: container with openSUSE Leap 15.1

上次升級是 2019/8/3 , 這次會來升級的原因是 Google SDK 已經到了 271.0.0, 然後最近要作一個 Lab 需要 gcloud compute resource-policies 相關指令,  但是 Google SDK 245.0.0 沒有....
[ 謎之音: 需求是前進的鞭子 ~  ]

先整理結果

升級前
OS: openSUSE Leap 15
awscli:  aws-cli/1.16.210 Python/2.7.14
gcloud: Google Cloud SDK 245.0.0
azure-cli: 2.0.70

升級後
OS: openSUSE Leap 15.1
awscli:  aws-cli/1.16.282 Python/2.7.14
gcloud: Google Cloud SDK 271.0.0
azure-cli: 2.0.76

Todo
  • 12 月的時候將 awscli 用 python3 安裝
    • 原因是 Google SDK 目前還是 Python2, 所以想要一起升級 :p

這次的做法會透過 docker build 指令來進行
  • 我有比較過 docker build 以及使用現有的 docker image 修改後再使用 docker commit 建立的 image 大小還是很有差異的

Dockerfile 的部分我是拿之前 openSUSE Leap 15 來修改

實際上只有修改
  • openSUSE Leap 版本
  • Update time
  • Google SDK 版本還有下載的檔案路徑以及檔案名稱


列出 diff 的結果給大家參考

> diff  opensuseLeap151_ansible_Dockerfile  opensuseLeap15_ansible_Dockerfile 

1,2c1,2
< # openSUSE Leap 15.1 with ansible, azure-cli
< FROM opensuse/leap:15.1
---
> # openSUSE Leap 15 with ansible, azure-cli
> FROM opensuse/leap:15
6c6
< # update: 20191116
---
> # update: 20190727
49c49
< # Install google cloud SDK 271
---
> # Install google cloud SDK 240
51,52c51,52
< RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-271.0.0-linux-x86_64.tar.gz && \
<   tar zxvf google-cloud-sdk-271.0.0-linux-x86_64.tar.gz && \
---
> RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-245.0.0-linux-x86_64.tar.gz && \
>   tar zxvf google-cloud-sdk-245.0.0-linux-x86_64.tar.gz && \


Dockerfile 內容如下

# openSUSE Leap 15.1 with ansible, azure-cli
FROM opensuse/leap:15.1

# Author
# MAINTAINER 已經棄用, 之後要使用 LABEL 方式
# update: 20191116
LABEL maintainer="sakana@cycu.org.tw"

# Install python2-pip, upgrade pip, ansible[azure]
RUN zypper install -y python2-pip && \
  pip2 install --upgrade pip && \
  pip2 install ansible[azure]

# Install openssh, set ls alias
RUN zypper install -y openssh
RUN echo "alias ls='ls --color=tty'" >> /root/.bashrc

# Install wget, download azure_rm.py, set permission
RUN zypper install -y wget && \
  wget  https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/azure_rm.py && \
  chmod a+x azure_rm.py && \
  mv azure_rm.py /root

# Create working directory in /root
RUN mkdir /root/.azure && \
  mkdir /root/.aws && \
  mkdir /root/playbook && \
  mkdir -p /root/.config/gcloud && \
  wget https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/template/ansible.cfg && \
  mv /ansible.cfg /root && \
  wget https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/template/hosts && \
  mv /hosts /root

# Install azure-cli
RUN zypper install -y curl && \
  rpm --import https://packages.microsoft.com/keys/microsoft.asc && \
  zypper addrepo --name 'Azure CLI' --check https://packages.microsoft.com/yumrepos/azure-cli azure-cli && \
  zypper install --from azure-cli -y azure-cli

#install vim tar gzip
RUN zypper install -y vim tar gzip
RUN echo "set encoding=utf8" > /root/.vimrc

# Install awscli
RUN pip install awscli
RUN echo "source /usr/bin/aws_bash_completer" >> /root/.bashrc


# Install google cloud SDK 271
ENV CLOUDSDK_CORE_DISABLE_PROMPTS 1
RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-271.0.0-linux-x86_64.tar.gz && \
  tar zxvf google-cloud-sdk-271.0.0-linux-x86_64.tar.gz && \
  /google-cloud-sdk/install.sh && \
  echo "if [ -f '/google-cloud-sdk/path.bash.inc' ]; then . '/google-cloud-sdk/path.bash.inc'; fi" >> /root/.bashrc && \
  echo "if [ -f '/google-cloud-sdk/completion.bash.inc' ]; then . '/google-cloud-sdk/completion

face

Cada cierto tiempo me gusta hablar de mi compañía de hardware favorita. Y es que estos chicos y chicas no paran en su empeño de seguir ofreciendo más y mejore productos a sus clientes…. y no solo de dispositivos. Es por ello que me congratula anunciar que Slimbook estrena sistema operativo y nos prepara una sorpresa para la semana que viene.

Slimbook estrena sistema operativo…

Aunque los dispositivos Slimbook son perfectamente compatibles con las distribuciones GNU/Linux la empresa valenciana ha pensado que puede hacer incluso más fácil la vida a aquellos usuarios que lo pidan.

No es que sea extremadamente difícil configurar los sistema GNU/Linux, y creo que todos los lectores de este blog saben hacerlo, pero es una forma más de facilitar el salto a aquellos usuarios que tienen cierto respeto, por no decir miedo, al sistema del Ñu y del Pingüino.

Slimbook estrena sistema operativo...

De esta forma, los ensambladores valencianos de Slimbook han creado Slimbook OS, una versión configurada, optimizada y potenciada, de Ubuntu LTS para los ordenadores de sus dispositivos.

Con este sistema operativo el usuario que así lo desee, al adquirir su ordenador solo deberá configurar unos pequeños detalles para que su software esté perfectamente adaptado a su hardware. Para ello ponen a su disposición tres aplicaciones que han ido creado expresamente para sus portátiles:

  • Slimbook MakeUP: Aplicación para que el usuario novel, configure con 3 clics aspectos tan importantes como la posición donde desea que esté ubicada la barra de tareas, o aspectos como la colección de iconos o el tamaño de los mismos.
  • Slimbook Face: Aplicación para la gestión de rostros de reconocimiento facial biométrico no podía faltar, con ella los usuarios pueden añadir rostros, eliminarlos y en general configurar activar o desactivar esta funcionalidad, que se integra con el sistema operativo, tanto en peticiones de contraseña por terminal, como a través de entorno gráfico.
  • Slimbook Battery: Su aplicación más famosa, por ser compatible con centenares de ordenadores de diversas marcas, se sirve aquí totalmente preparada. Esta aplicación alarga notablemente la duración de la batería,
  • Slimbook Gestures: Aplicación te permite configurar infinidad todos los gestos del touchpad multitáctil, para que se ejecuten comandos, se abran aplicaciones, se cambie de escritorio, etc.

Además, han añadido a los repositorio de Slimbook a los que lleva por defecto Ubuntu LTS así como firmware, software y drivers en sus últimas versiones, para que todo funcione aún mejor.

Una excelente iniciativa que solo puede sumar usuarios a su ecosistema. Para más información y detalles os remito a su página web.

…y nos prepara una sorpresa

Concretamente para el 21 de noviembre, donde aparentemente nos presentarán un dispositivo que tiene como objetivo hacer cambiar la idea de que el hardware de la manzanita es el mejor. Y como es habitual, lo hacen con


face

Intro

Sometimes there are occasions where direct internet access is not possible (proxy/offline/airgapped). Even in this setups it is possible to deploy and use Kubernetes with openSUSE Kubic and a local private registry.

In this blog I will explain how to setup a local server which acts as private registry providing all the container images needed to deploy Kubernetes with openSUSE Kubic.

Installation

OS

As OS for our host serving the required services openSUSE MicroOS is used, which needs to be installed with the MicroOS Container Host system role.

The following additional packages are required and need to be installed:

  • container-registry-systemd
  • mirror-registry
  • skopeo with the latest sync patches as provided in openSUSE Tumbleweed
  • reg (optional, for testing and debugging)
# transactional-update pkg install mirror-registry skopeo container-registry-systemd reg
# systemctl reboot

After the reboot the tools are available and we can start with the setup of the registry.

Registry Setup

There is a script to setup a local private registry running in containers. By default, everybody can list and pull images from it, but only the admin is allowed to push new images.

# setup-container-registry

There is no default password for the admin account, which means it is necessary to set one to be able to sync the containers to this registries. The password must be a bcrypt (blowfish) hash:

# htpasswd -nB admin

Modify the password entry for the admin account and set the new hash:

# nano /etc/registry/auth_config.yml

Additional, the ACL rules can be adjusted.

Start the containers for the registry:

# systemctl start container-registry
# systemctl start registry-auth_server

Now your registry is running and should work. This can be verified with:

# reg ls localhost
Repositories for localhost
REPO                TAGS

Certificates

By default setup-container-registry will create self signed certificates, which are valid for 1,5 year and stored in /etc/registry/certs. They can be replaced with official certificates.

If the self signed certificates are used, the public CA certificate needs to be installed on all machines, which should access the registry. Copy /etc/registry/certs/ContainerRegistryCA.crt to /etc/pki/trust/anchors/ and run update-ca-certificates on every machine.

List of container images

The tool mirror-registry will be used to create a list of containers which needs to be mirrored. It will analyse a remote registry and create a yaml file with all containers and tags matching a regex to sync with skopeo to a private registry.

This tool can run on any architecture, the target platform can be specified as argument. In contrast to this, skopeo needs to run on the target architecture. Else it will fail or sync the wrong container image if there are multi-architecture container images in the source repository.

All container images below registry.opensuse.org/kubic/ are required. Additional, it could be from help to mirror all official openSUSE container images from registry.opensuse.org/opensuse/, too. Else utilities like toolbox will not work.

The commnd to create a list of container images is:

# mirror-registry --out kubic-full.yaml registry.opensuse.org "(^kubic|^opensuse/([^/]+)$)"

This command


Thursday
14 November, 2019


face

Veamos cómo añadir un segmento a nuestro prompt con Powerline que nos muestre información sobre git de un repositorio local

Powerline es una aplicación que muestra el prompt en nuestra consola de una manera distinta y más atractiva visualmente. Y también disponible para tmux, Vim, o i3wm

Pero algo que echaba de menos, es el que mostrara de alguna manera información sobre git cuando estuviéramos en una carpeta o directorio que este bajo este control de versiones. Pero finalmente encontré un complemento que viene a solucionar esto.

El software en cuestión escrito en Python se llama Powerline-gitstatus. Un paquete que en Debian derivadas está disponible y que en distribuciones como openSUSE se puede instalar mediante el instalador de paquetes Python mediante:

pip install powerline-gitstatus

Después de instalarlo, ya podremos añadirlo a nuestro Powerline modificando el archivo

.config/powerline/themes/shell/default.json

Siempre que utilices el tema “default” en la shell. Si utilizas otro tema edita el archivo de configuración del tema en cuestión. Y sea como sea añadiremos lo siguiente:

{
    "function": "powerline_gitstatus.gitstatus",
    "priority": 40
}

Te recuerdo que si utilizas Bash como shell, esta no admite tener segmentos en la parte derecha como sí lo hace por ejemplo Fish. Por lo que deberás añadirlo en la sección de segmentos de la izquierda.

Con esto cuando estemos en una carpeta bajo el control de versiones Git, se nos mostrará el nombre de la rama en la que estamos. Además de iconos e información sobre si se han modificado archivos y cuantos, si se han añadido archivos a “stash” o si se han hecho commits y mucha otra información útil.

Toda esa información, comportamiento y colores se pueden configurar editando los archivos necesarios de configuración, que te invito a explorar en el repositorio GitHub del proyecto.

Veamos un pequeño ejemplo de gitstatus en acción. Pincha sobre la imagen:


face

Dear syslog-ng users,

This is the 76th issue of syslog-ng Insider, a monthly newsletter that brings you syslog-ng-related news.

NEWS

Logging to Elasticsearch made simple with syslog-ng

Elasticsearch is gaining momentum as the ultimate destination for log messages. You can store arbitrary name-value pairs coming from structured logging or message parsing and you can use Kibana as a search and visualization interface. You can use syslog-ng as an all in one solution (system and application logs, message parsing, filtering and queuing) to collect and forward log messages to Elasticsearch:

https://www.syslog-ng.com/community/b/blog/posts/logging-to-elasticsearch-made-simple-with-syslog-ng

Upgrading syslog-ng PE from version 6 to 7

Learn the major steps necessary to upgrade your system from syslog-ng Premium Edition version 6 to 7. As you will see, it is no more difficult than any other major software version upgrade, and after the upgrade you can start using all the new and useful features that are available in version 7.

https://www.syslog-ng.com/community/b/blog/posts/upgrading-syslog-ng-pe-from-version-6-to-7

syslog-ng and Elasticsearch 7: getting started on RHEL/CentOS

Version 7 of the Elastic Stack, packed with new features and improved performance, has now been available for some time. Elasticsearch is not the only one to have come up with a major new version recently: starting with version 3.21, syslog-ng features a new Elasticsearch destination driver (based on the http() destination) that does not require Java. In most cases, it is more resource friendly than the Java-based driver and it is definitely easier to configure. It also has the benefit that unlike the Java-based driver, it can be included in Linux distributions. This is a quick how-to guide to get you started with syslog-ng and Elasticsearch 7 on RHEL/CentOS 7.

https://www.syslog-ng.com/community/b/blog/posts/syslog-ng-and-elasticsearch-7-getting-started-on-rhel-centos

Handling lists in syslog-ng: the in-list() filter

Recently, a number of quite complex configurations came up while syslog-ng users were asking for advice. Some of these configurations were even pushing the limits of syslog-ng (regarding the maximum number of configuration objects). As it turned out, these configurations could be significantly simplified using the in-list() filter, one of syslog-ng’s lesser known features.

https://www.syslog-ng.com/community/b/blog/posts/handling-lists-in-syslog-ng-the-in-list-filter

Offline syslog-ng DEB package installer

“How can I install the unofficial syslog-ng packages on a machine without Internet access?” This question has been raised several times recently. As it entails more than simply downloading the repository containing the packages, syslog-ng lead developer Laszlo Budai created a script that solves the problem for Debian and Ubuntu users. The script downloads syslog-ng along with its dependencies using a container, and produces an archive containing all DEB packages necessary to install syslog-ng as well as a simple script responsible for the installation. Using a container in this case might seem like over complication, but it is still the easiest way to ensure that all dependencies are included in the archive.

https://www.syslog-ng.com/community/b/blog/posts/offline-syslog-ng-deb-package-installer

syslog-ng at Splunk .conf


Wednesday
13 November, 2019


face

I keep getting this same error message when I tried to run vagrant up on my machine

$ vagrant up
Bringing machine 'homestead' up with 'virtualbox' provider...
==> homestead: Importing base box 'laravel/homestead'...
Progress: 90%
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["import", "/home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/8.2.1/virtualbox/box.ovf", "--vsys", "0", "--vmname", "ubuntu-18.04-amd64_1573673848596_76505", "--vsys", "0", "--unit", "11", "--disk", "/home/rnm/VirtualBox VMs/ubuntu-18.04-amd64_1573673848596_76505/ubuntu-18.04-amd64-disk001.vmdk"]

Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting /home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/8.2.1/virtualbox/box.ovf...
OK.
0%...
Progress state: NS_ERROR_INVALID_ARG
VBoxManage: error: Appliance import failed
VBoxManage: error: Code NS_ERROR_INVALID_ARG (0x80070057) - Invalid argument value (extended info not available)
VBoxManage: error: Context: "RTEXITCODE handleImportAppliance(HandlerArg*)" at line 957 of file VBoxManageAppliance.cpp

Arghh..this is quite anoyying.. I tried executing same command again and again but no luck. I check my disk space and there is plenty.

I have no choice, I will delete ~/.vagrant.d and execute vagrant command again

$ rm -rf ~/.vagrant.d
removed '/home/rnm/.vagrant.d/insecure_private_key'
removed '/home/rnm/.vagrant.d/rgloader/loader.rb'
removed directory '/home/rnm/.vagrant.d/rgloader'
removed directory '/home/rnm/.vagrant.d/tmp'
removed directory '/home/rnm/.vagrant.d/gems/2.4.9'
removed directory '/home/rnm/.vagrant.d/gems'
removed '/home/rnm/.vagrant.d/setup_version'
removed '/home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/8.2.1/virtualbox/ubuntu-18.04-amd64-disk001.vmdk'
removed '/home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/8.2.1/virtualbox/Vagrantfile'
removed '/home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/8.2.1/virtualbox/box.ovf'
removed '/home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/8.2.1/virtualbox/metadata.json'
removed directory '/home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/8.2.1/virtualbox'
removed directory '/home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/8.2.1'
removed '/home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead/metadata_url'
removed directory '/home/rnm/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead'
removed directory '/home/rnm/.vagrant.d/boxes'
removed '/home/rnm/.vagrant.d/data/machine-index/index.lock'
removed directory '/home/rnm/.vagrant.d/data/machine-index'
removed '/home/rnm/.vagrant.d/data/lock.dotlock.lock'
removed '/home/rnm/.vagrant.d/data/checkpoint_signature'
removed '/home/rnm/.vagrant.d/data/checkpoint_cache'
removed '/home/rnm/.vagrant.d/data/lock.machine-action-13105a2995d25174a20c9b1d206a4f8a.lock'
removed directory '/home/rnm/.vagrant.d/data'
removed directory '/home/rnm/.vagrant.d'

and when I execute vagrant, re-downloading the box then suddenly it worked!

$ vagrant up
Bringing machine 'homestead' up with 'virtualbox' provider...
==> homestead: Box 'laravel/homestead' could not be found. Attempting to find and install...
    homestead: Box Provider: virtualbox
    homestead: Box Version: >= 8.2.0
==> homestead: Loading metadata for box 'laravel/homestead'
    homestead: URL: https://vagrantcloud.com/laravel/homestead
==> homestead: Adding box 'laravel/homestead' (v8.2.1) for provider: virtualbox
    homestead: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/8.2.1/providers/virtualbox.box
    homestead: Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
==> homestead: Successfully added box 

face

Veamos una funcionalidad curiosa, que quizás no conocías, del editor Vim a la hora de ofrecer ayuda sobre un término

Vim tiene una muy buena documentación propia sobre el editor, y con un simple comando como

:help vsp

Nos puede ofrecer mucha información sobre cómo utilizar el comando vsp (por ejemplo). Pero no es ese tipo de ayuda sobre el que hoy quiero escribir.

Imaginemos que estamos editando un archivo en Bash y queremos consultar la página de ayuda man de un comando en concreto. Vim tiene una funcionalidad muy interesante al respecto.

Este artículo viene a engrosar la serie de artículos sobre el editor Vim que poco a poco voy recopilando en mi blog, con aquellas cosas que voy aprendiendo o que voy conociendo.

Tienes todos los artículos disponibles en este enlace, seguro que hay alguno en el que puedes aprender algo:

En el editor Vim al pulsar la tecla K se abre (o por lo menos lo intenta) la página man de la palabra sobre la que está el cursor. Quizás no conocías esta funcionalidad de Vim.

En el ejemplo anterior en el que estamos editando un script de Bash podemos, por ejemplo, situar nuestro cursor sobre la palabra if de una sentencia if then else. Con el cursor sobre la palabra if pulsamos la tecla K (k mayúscula).

Y Vim abrirá la página man de dicha palabra, en la que podremos consultar la documentación sobre el uso de if, algún ejemplo, etc. Una vez consultado, podremos regresar al editor y continuar editando.

Bola extra

Y así con cualquier palabra que se encuentre en el archivo. Por supuesto, no todas tienen una página man. Para esas, no se muestra nada… pero ¿por qué no extender eso no a las páginas man, si no a que realice una búsqueda en internet de la palabra?

Imagina que estás sobre una palabra, pulsas sobre K y te abre tu navegador favorito, tu buscador favorito buscando la palabra en cuestión. ¡El editor Vim puede hacer eso! Veamos cómo.

Lo primero deberemos añadir esto en nuestro archivo de configuraciones .vimrc

set keywordprg=buscar

Con esto le decimos al editor Vim que cuando pulsemos la tecla K llame a un programa o script que se llama buscar. Y que vamos a crear a continuación, ubicarlo en una de las rutas del $PATH y darle permisos de ejecución. Poco a poco peló la vieja el coco:

  1. Con permisos de root creamos un archivo en (por ejemplo) /usr/local/bin llamado buscar mediante el comando: touch buscar
  2. Le damos permisos de ejecución mediante el comando: chmod +x buscar
  3. Lo editamos y escribimos lo siguiente:
#!/bin/bash
firefox https://www.duckduckgo.com/?q=$1

En la línea superior deberás cambiar firefox por tu navegador favorito si es otro o el buscador DuckDuckGo


Tuesday
12 November, 2019


face

Abre una consola y comienza a jugar a “El colgado” con este pequeño programa escrito en Bash.

Si para ti, el hecho de aprender a programar en Bash es sinónimo de entretenimiento, entonces es que tu también eres muy geek 🙂

Hace un par de días encontré un repositorio en GitHub con el clásico juego de “El ahorcado” en el que adivinar una palabra, acertando las letras que lo componen, antes de que en cada fallo se vaya completando una figura colgando de una horca.

Me gusta aprender cosas nuevas, me gusta aprender Bash y me gustó clonar el repositorio y ver cómo estaba hecho el programa en cuestión.

También me decidí a modificarlo y añadir la opción de poder jugar en inglés o en español (con palabras en ambos idiomas) y alguna otra modificación más.

Este puede ser un buen comienzo para aprender Bash o para enseñarlo. Quizás eres un profesor que enseña a programar a alumno, ¿Por qué no empezar con juegos sencillos como este? en el que también tiene una parte de juego.

Quizás plantear nuevos retos, quizas mejorar partes del código, quizás encontrar fallos y solucionarlos, etc. Pueden ser un buen comienzo para aprender a programar en Bash. Eres libre de clonar y descargarte el repositorio y hacer tu versión modificada y mejorada.

Por cierto hace un tiempo encontré el juego del Buscaminas también escrito en Bash y en el que también contribuí con algunos aportes. Quizás también sea otra buena oportunidad de aprender y enseñar cómo programar en Bash.

Tengo también en mis tareas TODO el aprender un poco de Python… pero poco a poco… 🙂

Enlaces de interés

Disfruta con el código. Have a lot of fun!!


face

Until now, it was not easy to run debugging tools on openSUSE MicroOS or Kubic for the simple reason that installing any package using the transactional-update in package_name command would require a reboot for the program to be available on the system. Why so? MicroOS & Kubic use transactional updates and thus, the root filesystem is mounted as read-only. Packages that are installed are available in a "snapshot" which is selected at the next boot. openSUSE MicroOS & Kubic fall in the category of immutable operating systems.

One couldn't just reboot the system every time a simple program was needed - e.g using Vi to edit a YAML config or using database client utils for a rapid inspection.

But now we have a toolbox script available in MicroOS & Kubic that allows us to launch a container and use debugging utilities that can interact with the host. The script is written in Bash and it is based on CoreOS/toolbox.

Thorsten Kukuk, SUSE Engineer & Architect (SLES / MicroOS), announced the availability of the toolbox container on the openSUSE Kubic mailing list in October.

The toolbox script resides in the system $PATH and thus can be called directly. On its first execution, the script will pull the toolbox container from the openSUSE Container Registry.

microos:~ # toolbox
Trying to pull registry.opensuse.org/opensuse/toolbox...
Getting image source signatures
Copying blob 92a022f7c0d8 [>-------------------------------------] 2.8MiB / 122.9MiB
Copying blob f0c8107beec9 [==>-----------------------------------] 3.0MiB / 36.4MiB

The host root filesystem can be accessed at /media/root/ and since the toolbox container is spawned as the root user, the files will be modifiable.

toolbox:/ # ls /media/root/
bin   dev  home  lib64	opt   root  sbin     srv  tmp  var
boot  etc  lib	 mnt	proc  run   selinux  sys  usr

Non-root toolbox containers will have read-only access to the host files, unless the --root flag is provided.

ish@microos:~> toolbox --root

Next, use zypper to install the required utilities and interact with the host and other containers.

Exiting toolbox will stop and the container and next time the script is called, the container is started again. Therefore, previously installed utilities remain available.

Each toolbox container is named by appending the username calling it, e.g toolbox-ish.

microos:~ # podman ps --format "{{.ID}} {{.Status}} {{.Names}}"
7f61fba95487 Up 10 minutes ago toolbox-ish
00ada606ec4f Up 33 minutes ago toolbox-root

face

Summary: after an epic amount of refactoring, librsvg now does all CSS parsing and matching in Rust, without using libcroco. In addition, the CSS engine comes from Mozilla Servo, so it should be able to handle much more complex CSS than librsvg ever could before.

This is the story of CSS support in librsvg.

Introduction

The first commit to introduce CSS parsing in librsvg dates from 2002. It was as minimal as possible, written to support a small subset of what was then CSS2.

Librsvg handled CSS stylesheets more "piecing them apart" than "parsing them". You know, when g_strsplit() is your best friend. The basic parsing algorithm was to turn a stylesheet like this:

rect { fill: blue; }

.classname {
    fill: green;
    stroke-width: 4;
}

Into a hash table whose keys are strings like rect and .classname, and whose values are everything inside curly braces.

The selector matching phase was equally simple. The code only handled a few possible match types as follows. If it wanted to match a certain kind of CSS selector, it would say, "what would this selector look like in CSS syntax", it would make up a string with that syntax, and compare it to the key strings it had stored in the hash table from above.

So, to match an element name selector, it would sprintf("%s", element->name), obtain something like rect and see if the hash table had such a key.

To match a class selector, it would sprintf(".%s", element->class), obtain something like .classname, and look it up in the hash table.

This scheme supported only a few combinations. It handled tag, .class, tag.class, and a few combinations with #id in them. This was enough to support very simple stylesheets.

The value corresponding to each key in the hash table was the stuff between curly braces in the stylesheet, so the second rule from the example above would contain fill: green; stroke-width: 4;. Once librsvg decided that an SVG element matched that CSS rule, it would re-parse the string with the CSS properties and apply them to the element's style.

I'm amazed that so little code was enough to deal with a good number of SVG files with stylesheets. I suspect that this was due to a few things:

  • While people were using complex CSS in HTML all the time, it was less common for SVG...

  • ... because CSS2 was somewhat new, and the SVG spec was still being written...

  • ... and SVGs created with illustration programs don't really use stylesheets; they include the full style information inside each element instead of symbolically referencing it from a stylesheet.

From the kinds of bugs that librsvg has gotten around "CSS support is too limited", it feels like SVGs which use CSS features are either hand-written, or machine-generated from custom programs like data plotting software. Illustration programs tend to list all style properties explicitly in each SVG element, and don't use CSS.

Libcroco appears

The first commit to introduce libcroco was to do


Monday
11 November, 2019


face

J’entends très souvent cette remarque et je la comprends. Cependant, le grand malentendu est que je ne parle pas de gestion de changement (qui d’ailleurs est une de mes spécialités), mais de renforcement de ce qui existe déjà (ou pas) en termes de Cyber sécurité, voire Cyber résilience…  Je vais vous démontrer à travers les […]

The post #Rouen #LuJam #cybersécurité #Raspberry #VM #openSUSE – On a toujours fait comme ça ! appeared first on Network Users Institute - Cybersécurité, Intégration de Linux & Logiciels Libres à Rouen, Normandie..


face

Prêt/e à essayer la solution la plus performante ? Demandez votre essai gratuit de CyberSécurité Découvrez toutes les possibilités. Testez LuJam ! Conditions d’évaluation : J’ai un administrateur/technicien Systèmes et Réseaux. J’utilise VMware ou KVM, je suis à l’aise avec les Machines virtuelles. Aux vu des points 1 et 2, je veux utiliser votre VM […]

The post #Rouen #Cybersécurité Demande d’évaluation gratuite #LuJam #Raspberry #VM #Logiciels Libres appeared first on Network Users Institute - Cybersécurité, Intégration de Linux & Logiciels Libres à Rouen, Normandie..


face

El periodo de consulta ha terminado, ya se han recontado los votos y la comunidad de openSUSE ha decidido sobre si cambiar o no el nombre del proyecto

Hace ya unos meses que la comunidad de openSUSE se está planteando cambios importantes dentro del proyecto. No tanto en el aspecto técnico, si no en aspectos como el cambio de logo, el cambio de nombre o la creación de una fundación que gestione el proyecto.

Ya pudiste leer en este mismo blog, hace unos meses, cómo se planteaba la posibilidad de renovar el logo. Cambiar el actual camaleón (similar al de SUSE) por otra mascota.

También pudiste leer en el blog el comienzo del periodo de votaciones para que los miembros de openSUSE decidieran si querían que la distribución cambiara de nombre.

Pues sobre esta última cuestión, el periodo de consultas ha acabado y los miembros de openSUSE han decidido que no quieren que se cambie el nombre de la distribución ni del proyecto.

Por tanto, de momento el meme que abre el artículo sigue siendo válido. Y es que con 225 votos por el NO y solo 42 votos por el SI, parece evidente que una mayoría de los miembros han querido que openSUSE siga manteniendo ese nombre.

Tanto en las listas de correo, como en algún “issue” en GitHub, el hilo sobre el cambio de nombre, implicaciones, motivaciones a favor y en contra se extiende ad infinitum (o casi…)

Por tanto parece que openSUSE seguirá manteniendo ese nombre en el que se incluye la marca registrada SUSE, y que hasta el momento nunca ha puesto trabas a que siga así (y esperemos que así siga siendo y se siga manteniendo la relación cordial y de colaboración entre el proyecto empresarial y el comunitario)

Todo eso tiene implicaciones legales y demás, por tanto no es que sean temas sin importancia. Pero de momento la comunidad sigue queriendo mantener el nombre actual.


Sunday
10 November, 2019


face

NUI.fr Facebook-f Twitter Linkedin DNS RPZ = DNS Firewall (en quelque sorte) Nous Contacter Trop de Domaines de premier niveau (TLD) Usurpation du site ameli.fr par exemple et tout récemment des impôts. Grâce aux mises à jour en temps réel, vous ne serez pas trompé par des faux sites de moins de 24 heures… Nous […]

The post #Rouen #Cybersécurité Présentation #LuJam #Raspberry #VM #LogicielsLibres #openSUSE appeared first on Network Users Institute - Cybersécurité, Intégration de Linux & Logiciels Libres à Rouen, Normandie..


face

It's not a new thing that opponents spread rumours during an election period to mislead the population in favor or against something. Such tactics predates the use of Internet & social media campaigns.

Image by Tayeb MEZAHDIA from Pixabay

I recall rumours about the so-called "Macarena" VHS that contributed to the fall of the Labour Party in 2000. I don't know whether the VHS existed or not but it's mere mention was enough to get people murmur.

During the 2014 General Elections, the "Viré Mam" video clip made people not just laugh but also changed a lot minds in favour of the then Lepep Alliance. The video clip was made from short edits from various political meetings featuring P. R. Bérenger, Leader of the MMM Party and Dr. N. C. Ramgoolam, Leader of the Labour Party, who back then formed the PTR/MMM alliance. The video was edited in such a way that it appeared both party leaders were slurring at each other in a synchronous manner and the groovy background music only made it funnier.

This year, two days after the General Elections, one that many thought to be a tough battle among three major political parties in Mauritius, a friend sent me a video clip of Dr. N. C. Ramgoolam speaking at a political meeting. The clip appears to have been carefully edited to give the impression that the Labour Party leader is saying that Hindus living in the rural areas adore money and that when they're dying, a bank note needs to be put in a "katori" (i.e copper, brass or stainless steel cup) of water and the same given to drink to the dying person for the soul to be able to leave the body. This propaganda video worked. A day before the elections and on the election day I heard about the circulation of this "Katori" clip that is supposedly offending Hindus.

While the "Viré Mam" clip could be regarded as parody, the "Katori" clip on the other hand is not. The title of the video says that the Labour Party leader is insulting Hindus and thus the creator of this video clip incites communal unrest. This whole thing could have legal implications.

The Labour Party for the past few weeks appeared to have led a successful campaign on the Internet through Google, YouTube and Facebook ads. Most of them were messages of Dr. N. C. Ramgoolam while some of the ads were interesting facts explaining about the economy, national debt and our Gross Domestic Product (GDP).

However, it seems that the party was not ready to tackle propaganda.

Thus, "Katori" clip wins and Dr. N. C. Ramgoolam could not win a seat to be in the National Assembly of Mauritius.

This blog post is not an endorsement of the Labour Party but simply an analysis of how propaganda videos affect election results.


Saturday
09 November, 2019


face
openSUSE

Σε προηγούμενο άρθρο είδαμε την συζήτηση που έχει ανοίξει στην κοινότητα σχετικά με την δημιουργία Foundation ή ενός αντίστοιχου οργανισμού.

Υπήρξαν συζητήσεις με πολλές απόψεις σχετικά με την αλλαγή ονόματος ή διατήρηση του ήδη υπάρχοντος. Επειδή η κοινότητα είναι δημοκρατική, το θέσαμε σε ψηφοφορία. Για να κατανοήσουμε τι σημαίνει αυτή η ψηφοφορία, το Board, ετοίμασε μια σελίδα στο wiki.

Η κοινότητα ψήφισε και αποφάσισε την ΔΙΑΤΗΡΗΣΗ του ονόματος. Όπως αναφέρει και στο μήνυμα στην λίστα του project, τα αποτελέσματα ήταν:



ΝΑΙ: 42
ΟΧΙ: 225



Οπότε το όνομα μένει ως έχει. Περιμένουμε να δούμε τις επόμενες κινήσεις για τον σχηματισμό του οργανισμού.

Friday
08 November, 2019


face

openSUSE Tumbleweed es una distribución “Rolling Release” de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.

Tumbleweed

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:

Durante esta semana se ha publicado 3 nuevas “snapshots” (1101, 1104 and 1106). Los cambios más notables que han traido a los repositorios han sido:

  • KDE Plasma 5.17.2
  • Mesa 19.2.2
  • Mozilla Firefox 70
  • Linux kernel 5.3.8
  • Java 12 openjdk ha sido eliminado
  • RPMs que se están recompilando tienen su registro de cambios incrustado recortado al 1 de enero de 2018 (para mantener el tamaño de los rpms binarios)

Algunas de las cosas que vendrán en próximas semanas:

  • python 3.8
  • openssl 1.1.1d
  • Linux kernel 5.3.9+
  • rpm 4.15: que promete más velocidad de compilado, y algunas tareas están siendo ejecutadas en paralelo.
  • Kubernetes 1.16.2

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

Geeko_ascii

——————————–


face

Dear Tumbleweed users and hackers,

During this week, 3 Tumbleweed snapshots have been synced out to the mirrors (1101, 1104 and 1106). The main changes included:

  • KDE Plasma 5.17.2
  • Mesa 19.2.2
  • Mozilla Firefox 70
  • Linux kernel 5.3.8
  • Java 12 openjdk has been dropped
  • util-linux gained libeconf support, aka /usr/etc support. With this, the distro files from /etc/pam.d were moved to /usr/etc/pam.d
  • RPMs that are being rebuilt have their embedded changelog trimmed to Jan 1 2018 (in order to save some size of the binary rpms)

Some things are still actively being worked on, like:

  • python 3.8
  • openssl 1.1.1d
  • Linux kernel 5.3.9+
  • rpm 4.15: it promises higher build speed, as some tasks are being executed in parallel
  • Kubernetes 1.16.2

Thursday
07 November, 2019


face

macOS is like a hotel. Everything is polished, designed and cared for. But it’s also sterile and you can’t bring your own furniture or cook your own food. On Linux, you need to do the dishes and take out the trash yourself. But it’s yours. No one forces their agenda on you. It simply feels like home.

Going from macOS to Ubuntu | kvz.io


face

macOS ist wie ein Hotel. Alles ist auf Hochglanz poliert, gestaltet und sorgfältig betreut. Aber es ist auch steril und man kann keine eigenen Möbel mitbringen oder selbst kochen. Unter Linux musst du selbst den Abwasch erledigen und den Müll entsorgen. Aber es ist deins. Niemand zwingt dir seine Agenda auf. Es fühlt sich einfach wie zu Hause an.

Going from macOS to Ubuntu | kvz.io


Wednesday
06 November, 2019


face

Aprenderemos cómo añadir un icono en el prompt de nuestra shell para mostrar si estamos en modo normal o insertar si hemos activado el modo vim en nuestra shell

Hace un tiempo pudiste leer en el blog cómo activar el modo vim en nuestra shell o línea de comandos:

Con esto lo que hacemos es habilitar un modo similar a Vim en la shell. Con lo que tendremos un modo insertar en el que podremos escribir y un modo normal en el que funcionarán los distintos comandos de Vim a la hora de movernos.

Esto puede ser muy útil si echas de menos los comandos de Vim a la hora de mover el cursor, desplazarse por el historial, borrar palabras, reemplazar, etc.

Pero tiene un inconveniente, no muestra información sobre el modo en el que estamos. Es decir, no tenemos información de si estamos en modo normal (o de comandos) o en modo insertar. ¡Este tutorial viene a solucionar eso!

Este tutorial viene a engrosar la serie de tutoriales sobre Vim para recién llegados (como yo) que voy escribiendo en mi blog y que puedes leer en este enlace:

Para empezar, suponemos que tienes configurado el modo Vim en la shell tal como pudiste leer en un artículo anterior del blog.

Para que se muestre en el prompt si estamos en el modo normal o en el modo insertar, tenemos que añadir estas líneas en el archivo ~/.inputrc

set show-mode-in-prompt on
set vi-ins-mode-string "ins"
set vi-cmd-mode-string "norm"

Guardamos el archivo, y cerramos las consolas que tengamos abierta y volvemos a abrir una consola. Con la primera línea habilitamos que se muestre el estado de vim, y con las dos siguientes configuramos el mensaje que queremos que se muestre cuando estemos en el modo insertar o en el modo normal (o de comandos).

Pero esto queda un poco soso. ¿Por qué no darle un toque de estilo y de color? Tal como puedes ver en la captura que abre el artículo yo tengo puesto una “V” de Vim en verde o rojo cuando está en uno u otro modo ¿Cómo lo hice?

Lo primero, escogí un icono que me gustase de los que ofrece Nerd Font, entre los que busqué el de Vim. Pero puedes utilizar el que más te guste o quizás otra opción en vez de un icono.

Después decidí darle un toque de color en verde cuando estoy en modo insertar y en rojo en modo normal y finalmente me quedó así:

set vi-ins-mode-string "\1\e[1;32m\2 \1\e[0m\2"
set vi-cmd-mode-string "\1\e[1;31m\2 \1\e[0m\2"

Bueno, en las líneas anteriores, no se muestra el icono de Vim pero debéis buscar vuestro favorito en Nerd Font o Awesome Font, o similares…

Espero que os haya resultado interesante. ¿Utiliz


face

I’d like to say I must be doing something right when I end up on a couple podcasts or perhaps it means a laps in judgment by many others. I want to thank everyone that has taken time out of their busy day to listen to these noodlings.

The 8th Noodling brought to you in the lowest audio quality permitted

DLN Xtend

A few weeks ago, I was asked to be a part of the Destination Linux Network to which, without any though or consideration, seemingly on both sides, I said yes.

Started this podcast with Eric Adams called DLN Xtend. To be completely fair, he really carries the show, as you can tell by these noodlings of mine, I can barely carry myself.

I rather enjoy talking to Eric, we both geek out over so many tech topics. He has a different bend to his Linux and technology implementation views.

Sudo vulnerability Discussion

Snaps and Flatpak on openSUSE

Just a quick note, but setting up openSUSE with Snaps and Flatpak are both trivial. The great thing about openSUSE is that setting up either in openSUSE is super easy and if either not not first class citizens

Flatpak reference from the openSUSE Wiki
Installing snap on openSUSE

CAD Software

Thanks to my good buddy, Eric Adams, he sent me down a rabbit hole of looking at CAD software again. A link from FossMint.com titled “11 Best CAD Software for Linux”

I have had two CAD packages that get fairly regular use. One is for “real CAD” the other is for fun.

FreeCAD is a CAD application that I use periodically, it has 3D modeling and assembly package that are pretty decent. The drawing package is pretty decent too.

LeoCAD is an application I use when I want to play with virtual Lego bricks. Often when building with my kids, I will get an idea and when I find I want different parts, I will build it in CAD and order parts as necessary.

The highlights of this article that has inspired interest and I decided to do some installing, because, why not, CAD is fun.

BRL-CAD is a free and open-source, cross-platform CAD application. There isn’t an RPM for it but there is a Debian and a tar.gz. I am going to play with this and make some kind of determination if I could use it. On the surface, the interface looks a bit like it has a steep learning curve but it might be fun give it a whirl.

BricsCAD is a commercial, modern, multi-platform CAD software for 2D and 3D modeling. The focus on this software is to allow users to work faster and smarter while spending fewer resources

The cost of this for a lifetime license with the Mechanical package is $2095 USD. That is a bit steep for a home gamer like myself. There is a 30-day trial for this software and although I haven’t tried it yet, it does look


Tuesday
05 November, 2019


face

I received a message on Twitter on 17 October from a fellow who attended the openSUSE Asia Summit 2019. Strangely, I didn't get any notification about it and it's only today that I read the message. He also attended my workshop on openSUSE MicroOS and had some questions regarding inter-Pod communication.

As a quick response, I explained him very breifly about "container networking" and pointed him to the Kubernetes documentation on IP allocation. I do realize though, that most of the times, documenation can be lengthy and {boring}, and that you would just want a simple article or blog post that clears your doubts.

Tell me about Podman networks

Rootless containers (i.e containers started using Podman as a regular user) do not obtain an IP address. Podman uses slirp4netns to allow Internet connectivity inside the container.

Communication with a rootless container is achieved by mapping the container ports to the host, e.g using -p 8080:80 to map a webserver port 80 to the host on port port 8080.

$ podman run -dt --name webserver -p 8080:80 nginx
$ curl http://localhost:8080

Therefore, two rootless containers can communicate over their published ports on the host. Let's experiment this by starting an openSUSE Leap container and installing the telnet package.

$ podman run -dt --name leap leap
$ podman exec -it leap bash

4a0f95e011b9:/ # zypper in telnet

We run ip a s on the host to find its IP address. Say the IP address is 192.168.100.8. Now, from within Leap container let's telnet port 8080 over the host IP.

4a0f95e011b9:/ # telnet 192.168.100.10 8080
Trying 192.168.100.10...
Connected to 192.168.100.10.
Escape character is '^]'.

The connection went through successfully, meaning from the Leap container we've been able to access the Nginx container through it's mapped port on the host.

This same experiment can be repeated using two different pods, say you have a pod that contains your web services and another pod that contains your databases.

$ podman pod create --name webservice -p 8080:80
$ podman run -dt --name webserver --pod webservice nginx

$ podman pod create --name db -p 3306:3306
$ podman run -dt --name mariadb --pod db -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" mariadb

The Nginx container will be able to reach the MariaDB database over 192.168.100.10:3306 as the same port is mapped on the host.

Ideally, these two containers could have been created in the same pod and therefore share the same network space. Then, the Nginx container would reach the database over localhost:3306 easily.

I used the above Nginx/MariaDB example to explain rootless inter-Pod communication, which was the question that was asked to me initially.

What about rootfull containers?

Rootfull containers are those that are created using Podman with root privileges, either by the root user itself or using sudo privilege.

Containers created using Podman with root privileges obtain an IP address. Podman then uses the Container Network Interfec (CNI) instead


face

Veamos cómo adaptar a nuestros gustos el prompt de powerline en la shell cambiándolo de color

 

Powerline es una pequeña utilidad escrita en Python que muestra información de una manera distinta en el prompt de nuestra shell y de muchas otras aplicaciones como Vim, tmux, etc.

Ya en el blog escribí sobre cómo añadir Powerline en la barra de nuestro gestor de ventanas i3 y cómo poder añadirle algunos segmentos con información extra.

Además “David Ochobits” en su blog también escribió al respecto y también puedes encontrar más información en Colaboratorio sobre cómo instalar Powerline en Ubuntu.

En este artículo os voy a contar cómo modificar el color predeterminado y adaptarlo a nuestros gustos y nuestro escritorio o cómo poder instalar otros “temas” o crear el nuestro.

Partimos de la base de que hemos instalado Powerline y sus fuentes necesarias disponibles seguro desde los repositorios de tu distribución de GNU/Linux y ya lo tenemos activado siguiendo el tutorial de David.

Si nos abrimos la ruta del archivo ~/.config/powerline/config.json deberemos fijarnos en lo siguiente:

                "shell": {
                        "colorscheme": "default",
                        "theme": "default",
                        "local_themes": {
                                "continuation": "continuation",
                                "select": "select"
                        }
                },

Lo que nos indica que para nuestra shell está utilizando el esquema de colores “default” y el tema “default”.

Si queremos cambiar lo que muestra nuestro Powerline deberemos ir a ~/.config/powerline/themes/shell/default.json y ahí añadir los segmentos o configuraciones que queramos añadir o quitar.

Pero este artículo trata de cómo cambiar el color de nuestro prompt, así que para esto deberemos ir al archivo donde se configuran los esquemas de colores en la siguiente ruta: ~/.config/powerline/colorschemes/shell/default.json

Y para que me cambie el color en el que muestra mi nombre de usuario en el prompt de Powerline he añadido la siguiente línea dentro de la sección “groups”:

        "user":             { "fg": "white", "bg": "mediumpurple", "attrs": [] },

Donde en fg especificamos el color de las letras y en bg especificamos el color del fondo, en mi caso blancas y morado respectivamente. Si quisiéramos que además fuesen en negrita, en attrs dentro de los corchetes podríamos añadir el atributo bold.

Para saber qué colores podemos añadir, lo podremos ver en el archivo ~/.config/powerline/colors.json. Con ese color morado mi Powerline se complementa mejor con el tema Dracula de mi emulador de consola Konsole.

Podremos utilizar otros esquemas de colores o crear los nuestros para ello crearemos un archivo .json de configuración y en el archivo config le llamaremos.

Bola extra

Además de cómo modificar el color de nuestro prompt o de cómo y dónde añadir otros esquemas de colores a Powerline, va aquí un extra de configuración que he modificado.

Powerline de manera predeterminada cuando estamos dentro de unas carpetas anidadas solo muestra el nombre de 3 directorios en el


face

Beberapa waktu belakangan ini saya sedang mencoba openSUSE MicroOS dan Kubic. MicroOS ini mengubah cara pandang dan kebiasaan kita terhadap instalasi sistem operasi pada server yang selama ini kita gunakan. MicroOS memang dirancang untuk mengakomodasi penggunaan container (podman, cri-o) yang makin banyak diadopsi oleh para pengembang aplikasi perangkat lunak.

Beberapa hal yang perlu digarisbawahi dalam penggunaan MicroOS/Kubic:

  1. Sistem operasi didasarkan pada openSUSE Tumbleweed. Jangan kuatir, uji coba saya selama 2 bulan sangat-sangat stabil.
  2. Read-only BTRFS root file system. Anda tidak bisa dengan seenaknya menulis dan menyimpan file, sebagian besar directory adalah read-only. Saya menemukan bahwa file bisa disimpan pada /home, /root, /etc, /var, /usr/local.
  3. Setiap kali anda menambah instalasi aplikasi dengan zypper in butuh reboot sebelum aplikasi bisa dijalankan, perintah zypper in berubah menjadi transactional-update pkg in . Demikian pula ketika melakukan zypper dup anda harus me-reboot agar update bisa diterapkan. Oya perintah zypper dup berubah menjadi transactional-update dup.
  4. Default container bawaan adalah menggunakan podman. Kelebihan podman adalah hemat RAM karena anda tidak perlu service daemon seperti halnya docker.

Silakan baca lebih lengkap di Kubic website dan Portal:Kubic.

Ada satu hal yang kadang diperlukan tetapi secara default tidak diaktifkan dalam MicroOS, cron. Kadang sebagai admin server anda membutuhkan cron baik sebagai otomasi atau pintas jalan keluar (baca:workaround) 😀
Kebetulan saya melakukan pengujian MicroOS untuk container postgresql yang datanya disimpan ke mesin lain yang menggunakan glusterfs. Jadi glusterfs di-mount ke mesin MicroOS dan container postgresql akan menyimpan data ke glusterfs. Entah kenapa mounting ini beberapa kali terlepas, tidak ada log sama sekali yang menunjukkan apa yang terjadi sehingga menyebabkan mounting tersebut terlepas. Dugaan saya, saya musti membuat LAN/VLAN terpisah untuk glusterfs ini karena data yang dituliskan frekuensinya lumayan tinggi dan cukup besar, sekitar 500 row per menit dan besaran sekitar 1.8 GB/hari. Sayangnya belum punya cukup waktu untuk kutak-katik vlan.

Karena cron tidak disertakan, maka digunakan systemd timer. Langkahnya ternyata tidak terlalu sulit, hanya saja selama ini tidak terbiasa. Secara garis besar langkah yang dilakukan: membuat script untuk service, membuat systemd service dengan memanggil script, membuat systemd timer untuk memanggil systemd service dan menset waktunya.
Di bawah ini adalah contoh membuat script, systemd service dan systemd timer. Silakan anda berkreasi sesuai kebutuhan anda.

1. Membuat script .sh
Langkah pertama adalah membuat script untuk service yang akan dijalankan oleh systemd timer.

#!/bin/bash
#by medwinz@gmail.com
#free to copy

#Script untuk memeriksa mounting glusterfs
#Jika mounting ok, no further action
#Jika mounting terlepas, matikan podman, hapus container, mounting ulang glusterfs,
# create dan jalankan ulang container

S1='jeos-1:/dis-rep-vol'
S2=`mount | grep "jeos-1:/dis-rep-vol on /home/opensuse/data-postgres type fuse.glusterfs"| awk -F' ' '{print $1}'`

if [ "$S2" == "$S1" ]
 then
    echo -n "glusterfs mounted, postgresql running. $0 will exit now."
    exit 1
  else
    podman stop postgresql &&
    podman rm postgresql
    sleep 1
    mount -t glusterfs jeos-1:/dis-rep-vol /home/opensuse/data-postgres
    sleep 2
    podman run -d --name postgresql -e POSTGRES_PASSWORD=rahasia -v /home/opensuse/data-postgres:/var/lib/postgresql/data -p 5432:5432 --restart always postgres:latest
    sleep 1
    exit 1 

face

Whatever machine you’re reading this on, it’s highly likely that not all of the CPUs shown by the OS are actually physical processors. That’s because most modern processors use simultaneous multithreading (SMT) to improve performance by executing tasks in parallel.

Intel’s implementation of SMT is known as hyperthreading, and it was originally introduced in 2002 as a way to improve the performance of Pentium 4 and Xeon CPUs that didn’t require increasing the clock frequency. Most Intel CPUs supported the HyperThread Technology (HTT) apart from the Core line of products until the Nehalem microarchitecture which was introduced in 2008. Recently, Intel have announced that they’re moving away from hyperthreading again with their Core product line.

AMD too have dabbled with SMT, and the diagram below shows how SMT works in the Zen microarchitecture.

AMD Zen SMT architecture diagram

As the diagram above illustrates, some components are dedicated to each thread and some are shared. Which pieces are shared? That depends on the implementation and can potentially vary with the microarchitecture. But it’s usually some part of the execution unit.

SMT threads usually come in pairs for x86 architecture, and those threads contend with their siblings for access to shared processor hardware. By using SMT you are effectively trying to exploit the natural gaps in a thread’s hardware use. Or as Pekka Enberg eloquently put it:

There are both good and bad reasons to use SMT.

Why is SMT good?

SMT implementations can be very efficient in terms of die size and power consumption, at least when compared with fully duplicating processor resources.

With less than a 5% increase in die size, Intel claims that you can get a 30% performance boost by using SMT for multithreaded workloads.

What you’re likely to see in the real world depends very much on your workload, and like all things performance-related, the only way to know for sure is to benchmark it yourself.

Another reason to favour SMT is that it’s now ubiquitous in modern x86 CPUs. So it’s an easy, achievable way to increase performance. You just need to make sure it’s turned on in your BIOS configuration.

Why is SMT bad?

One of the best and also worst things about SMT is that the operating system doesn’t make it obvious when SMT is enabled. Most of the time, that’s good because it’s an unnecessary distraction. But when it comes to things like capacity planning, or tuning your system for real-time workloads, you really need to know if SMT is enabled.

Take assigning physical CPUs to virtual machines, for example. If you’re not aware that SMT is turned on, it’s easy to think that doubling the number of CPUs will

Older blog entries ->